# Changelog for Teamscale 8.0

Newer Release Available

Our current release is available here.

Release Announcement

Check out the Release Newsletter for Teamscale 8.0.

Changed backup behavior (since Teamscale 7.8)

Starting with Teamscale 7.8 automatic backups are enabled by default with sensible defaults. In addition, the default location of storing backups changed to a folder named backup relative to the process working directory.

Existing instances are not affected and previously configured settings will be restored upon backup import. In that case it is recommended to enable automated backups if not configured yet.

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 to Type=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.

  • Breaking: Teamscale is no longer executed using nohup on non-Docker Linux installations. If nohup is required for your setup, start Teamscale like: nohup ./teamscale.sh & However, we strongly recommend running Teamscale on Linux with Docker or as Service.
  • The default location of storing backups is a folder named backup relative to the process working directory. Existing instances are not affected and the location previously configured will be set upon backup import.
  • 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 in jvm.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 (opens new window)

Re-Analysis when Upgrading
  • When updating from 8.0.x, drop-in.
  • When updating from 7.8.x or earlier, a full re-analysis via backup is required.

# Version 8.0.19

Download Teamscale v8.0.19 (ZIP)
September 19th, 2022

# Fixes

  • RaexFindingSynchronizer failed due to missing DLL file
  • NumberFormatException when parsing JUnit reports which contained numbers using commas as decimal separators
  • Legacy Teamscale links did not redirect to their corresponding pages

# Improvements

  • Tables on Tests by Spec Item and Spec Items by Test views are now sortable
  • Added support to disable Switch statement without default case check in case for switches over enums

# Version 8.0.18

Download Teamscale v8.0.18 (ZIP)
September 13th, 2022

# Fixes

  • False positives for "Each variable should be declared in a separate statement" check in C++ when using generic as the name of a function or class
  • False positives for "Multiple statements in same line" check in C++ when calling constructors with curly brackets
  • Introduction date in findings table was cut off on narrow screens

# Version 8.0.17

Download Teamscale v8.0.17 (ZIP)
September 6th, 2022

# Fixes

  • False positives for "Avoid usage of implicit int" check for C/C++
  • Link to specification item was included in the Merge Request view even if the item did not exist
  • Gerrit connector voted +1 in case of yellow findings and the option "Ignore Yellow Findings For Votes" enabled

# Version 8.0.16

Download Teamscale v8.0.16 (ZIP)
August 30th, 2022

# Fixes

  • C/C++: StackOverflowError in Dataflow analysis for switch without braces in lambda function
  • Objective-C blocks were incorrectly parsed
  • False positives for "Comment Completeness" analysis for C/C++ due to Doxygen comment identification
  • Large values formatted with SI prefixes were displayed with three decimal places in metric trend chart slides
  • SCM Manager credentials: Passwords with non-ASCII characters did not work correctly
  • S3 and Artifactory connectors ignored archive deletion events
  • Failures in CodeChangeIndexSynchronizer due to changes in shallow parser implementations
  • PolarionSynchronizer performed too many logins, leading to session problems

# Version 8.0.15

Download Teamscale v8.0.15 (ZIP)
August 23rd, 2022

# Fixes

  • NullPointerException in BitBucketServerMergeRequestAnnotationTrigger when merge request was deleted
  • Teamscale failed to update Bitbucket Server pull requests in case of out-of-date information and when someone replied to a comment
  • In reports, introduction diffs for some findings were not rendered
  • Clone compare slide did not correctly show clones for same file
  • False positives for "Commented-out code" check in Java
  • False positives for "Do not put multiple statements in a Lambda expression" check in Java
  • Gosu parser error in case of nested lambdas
  • Rendering of findings descriptions in the Check Explorer included too many line breaks
  • IntelliJ plugin: NullPointerException when fetching findings

# Version 8.0.14

Download Teamscale v8.0.14 (ZIP)
August 16th, 2022

# Fixes

  • S3 connector did not collect all items in large buckets
  • TGA coverage sources chooser was inconsistent with latest upload in some rare cases
  • Number of loadable custom checks per location was wrong on System Information page
  • URLs did not contain branch name for default branch which made them inadequate for sharing
  • Tests that did not exist in the selected partitions were still shown in the Test Metrics view with count zero
  • Counting the number of committers did not take commit type and aliases into account
  • Selection of integrated GitHub app was undeterministic when two apps had the same id but different URLs

# Improvements

  • Backup minimizer now supports branch include and exclude patterns

# Version 8.0.13

Download Teamscale v8.0.13 (ZIP)
August 9th, 2022

# Fixes

  • JiraIssueUpdatePostAnalysisTrigger was unnecessarily executed even for pre-commit changes
  • Empty Jira update notifications were sent by Teamscale
  • Jira connector blocked analysis if many requests were sent in a short time frame
  • Analysis of Bitbucket project stopped due to many merge request annotation triggers and lots of activities on Bitbucket server
  • Voting failed in some rare branch scenarios
  • Slashes in the default branch name caused errors when using Git connectors
  • The .NET version check required an installed SDK although .NET Runtime should have been sufficient
  • False positives in JavaScript naming convention check for React components
  • Simulink: Root-level model findings popup was obscured by the browser's top bar and findings were not clickable
  • Preprocessor-generated tokens of C/C++ were handled wrong in several analyses
  • Some SVN forks were not correctly detected
  • False positives for check "Non-void function should return a value" in C++ in case of unresolved macros
  • False positives for "Comments should not contain nested comments" check in Python when comments contained URLs with #

# Improvements

  • System view now displays committers of the last 90 days
  • Support for setting a credentials process for S3 connector through a configuration property

# Version 8.0.12

Download Teamscale v8.0.12 (ZIP)
August 2nd, 2022

# Fixes

  • Swift long method findings had wrong locations
  • "Save anyway" button did not save project after project validation error
  • Kotlin try/catch/finally constructs were not parsed correctly
  • abap-findings service missed findings from (transitive) includes
  • Activity > Issues view did not correctly handle clicking the "Show trend and treemap" button on invalid issue queries
  • JsonSerializationException in LoadAndIntegrateSapTestwiseCoverageTrigger
  • License was not valid on the last day of the license period
  • Rendering the verification matrix blocked UI for multiple seconds on huge data sets
  • Teamscale added badges to merge requests that had no relevant changes

# Improvements

  • Provide debug service to list/download/remove temporary files

# Version 8.0.11

Download Teamscale v8.0.11 (ZIP)
July 26th, 2022

# Fixes

  • C# analysis profiles could not be edited
  • BackupMinimizer did not delete temporary storage directory after its execution
  • Changing the project used by a widget redirected the user without saving
  • Widget path chooser did not work correctly when value was removed
  • When code review findings were enabled, opening a non-existing file led to a red error page
  • NumberFormatException in division by zero analysis
  • Uploaded external findings got lost in cases where analyses had not reached the target commit
  • Font color UI glitch in left sidebar

# Improvements

  • Updated dependencies in docker image to latest version

# Version 8.0.10

Security Improvements

This version contains security improvements. If possible, please update to at least this version.

Download Teamscale v8.0.10 (ZIP)
July 19th, 2022

# Fixes

  • Annotating merge requests with line comments and findings badges could not be configured independently
  • NullPointerException in GerritAnalysisResultUploadTrigger
  • Global keyboard shortcuts did no longer work
  • hasParent() operator in issue queries always returned an empty result
  • Slow Teamscale backup import due to incorrectly configured Xodus database-memory setting
  • Contents of some dashboard widgets were not properly adjusted after browser window resize
  • Treemap in Commit Details view did not show up sometimes
  • "Too much data to show" error displayed when viewing large treemaps
  • Delta view of merge requests could not be opened in a new tab
  • Parsing errors for annotations on Java arrays
  • HDL Code Advisor checks could not be parsed from a Model Advisor report
  • Ordering and searching Simulink findings by location were not working properly
  • Badges were not shown for GitHub pull requests that had no findings
  • Connectors were shown as part of repositories they did not belong to
  • New commits were sometimes not analyzed if there were no commits during the initial analysis
  • NoSuchPullRequestException for merge requests in Teamscale that have already been deleted in Bitbucket
  • False positive for "Assignment of a variable to itself" check in Swift

# Improvements

  • Updated Node.js to the latest version to fix potential remote code execution

# Version 8.0.9

Download Teamscale v8.0.9 (ZIP)
July 12th, 2022

# Fixes

  • File regexes could not be deleted in Metric File Distribution widget
  • Saving a GitHub connector always caused re-analysis
  • Git repository synchronization failed if the default branch was removed
  • Teamscale did not vote on GitHub pull requests without any findings
  • Rollback was unnecessarily postponed after specification items were manually cleaned
  • NullPointerException in SwiftLintOutputParser
  • Metric File Distribution widget could not show specification items metrics if there were multiple folders for one part of the path
  • IndexOutOfBoundsException in "Bad assignments" check for Objective-C
  • ArrayIndexOutOfBoundsException in BitbucketServerMergeRequestSynchronizer after multiple retries
  • False positives for "Assignment of variable to itself" check for multi-line assignments in Swift

# Improvements

  • Backup Minimizer only supported in-memory storage systems

# Version 8.0.8

Download Teamscale v8.0.8 (ZIP)
July 5th, 2022

# Fixes

  • Check Explorer: Deselecting all languages also removed all selected tools
  • Compare view scroll synchronization was inconsistent when scrolling horizontally
  • Sorting the rows in the Test Gaps perspective tables by 'Test Gap', 'Execution', or 'Churn' did not work correctly
  • Race condition in ESLintFindingsSynchronizer could lead to missing npm modules and corresponding worker log errors
  • Missing code location column in table on Test Filter view
  • GitHubMergeRequestSynchronizer could run indefinitely
  • False-positives for "Assert statement without ID" check for ABAP
  • False-positives for "Avoid usage of implicit int" check for C/C++
  • Rare NullPointerException in ArtifactoryContentUpdater when updating existing archives in Artifactory
  • Number of specification items did not correctly account for multiple changes for the same item in merge requests
  • Projects or branches in the "recent" section of the selection dropdown where not shown in the full list below
  • Branch of the revision was not selected when time travelling to it
  • Connector status was green even when the default branch was deleted on the server
  • Tooltip text size for tree maps was dependent on the screen resolution

# Improvements

  • Better performance of GerritChangeRetriever for large amounts of Gerrit changes
  • Improved wording for TGA badges in merge requests

# Version 8.0.7

Download Teamscale v8.0.7 (ZIP)
June 28th, 2022

# Fixes

  • Opening non-code metrics resulted in an "index out of bounds" error message
  • IEC61131-3 structured text .tu files were not parsed correctly
  • Java module definitions were not parsed correctly
  • Eclipse/Intellij/Netbeans plugin: Using "Open in Editor" in the Findings view didn't work after findings have been retrieved for an entire folder rather than a single file
  • Missing error message when using SonarLint for C# when .NET SDK 6 runtime was not installed
  • AbapLint findings were missing for function group and ABAP include extension class files
  • Polarion fields for linked work items were mixed up
  • S3 connector failed due to malformed authorization header
  • High memory consumption when multiple external reports were uploaded or changed at the same time

# Improvements

  • Reduced memory consumption for C/C++, as well as Objective-C projects

# Version 8.0.6

Download Teamscale v8.0.6 (ZIP)
June 20th, 2022

# Fixes

  • NullPointerException in TestHistorySynchronizer
  • "Enable Findings Badge for votes" option for merge request annotations was disabled when updating from previous versions
  • "Statements in Conditional Expression are equal" check was falsely applied to pre-processed C++ code
  • Excessive synchronization with remote git repository
  • Tooltip links for the submenu on the Delta view were broken when the left sidebar was collapsed
  • Task details view for resolved findings was showing the current code instead of the code causing it
  • NullPointerException in ContainerSynchronizerBase for corner cases of non-code metrics

# Version 8.0.5

Download Teamscale v8.0.5 (ZIP)
June 14th, 2022

# Fixes

  • Azure DevOps TFVC connector did not respect the http.nonProxyHosts flag
  • Autocomplete feature of password fields caused odd configurations in some input fields
  • Some findings were wrongly flagged as false positive or tolerated
  • AssertionError in SimulinkBuilder if two Simulink blocks had the same name
  • False positives for "Null pointer dereference" check in C/C++ for loops
  • System info page showed a red error banner on certain Linux systems
  • Comments in Quality Task slides did not support Markdown
  • Visual Studio plugin: Reverting changes of a pre-commit analysis did not remove the respective findings
  • Bitbucket: Teamscale was sometimes not voting on merge requests during high traffic

# Improvements

  • Optimized Delta perspective when used with an architecture path for components containing a lot of files

# Version 8.0.4

Download Teamscale v8.0.4 (ZIP)
June 7th, 2022

# Fixes

  • Description of Pylint report generation was not compatible with newer Pylint versions
  • Errors about overly long finding message from SAP Code Inspector imports
  • Code was not visible when a user did not have view permissions for another user who last reviewed a file
  • IllegalArgumentException could occur when building the custom check sample
  • Ternary operators in initialization lists in C++ were not parsed correctly
  • Null-conditional operators in C# were incorrectly handled in case expressions of switch statements
  • External Pylint reports could not be parsed if spaces were missing
  • NullPointerException in TestHistorySynchronizer
  • Adding a branch with the same name as a branch rename target led to inconsistencies
  • Storage directory size was incorrectly computed in KB 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 or testReferences 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

# Improvements

  • Added anti-aliasing to Code City widget
  • Speed up for scheduling of external analysis triggers
  • Better initial loading time for Test Filter view
  • Better documentation for the creation of GitLab webhooks

# Version 8.0.3

Download Teamscale v8.0.3 (ZIP)
May 31st, 2022

# Fixes

  • Simulink: Stateflow transitions crossing states were not displayed correctly
  • Delta perspective did not handle cases consistently where paths had a common prefix
  • Swift keyword let was not parsed correctly
  • AssertionError in TypeIndexSynchronizer due to missing support for ABAP enhancement objects from abapGit repositories
  • Branch coverage detection failed for branches with only a single line of code

# Version 8.0.2

Download Teamscale v8.0.2 (ZIP)
May 24th, 2022

# Fixes

  • Backups with enabled SonarLint C# checks could not be imported
  • Requirements Tracing and Issues pages contained a single dangling semicolon
  • The ternary operator (?:) was not parsed correctly in C# when using expression-bodied methods
  • ABAP system ID was not logged for asynchronous ABAP imports
  • Check descriptions in the Analysis profile editor could appear hidden in the background
  • Using await before foreach statement in C# was not parsed correctly
  • Static local functions in C# were not parsed correctly
  • Project admin access for project creator was not transferred when changing the public ID of a project
  • Obsolete finding discussions in Gitlab merge requests were sometimes not resolved
  • Check for nested comments was running very long for JavaScript files with inline source maps
  • False positives for "Variable assigned to itself" check when using C# object initializers
  • In rare edge cases methods were incorrectly shown as untested even though they were covered after their last modification
  • 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 or yaml have to be allowed explicitly (e.g. JavaScript files, which are executable)

# Improvements

  • Added new default directives to the C/C++ analysis profiles (does not affect existing profiles)
  • Improved security against path traversal and DoS attacks

# Version 8.0.1

Download Teamscale v8.0.1 (ZIP)
May 18th, 2022

# Fixes

  • Backup import failed with "Unknown configuration item" when importing Java projects
  • Line numbers of SAP code inspector findings were wrong in class private or protected sections

# Version 8.0.0

Bug Fixes
  • 8.0.0 contains all fixes from previous versions released on and before April 26th, 2022
  • For brevity, only new features are included in the changelog
Download Teamscale v8.0.0 (ZIP)
April 26th, 2022

# Web UI

  • Issue perspective: stored issue queries on the right sidebar can now be filtered
  • Issue perspective now contains a link to the Test Gap perspective to quickly review test gaps for issues of the currently selected issue query
  • Issue perspective now provides a dialog to easily navigate to a specific issue
  • Commit Details view of an aggregated commit now includes the commit messages and revisions of the aggregated commits
  • Commit Details view now displays the upload timestamp of coverage upload commits
  • Architecture editor can now be set to only show incoming or outgoing dependencies
  • Test code in Metrics and Test Gap tables is now marked green
  • Delta perspective for test gaps now provides a partition selector
  • Method History view now has an additional tab showing the issues referenced in the commit history
  • Time travel now supports the input of revisions obtained via GitHub
  • Trends in dashboard widgets can now easily be removed via a button

# New Checks

  • "Avoid Jumbled Loop Variable Modifications" check (C++/C, C#, Java, JS/TS, PHP, Swift, Groovy, Objective C, Go)
  • "HttpClient instantiated in using statement" check (C#)
  • Updated Clangtidy support from version 10 to 13.01

# Issues and Requirements Tracing

  • Jira connections with identical settings are now transparently cached across project boundaries
  • Issue ids are now matched to the corresponding Teamscale issue regardless of casing
  • List of issues can now be exported with corresponding test gap data
  • RTC requirements tracing: links between work items can now be imported

# Testing

  • Support for testwise coverage execution units
  • Pareto ranking is now performed asynchronously on the server
  • Pareto ranking: the number of selected tests is now shown
  • Public API for getting a list of methods executed by a test case

# Code Collaboration Platforms

  • Voting on merge requests and annotating them with badges can now be configured independently from each other
  • Configuration of multiple GitHub organizations is now supported

# Reporting

  • Task Detail slide now supports macro expansion for code snippets
  • Test Gap Treemap slide now allows setting annotations for components

# IDE Integrations

  • Visual Studio: improved pre-commit selection dialog

# Administration

  • Instance comparison can now check for differences in TGA data
  • SAML login errors now contain additional information
  • Option "Use Teamscale's default crypto key" is now hidden if no other key is configured