Changelog for Teamscale 7.6
Newer Release Available
Our current release is available here.
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.
Changed Permissions when Using Docker Image (since Teamscale 6.3)
As of Teamscale 6.3, Teamscale is no longer executed as the root user in the Docker container, but as user teamscale
(UID=1000). Please make sure to either allow this user to access the mounted directories and files or add a user mapping to your docker-compose file, e.g. user: technical-user
, which refers to a user whose permissions should be mapped to teamscale
.
Java 11 Required (since Teamscale 6.2)
As of Teamscale 6.2, running the Teamscale server requires a Java Runtime Environment, Version 11 or later.
Changed Resolution of Configuration Files (since Teamscale 6.0)
- As of Teamscale 6.0, all configuration files are loaded using the same logic. In particular configuration files in the process working directory take precedence over ones in the Teamscale installation.
- Relative paths specified in configuration files will always be resolved to the working directory. The working directory usually equals the installation directory unless explicitly changed.
- Custom check JAR files can be deployed in a directory relative to the working directory and installation directory.
- Searching for a Teamscale configuration file
teamscale-config.properties
in the installation root directory. Use the fileteamscale.properties
in one of the config directories. - Searching for a license in the installation root directory, or a directory specified by the Java system property
teamscale.license.path
is no longer supported. Use the environment variableTEAMSCALE_CONFIG
to specify a separate configuration directory or pass the license using theTS_LICENSE
environment variable if you cannot place the license in one of the config directories. - The administrative service to read and write configuration files via the Web API (
config-files
) has been removed.
Re-Analysis when Upgrading
- When updating from 7.6.x, drop-in.
- When updating from 7.5.x or earlier, a full re-analysis via backup is required.
Version 7.6.18
Fixes
- 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.6.17
Fixes
- Polarion: Relationships between specification items were not updated reliably in specification item table and queries
- 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.6.16
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.6.15
Fixes
- 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.6.14
Fixes
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
Version 7.6.13
Fixes
- 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
Version 7.6.12
Fixes
- The C#
unsafe
keyword was treated as coverable - Computation of Pareto ranking was started as soon as the view was opened, potentially impacting performance
Version 7.6.11
Fixes
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 a troubleshooting section in the JavaScript Profiler how-to
Version 7.6.10
Fixes
- 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
Version 7.6.9
Fixes
- 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.6.8
Fixes
- 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
- Added support for Groovy 4 features
- Enhanced error reporting for S3 connector validation
Version 7.6.7
Fixes
- 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 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++
Version 7.6.6
Fixes
- 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.6.5
Fixes
- Interaction log did not contain error messages from code collaboration platforms
- Cross component clone detection did not update the clone data when the architecture was changed
- Issues search function
currentUser()
did not yield any results - False positives for "Incorrect JavaDoc Tags" check in Java for comments documenting records
- Wrong sibling locations for "All declarations should have the same function signature" check
- Some branches appeared multiple times in the branch chooser for some dashboards containing multiple projects
AssertionError
inExternalAnalysisResultsUpdate
for commits with copied or moved files- Findings that did not exist on the default branch were deleted when editing a task
- Test gap treemaps were displayed too small in some cases in the Issues or Merge Request detail views
- JUnit tests were not mapped correctly to test implementations when the report contained the signature of the test method
- ABAP chain statements with redundant colons were not parsed correctly
await foreach
expressions in C# were not parsed correctly- Polarion: The work item history was always retrieved for all fields, even when only some were relevant
- Polarion: History could not be retrieved for some work item types
- Code snippets were always considered to be on the default branch when being added to a task
- False positives for check "Object comparison with the same Object" when using XCTest assertions for Objective-C
Improvements
- Eclipse: Performance was slow when refreshing findings after a context switch
Version 7.6.4
Fixes
- False positives for "Each variable should be declared in a separate statement" check in Objective-C
- False positives for "Redundant parentheses" check in Python when return statement was a tuple with a single element
- False positives for "Bad assignments" check in Objective-C
- False positive for "Avoid using ternary operators" check in TypeScript
- False negatives in null pointer analysis
- Import of large number of Polarion work items failed
- Timeout and out-of-memory issues when showing spec item metric trend on dashboard
InvalidPathException
inDependencySynchronizer
on Windows when using star-based path mappings in tsconfig.json- Issues could not be opened from TGA treemap widgets
- Data values in rows of the Metrics table were not properly aligned to the right
- In the Files view, Quality Goal settings were not preserved when changing code file path
- Findings filter in the Findings view showed incorrect data when a baseline was selected
- C# records with parameter base type lists led to parser errors
- Dollar signs in Gosu string literals were not parsed correctly
- Java switch expressions were not correctly parsed leading to false positive findings
- Dataflow Analyses failed for tuple types as method parameters in C# due to parsing issues
- Visual Studio Plugin: Some requests to Teamscale failed due to incorrect URL handling
- IntelliJ plugin: Minimum supported version was Java 11 instead of 8
Improvements
- Improved performance of Spec item trend calculation
- Improved performance of synchronization of test metrics for code files in case of many test report uploads
Version 7.6.3
Fixes
- SAP connection status did not indicate shadow mode in the Repository Connectivity Status view
- Reloading the Reports view restored deleted comments
- Changing the name of an architecture was not possible if the saving initially failed due to a name clash
- Pylint finding descriptions were not correctly formatted
- "Field could be final" check threw an
IndexOutOfBoundsException
for empty statements in Java - False positives for "Print Python 3 incompatible" check when
print
was a member function - False positives for "Multiple statements in same line" check in Objective-C when the second statement was an empty lambda
- Parsing of multidimensional array parameters in C# did not work correctly
- Parsing of
for
statements in Go did not work correctly - Parsing of generic type declarations followed by an assignment or arrow operator in TypeScript did not work correctly
- Test coverage partition indicator showed "No test coverage in partition:" even when all partitions had test coverage
- Adding new slides in the Reports view was broken in some cases
- Typing in a callout in the Reports view was offsetting the page to the left
- Tolerated and false positive findings were not correctly transferred between Gerrit branches
- False positives for "Value assigned to variable ... is never read" check when a variable was assigned and read in the same statement
- False positives for the checks "Avoid usage of implicit int" and "A compatible declaration shall be visible with external linkage" for static anonymous structs
Version 7.6.2
Fixes
- Dashboard templates could not be overwritten
- False positives for "Field could be final" check for Java
- Path specific metrics could not be selected in the Metric Table widget without changing the threshold configuration manually
- Bitbucket: Warning icons missing for pull request annotations if Bitbucket chat plugin was not installed
- Report slide position was not persisted after drag and drop
- Java modules were not parsed correctly
- False positive for "Switch statements should have default case" check for Java
- Impacted Specification Items table in the Merge Request view was too wide for long specification messages or filenames
- Projects with failing connectors could not be imported from backup using the option "skipping project validation"
- ABAP: Issues with coverage recording were sometimes not detected
- AssertionError during export of ABAP code
Improvements
- Polarion connector now supports a start timestamp for the work item history
- Clarified description for "Interface comment missing" check
- Added documentation about handling project ids
Version 7.6.1
Fixes
- Long comments caused errors regarding overly long finding messages for "Avoid block style comments outside methods" check
- Inconsistent issue detection in commit messages when multiple issue connectors were used
- Visual Studio: Color schemes in Findings and Pre-Commit view were not working correctly
- Resource History view did not contain "Code review" filter
TestClassNamingConventionCheck
did not respect non-default naming patterns- Parsing Visual Basic code did not work correctly for string concatenations over multiple lines
- Incorrect parsing of Kotlin string/character literals containing the unicode literal
\u000a
(linefeed) - Visual Studio Extension did not work with Visual Studio 2017
- Compare view: Issues and specification items were not referenced in code comments when comparing two code snippets
- Findings Churn view broke Delta perspective if alerts were included
- Dependencies in POM file were incorrect for
eu.cqse.check
- Sorting findings in the Findings perspective did not work while the right sidebar was collapsed
NullPointerException
inSimulinkDataTypeResolverFromInput
in case of unconnected signal lines- Requirements Tracing: Specification item query produced a delay on every keystroke
Improvements
- Documentation: Fixed diagram captions in the security reference
Version 7.6.0
Web UI
- The Pareto Ranking functionality is now available in a separate view in the Test Gaps perspective
- Default settings for the Metric File Distribution widget are now based on the analysis profile of the project
- System Log view now contains the total amount of matches for a filter
- Instance Comparison view includes links to samples of differing entries
- Report view now contains a toggle to stretch images
- Requirements Tracing view supports querying the amount of
testReferences
andcodeReferences
- Text filter on Findings perspective can now match on the name of external tools
New Checks
- "Call of suspicious function module" check for ABAP
- "Avoid list being added to itself" check for Java
Analysis
- ABAP Taint Analysis now considers function calls to
FTP_CONNECT
- "Missing braces for block statements" check now has a configurable option to allow conditionals/loops without braces by defining custom keywords
Administration
- Repository connectivity status for SAP-ABAP projects is now indicated in the Projects view
- A single project can now use multiple requirement/issue connectors
- All databases can now be used as temporary storage systems (i.e. for the backup import)
- System health can now be found in the System Information view
- System health check now warns if the scheduler is paused or in maintenance mode