chore: adopt the standard CI shape, CodeQL and Dependabot - #8
Merged
Conversation
Applies NextIteration.Standards STANDARD.md sections 3 and 4 (workflow files and content), plus 2.6 and 2.7 for the test stack. PR A of the adoption sequence in ADOPTING.md. - ci.yml replaced with the canonical template: `build` / three-platform `test` matrix / `ci` gate / tag-gated `publish` (3.0, 3.0.1, 3.1, 3.1.1). Only difference from templates/.github/workflows/ci.yml is the `v*` tag glob and the repo-specific header comment, both permitted by 3.0.1. No EXCEPTIONS.md entry is needed for this repo. - The `ci` gate is the aggregating required check (3.1). `if: always()` is load-bearing: without it the gate is skipped when an upstream job fails, and branch protection reads a skipped check as satisfied. - Adds codeql.yml (4.4) and dependabot.yml + dependabot-auto-merge.yml (4.6, 4.7). Per-workflow concurrency, timeout-minutes and a NuGet restore cache close 3.5, 3.6 and 3.7. - dependabot.yml deliberately carries no `ignore` block: 4.10 scopes it to packages with per-TFM floors and this repo has none. Every dependency here is pre-1.0 and runtime-independent, so it takes a single common floor (1.5). - Adds Microsoft.Testing.Extensions.CodeCoverage (2.6). The canonical `test` job invokes it via `-- --coverage`, so the reference has to land with the workflow or the job fails on an unrecognised option. Verified locally: both TFMs emit a .coverage file. - Test project NoWarn extended to CA1515 and CA2007, and GenerateDocumentationFile set to false (2.7) ahead of PR C moving the documentation default into Directory.Build.props. Verified locally: Release build at zero warnings, 80 tests passing on both net8.0 and net10.0, coverage collected on each. Test matrix note: Windows and macOS have never run this suite. Nothing in the library touches the filesystem or an OS store, and hex formatting already goes through InvariantCulture, so no platform-specific defect is expected — but 3.1.1 is explicit that an untested platform is an unverified one, and CI is where that gets settled rather than asserted. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
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.
What changed
PR A of the NextIteration.Standards adoption sequence (
ADOPTING.mdstep 1): the canonical CI shape, CodeQL, and Dependabot.ci.ymlreplaced with the canonical template —build/ three-platformtestmatrix /cigate / tag-gatedpublish(§3.0, §3.0.1, §3.1, §3.1.1). The only differences fromtemplates/.github/workflows/ci.ymlare thev*tag glob and the repo-specific header comment, both permitted by §3.0.1. This repo needs noEXCEPTIONS.mdentry.codeql.yml(§4.4) anddependabot.yml+dependabot-auto-merge.yml(§4.6, §4.7) added, verbatim from the templates.concurrency,timeout-minuteson every job, and a NuGet restore cache.Microsoft.Testing.Extensions.CodeCoverageadded (§2.6). The canonicaltestjob invokes it with-- --coverage, so the reference has to land in the same PR or the job fails on an unrecognised option.NoWarnextended toCA1515;CA2007, andGenerateDocumentationFile=falseset ahead of PR C moving the documentation default intoDirectory.Build.props.dependabot.ymldeliberately carries noignoreblock. §4.10 scopes that list to packages with per-TFM floors, and this repo has none — Figgle, Figgle.Fonts and Spectre.Console are all pre-1.0 and runtime-independent, so they take a single common floor (§1.5) and their majors are genuinely reviewable. Anignoreentry for a package this repo does not floor per TFM would assert a policy that does not exist here.Why
Splash was the last repo other than Auth.Providers with no
cigate, no CodeQL, and no Dependabot. Auth, SelfUpdate and Settings are all at 29/29 machine-checkable clauses; this closes eight of Splash's eighteen failing checks.Verification
Local, at this commit:
dotnet build --configuration Release— 0 warnings, 0 errors (TreatWarningsAsErrorsis on).dotnet test --configuration Release -- --coverage— 80 passed, 0 failed on bothnet8.0andnet10.0, with a.coveragefile emitted per TFM.Windows and macOS have never run this suite. Nothing in the library touches the filesystem or an OS secret store, and hex formatting already goes through
InvariantCulture, so no platform-specific defect is expected — but §3.1.1 is explicit that an untested platform is an unverified one, so CI settles it rather than this description asserting it.Consumer impact
None. No library code, public API, or shipped package content changes. The coverage collector is test-only (
IsPackable=false), and the.nuspecis untouched by this PR.Checklist
TreatWarningsAsErrorsis on)CHANGELOG.mdupdated under[Unreleased]🤖 Generated with Claude Code