Conversation
The quality gate of the plugin system analysis pull request fails on "C Reliability Rating on New Code", required A. The eighteen bugs behind that rating are all in `tools/plugin-registry-probes/`: thirteen in `q4-generic-host-features`, four in `r2-instancetype-extraction`, one in `q5-module-augmentation`. Those probes exist to measure what the TypeScript compiler accepts and rejects. Their errors and their near-identical files are the measurement, not a defect, and they are compiled by their own tsconfig files rather than by any package. ESLint already ignores the directory for the same reason. This project uses automatic analysis, confirmed by `sonar.autoscan.enabled=true` on the server, with no scanner step in any workflow. Automatic analysis reads `.sonarcloud.properties` and ignores `sonar-project.properties`, and it reads it from the default branch, which is why this cannot live on the analysis branch itself. `sonar.cpd.exclusions` is set alongside, because eleven probes exploring variants of the same construct are duplicated on purpose.
|
|
Closing this for now: the exclusion hardcodes The probes are expected to move, together with the analysis files that #552 proposes to gather into a subfolder. Merging an exclusion keyed on a path we are about to change would either silently stop matching, leaving the quality gate failing again for a reason nobody remembers, or force a second commit for the same decision. The right order is: decide where the probes live, move them, then configure the exclusion against the final path. What was established here is worth keeping, and none of it depends on the path:
Until then, #552 keeps failing its quality gate on "C Reliability Rating on New Code". The eighteen bugs are all in the probes: thirteen in The branch |
|
Correction to the note above: the remote branch The content is not lost. The The rest of the note stands: automatic analysis, |



Problem
The quality gate of #552 fails on C Reliability Rating on New Code, where A is required.
The eighteen bugs behind that rating are all in the TypeScript probes: thirteen in
tools/plugin-registry-probes/q4-generic-host-features/probe.ts, four inr2-instancetype-extraction/probe.ts, one inq5-module-augmentation/combined/app.ts. Confirmed through the Sonar API for that pull request.Those probes exist to measure what the TypeScript compiler accepts and rejects. Their errors, and the near-identical
files that explore variants of the same construct, are the measurement rather than a defect, and they are compiled by
their own tsconfig files rather than by any package. ESLint already ignores the directory for exactly this reason, see
the
ignoresentry ineslint.config.mjs.Fix
Add
.sonarcloud.propertiesat the repository root, excludingtools/**from analysis and from duplicationdetection.
Why this file and not
sonar-project.propertiesThis project uses automatic analysis, not a CI scanner. Evidence: no workflow mentions Sonar, no scanner config
exists in the repository, and the server reports
sonar.autoscan.enabled=truefor the project.The Sonar documentation is explicit that the two files belong to different modes: "If you import a project that
already contains a
sonar-project.propertiesfile, SonarQube Cloud will ignore the parameters in yoursonar-project.propertiesfile. To analyze your code with the settings defined in this file, you can turn offautomatic analysis and configure a CI/CD analysis."
(automatic analysis)
sonar.exclusionsandsonar.cpd.exclusionsare both in the documented list of properties supported by automaticanalysis. The file name is unchanged by the SonarCloud to SonarQube Cloud rename and is not listed in the deprecations
page.
Sequencing
Automatic analysis reads this file from the default branch, so it takes effect only once this is merged. #552 then
needs a new push to be re-analysed. Whether an exclusion retroactively clears issues already raised on New Code is not
documented, so the re-analysis is what will confirm the gate turns green.
Residual risk
The automatic analysis page states "Wildcard patterns are not allowed" immediately before its property list, while the
same sentence on the
initial scope page
is scoped only to
sonar.sourcesandsonar.tests, andsonar.exclusionsis documented everywhere else as takingglob patterns. Public repositories on automatic analysis use globs there and are actively maintained, for instance
third-party/**in LizardByte/Sunshine andsrc-tauri/gen/**in betaflight/betaflight-configurator.If the pattern turns out not to be honored, the fallback is the project's Administration > General Settings > Analysis
Scope > Files field, with the
sonar.exclusionsline removed from this file, since the file overrides the UI outrightrather than merging with it.