Currently, the documentation of SonarQube shows the latest version of the scanners, at the time of SonarQube's release. A few weeks/months after a release, this information may be outdated and new SonarQube users don't have an easy way to know if a new scanner is available, what changes this new version brings, and where to download it.
As a SonarQube user, I expect to see on the online documentation, regardless of the SQ version I use, what the latest version of the Scanner is, that I can use to analyze my projects.
I expect to get the latest version available, so that I benefit from the last fixes and the most recent improvements.
For this, I expect to see:
- the last version number
- a link where to download it
If I'm using an older version of the scanner, I expect to see on the online documentation that there's a new version available, so that I can download it if I'm interested.
For this, I'd like to get:
- a short description of the new version
- a link to the Release Notes where I can get more details
When SonarQube has access to the outside of the company where it's used, it make sense to display the same information to the users in the embedded documentation.
When it's not the case, SonarQube could show a simple and static description, for example with links to the marketplaces or all downloadable releases.
Similarly to what was done for the analyzers with
SONAR-12137, we want the scanner releases to be dynamically computed, which will allow us to display a release history, and show direct links for downloading the different scanners. Just as for the analyzers, we'll fetch this information from the Update Center. For this, we'll now introduce a description file for each scanner that we will update each time we'll do a release.
- We will introduce a new top-level key in the main update-center-source.properties file: scanners=..., which will list all scanners, just as we do with the plugins=... key.
- We will introduce *.properties files for each scanner. They will follow a similar pattern as the plugins, with some minor differences:
- We won't have a sqVersions property.
- We will introduce a new pattern for the downloadUrl property. We will still support the current format, but for scanners that have multiple download URLs, we will allow properties to be keyed, with new label and url sub-keys.
- We will update the JSON generator, which will also have to generate JSON files for each scanner, just as we do now for plugins.
We will need to make sure that scanner info is not added to the global meta-data file, which is used by SQ to download and install plugins.
An example for the sonar-scanner-cli:
- We will introduce a new syntax for referencing scanner info from the Marketplace, just as we do for analyzers (reminder: analyzers use a special HTML comment: <!-- update_center:PLUGIN_KEY -->).
- This will fetch the release information, and display the latest version, and all previous versions in a collapsed block.
- If access to the internet is available, we will display the same information as for the static documentation. If not, we will display an info-box, with links to all downloadable releases.
As a nice to have, we could directly link to the latest version thanks to an alias which would be maintained in the download web site.