Changelog
9.0.0 - 10.05.2022
Added support for SonarQube 9.4. (@Fristi - #831)
8.9.0 - 16.12.2021
Added support for SonarQube 8.9 LTS. (@mwz - #782)
8.7.0 - 14.04.2021
Added support for SonarQube 8.7. (@mwz - #650)
8.6.0 - 16.12.2020
Added support for SonarQube 8.5. (@mwz - #558)
8.5.0 - 19.09.2020
- Added support for SonarQube 8.4. (@franbh - #515)
- Updated Scalastyle to
v1.5.0,
which adds a
ThrowChecker
rule that detects usage ofthrow
. (@mwz - #521) - Updated Scapegoat to v1.4.5. (@mwz - #522)
8.4.0 - 14.06.2020
- Added support for PR decoration with GitHub Enterprise.
(@jinwoo-k -
#434)
sonar-scala now accepts the following optional propertysonar.scala.pullrequest.github.apiurl
, which allows you to point it to your instance of GitHub Enterprise, e.g.https://github.mycompany.com/api/v3
. This property defaults to the public GitHub API -https://api.github.com
.
8.3.0 - 25.05.2020
- Added support for SonarQube 8.3. (@mwz - #459)
- Fixed aggregating measures for custom coverage metrics. (@mwz - #447)
- Updated Scapegoat to 1.4.4. (@mwz - #458)
8.2.0 - 31.03.2020
- Added support for SonarQube 8.2. (@mwz - #410)
- Updated Scapegoat to
v1.4.2, which
brings two new inspections:
VariableShadowing
andRepeatedIfElseBody
. (@mwz - #408) - Added descriptions of Scapegoat rules into the Scapegoat rules repository. (@mwz - #408)
8.1.0 - 02.02.2020
Updated Scalastyle to v1.4.0, which brings the following changes (@mwz - #387):
- Added regex param to
HeaderMatchesChecker
rule in the default config. - Added
CurliesImportChecker
rule, which allows only for single imports (no renaming and no hiding imports are allowed in order to minimize merge errors in import declarations). This rule is included in Scalastyle and Scalastyle+Scapegoat quality profiles. PackageNamesChecker
was updated to allow only lowercase letters in package names.- Made Scalastyle rule descriptions more consistent. (@mwz - #383)
8.0.0 - 26.01.2020
- Added support for SonarQube 8.1. (#340 - @mwz)
- Added support for Scala 2.13 sources. The
sonar.scala.version
property defaults to2.13
if not set explicitly by the user. (#355 - @mwz) - Updated Scapegoat rules from 1.3.9 to
1.4.1.
(#355 -
@mwz)
- Rules
TraversableHead
andTraversableLast
were collapsed intoUnsafeTraversableMethods
. - Rules
UnnecessaryToInt
andUnnecessaryToString
were collapsed intoUnnecessaryConversion
.
- Rules
7.9.0 LTS - 11.01.2020
Updated Scalastyle to v1.1.0, which brings the following changes:
New Scalastyle rules (#342 - @mwz):
- New
ForLoopChecker
rule - omit braces if you have ayield
clause, otherwise, surround the contents with curly-braces, even if the contents are only a single line. - New
WhileBraceChecker
rule - it's recommended to never omit braces when usingwhile
. - New
CaseBraceChecker
rule - braces aren't required incase
clauses.
Scalastyle rule changes:
HeaderMatchesChecker
has a new parameterregex
to indicate whether to treat the header string as a regular expression; defaults tofalse
.MethodLengthChecker
has a new parameterignoreEmpty
to exclude empty lines from being counted; defaults tofalse
.ForBraceChecker
has a new parametersingleLineAllowed
to indicate whether a one-linefor
expressions with parentheses are allowed; defaults tofalse
.NonASCIICharacterChecker
has a new parameterallowStringLiterals
to indicate whether non-ASCII scripts in string literals should be allowed; defaults tofalse
.
All of the above rules are activated with the default parameter values in the
Scalastyle
, Scalastyle+Scapegoat
and the Recommended by sonar-scala
quality profiles.
7.8.0 LTS - 23.12.2019
- Implemented a new mode for pull request decoration. In this mode, sonar-scala
will review pull requests on Github and make comments on new issues directly
in the pull request instead of reporting them to SonarQube.
To read more about this feature, see the documentation here. (#196, #316, #318, #319, #324 - @mwz)
7.7.0 LTS - 11.10.2019
- Added support for SonarQube 7.9 LTS. (#260 - @mwz)
7.6.0 - 30.06.2019
- Added support for SonarQube 7.8. (#234 - @mwz)
- Updated Scapegoat to
1.3.9, which
introduced a new inspection -
PreferMapEmpty
. (#227 - @mwz)
7.5.0 - 25.03.2019
- Added support for SonarQube 7.7. (#182 - @mwz)
7.4.0 - 11.03.2019
- Added support for SonarQube 7.6. (#152 - @BalmungSan)
- Added an optional
sonar.scala.scoverage.disable
property, which can be used to disable the Scoverage sensor (defaults tofalse
). (#169 - @BalmungSan)
6.8.0 LTS - 03.03.2019
- Backported features and bug fixes from the 7.x series - new unit test metrics such as unit test count, duration of each test and the number of skipped and failed tests - see the release notes from 7.3.0 and 7.3.1 releases for more details. (#164 - @mwz)
7.3.1 - 27.01.2019
7.3.0 - 30.12.2018
- Implemented a new sensor which saves unit test metrics such as unit test
count, duration of each test and the number of skipped and failed tests. To
use the new sensor, set the
sonar.tests
property which should point to directories containing tests (usuallysrc/test/scala
) and make sure you run your unit tests before you trigger sonar-scanner analysis. That's all you need to do in sbt unless you've changed the default location where sbt saves JUnit XML reports - then you'll also need to set thesonar.junit.reportPaths
property (which defaults totarget/test-reports
). For projects using Gradle, setting both properties is necessary to make use of the sensor (Gradle outputs those inbuild/test-results/test
), and Maven additionally requires the Surefire plugin to be installed. Please refer to the sample projects for example configuration for each build tool. (#143 - @mwz) - Fixed incorrect log messages about missing
sonar.scala.version
property. (#139 - @mwz)
6.7.0 LTS - 09.12.2018
- Backported features from the 7.x series - new
Recommended by sonar-scala
quality profile and cleaned up Scapegoat rule repository, see the notes from 7.2.0 release for more details. (#136 - @mwz)
7.2.0 - 03.12.2018
- Added a new quality profile
Recommended by sonar-scala
, which is a combination of Scalastyle and Scapegoat rules. We recommend using this profile as it excludes any duplicate rules and contains custom instances of Scalastyle templates set up in accordance with the current style guides recommended by the community. (#130 - @mwz) - Cleaned up Scapegoat rule repository and quality profiles by removing any Scapegoat rules which are no longer active in the upstream project. (#132 - @mwz)
7.1.0 - 19.11.2018
- Added support for SonarQube 7.4. (#127 - @mwz)
7.0.0 - 08.10.2018
Added support for SonarQube 7.3. The current
6.x
series targeting SonarQube 6.7 LTS will be still maintained and will follow the SonarQube LTS lifecycle. (#120 - @mwz)Removed the following:
Bumped up the default value of the
sonar.scala.version
property to2.12
. (#120 - @mwz)
6.6.0 LTS - 30.09.2018
- Refactored Scalastyle module and introduced new Scalastyle rules repository
along with a new quality profile, which now in addition to the latest
Scalastyle rules also consists of rule templates which are activated by
default. The existing Scalastyle quality profile and rule registry have been
deprecated and will be removed in the next major version of the plugin (7.x).
The new module also exposes the following optional property
sonar.scala.scalastyle.disable
, which allows you to disable the Scalastyle sensor. (#35 - @mwz) - New
Scalastyle+Scapegoat
quality profile, which includes all of the default rules from Scalastyle and Scapegoat quality profiles. (#112 - @BalmungSan) - Bumped Scapegoat up to
1.3.7
, which introduces a new inspection (UnsafeStringContains) and other various fixes and improvements - see the diff for more details. (#100 - @mwz) - Scapegoat sensor now also works with absolute file paths in the Scapegoat report. (#116 - @mwz)
6.5.1 LTS - 11.08.2018
- This release fixes an issue with Scapegoat sensor using a single report for each module in multi-module projects. (#96 - @mwz)
6.5.0 LTS - 09.07.2018
Introduced support for Scapegoat linter. This version of the plugin ships with a Scapegoat rule repository, quality profile as well as a new sensor, which reads the xml report generated by Scapegoat and submits Scapegoat issues to SonarQube. To use this feature, you need to set up Scapegoat in your project and make sure you generate a Scapegoat report before running
sonar-scanner
, see sbt-scapegoat for SBT integration. This feature exposes the following optional properties:sonar.scala.scapegoat.reportPath
- relative path to the scapegoat report (defaults totarget/scala-${sonar.scala.version}/scapegoat-report/scapegoat.xml
) andsonar.scala.scapegoat.disable
- which allows you to disable the Scapegoat sensor from being executed on your sources (defaults tofalse
)
A massive thanks to @BalmungSan for implementing this feature! (#8 - @BalmungSan, @mwz)
6.4.0 LTS - 23.05.2018
- Improved logging in the Scoverage sensor. (#61 - @BalmungSan)
- Fixed Scoverage issues with multi-module Gradle projects. Please see the examples for a reference on how to configure Gradle projects and how to execute SonarQube analysis. (#63 - @mwz)
6.3.0 LTS - 12.05.2018
- Use semantic versioning scheme to parse the
sonar.scala.version
property. The patch version is now ignored and2.11
and2.12
are valid version numbers. In case of a missing value or an incorrect version the property defaults to2.11.0
. (#53 - @BalmungSan) - Fixed an issue which affected Gradle users and caused the sonar sources prefix
sonar.sources
to be appended twice to filenames in the Scoverage report. (#56 - @mwz)
6.2.0 LTS - 28.04.2018
- Added support for multiple source locations configured by the
sonar.sources
property. As per SonarQube documentation, the paths should be separated by a comma. Additionally, the paths can now be absolute, which allows sonar-scala to work with SonarQube Maven plugin. (#52 - @mwz) - The Scoverage report path property
sonar.scoverage.reportPath
was deprecated and will be removed in the next major version. Please usesonar.scala.scoverage.reportPath
instead. (#46 - @BalmungSan)
6.1.0 LTS - 28.03.2018
- The Scoverage sensor was rewritten from scratch; introduced a new branch coverage metric. (#34 - @BalmungSan)
- Addressed coverage measure warnings reported by sonar-scanner during analysis. (#18 - @BalmungSan)
- Added a new property
sonar.scala.version
to specify Scala version. (#2 - @ElfoLiNk)