Changelog for Teamscale 8.4
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.
- Breaking: Teamscale is no longer executed using
nohup
on non-Docker Linux installations. Ifnohup
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
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).
Teamscale Integration for IntelliJ now requires the corresponding server to be at least Teamscale 8.3
If you cannot upgrade the server, please use version 8.3.x of the Teamscale Integration for IntelliJ.
Older versions are available from the Jetbrains Plugin Marketplace
Re-Analysis when Upgrading
- When updating from 8.4.x, drop-in.
- When updating from 8.3.x or earlier, a full re-analysis via backup is required.
Version 8.4.19
Security Improvements
This version contains security improvements. If possible, please update to at least this version.
Fixes
- Security: Authenticated Teamscale administrators, under certain circumstances, were able to execute code on Teamscale’s host system CWE-78
Version 8.4.18
Fixes
- In some cases report slides were not displayed correctly
- Some titles of MISRA guidelines were outdated
Version 8.4.17
Fixes
- Rate limiting problems with Bitbucket Cloud
- Interaction Log did not include
INFO
messages
Improvements
- Improved Azure DevOps and Jira connector speed
- First column in Reports list view now scales better with window size
Version 8.4.16
Fixes
- Test Selection view hid filter after submitting a query
JGitInternalException
when an external upload to a project with a GitLab/Bitbucket connector specified a commit hash unknown to Teamscale- Removed unnecessary scrollbar in Test Gap Treemap widget
Improvements
- Improved finding description of "Long File" check
Version 8.4.15
Fixes
- Architecture diagram failed to render after collapsing components
- Simulink: Root Inport and Outports were not recognized correctly
- External findings were not deleted after uploading reports without them
- A lot of unused coverage partitions in Teamscale after coverage export from SAP system
Improvements
- Improved performance of updating process of Bitbucket Merge Requests
- Improved finding description for "Non-literal
LIKE
withoutESCAPE
in aWHERE
clause" check for ABAP - Teamscale QTCreator Integration Plugin now supports QTCreator 9
Version 8.4.14
Fixes
- Architecture edit button was always visible, even without edit permissions
- Voting on Bitbucket Cloud merge requests did not work in some cases
- Artifactory content was no longer imported in rare cases
JiraIssueSynchronizer
could get stuck indefinitely in very rare cases- False positives for "Comments should not contain nested comments" check when having trailing slash in Java block comments
- False positives for "Null pointer dereference" check for C# when conditions contained multiple null checks
Improvements
- Improved findings descriptions for "Test for NaN correctly" and "Method returns null but return type is Optional" checks
Version 8.4.13
Fixes
- Teamscale crashed when loading a custom check JAR failed
- Outdated plugin user data in Teamscale was not cleaned up properly
- Accessing the Activity perspective resulted in expensive API calls to code collaboration platforms
- Missing whitespaces for some comments on merge request voting statuses
- System Information view broke when showing active users
- Top-level
const
andvar
statements in Go were considered coverable - Warning for "too many inline comments" was added for BitBucket merge request even if code insights were used
- Commit for creating a code review finding showed too many affected files
- IntelliJ Plugin: Findings were fetched for files which were not open in the editor
- Eclipse Plugin: ABAPLint findings disappeared from the editor after a few seconds
Improvements
- Support for BitBucker Server versions before v5.15
Version 8.4.12
Fixes
- Architecture Editor: Policy create mode could sometimes not be deselected
- Method coverage was shown as over 100% in some cases when multiple line coverage metric groups were configured
Improvements
- Improved performance for general coverage report parsing
- Improved default layout and scrollability for declaration of accessibility web page
Version 8.4.11
Fixes
- False positives for "Types shall be explicitly specified" check for C/C++
- Findings Detail view: Different rules from the same guideline covered by one check were shown in one line
Improvements
- Improved description for "Anonymized code download" feature in Code view for potential caveats
- Improved findings description for "Constructor Call Without Encoding" check
Version 8.4.10
Fixes
- Adding a trailing slash in the GitHub repository server URL caused a reanalysis of the project
Improvements
- Improved documentation on reanalysis
Version 8.4.9
Fixes
- False positives for "Methods should not be defined in a header file" check for C++
- Merge requests were synchronized too often after rollbacks
- Line coverage values close to 100% were erroneously rounded up
NullPointerException
inRepositoryContentUpdaterUtils
leading to analysis being stuck
Version 8.4.8
Fixes
- False positives for multiline URLs in comment analysis
- Issue search view was broken
- Naming convention analysis for Simulink did not correctly analyze name of in-/outports of bus elements
- Intellij Plugin: Renaming of a file did not create a precommit
- Copying to clipboard failed in insecure contexts
- Snapshot backups for RocksDB storage backend did not work
Improvements
- Improved documentation on licensing model
Version 8.4.7
Fixes
- Merge Requests view was broken in some cases
- List of parsing errors was not expandable in Code view
- Proxy settings using wildcards could break outgoing HTTP connections
- Navigating in
-issues-
and-spec-items-
paths added duplicate entries in the path selector when multiple queries had the same name - False positives for "Use of enclosing braces, partial array initialization, multiple initialization of array elements" check in C/C++ when using nested structs with trailing commas
Version 8.4.6
Fixes
- Importing more than 20000 work items from TFS/Azure DevOps failed
- Committer counting did not resolve
<Lastname>, <Firstname>
committer names to corresponding users - Importing analysis profile with existing name silently overrode the old one
- False positives for "Multiple initializations of array element" check in C/C++ when using enum items as array-index designators
- IntelliJ Plugin: "Consult the documentation" link shown during settings migration was unavailable when indexing
- IntelliJ Plugin crashed when old configuration files were misconfigured
- "Add all findings" button in Code view sometimes opened the selected task in the current browser tab
- Eclipse/IntelliJ/NetBeans Plugin: Get Key button opened wrong web page when server URL included a port
- Some HTTP clients did not respect JVM proxy settings
- Annotation of merge requests failed on Bitbucket Server instances older than 5.1.5
- Code review findings could not be resolved after referred file was changed
ArrayIndexOutOfBoundsException
in the ABAP preprocessor while preprocessingFunction
callArrayIndexOutOfBoundsException
caused by storage issues during Teamscale shutdown- False positives for "Missing braces for block statements" check when using C++ standard attributes
[[likely]]
and[[unlikely]]
MergeRequestSynchronizer
was executed for every rollback, leading to poor performance in some cases- Dashboards view sometimes broke with the error "Element with ID main does not exist"
- Coverage information was missing in case of out-of-order external uploads
Improvements
- Updated minimum required version of NodeJS for Abaplint in the documentation
- Improved error handling in case
ESLintFindingSynchronizer
fails due to missing files
Version 8.4.5
Fixes
- IntelliJ Plugin: Context menu in editor gutter was not shown for lines containing multiple findings
- IntelliJ Plugin: Finding messages were not rendered using markdown
- NetBeans Plugin crashed with a
NullPointerException
- Backup view did not display warning for missing license
IndexOutOfBoundsException
in "Statements in Conditional Expression are equal" check for C/C++- Findings that were reintroduced were not tracked correctly
- Annotation edit popups on Test Gap Treemap (TGA) slide stayed open when switching slides
- Treemap tooltips sometimes went out of browser window bounds
- Collecting SAP coverage from manual tests failed when one referred project did not exist
Improvements
- Improved documentation regarding test code path patterns
Version 8.4.4
Fixes
- False positives in dead store analysis for C# when lambda function was provided as a parameter
- Malformed legacy settings crashed the IntelliJ Plugin
- Test Coverage Tools documentation contained a broken link
- Eclipse Plugin: Upload Projects for Pre-Commit Analysis action sometimes disappeared from the main menu
- Code search did not consider text filters
- Date display for false positives and tolerated findings in findings list showed "Invalid Date"
- Anonymous blocks on top level in C/C++ could not be parsed
- False positives for "Every line starting with '#' has to be a valid preprocessing directive" check in C files with Doxygen
- False positives for "Check model appearance settings", "Restriction for inport and outport names" and "Port block name visibility" checks in the context of Simulink bus element in/out ports
- Synchronizing LDAP groups with more than 1.500 users failed
- Back button did not work in the Dashboards view
- SAP system committers were not excluded from active committers
- Users were not resolved via committer name "Lastname Firstname"
- Callouts were not clickable after copying a report
PolarionSynchronizer
was slow for large number of documents and work items- Voting status of merge requests were displayed as "Skipped" if Teamscale only commented but did not vote
Improvements
- Teamscale understands now external reports produced with help of Pylint, up to version 2.16. This update introduces ca. 80 new Pylint checks, including possible bugs and security-relevant checks.
- Display names were unified in the list of active committers
Version 8.4.3
Security Improvements
This version contains security improvements. If possible, please update to at least this version.
Fixes
- Badge for merged findings was displayed with incorrect colors
- Missing findings for the Java comment analysis
- ABAP: Repair numbers were not considered for "ABAP modification" check
- Incorrect parsing of coverable lines in Cobertura report
- IntelliJ plugin: Creation of many "Loading findings" tasks on branch change
- Qt Creator plugin: Known findings were incorrectly flagged as new during precommit analysis
- Creation of external metrics required installation of .NET
- Pre-Commit showed findings in excluded files
- Updated Apache Mina SSHD dependencies to fix CVE-2022-45047
- 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
Improvements
- Improved performance for
JiraIssueUpdatePostAnalysisTrigger
Version 8.4.2
Fixes
- Metric Value widgets were broken for issue paths
- Precommit did not consider "Prepend repository identifier" option in project connectors
- Git project validation was broken for Windows paths
- Some Simulink models could not be shown due to
info.labelOnBlock.text is undefined
error - False positive for JavaScript function naming conventions
- Path prefix option was not respected for JaCoCo coverage report uploads
- JavaScript parser did not support TypeScript object types in the parameters of lambda expressions
- jQAssistant finding messages were not well-formatted
- Processing of ABAP files was slow in some cases
- Eclipse plugin: Assessments were not shown in the sidebar tooltip
- 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
- Improved documentation on performing instance updates
Version 8.4.1
Security Improvements
This version contains security improvements. If possible, please update to at least this version.
Fixes
- ABAP:
StorageException
on Windows when importing data with very long paths - Security: Updated OpenSSL in docker image to mitigate CVE-2022-3602 and CVE-2022-3786
- System health warning "Memory assigned to JVM (-Xmx) exceeds available RAM" was shown although enough RAM was available
- 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
- UI improvements for test selection based on risks
- Improved performance for general coverage report parsing and LCOV in particular
Version 8.4.0
Bug Fixes
- 8.4.0 contains all fixes from previous versions released on and before November 1st, 2022
- For brevity, only new features are included in the changelog
Major Features
- SAML Group synchronization during login
- Color-blind mode for Test Gap Analysis treemaps and trends
- Automatic proposal of test selections based on risks
- Time budget definition for test selections with the Test Impact Analysis API
Web UI
- Pause and unpause analysis for all projects
- Check Explorer now linkable based on selected programming languages and tools
- Horizontal scrolling in Report Code slides
- Pareto Ranking CSV export now also contains the duration of each test
- Pareto Ranking now shows the total progress of the computation
- Already viewed findings are now marked as such in the Findings view
- Reports to be used as templates have their end dates as new start dates
- List with parsing issues in the Code view now show links to the appropriate lines
- "Recent branches" in branch chooser now also contains branches the current user recently committed to
- Visibility of columns is configurable in the Findings view
- Test Gap Treemaps can show the uploads it is considering
- Feedback can now be provided for Teamscale docs
- New link to "Freshdesk Support Portal" in the help menu
New Checks
- Kotlin support for
Return in finally block
check - Cross-language check for nonsensical binary operations for C#, C/C++, Java, Typescript, Python and Kotlin
- Detection of throwing of generic exceptions such as
RuntimeException
,Exception
, orError
- Analysis of ABAP standard objects code modifications
IDE Integrations
- Pre-commit view of Eclipse plugin now shows Category/Group/Lines columns
Administration
- Sonarlint checks executed by Teamscale are now configurable
- SVNConnector: Local paths without
file://
are now allowed - Better statistics about usage of different Teamscale Integrations