From 7e72b0760ed793a9469375d59807f275a0686877 Mon Sep 17 00:00:00 2001 From: Miha Kralj Date: Wed, 4 Mar 2026 08:40:07 -0800 Subject: [PATCH] fix: restore sonar-suppressions.json for CI pipeline File was accidentally deleted in repo cleanup (1910fdca). Required by Codacy_Rule_Sync and Sonar_Analysis jobs. --- sonar-suppressions.json | 162 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 sonar-suppressions.json diff --git a/sonar-suppressions.json b/sonar-suppressions.json new file mode 100644 index 00000000..acf418c3 --- /dev/null +++ b/sonar-suppressions.json @@ -0,0 +1,162 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Single source of truth for Sonar rule suppressions across SonarCloud, Codacy, and local builds", + "rules": [ + { + "id": "S107", + "reason": "Methods should not have too many parameters - high-performance SIMD methods require multiple parameters for zero-allocation patterns" + }, + { + "id": "S1144", + "reason": "Unused private types or members should be removed - false positives on reflection/serialization patterns" + }, + { + "id": "S1244", + "reason": "Floating point numbers should not be tested for equality - intentional exact comparisons in financial calculations" + }, + { + "id": "S1944", + "reason": "Inappropriate casts should not be made - false positives on generic constraint patterns" + }, + { + "id": "S2053", + "reason": "Hashes should include unpredictable salt - not applicable to non-cryptographic hashing" + }, + { + "id": "S2245", + "reason": "Using pseudorandom number generators is security-sensitive - GBM uses deterministic seeds for reproducibility" + }, + { + "id": "S2259", + "reason": "Null pointers should not be dereferenced - false positives with nullable reference types" + }, + { + "id": "S2583", + "reason": "Conditionally executed code should be reachable - false positives on defensive programming patterns" + }, + { + "id": "S2589", + "reason": "Boolean expressions should not be gratuitous - false positives on explicit clarity patterns" + }, + { + "id": "S3236", + "reason": "Caller information arguments should not be provided explicitly - intentional for testing/debugging" + }, + { + "id": "S3329", + "reason": "Cipher Block Chaining IVs should be unpredictable - not applicable to non-cryptographic code" + }, + { + "id": "S3604", + "reason": "Member initializer values should not be redundant - null! is intentional for nullable reference types in Quantower adapters" + }, + { + "id": "S3655", + "reason": "Empty nullable value should not be accessed - false positives with HasValue checks" + }, + { + "id": "S3776", + "reason": "Cognitive Complexity of methods should not be too high - complex algorithms require complex implementations" + }, + { + "id": "S3949", + "reason": "Calculations should not overflow - false positives on checked arithmetic contexts" + }, + { + "id": "S3966", + "reason": "Objects should not be disposed more than once - false positives on defensive dispose patterns" + }, + { + "id": "S4158", + "reason": "Empty collections should not be accessed or iterated - false positives on lazy initialization" + }, + { + "id": "S4347", + "reason": "Secure random number generators should not output predictable values - deterministic seeds for reproducibility" + }, + { + "id": "S5773", + "reason": "Types allowed to be deserialized should be restricted - not applicable to this codebase" + }, + { + "id": "S6781", + "reason": "JWT tokens should not be created using insecure secrets - not applicable to this codebase" + }, + { + "id": "S109", + "reason": "Magic numbers should be replaced with named constants - numeric literals in SIMD/math algorithms are intentional and self-documenting" + }, + { + "id": "S122", + "reason": "Statements should be on separate lines - compact initialization patterns improve readability in coefficient setup" + }, + { + "id": "S134", + "reason": "Control flow statements should not be nested too deeply - complex algorithms require nested loops" + }, + { + "id": "S138", + "reason": "Methods should not have too many lines - SIMD batch calculations are intentionally monolithic for performance" + }, + { + "id": "S1067", + "reason": "Expressions should not be too complex - validation guard clauses benefit from compound conditions" + }, + { + "id": "S1227", + "reason": "Break statements should not be used - early exit patterns improve performance in search loops" + }, + { + "id": "S1309", + "reason": "Track uses of in-source issue suppressions - intentional suppressions are documented" + }, + { + "id": "S1451", + "reason": "File headers should match a defined format - no file header requirement for this project" + }, + { + "id": "S1541", + "reason": "Cyclomatic complexity should not be too high - optimized algorithms require complex control flow" + }, + { + "id": "S1659", + "reason": "Multiple variables should not be declared on the same line - SIMD register declarations benefit from grouping" + }, + { + "id": "S2360", + "reason": "Optional parameters should not be used - optional parameters are idiomatic for indicator constructors" + }, + { + "id": "S3254", + "reason": "Default parameter values should not be passed as arguments - explicit defaults improve clarity" + }, + { + "id": "S3264", + "reason": "Events should be invoked - events may be conditionally invoked or used for chaining" + }, + { + "id": "S3904", + "reason": "Assemblies should have version information - version is set via Directory.Build.props" + }, + { + "id": "S3906", + "reason": "Event handlers should have the correct signature - custom delegates are used for performance" + }, + { + "id": "S3908", + "reason": "Generic event handlers should be used - TValuePublishedHandler is a performance-optimized custom delegate" + }, + { + "id": "S3990", + "reason": "Assemblies should be marked CLSCompliant - CLS compliance not required for internal library" + }, + { + "id": "S3992", + "reason": "Assemblies should have ComVisible attribute - COM interop not required" + }, + { + "id": "S4035", + "reason": "Classes implementing IComparable should also implement IEquatable - performance-optimized value types use custom equality semantics" + } + ] +}