# Changelog for Teamscale 7.8
Newer Release Available
Our current release is available here.
Release Announcement
Check out the Release Newsletter for Teamscale 7.8.
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
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 (opens new window)
Re-Analysis when Upgrading
- When updating from 7.8.x, drop-in.
- When updating from 7.7.x or earlier, a full re-analysis via backup is required.
# Version 7.8.8
# Fixes
- Check descriptions in the Analysis profile editor could appear hidden in the background
- Using
await
beforeforeach
statement in C# was not parsed correctly - Static local functions in C# were not parsed correctly
- Line numbers of SAP code inspector findings were wrong in class private or protected sections
- 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
oryaml
have to be allowed explicitly (e.g. JavaScript files, which are executable)
# Improvements
- Improved security against path traversal and DoS attacks
# Version 7.8.7
# Fixes
AssertionError
for unrecognizedforeach
macro in C++AssertionError
for ABAP when aSYNTAX-CHECK
argument was named like a keyword (e.g., "message")NullPointerException
in "Post-Operator in return statement" check- False positives for dead store analysis when using C# tuple syntax
- Pareto chart did not show ticks on the x-axis in some cases
- Error in
SwiftLintRunner
if project did not contain any Swift files 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.8.6
# Fixes
- TFS library error in
TfsContentUpdater
- False positive clone findings in C++ header files for re-declared virtual functions
- Pre-commit jobs led to exceptions in the scheduler during rollbacks
- Coverage path mapping was sometimes incorrect when multiple coverages referred to the same file name
- 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.8.5
# Fixes
- Upload dates of external uploads were incorrect when imported from backup
- Architecture analysis created many false positive dependencies for C# projects
- Quality goal settings were not considered for findings treemap in Findings List view
- C# parser error when using
default
operator - 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.8.4
# Fixes
IndexOutOfBoundsException
for "Duplicate Set Elements" check for empty set in SwiftIndexOutOfBoundsException
in "String interpolation argument number" check- False positives for commented out code in C# when using empty summary block or keywords in the comment (e.g.
object
) - Finding locations of commented out code findings were offset for classes with an
InitializeComponent
method - Wrong dependency was extracted in the C# architecture analysis when classes with the same full qualified names existed in multiple Visual Studio projects of which only one was visible
NullPointerException
in theTestCaseExtractionSynchronizer
when a test implementation was no longer knownOutOfMemoryError
inFindingsTracker
on large deltas- Group filter broke when filtering by groups containing a backslash
- False positives in "Check the display attributes of block names" check for HDL Coder library blocks
IndexOutOfBoundException
inSimulinkDimensionalityResolver
- 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.8.3
# Fixes
- False positives for "Avoid unused private methods" check in Java
- False positives for "Redundant parentheses" check in Python when returning a generator expression
- Visual Studio was frozen during pre-commit
- Visual Studio plug-in: Pre-commit was not offered for projects, solutions or solution folders
- 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.8.2
# Fixes
- Images on Image slide rendered poorly when exceeding the slide's height
- 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
- Improved documentation on how to install the Eclipse, IntelliJ, NetBeans, and Visual Studio plug-ins when offline
- The Gerrit repository connector now uses robot comments for Teamscale findings instead of regular comments
# Version 7.8.1
# Fixes
- Add baseline button in time picker dialog was shown when user did not have Edit Baselines permission
- 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.8.0
Bug Fixes
- 7.8.0 contains all fixes from previous versions released on and before March 15th, 2022
- For brevity, only new features are included in the changelog
# Web UI
- Check Explorer can now show descriptions of analysis profiles
- Test Metrics view: Test Implementations and Test Executions are now separated into their own tabs
- New function
codeLocation
for test query search - External Reports upload view now supports pagination
- Findings CSV export in the Findings perspective now includes whether a finding has been resolved or not
- Included clone alerts into merge request line comments
- Architecture Editor: Code Mappings of parent components are now respected in child components for newly created architecture models
- Added support for announcing events
# New Options
- Immutable macro definitions can now be added in the analysis profiles
- Enabled source-library connector options for Simulink projects
# New Checks
- Approximately 200 new checks available for Swift
- "Duplicate Set element" check for C/C++, Java, JS, Kotlin, Python, Swift
- Added Support for SonarLint for C#
- Added Support for SwiftLint
# Testing
- C# tests using the NUnit testing framework version 2 and 3 are now extracted from test code and shown in the Tests view of the Metrics perspective
- Upload of test execution reports is now supported for the testing framework NUnit versions 2 and 3
# IDE Integrations
- Visual Studio: Now supports blacklisting of false positive findings
# Administration
- Automatic daily backups at midnight are now active by default to prevent data loss
- New Teamscale instances now, by default, store backups in a "backup" folder in the working directory