chore(release)!: bump version.json 10.3 → 11.0 + add semver policy to CLAUDE.md - #220
Merged
Merged
Conversation
… CLAUDE.md Three breaking changes shipped under 10.3.x patch releases over the past two days: - #206 chore(globaltool)!: rename Fallout.GlobalTool → Fallout.Cli - #204 feat(globaltool)!: thin shims + local tool manifest, drop build.cmd - #212 fix(security)!: AES-GCM v2 secret format with per-secret salt+nonce CHANGELOG.md has had an `[Unreleased] — 11.0` heading with extensive breaking-change entries since the takeover (STJ migration, schema rewrite, etc.), but `version.json` stayed pinned at 10.3 and every release shipped as 10.3.x. Net effect: consumers updating from 10.3.40 → 10.3.45 silently inherited a package rename and a secret- format change — exactly the failure mode semver exists to prevent. This PR bumps `version.json` to 11.0 so the next release becomes 11.0.x. The 10.3.x releases on nuget.org are already published and stay where they are; this PR stops the bleeding from this point forward. Also adds a **Semver policy** section to CLAUDE.md so the rule is explicit and reviewer-enforceable: - Any `!` commit (or flagged breaking change) requires bumping the major in `version.json` in the same PR. - Patch increments from git-height are reserved for non-breaking fixes. - Reviewer responsibility: block merge until the bump is in. - Add a CHANGELOG.md entry under `[Unreleased] — <next-major>`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ChrisonSimtian
force-pushed
the
chore/bump-v11-and-semver-policy
branch
from
May 27, 2026 09:16
e02728e to
887a054
Compare
This was referenced May 27, 2026
ChrisonSimtian
added a commit
that referenced
this pull request
May 27, 2026
Per-repo convention for operational helper scripts that aren't part of
the build or release pipeline:
- Not referenced by fallout.slnx / any .csproj — never built or packed.
- Excluded from version.json's git-height via pathFilters — commits
that only touch tools/ don't bump the patch version. (No more
11.0.<n+1> releases just because a script's docblock got tidied.)
- PowerShell Core 7+ by convention (cross-platform).
First inhabitant: Unlist-NugetPackage.ps1 — wraps `dotnet nuget delete`
with two input modes:
- Single: -Package Foo -Version 1.2.3 (or -Version 1.0,1.1,1.2)
- Bulk: -JsonPath ./batch.json (array of {package, version})
API key from -ApiKey or $env:NUGET_API_KEY. Fails fast if neither.
SupportsShouldProcess, so -WhatIf and -Confirm work for the mutating
calls. Per-item ok/FAIL output; exit code = failure count.
Built to address the 10.3.40-10.3.47 unlist work that surfaced after
the semver-policy fix in #220 — but kept generic so it's reusable for
any future unlist sweep without modification.
Also adds tools/README.md documenting the conventions for future
inhabitants of the directory.
1 task
ChrisonSimtian
added a commit
that referenced
this pull request
May 27, 2026
#224) 102-entry bulk-input for Unlist-NugetPackage.ps1, covering the 10.3.40-10.3.47 range across all 17 affected Fallout.* packages. These are the patch versions that shipped breaking changes before the v11 semver-policy fix in #220 — keeping the batch under source control so the cleanup is reproducible / auditable. Also amends tools/README.md to point at this file as the live example of an "operation worth keeping as a historical record."
Merged
2 tasks
ChrisonSimtian
added a commit
that referenced
this pull request
May 27, 2026
…l→Cli migration guide (#225) Closes the two follow-ups noted in #220's PR body — the v11 record now covers every breaking change that shipped under 10.3.x and were catalysed by the semver-policy fix. CHANGELOG.md — three new entries under [Unreleased] — 11.0, most-recent first: - #214 AES-GCM v2 secret format - #206 Fallout.GlobalTool → Fallout.Cli package rename - #204 thin shims + dotnet-tools manifest + GitHubActions generator regen (PR-B of #203) docs/migration/from-globaltool-to-cli.md — focused migration guide covering the three consumer scenarios (global install, local manifest, shims) plus the affected-versions table noting both the renamed Fallout.GlobalTool freeze at 10.3.40 and the 10.3.41-47 Fallout.Cli unlist done via tools/Unlist-NugetPackage.ps1.
ChrisonSimtian
added a commit
that referenced
this pull request
May 29, 2026
…13) (#298) While v11 churns through the rebrand + plugin-foundation work, nothing should reach the nuget.org userbase. This routes v11 releases to the GH Packages feed instead: - Build.cs: IPublish.NuGetSource -> GitHub Packages feed (defensive — the Publish target itself can no longer reach nuget.org), NuGetApiKey fed the GITHUB_TOKEN. - release.yml: NuGetApiKey -> secrets.GITHUB_TOKEN; drop the nuget-org Environment binding (no nuget.org secret in play). Flags the lost approval gate + how to re-add one for GH Packages. Also lands tools/unlist-v11.0.1-18.json — the record of the 199 existing 11.0.x (package,version) pairs being unlisted from nuget.org (cleanup of what auto-published between the #220 major bump and the #268 stopgap). nuget.org stays reserved for the maintenance 10.x line and a future stabilised v11. Revisit the feed when v11 stabilises. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Why
Three breaking changes shipped under 10.3.x patch releases over the past two days:
CHANGELOG.md has had `[Unreleased] — 11.0` with extensive breaking-change entries since the takeover, but `version.json` stayed at 10.3 and every release shipped as 10.3.x. Consumers updating from `10.3.40` → `10.3.45` silently inherited a package rename and a secret-format change — exactly the failure mode semver exists to prevent.
CLAUDE.md described the mechanism of versioning (Nerdbank.GitVersioning, hand-bumped major+minor, patch from git-height) but had no rule for when to bump. Conventional-commit `!` markers were used on the breaking PRs, but nothing connected that to a major bump.
What this PR does
Out of scope (follow-ups)
Verification
Refs