Repository navigation
Hold back shipped majors in Dependabot, cancel superseded CI runs, and accept two release trains with a targeted CI - #191
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
…'s minors, and group the families pinned together Dependabot ignored the semver-major updates of the frameworks only, so 23 of the 44 dependencies .github/shipped-dependencies lists opened their next major as a fix(deps)! pull request: a bump, where the repository's rule is that a new major is supported by a decision, a floor or a target framework. Every shipped dependency's major is now ignored, test-only packages of the same families moving with them (xunit.v3*, protobuf-net*, Microsoft.Azure.Functions.Worker*, ModelContextProtocol*). Microsoft.CodeAnalysis.CSharp* ignores its minors too: its major.minor is the oldest compiler that loads the generator, since an analyzer referencing a later Microsoft.CodeAnalysis fails with CS9057, so a minor raises it as a major does. #190 (4.14.0 -> 5.9.0) contradicts the root CLAUDE.md's "never raise it to follow a dependency" and fails NU1107 in CodeFixes and NU1608 in GeneratorTests. xunit.v3*, Microsoft.CodeAnalysis*, HotChocolate* and ModelContextProtocol* require one another at exactly one version, so a partial bump fails the restore (#189: xunit.v3.assert 4.0.2 against xunit.v3.mtp-v2 4.0.1, NU1608). Each family now updates in a pull request of its own, ahead of the dotnet group, so that a red family holds back no other update. A group does not make Dependabot update every member; docs/maintaining.md says what to do when one is left behind, and to check the shipped dependencies for a new major before each stable release, since Dependabot no longer proposes them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0164hf4jJ3KsP3tyC3Uoa55L
14 of 183 pull-request runs of ci.yml were overtaken by a push before they finished: 149 of 1,143 job-minutes, or 13 %. Both workflows now key a concurrency group on the pull request and cancel the superseded run; a push to main is keyed on its commit and never cancelled, so that every commit of main keeps a complete run. The workflow's name is in the key because concurrency groups are repository-wide: without it, ci and lint would share a group and cancel each other's required checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0164hf4jJ3KsP3tyC3Uoa55L
…ly of the frameworks Proposed, to supersede ADR 0010, written for twelve packages: a core train (the generator, Abstractions, Json, Identifiers, Testing.Data and the five Microsoft integrations) that goes to 1.0 on its own, and a satellites train that stays 0.x and goes to 1.0 together, later, then may leave in families. Every dependency on one of our packages is bounded by its next breaking version, the core is released first, and a framework's major is supported in the same packages, train by train, with no maintenance line and no version aligned with a framework's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0164hf4jJ3KsP3tyC3Uoa55L
…fore a release Proposed: on a pull request, a plan job picks lanes by path (none, documentation, site, .NET, an unknown path falling into .NET) behind the one required check build and test, turned into an aggregator; native AOT, native AOT (Marten), the integration suite and compat (.NET 11) move to a reusable heavy.yml that gates every preview and stable release and runs after each push to main. Targeting by family waits for test projects per family. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0164hf4jJ3KsP3tyC3Uoa55L
…contract kit's checks as one theory ADR 0013 now targets families from the start, as the maintainer chose over lanes by path alone: eleven CI families, each in one release train, picked by a plan that crosses the diff with dotnet-affected 7.0.1 and checks at every run that each project under src/ and each top-level folder of the unit suite belongs to exactly one family. Phase A filters the one unit-test assembly by family; phase B splits it into a test project per family, starting with Orleans, Wolverine.Http and HotChocolate, which amends ADR 0006. Codecov gets a flag per family with carry-forward, and the ruleset's code_coverage rule, which nothing feeds, goes. ADR 0012 records the form of the xunit adapter: one theory with a row per check of the framework-free kernel, so that a check the kernel adds shows up without a new adapter version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0164hf4jJ3KsP3tyC3Uoa55L
The maintainer accepted both records. ADR 0010 is superseded by ADR 0012, whose two release trains replace its one version, its ladder, island and floors standing train by train; ADR 0003's stable track, ADR 0005's site lines and ADR 0009's previews are amended by ADR 0012, ADR 0009 and ADR 0006 by ADR 0013, and each status says so. The root CLAUDE.md says that both are accepted but not built yet, so that an agent keeps to the mechanics it describes until the roadmap lands; the Swashbuckle package's CLAUDE.md cites ADR 0012 for a framework's next major. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0164hf4jJ3KsP3tyC3Uoa55L
AdCodicem
force-pushed
the
ccr-37c3f752-p5qgt7
branch
from
October 19, 2026 20:01
b02e9c1 to
c11a24d
Compare
…required checks ADR 0013, now accepted, moves both jobs, with native AOT, to the jobs that gate a preview and a stable release, where ADR 0010 had compat (.NET 11) join the required checks when .NET 11 ships and docs/maintaining.md left native AOT (Marten) to be added at will. The root and .github CLAUDE.md files, the island's CLAUDE.md, the runbook's settings table, its .NET 11 checklist and its Marten notes, and the two comments in ci.yml now say so, and list conventional commits among the required checks, which the Default ruleset requires and the documents omitted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0164hf4jJ3KsP3tyC3Uoa55L
Owner
Author
|
Not this pull request's. It changes no code, no test and no image. The job landed on the runner image
No fix exists yet.
The run on the current head, Generated by Claude Code |
7 tasks done
AdCodicem
pushed a commit
that referenced
this pull request
Oct 19, 2026
…rnel 6.19 Every MongoDB 8.x refuses to start on a Linux kernel 6.19 or later (SERVER-121912: "MongoDB cannot start: Linux kernel versions 6.19 and newer has a known incompatibility with this version of MongoDB"), and GitHub's ubuntu-24.04 image 20261018.339.1 runs one: compat (.NET 11) failed its six MongoDbTests on #191 while build and test, on a runner with an older kernel, passed its MongoDB integration tests on the same commit. MongoDB names no fixed version; 8.0.34 and 8.3.13 are reported to refuse it still, 7.0.45 to start, and the GLIBC_TUNABLES workarounds not to help. The integration suite's and the compatibility island's fixtures run mongo:7.0 until an 8.x starts on the runners. The validator's pattern tests hold either way: the writer lists the characters .NET's own tables give a class, and MongoDB has read patterns through PCRE2 since 6.1. The suites' CLAUDE.md files, docs/maintaining.md (with the way back to mongo:8.0), the Functions fixture's remark and ci.yml's description of the island say so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0164hf4jJ3KsP3tyC3Uoa55L
AdCodicem
pushed a commit
that referenced
this pull request
Oct 20, 2026
…rnel 6.19 Every MongoDB 8.x refuses to start on a Linux kernel 6.19 or later (SERVER-121912: "MongoDB cannot start: Linux kernel versions 6.19 and newer has a known incompatibility with this version of MongoDB"), and GitHub's ubuntu-24.04 image 20261018.339.1 runs one: compat (.NET 11) failed its six MongoDbTests on #191 while build and test, on a runner with an older kernel, passed its MongoDB integration tests on the same commit. MongoDB names no fixed version; 8.0.34 and 8.3.13 are reported to refuse it still, 7.0.45 to start, and the GLIBC_TUNABLES workarounds not to help. The integration suite's and the compatibility island's fixtures run mongo:7.0 until an 8.x starts on the runners. The validator's pattern tests hold either way: the writer lists the characters .NET's own tables give a class, and MongoDB has read patterns through PCRE2 since 6.1. The suites' CLAUDE.md files, docs/maintaining.md (with the way back to mongo:8.0), the Functions fixture's remark and ci.yml's description of the island say so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0164hf4jJ3KsP3tyC3Uoa55L
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
The repository went from 12 to 38 packages in two weeks. This pull request:
Nothing in it releases anything: only
ci,docs(adr)anddocscommits. It is rebased onmain, which now carries #192.ci(deps): Dependabot (.github/dependabot.yml,docs/maintaining.md).github/shipped-dependencieshad no ignore. Test-only packages of the same families move with them.Microsoft.CodeAnalysis.CSharp*ignores its minors too. Itsmajor.minoris the oldest compiler that loads the generator, since an analyzer referencing a later Microsoft.CodeAnalysis fails with CS9057 (fix(deps)!: Bump Microsoft.CodeAnalysis.CSharp from 4.14.0 to 5.9.0 #190, closed).xunit.v3*,Microsoft.CodeAnalysis*,HotChocolate*andModelContextProtocol*require one another at exactly one version. Each family now updates in a group of its own, ahead ofdotnet, so that a red family holds back no other update. fix(deps): Bump the dotnet group with 10 updates #189 was one; fix(deps): take the xunit.v3 family at 4.0.2 and FluentValidation 12.2.0, in place of #189 #192 replaced it.ci: concurrency (ci.yml,lint.yml)mainis never cancelled.docs(adr): ADR 0012, accepted. The packages are versioned in two trains, independently of the frameworks.[V, next breaking version), and the core is released first.Testing.Contractsin the core and the existingTestingas a thin xunit adapter.docs(adr): ADR 0013, accepted. A pull-request CI targeted by package family, with the heavy jobs before a release.dotnet-affected. At every run, the plan checks that each project and each unit-test folder belongs to exactly one family.build and testbecomes the one required aggregator.native AOT,native AOT (Marten), the integration suite andcompat (.NET 11)move to a reusableheavy.yml. It gates every preview and stable release, and runs after each push tomain.Statuses and documents
CLAUDE.mdsays that both ADRs are accepted but not built yet, so that agents keep to the current mechanics until the roadmap lands.compat (.NET 11)ornative AOT (Marten)to become a required check now says that neither will:.githubandtests/CompatCLAUDE.mdfiles;ci.yml.Checklist
grepovertests/finds them only in comments). CI runs both suites.git rev-list --count origin/main..HEAD).Also checked:
actionlint1.7.12, the versionlint.ymlpins, passes on every workflow.conventional-pre-commit.🤖 Generated with Claude Code
https://claude.ai/code/session_0164hf4jJ3KsP3tyC3Uoa55L