The "Sonar way" QP are built-in QP: they are provided by the language analyzers developed by SonarSource. They contain all the rules that should be usable by any project w/o discussion, and that should bring a lot of value without generating noise.
The current problems are:
- Once created the first time an analyser is installed, they are never ever updated again - even though the analyser itself will change them over time to make them more valuable. So users will miss new features.
- Users can modify them, so those QP can even easily diverge from what SonarSource is pushing
We want those built-in QP to be first class citizens in SonarQube, and to be read-only and automatically updated for users to benefit from all the latest evolutions of the analysers.
- Built-in profiles are not necessarily named "Sonar way" (any plugin - even third party ones, can bring built-in quality profiles)
- A plugin can bring several built-in quality profiles (like SonarPHP for instance)
As a QP administrator, I expect SQ to clearly identify what QP are built-in amongst all the available quality profiles:
- May it be in the main page
- Or on the detailed page of a QP
Those QP will now be read-only and automatically updated when there is a plugin upgrade.
As a QP administrator, I expect SQ to:
- No more the "Restore Built-in QP" action on the "Quality Profiles" page
- Clearly explain me (in the Web UI) that those QP are read-only and that they will be updated automatically
- No "Delete" action is available
- No "Activate More Rules" action on the QP page (and therefore no possibility to activate a rule on a built-in QP in the Rules page)
- No "Change parent"
- No "Backup"
- We should display somewhere that projects using such QP will benefit from all the evolutions when a plugin is updated
- Not be able to activate rules on built-in QP in the "Rules" page
- Those built-in QP should not be suggested in the "Activate" modal window
- When selecting a built-in QP in the facet, the "Activate" buttons should even not be available
- Note: we might even want to display the "Built-in" flag in the QP facet
What shall we do with existing "Sonar way" QP when doing the migration?
For OnPrem, we should:
- Rename existing (previously built-in) QP into something like "Sonar way - outdated copy" (or "Whatever the old name - outdated copy")
For SQ.com, because we want to highly decrease the volume, we would check if the QP corresponding to the built-in ones were modified (i.e. they have changes in changelog other than "System" ones):
- If yes, we rename it "Sonar way - outdated copy"
- If not, we delete the QP and replaces it with the corresponding built-in one