# Changelog for Teamscale 8.2

Newer Release Available

Our current release is available here.

Release Announcement

Check out the Release Newsletter for Teamscale 8.2.

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).

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

# Version 8.2.16

Security Improvements

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

Download Teamscale v8.2.16 (ZIP)
November 19th, 2022

# Fixes

  • Updated Apache Mina SSHD dependencies to fix CVE-2022-45047 (opens new window)
  • Temporary connection loss could result in a red error page without user interaction
  • Changing a dashboard widget and then renaming it, resulted in a loss of all changes
  • Queries for specification items in the Requirements perspective could fail under rare circumstances
  • False-positives for "Null pointer dereference" check

# Version 8.2.15

Download Teamscale v8.2.15 (ZIP)
November 15th, 2022

# Fixes

  • Baselines could be deleted if they were renamed multiple times
  • Simulink: Blocks of type "Step" stored by newer Matlab version were shown without icons
  • Simulink: Loading dictionaries failed for buses
  • Simulink: Signal label propagation in SimulinkOutputDataTypeExtractionStep could end up in an infinite loop for some cases
  • Swiftlint: Findings were not removed for some deleted files
  • Null pointer analysis did not recognize Objects.nonNull
  • Projects could be stuck in "reanalyzing" state when connectors could not be validated
  • GitHub Webhooks and login did not work if the GitHub instance-URL did not end with a slash
  • Initial import commits were incorrectly considered as unlinked changes in Test Gap Analysis
  • Non-date start and end revisions were displayed incorrectly in Project Configuration view
  • Gitlab merge requests sometimes failed to update when Test Gap Analysis was turned on

# Improvements

  • Bitbucket Server: Added option to ignore webhooks initiated by the user itself to reduce server load

# Version 8.2.14

Download Teamscale v8.2.14 (ZIP)
November 8th, 2022

# Fixes

  • Commit Detail view took very long to load in some cases
  • Links in "Test Gap" CSV export did not scroll to the method locations
  • "Test Gap" CSV export did not consider Hide unchanged methods parameter
  • E-Mail notifications could no longer be sent
  • Kotlin parser did not support value modifier for classes
  • Snapshots in the Instance Comparison view, created by other users, were not visible
  • LDAP groups with more than 1.500 users could not be synced

# Improvements

  • Improved performance for coverage report parsing
  • Improved performance for LCOV parser

# Version 8.2.13

Download Teamscale v8.2.13 (ZIP)
October 31st, 2022

# Fixes

  • Trivial getter/setter methods in ABAP where not correctly filtered from the Test Gap Analysis
  • Commit Detail view took very long to load in some cases
  • False positive for "Missing interface comment" check for Kotlin
  • False positive for "Unused variable or parameter" check for C# when using type patterns
  • Findings update was slow for ABAP objects in Eclipse plugin
  • Edit buttons were cut off in the External Findings view for findings with long names
  • NullPointerException in PolarionSynchronizer

# Improvements

  • Support for "structure only" architectures
  • Permalink button in Metrics Table view is now easier to spot

# Version 8.2.12

Download Teamscale v8.2.12 (ZIP)
October 25th, 2022

# Fixes

  • Windows UNC paths caused IllegalArgumentException when using multi-version file system connectors
  • NullPointerException in NotificationTrigger for commits with no affected files
  • Dashboards with multiple projects showed finished analysis indicator if the selected branch did not exist for the respective projects
  • GitLab threads, that were resolved by a user, were marked as "unresolved" if the finding was still in the code

# Improvements

  • ABAP parser exits gracefully if the parsed code is invalid
  • Support 0x% specifier in "Log macro formatting string correctness" check
  • Service to get a list of active committers for a set of primary project IDs

# Version 8.2.11

Security Improvements

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

Download Teamscale v8.2.11 (ZIP)
October 20th, 2022

# Fixes

  • False positives in "Logical block performs numerical operation with non-boolean data type as input" check for Simulink

# Improvements

  • Updated Apache Commons Text dependency to version 1.10

# Version 8.2.10

Security Improvements

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

Download Teamscale v8.2.10 (ZIP)
October 18th, 2022

# Fixes

  • Parsing JSX did not work correctly when render properties contained comments
  • False positives in "Avoid usage of implicit int" check for C/C++
  • Certain triggers failed when Teamscale was retrieving a new commit while executing them
  • Issues view links to affected files erroneously activated the timetravel
  • Test Gap Treemap slide reloaded the treemap graphic even when unrelated fields were modified
  • Issues view showed precommit changes in the Commits summary
  • "Throw of generic exception in CS" check had default enablement YELLOW instead of RED
  • False positives in "Calling equals()/toString() on array" check
  • Switch-label probes were not supported in Bullseye coverage report parser
  • Some treemaps were cut off at the bottom

# Improvements

  • Login with GitHub now requires that the user is a member of the GitHub organization

# Version 8.2.9

Download Teamscale v8.2.9 (ZIP)
October 11th, 2022

# Fixes

  • False positives in "Entry versus propagation for signal labels" check for Simulink
  • False positives in "Equality check with boolean literal" check for C# in case of nullable booleans
  • False positives in "Control flow depending on system variable" check for ABAP
  • Double-quoted string literals in Matlab were not recognised
  • Adjustment of SAP Code Inspector findings produced wrong warnings in the worker log
  • Clone finding description section showed file path instead of actual description
  • Implicit members in Swift were parsed incorrectly leading to wrongly detected long methods
  • Artifact store connections logged excessive warnings
  • Simulink Annotation block position was computed incorrectly for mdl files
  • False positives in "Statements in Conditional Expression are equal" check for Objective-C due to code comments
  • Internal ESLint configuration did not detect built-in ES6 types
  • The Open Method link in TGA Treemaps sometimes led to the Compare tab instead of the Method history tab
  • NullPointerException in TestMetricsAndContentSynchronizer

# Version 8.2.8

Download Teamscale v8.2.8 (ZIP)
October 4th, 2022

# Fixes

  • Parsing JSX files did not work correctly with render properties
  • In some cases, empty fields in connector configurations were automatically overwritten with their default values when editing them
  • False positives for "Avoid usage of implicit int" check in C/C++
  • False positives for "Missing header protection" check in C/C++
  • Description of the "Cross-client database access" check in ABAP contained a broken weblink
  • Tables in Tests by Spec Item and Spec Items by Test views were not sortable
  • Exclusion rules in Simulink Model Advisor reports were parsed as findings

# Version 8.2.7

Security Improvements

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

Download Teamscale v8.2.7 (ZIP)
September 27th, 2022

# Fixes

  • Path prefix parameter for JaCoCo coverage uploads was not working correctly
  • Large numeric metrics were displayed as NaN in metrics table if abbreviation was deactivated
  • False-positives for check "Method and class field have the same name" check for explicit interface implementation in C#
  • False positives for "Allow only forward jumps" check in C when using C++ reserved keywords as destination label
  • Typescript call signatures were not parsed
  • IllegalArgumentException in "Duplicate Set Elements" check
  • Missing files in analysis in cases were a fork overlapped with an already existing branch from a different repository
  • Reports: No loading indicator was displayed when switching or modifying slides
  • Mapping between issues and findings did not work correctly when analysis granularity was enabled
  • PolarionSynchronizer could fail due to rare race-condition
  • Code References and Test References columns were always empty in the Requirements Tracing view
  • Specification item code references were bound to low-level code entities (e.g. local variable, statement)
  • Polarion: Specification items in recycle bin were not deleted from Teamscale
  • Reports: Missing error message if the finding of a findings detail slide could not be found

# Improvements

  • Improved error message in case the TreeMapWidget could not be displayed
  • Improved error message in Delta and _ Merge Request_ view when selected branch could not be found
  • Paginated external uploads table is now easier to navigate through
  • Security: Input fields no longer send data to third parties for spell checking (Google/Microsoft)

# Version 8.2.6

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

# Fixes

  • SonarQube Quality Profile Import: List of unsupported checks was incorrect
  • NullPointerException in "Null pointer dereference" check for nameof() operator in C#
  • IllegalStateException for repeated Subcondition check in C#
  • CheckException in Missing check of SY-SUBRC return code after authority check when assigning strings repesenting a number as exception return code in ABAP
  • False positives for "Equality check with boolean literal" check when using nullable bool type in C#
  • False positives for "Missing Interface Comment" check for multiline comments in Python
  • Automated storage snapshots could not complete under certain circumstances on Windows
  • False positives for "Exception thrown in finally block" check in Objective-C due to missing preprocessor support
  • False positives for "Simulink signal appearance" check in Simulink
  • Eclipse plugin required SAP System ID for ABAP projects to be set in project options
  • Missing clean up of Pre-Commit 3.0 branches
  • Missing connector votes on some GitLab merge requests
  • Findings Detail view did not directly display the affected block for large Simulink models
  • 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

  • Better error message when importing a project with a broken TFS connector
  • Calculating unlinked changes no longer blocks loading of the Test Gaps > Issues view
  • 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.2.5

Security Improvements

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

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

# Fixes

  • False positives for "Return in finally block" check in Objective-C when using preprocessor macros
  • "Unable to determine if clone sibling changed" error on language change of a C/C++ or Objective-C header file
  • Backspace in timetravel "Edit date and time" dialog closed the dialog in older browsers
  • False negatives for "Check for Usage of Gain Blocks" check in Simulink caused by wrong option-parsing from model workspace and data dictionary
  • SimulinkUseOfSwitchBlockCheck did not consider data dictionaries for its criteria port
  • 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

# Improvements


# Version 8.2.4

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

# Fixes

  • Issues Metrics view showed an error if a single query was invalid
  • SvnChangeRetriever got stuck if the connection went stale
  • Links in findings descriptions did not open a new tab
  • C/C++/Objective-C preprocessing did not work correctly for variadic function macros that used ## __VA_ARGS__ or __VA_ARGS__ before other macro parameters
  • 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

# Improvements

  • Event announcements can now be deleted directly
  • Eclipse/IntelliJ/NetBeans plugin: Clearer presentation of pre-commit findings
  • Artifact connectors: Revisions can now be excluded if certain ZIP files are not present

# Version 8.2.3

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

# Fixes

  • Simulink: Annotations were rendered on top, hiding blocks that were inside its rectangle
  • Import of Teamscale v8.0.13 backup into v8.2.2 failed due to already existing analysis group
  • Editing a project overwrote empty options with their default values
  • False positives for "Nested comment" analysis for Java when comments contained certain URLs
  • Return type annotations for PHP functions were not parsed correctly
  • C++: static_assert compile-time assertions were parsed as constructor definitions
  • External uploads were only integrated with a 10 minute delay after incremental backup import
  • "Default branch not yet set" error on every page if the first project (alphabetically) had validation errors during import
  • Test Gap treemaps showed too many files for architecture paths if the selected folder was a prefix of a sibling folder
  • Precommit: Per-user call-rate limiting included calls that failed because of "too many files"
  • NullPointerException in DataflowAnalysisSynchronizer concerning DivisionByZeroAnalysis for C#
  • 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.2.2

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

# Fixes

  • ABAP connector did not poll for code updates when instance was in shadow mode
  • Code selection context menu was not correctly placed in Safari
  • Project status was not immediately updated in the Projects view after clicking Save and re-analyze
  • Red error page when project selected in the UI was being recreated
  • Commit for creating a code review finding showed wrong additional affected file
  • Internal and external CppCheck integration had the same displayed name
  • Projects and analysis profiles were not sorted alphanumerically
  • The JVM flag for disabling automated web hook creation was not working
  • External uploads indicated misleading "changed" or "deleted" files in repository logs
  • 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

# Improvements

  • Creation of review findings for empty lines is now prevented
  • Improved description of "No use of task handler functions" check in ABAP
  • Improved error handling when attempting to define an external analysis group with a name of an existing internal analysis group

# Version 8.2.1

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

# Fixes

  • Line coverage metric was not calculated correctly
  • NullPointerException in ArtifactoryContentUpdater in case of concurrent modification of stored artifacts
  • Redundant "Teamscale Info" header in Jira issue annotations
  • 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.2.0

Invalid line coverage metrics in version 8.2.0

Teamscale 8.2.0 contains a bug that leads to Teamscale not calculating the coverable lines for many files (namely, it will only consider the first 10 files of each commit). This leads to invalid line coverage metrics, which in turn can have unexpected consequences like missing files in the arbitrary treemaps. Due to this, we decided to take version 8.2.0 offline.

Version 8.2.1 (due on 16th August, 2022) will contain a fix for this behavior. If you already installed version 8.2.0, the fix will only work if the affected projects are reanalyzed.

Bug Fixes
  • 8.2.0 contains all fixes from previous versions released on and before August 9th, 2022
  • For brevity, only new features are included in the changelog

# Major Features

  • ABAPLint and its dependencies are now shipped/bundled in Teamscale
  • ABAPLint analyses use the ABAP version of SAP systems
  • Include **.abap_ddic files and exclude generated interfaces in ABAP analysis profile by default
  • Test-case extraction for function-based and class-based unit tests from the MathWorks testing frameworks
  • Support for parsing portable .NET PDB files
  • Support for parameters field in Testwise Coverage V2
  • More detailed finding messages and properties for checks from jQAssistant

# Web UI

  • Configuration wizard for the Teamscale Upload tool
  • Check Explorer displays options for quality indicators and groups of analysis profiles
  • Unified and improved searching feature, including search in treemaps and a new Advanced code search view
  • Ctrl + Enter hot key to accept rationale for tolerations and false positives dialog
  • Test Gap information now available within Pareto view

# New Checks

  • Cross-language check that detects the potential masking of exceptions thrown from finally blocks
  • Cross-language check that detects the potential discarding of exceptions when returning from finally blocks.
  • Categorized 42 new SonarLint checks

# Administration

  • Monitoring of Teamscale threads through navigable thread titles
  • Filtering of services on API Reference page
  • Instance comparison detects changes in project configurations
  • Documented standardized default directory layout for artifact storage schemas (S3/Artifactory)