Skip to content

Two supported lines: policy, branch rules, SECURITY rows, and the silent-fix rule as a minor with a changed-answers section #151

Closed

Description

@CaffeinatedCoder

Issue #86 settled "one supported version at a time" a week ago; the 11.0.0 epic #147 reverses it to two parallel lines, 10.x (LTS, .NET 10) and 11.x (.NET 11). Everything that encoded the old policy changes, and one rule has to be rewritten because it cannot survive two lines.

The rule that must change. Today a silent fix takes the next major. With platform-aligned majors there is no major number left for a silent fix on the LTS line, and an LTS line that cannot receive silent fixes is not an LTS line. From 11.0.0 on: the major means the platform; a silent fix ships as a minor on both lines, with a Changed answers section at the top of that version's changelog entry and an entry in docs/migration.md. The silent label keeps its force through a convention test: an issue labelled silent closed by a PR into a minor must have its row in that section (the changelog convention tests already parse the changelog). Until 11.0.0 ships, main keeps the old rule for 10.0.0, which is the last "answers are right" major.

Files and tests

  • CONTRIBUTING.md "Branches and releases": two lines, release/10.x cut at the v10.0.0 tag, net11 merge-forward until then, main-first then git cherry-pick -x after; the silent-fix minor rule; additions ship as 10.x minors and are merged forward to 11, so the LTS line never carries something the current line lacks; after v11.0.0 the 10.x line takes fixes only.
  • AGENTS.md "Issues" and "Branches": same.
  • SECURITY.md: two supported rows; SecurityPolicyConventionTests moves from exactly one row to exactly two, each compared with its line's PackageValidationBaselineVersion.
  • .github/workflows/dotnet.yml header comment and release.yml: the --latest=false guard keeps 10.x tags off "latest" once 11.0.0 exists; a prerelease path for 11.0.0-preview.N.
  • Directory.Build.props: one Version per branch is fine; the ApiCompat baseline on the 11 line is 10.0.0.
  • The release-wiring convention tests (ReleaseWiringTests, changelog consistency) learn the second line.
  • Roadmap Roadmap #34 legend: the silent sentence.

Done when the docs say what is true, the two convention tests enforce it, and release/10.x is cut at the tag.

Activity

  1. added this to the 11.0.0 milestone on Oct 18, 2026
  2. added
    choreBuild, CI, packaging, refactoring with no behaviour change
    area/releaseVersioning, changelogs, release wiring
    on Oct 18, 2026
  3. CaffeinatedCoder commented on Oct 18, 2026

    @CaffeinatedCoder
    OwnerAuthor

    PR #156 does the policy, SECURITY.md, convention tests, PR-hygiene label check and workflow parts. Decided there:

    • A preview gets no SECURITY.md row. The second row appears when 11.0.0 ships.
    • CompanionLineRelease in Directory.Build.props records the other line's latest release.
    • The new rule applies to every version after 10.0.0.

    Left for the tag: cutting release/10.x at v10.0.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/releaseVersioning, changelogs, release wiringchoreBuild, CI, packaging, refactoring with no behaviour change

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions