-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsonar-project.properties
More file actions
51 lines (45 loc) 路 2.57 KB
/
Copy pathsonar-project.properties
File metadata and controls
51 lines (45 loc) 路 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
sonar.host.url=https://sonarcloud.io
sonar.organization=stephenlclarke
sonar.projectKey=stephenlclarke_ScopeTimer
sonar.projectName=ScopeTimer
sonar.projectVersion=1.0.0
sonar.sourceEncoding=UTF-8
# --- Sources & Tests ---
# Analyze only maintained product C++ sources. Test harnesses, helper scripts,
# build logic, and generated benchmark history are deliberately kept out of
# production issue counts and coverage denominators.
sonar.sources=include,example
sonar.tests=test
sonar.test.inclusions=**/test/**,**/*Test.cpp,**/*Tests.cpp
# Exclude build artifacts and wrapper output from analysis scope.
sonar.exclusions=**/build/**,**/build-*/**,**/cmake-build-*/**,**/_deps/**,**/bw-output/**,**/compile_commands.json
# --- C/C++ (CFamily) ---
# Default path for the standard ./build workflow. The CMake `sonar_scan`
# target overrides this so out-of-tree build dirs work too.
sonar.cfamily.compile-commands=build/bw-output/compile_commands.json
# --- Coverage ---
# Default path for the standard ./build workflow. The CMake `sonar_scan`
# target overrides this so out-of-tree build dirs work too.
sonar.coverageReportPaths=build/sonarqube-coverage.xml
sonar.coverage.exclusions=benchmarks/**,scripts/**,.github/**,test/**,CMakeLists.txt,sonar-project.properties
# The repo's maintained Python scripts use Python 3.10+ syntax such as
# PEP 604 unions and built-in generic type parameters. Constrain Sonar's
# Python analysis to the supported 3.10+ interpreter set instead of the
# default "all Python 3 versions" mode, which raises the warning shown in
# SonarCloud and can hide version-specific findings.
sonar.python.version=3.10,3.11,3.12,3.13,3.14
# ScopeTimer is intentionally header-only; the inline implementation keeps the
# public macros and runtime internals in one class. Ignore the "too many
# methods" heuristic for that single file and address the rest in code.
#
# ScopeTimer also uses explicit relaxed/acquire/release atomics in the same
# header. Those orderings are deliberate to keep fences off the timer hot path;
# stronger seq_cst ordering would satisfy Sonar's generic rule but would add
# unnecessary synchronization cost. The code carries local comments next to the
# affected atomic operations, and this project-level suppression keeps that
# intentional design from generating noise on every analysis.
sonar.issue.ignore.multicriteria=e1,e2
sonar.issue.ignore.multicriteria.e1.ruleKey=cpp:S1448
sonar.issue.ignore.multicriteria.e1.resourceKey=**/include/ScopeTimer.hpp
sonar.issue.ignore.multicriteria.e2.ruleKey=cpp:S8417
sonar.issue.ignore.multicriteria.e2.resourceKey=**/include/ScopeTimer.hpp