Changelog for Teamscale 7.7
Newer Release Available
Our current release is available here.
Java 17 Required (since Teamscale 7.7)
As of Teamscale 7.7, running the Teamscale server requires a Java Runtime Environment, Version 17 or later.
Changed startup on non-Docker Linux installations (since Teamscale 7.7)
As of Teamscale 7.7, Teamscale is no longer executed using nohup
on non-Docker Linux installations. This requires manual intervention:
- If you are using systemd to manage Teamscale as service, you have to change the startup type from
Type=forking
toType=simple
in the Teamscale systemd unit. Remember to reinstall the service. - For custom linux setups that depend on
nohup
, start Teamscale like:nohup ./teamscale.sh &
.
In general, we strongly recommend running Teamscale on Linux with Docker.
Changed Teamscale systemd service type (since Teamscale 7.7)
As of Teamscale 7.7, the Teamscale systemd service type must be updated to type=simple
, instead of the previous type=forking
Improved administration experience (since Teamscale 7.7)
Teamscale 7.7 features several changes that improve the default administration experience.
- The default location of cloning remote Git (or SAP) repositories is a folder named
repo
relative to the process working directory. Existing instances are not affected and the location previously configured will be set upon backup import. The option has been moved to Admin / Global Settings / Git. - The following JVM arguments are now always specified and can be removed from
JVM_EXTRA_ARGS
injvm.properties
:-Djco.session_timeout=60 -XX:-OmitStackTraceInFastThrow -Dsvnkit.http.methods=Basic,Digest,Negotiate,NTLM
- The Teamscale temporary directory is now configurable with the
TEAMSCALE_TEMP
environment variable. If you previously specified a custom temporary directory using-Djava.io.tmpdir=...
, we recommend removing this JVM argument and using the environment variable instead. The directory may be relative to the process working directory and is created if it does not exist.
SAP Java Connector required for importing ABAP® code (since Teamscale 7.7)
As of Teamscale 7.7, exporting ABAP® code from SAP systems requires a manual installation of the SAP Java Connector (SAP JCo) 3.1 or later. For detailed information on the installation process, please refer to Installation of the SAP Java Connector (JCo).
SNI Hostname Verification (since Teamscale 7.4)
As of Teamscale 7.4, the internal Jetty web server executes SNI hostname verification by default. If you encounter an error "Invalid SNI" when accessing Teamscale, please contact our support
REST XML Interface Removed (since Teamscale 7.0)
As of Teamscale 7.0, its REST XML interface (deprecated since Teamscale v6.0) has finally been removed. This affects only the legacy REST API; the new, versioned API is not affected. You have hence two options:
- The preferred long-term solution is to migrate to the new, versioned REST API, i.e., to use REST endpoints like
…/api/v7.0.0/…
. - A temporary solution is to keep using the legacy REST API but always send an
Accept: application/json
request header and accept JSON rather than XML responses. Note, however, that the legacy REST API will be deprecated and subsequently removed, too.
Changed Voting Behaviour for Bitbucket Server Integration (since Teamscale 6.7)
As of Teamscale 6.7, the Enable Voting option in the Bitbucket Server connector will only add the findings badge to the pull request description. Please enable the Enable pull request review option, if you want Teamscale to also review pull requests.
Re-Analysis when Upgrading
- When updating from 7.7.x, drop-in.
- When updating from 7.6.x or earlier, a full re-analysis via backup is required.
Version 7.7.18
Fixes
NullPointerException
inContainerSynchronizerBase
for corner cases of non-code metrics
Version 7.7.17
Fixes
- Using
await
beforeforeach
statement in C# was not parsed correctly - Bitbucket: Teamscale was sometimes not voting on merge requests during high traffic
Version 7.7.16
Fixes
- Storage directory size was incorrectly computed in MB instead of GB
- Disabling the backup options "include pending external analysis result sessions" and "include git labeling information" had no effect
- TGA treemaps and Changed Files in the Delta perspective showed too many files when the name of the selected folder was a prefix for another sibling folder
- Specification item queries using
codeReferences
ortestReferences
were not usable on dashboards NullPointerException
about skipped post revision triggers due to missing analysis state- Quality goal settings were not preserved when changing the file path for the Findings and Metrics perspectives
- In some cases text could overlap the Treemap widget
- C# switch expressions were not handled correctly in dataflow analyses
Version 7.7.15
Fixes
- Branch coverage detection failed for branches with only a single line of code
Version 7.7.14
Fixes
- Voting did not happen when the "Partitions Required for Voting" option was enabled and the uploaded external data was empty
- Some widgets could not be added to dashboards if the project had a lexicographically smaller alias
UnsatisfiedLinkError
in TFS connector- Objective-C preprocessed code was not ignored in the "Statements in Conditional Expression are equal" check
- Some branches were considered covered even if no coverage reports were uploaded
- C# property initializations were not parsed correctly
- Users could alter the avatar images of other users
- ESLint configuration files other than
json
,yml
oryaml
have to be allowed explicitly (e.g. JavaScript files, which are executable)
Improvements
- Improved security against path traversal and DoS attacks
Version 7.7.13
Fixes
StackOverflowError
for recursively nested Simulink models- Clone coverage metric was not correct for C/C++ files using macros
- Teamscale-SCI Integration: Space characters in ABAP function group names caused
Bad Request
errors
Improvements
- In the Metric Percentage widget, a different path can now be selected for the denominator metric
Version 7.7.12
Fixes
- External reports were not imported from repositories (e.g., Artifactory, S3)
- Struct members were erroneously detected as unread variables
- Polarion: Relationships between specification items were not updated reliably in specification item table and queries
Version 7.7.11
Fixes
- Large rollbacks could lead to
OutOfMemoryError
s when using Xodus storage backend - Misleading error message was displayed when unknown attribute was used in a numeric aggregation function (e.g.
size()
) in issue queries - C++ naming convention findings were displayed for Objective-C code
- Errors in Clang-Tidy execution for C, C++ and Objective-C when using relative include paths
- False positives for "Each variable should be declared in a separate statement" check in Objective-C++
- RFC authorization issues when using the SAP JCo library
Improvements
- Show better explained message instead of alarming
NoSuchFileException
during computation of storage directory size - .NET Profiler: Upload Daemon now sends distinct user agent header for Teamscale uploads
Version 7.7.10
Fixes
- False negatives in "Avoid using C-style arrays" check when using .cc file extension
- Using
out
as a label withgoto
statement in Objective-C was not parsed correctly - Preprocessor directives that contain unbalanced quotes were not parsed correctly
- Specification items were not deleted from Teamscale when they were deleted from Polarion
- Line comments limit was not working for Gerrit connectors
GerritFindingBlacklistTrigger
threwNoSuchElementException
in rare casesTestMetricsAndContentSynchronizer
ran very long in some casesTfsWorkItemSynchronizer
did not adher to the "Retry-After" reply header in case of many outgoing requestsIllegalThreadStateException
when waiting for external processes in rare cases- SAML login was not working if authentication response contained additional parameter (e.g.
RelayState
) - Eclipse plugin: Server names with special characters (white spaces, slashes) could not be saved
- Import of code inspector findings from SAP systems did not work reliably
- Merge request comments were not deleted when comment limit was exceeded
- Gerrit votes were skipped in certain scenarios
Version 7.7.9
Fixes
- C# "expression-bodied" methods and properties were considered to be non-coverable
- Selection of nested partitions was not persisted when all sub-partitions were selected
- Too many similar logs when processing report uploads
- Deleted files in Artifactory could lead to infinite analysis loop
- Gosu: Top level functions with return values were not parsed correctly
- False positive clone findings for Objective-C methods
copy
,copyWithZone
andisEqual
- Code Comparison page was sometimes not able to load the code for one revision
- Filtering findings by path had no effect in the Findings perspective
- Visual Studio plug-in: The Findings view only showed "Loading findings..." if Teamscale was not configured for the associated solution
- False positives for "
Switch
statements should not contain unexpected constructs" check in C++ - BOM characters in JavaScript files caused scanner errors
MergeRequestSynchronizers
tried to synchronize merge requests from other connectors in the project- AWS S3 backups could not be deleted
- Concurrent uploading of multiple external analysis results blocked the creation of other sessions in some circumstances
Improvements
- Artifactory: Improved content retrieval performance for large changesets
- Improved findings description of "Octal constants usage" check
- Improved findings description of "Non-empty switch clauses have to be terminated unconditionally" check
Version 7.7.8
Fixes
- False positives for "Non-virtual destructor" check in C++ on classes with deleted destructor
- False positives for "Multiple statements in single line" check in PL/SQL when using aggregate functions
StackOverflowError
in TypeScript parser when reserved keywords were used as parameter names in lambda type guards- Code blocks in finding descriptions were not rendered consistently
- Backups could not be exported to AWS S3
- Coverage data exported by XCode 13.3 couldn't be parsed
- Metrics for issues or specification items were not reliably updated due to caching
Improvements
- The Gerrit repository connector now uses robot comments for Teamscale findings instead of regular comments
Version 7.7.7
Fixes
- False positives for "Check unused data in Data Dictionary" check in Simulink
- False positives for "Unused variable or parameter" check in C# when using multiple discards
_1
,_2
, etc. - False negatives for "Check for Usage of Gain Blocks" in Simulink in corner cases involving the
Auto
default storage class - T-SQL code clones were not detected
- Download Ranking as CSV button in Pareto ranking view offered invalid CSV
IndexOutOfBoundsException
in "Names must not only differ in casing" check- An internal server error occurred when updating the project configuration of projects using the parent project feature
- Opening the Issue Details page for a ticket did not work when all the ticket's findings were flagged as tolerated or false positive
- Check Explorer and Analysis Profiles views ignored user-defined check descriptions
- Eclipse/IntelliJ/NetBeans plug-ins ceased to work if license was expiring soon
- The C#
unsafe
keyword was treated as coverable - Computation of Pareto ranking was started as soon as the view was opened, potentially impacting performance
Improvements
- Improved description of "Assignment to wider type" check in C/C++
Version 7.7.6
Fixes
- Possible
NullPointerException
in some Simulink checks - Possible
NullPointerException
during rollbacks caused by previous errors in external report processing - REST API explorer displayed wrong field types for some parameters
- False positives for "Null pointer dereference" check when using C++ optionals
- False positives for "Missing interface comment" check in Kotlin
- False positives for "Bad assignments" check in Objective-C when initializing
self
in conditions - Parsing of expression body definitions in C# did not work correctly
- Parsing of lambda arrays in decorators in Python did not work correctly
- Parsing of Microsoft Component Object Model macros in C++ did not work correctly
- Last line of multiline
if
condition was not recognized as coverable MethodLastTestedSynchronizer
persisted the same data multiple times in some cases- Visual Studio plugin: Loading the findings failed when a solution was opened from Windows Explorer or the command line
- Visual Studio plugin: Upload for Pre-Commit Analysis showed up in context menu even when no project mappings were configured
- Eclipse plugin: SWT Resource was not properly disposed when closing the Teamscale preferences page
OutOfMemoryError
when parsing a very large Objective-C fileCodeChangeIndexSynchronizer
could throwIllegalArgumentException
when performing refactoring detection- Newly added tests where not prioritized when using the legacy REST endpoint of the Test Impact Analysis
- Merge requests were not updated when webhooks had been disabled
- Parsing of nullable variables in Visual Basic did not work correctly
Improvements
- Added new check option to allow variable initialization in conditions for "Bad assignments" check
- Added a troubleshooting section in the JavaScript Profiler how-to
Version 7.7.5
Fixes
- Filtering by guideline in the Findings perspective showed a rule's ID rather than its name
teamscale.sh
logged an "integer expression expected" error in some cases- System Information page did not show visual indicators for percentages
AssertionError
inDataFlowFindingsSynchronizer
for C++ header filesIndexOutOfBoundsException
inTerminalOperationAtEndOfStreamCheck
when encountering syntactically incorrect Java code- When saving a series of role assignments, only the first assignment was saved
- False positive for "Avoid unused private methods/fields" check in C#
- Eclipse plug-in: Findings view was cleared when switching to console view and back
- IntelliJ plug-in: Warning about invalid server license was hard to read in IntelliJ Light theme
- Visual Studio plug-in: Pre-commit analysis failed unless all files were located below the solution's root location
- Visual Studio plug-in: Project mappings defined in a
teamscale.properties
file were no longer recognized - Execution trend showed execution before baseline in some cases
- Back-channel logout of OpenID Connect did not log out the user immediately
- Instance comparison examples failed to open when server was behind a reverse proxy
- Empty T-SQL files led to an
IndexOutOfBoudException
- The
StructuringAnalysis
could throw aNullPointerException
under some rare conditions - Documentation on JavaScript profiling and coverage technologies was outdated
- False positive for "Redundant parentheses" check when using generic constructor calls in Python
Improvements
- The description of the "Assembler encapsulation" check has been expanded and examples have been added
Version 7.7.4
Fixes
- Eclipse, IntelliJ and Netbeans plugins could not handle umlauts in paths correctly
- IntelliJ plugin: A
ThreadAccessException
occurred in rare cases when uploading a project for pre-commit analysis - False positives in "Null pointer dereference" check
- External links in Testwise Coverage reports V2 uploaded to Teamscale were not shown in the Test Details view
- Empty issue query showed no trend
- Disabling Abbreviate large numbers displayed 0 as duration for short-running tests
- Change Count metric was not quality neutral
- Inconsistent names, Credentials and Account, were used for UI elements and internal service endpoints
- Loading reports failed in rare cases due to a
NullPointerException
- Incorrect keyboard shortcut displayed for command Add finding to task
- Yellow assessment in Metric Slide in Reports view displayed incorrect information
- Branches without coverable lines were considered as covered
- Branch selector was not scrollable
- Test references became invalid, when test file was changed in the target branch of a merge
- In-line comments on merge requests were sometimes too long
- Analysis results integration were scheduled for the same commit in rare cases, resulting in errors
- New methods in merge requests were sometimes not displayed in the Test Gaps Treemap
- The Execution Status view sent too many update requests
Version 7.7.3
Fixes
- Text filters were not respected for test coverage data and TGA calculations
- Issue detail view: Erroneous message
Sorry, the page you requested does not exist
- C# constructors with lambda expressions could not be parsed
IndexOutOfBoundsException
inCodeChangeIndexSynchronizer
- False positives in "String interpolation argument number" check for Java
- Progress indicator was missing when searching in Teamscale
- Unchanged methods were shown in tree map in Unlinked Changes view
- DTD for DetailedXML dotCover report format was outdated
- Activity Details view showed inactive time travel information
- Affected files in Issue Detail view showed files changed by uploaded data
- Method History view annotated all coverage uploads as "latest"
- System Info: Link to documentation for "Out of Memory" problems was not rendered correctly
JiraIssueUpdatePostAnalysisTrigger
blocked analysis if Jira did not respond in time- Externally uploaded findings were sometimes not disappearing on forked branches
- Reports: Layout issues with image slides
- Simulink: Boolean was considered a signed data type for "Usage of bitwise operations" check
- Simulink: Some output data types were wrongly inferred
- False positives for "Null pointer dereference" check
- Stack overflow while parsing Typescript for lambdas nested in ternary operator statement
- Using relative dates in project configurations could cause unexpected rollbacks on configuration change
- Stack traces were not rendered correctly in the Test Details view
GerritAnalysisResultUploadTrigger
threwNullPointerException
in rare cases
Improvements
- Better placement for errors which occurred during user creation
- "Analysing first commit" message on Activity perspective linked to itself
- Added support for Groovy 4 features
- Enhanced error reporting for S3 connector validation
Version 7.7.2
Fixes
- Merge request comments about the flagging of findings displayed username instead of full name
StackOverflowError
inTestMetricsAndContentSynchronizer
- Simulink model names with backslashes could not be displayed
- Search bar tooltip was rendered incorrectly
- Placeholder for the search field in the Test query view was incorrect
- Delta findings churn contained all false positive/tolerated findings for merge requests
- The Connector Status view only worked with administrative permissions
- End date of instance comparison was always set to current time
- Error in Javascript console when viewing a treemap or a report in Safari
- Finding messages were incorrectly rendered in the Create Task view when a task was created from the Findings or Metrics perspective
- Text blocks in Java were not parsed correctly
@protocol
in Objective-C was not parsed correctly- Construction of an object with sub-objects in Javascript was flagged as deep nesting
- TFS library version was updated to be compatible with Java 11
- Polarion work items without document stalled complete work item import
- Teamscale sometimes voted on the wrong commit in merge requests
Improvements
- Avoid unnecessary service log warnings when importing ABAP findings in SE80
- Improved performance of comment analysis for C/C++
- Added Kotlin to the list of supported architecture analysis languages in the documentation
- Loading indicator was added for treemaps in the Merge Request view
Version 7.7.1
Fixes
- Default analysis profiles were not created when Teamscale was initially started without a license
- False positives for "Avoid using ternary operators" check in Javascript/Typescript
- False positives for "Assignment of a variable to itself" check in C# in the context of anonymous object creation expressions
- False positives for "Conditions in if blocks" check in Simulink for simple negations
- IntelliJ Plugin: Result of
branches
service call could not be deserialized - "Naming convention" check in C# did not apply correct regular expression for properties and events
Executed By
tab in the method history did not show tests that executed a method when navigating to it via an architecture path- Findings Treemaps in the Findings perspective were not completely visible due to an incorrect positioning
- Singe Metric Trend Chart widgets sometimes included an incorrect data point with value zero for specification items
- Occasional login problems due to
431 Request Header Fields Too Large
- IntelliJ Plugin:
NullPointerException
when a project was unavailable in Teamscale - False positives for "Check use of single variable variant conditionals" check in Simulink when the condition contained
true
orfalse
TestgapPercentageService
was very slow on large systems- Rollbacks did not work correctly for renamed branches in git
- Parsing issues for regex in Javascript/Typescript template string
- Parsing issues for unconnected lines and colons in Simulink models
Improvements
- Code view: Improved indicators for pending review comments
Version 7.7.0
Bug Fixes
- 7.7.0 contains all fixes from previous versions released on and before February 22nd, 2022
- For brevity, only new features are included in the changelog
Major Features
- IBM RTC/Jazz connector for requirements tracing
Web UI
- Added possibility to filter for any used internal/external tools or analysis profiles in the Check Explorer
- The Check Explorer can now show the available configuration options for each check
- Extended icon list for report slide comments
- Architecture components can now be removed from the editor by using a context menu
- Expected coverage of impacted tests can now be overlaid over the test gap treemap in the Issue details view
- Teamscale vote status can now be seen in the Merge request view
- Backup import now shows a live status of which projects have already been imported
- The edit menu for a dashboard now contains the option to update trends or baselines for all widgets of that dashboard at once
New Checks
- Check for detecting post-operators without effect in return statements for C/C++, C#, Java, JS, Objective C, PHP, Xtend, Swift, Groovy and Kotlin
- Check for division by zero that considers variable values for C#, C/C++, Java, JS and Python
- Multiple new ESLint checks
Connectors
- Add analysis granularity setting "One per month"
- ABAP: Findings and test gaps can be aggregated per transport request and/or task (requires Teamscale Connector for SAP Netweaver® AS ABAP® v2202)
Administration
- Rollbacks now have an associated ID displayed in the logs