Promote AA0471, AA0472 and AA0474 to Error in the base ruleset - #10209
Merged
Jesper Schulz-Wedde (JesperSchulz) merged 3 commits intoAug 14, 2026
Conversation
AD0001 and AL0640 are overridden to Error in base.ruleset.json, which is already the effective severity: base.ruleset.json sets generalAction to Error, and neither rule is downgraded by the included ruleset.json. Removing the two entries is therefore a no-op for analysis behaviour and simply reduces the override list from 105 to 103. Related to AB#640773 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7e6fd312-fe92-4215-8333-f98ba0a2e25d
AA0471, AA0472 and AA0474 have no violations anywhere in the repository, so their overrides are removed outright. AA0473 and AS0112 each have a handful of violations. Rather than keeping the rules disabled for the whole repository, the individual sites are marked with #pragma warning disable so they become accepted violations, and the overrides are removed as well. Related to AB#640773 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7e6fd312-fe92-4215-8333-f98ba0a2e25d
Jesper Schulz-Wedde (JesperSchulz)
temporarily deployed
to
triage
August 12, 2026 14:46 — with
GitHub Actions
Inactive
Nikola Kukrika (nikolakukrika)
previously approved these changes
Aug 12, 2026
CI showed that the earlier scope was based on incomplete local coverage: AA0473 and AS0112 have several hundred violations across the repository, so their overrides are restored and they are left for dedicated remediation. AA0471 and AA0474 turned out to have only six sites in total, all in the Withholding Tax app, and all of them are genuine omissions rather than acceptable exceptions. They are fixed by supplying the missing AutoFormatExpression, matching what neighbouring fields in the same tables already do. The accumulator table has no currency, so it formats in local currency. Related to AB#640773 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7e6fd312-fe92-4215-8333-f98ba0a2e25d
Jesper Schulz-Wedde (JesperSchulz)
requested a review
from a team
as a code owner
August 13, 2026 07:34
Jesper Schulz-Wedde (JesperSchulz)
enabled auto-merge
August 14, 2026 08:30
Nikola Kukrika (nikolakukrika)
approved these changes
Aug 14, 2026
Predrag Maricic (PredragMaricic)
approved these changes
Aug 14, 2026
Anders (AndersLarsenMicrosoft)
approved these changes
Aug 14, 2026
Bardur Knudsen (BardurKnudsen)
approved these changes
Aug 14, 2026
Jesper Schulz-Wedde (JesperSchulz)
deleted the
jesperschulz-ruleset-hardening-3
branch
August 14, 2026 12:07
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Continues the ruleset hardening for AB#640773 by promoting three analyzer rules from
Noneback toErrorinsrc/rulesets/base.ruleset.json.Stacked on #10133.
What changed
AA0472AA0471AA0474All six violations are in the Withholding Tax app, and all are genuine omissions rather than exceptions worth accepting, so they are fixed rather than suppressed.
AutoFormatType = 1means the value is an amount, and the analyzer requires a matchingAutoFormatExpressionnaming the currency. InWithholding Tax EntryandWHT Empl. Ledger Entry Extthe neighbouring amount fields already specifyAutoFormatExpression = Rec."Currency Code", and the fields flagged here had simply been missed, so they now do the same.WHT Threshold Accumulatorhas no currency field at all because it only ever accumulates local currency amounts, so it uses an empty expression, which is the standard way to express LCY.Fixing the table field also resolved the
AA0471report onWithholding Tax Entries, since the page control inherits its formatting from the underlying field.Corrected scope
The first revision of this PR also promoted
AA0473andAS0112, on the strength of local measurements that found 4 and 3 violations respectively. CI disagreed, and CI was right: 886AA0473and 630AS0112diagnostics across the 44Build Appsjobs.The local scan had simply not reached far enough. It had covered 398 of 878 projects when it was stopped, and the dependency-ordered pass before it could not build large parts of
src/Appsat all, so entire areas —Master Data Mgt.,BC14 Historical Data, remittance advice and others — were never examined. A rule looked clean because nothing had looked at the code that violates it.Both rules therefore keep their overrides and need real remediation in their own PRs.
How the surviving numbers were established
From the failed CI run itself, which compiles everything. Tallying
##[error]diagnostics across all 44Build Appsjobs givesAA047136 andAA0474180 occurrences, but those are the same handful of W1 sites recompiled once per country: 1 and 5 distinct sites.AA0472does not appear in any job.The six sites were then reproduced locally against the updated ruleset to get exact line numbers, and the Withholding Tax app now compiles clean (exit 0) with CodeCop, AppSourceCop, PerTenantExtensionCop and UICop enabled.
Related to AB#640773