As a consumer it's currently very hard to reason about which version to use and what changed between versions, because the four places I'd look all disagree:
- NuGet shows
2.0.8 (latest stable) and 3.0.0-preview.4.*.
- GitHub Releases is frozen — newest entry is
v2.0.2 (Jan 2026); 2.0.3–2.0.8 and all 3.0.0 previews shipped with no release and no notes.
- Git tags carry SDK-band versions: the same commit
c7b5e07c is tagged v2.0.1, v2.0.2, v2.0.3, and v10.0.4/v10.0.5/v10.0.104/v10.0.105; 702b2bbd is tagged v11.0.0/v11.0.100. Meanwhile NuGet 2.0.4/2.0.5/2.0.6 have no tags at all.
- There's no curated CHANGELOG.
My understanding (please correct): since the source moved into the dotnet/dotnet VMR around 2.0.0-beta6, releases are produced by the central .NET build, the git tags follow .NET SDK bands rather than the package version, and GitHub Releases is no longer the source of truth. If that's right, it would help enormously to state it in the README so people stop re-deriving it.
Ask: add a short "Versioning" section to the README (and ideally the NuGet package readme) answering:
- Which version do I use? (
2.0.x = stable; what's 3.0.0-preview?)
- Why is GitHub Releases stale, and what should I look at instead for a changelog?
- What are the
v10.x/v11.x tags and can I ignore them?
Suggested starting text (happy to open a PR once the facts are confirmed):
## Versioning
`System.CommandLine` is built and released as part of the .NET product (the
dotnet/dotnet VMR); this repo is a mirror. Use **NuGet** as the source of truth:
- **`2.0.x`** — current stable line (ships with .NET 10). Recommended for production.
- **`3.0.0-preview.x`** — in-development line (.NET 11).
GitHub Releases and the `v10.x`/`v11.x` git tags reflect the .NET build/SDK
versioning, not the NuGet package version — for change history, compare the
relevant release branch (`release/10.0` for 2.0.x, `main` for 3.0) on GitHub.
Related prior threads: #1251, #2500, #2576.
As a consumer it's currently very hard to reason about which version to use and what changed between versions, because the four places I'd look all disagree:
2.0.8(latest stable) and3.0.0-preview.4.*.v2.0.2(Jan 2026);2.0.3–2.0.8and all3.0.0previews shipped with no release and no notes.c7b5e07cis taggedv2.0.1,v2.0.2,v2.0.3, andv10.0.4/v10.0.5/v10.0.104/v10.0.105;702b2bbdis taggedv11.0.0/v11.0.100. Meanwhile NuGet2.0.4/2.0.5/2.0.6have no tags at all.My understanding (please correct): since the source moved into the dotnet/dotnet VMR around
2.0.0-beta6, releases are produced by the central .NET build, the git tags follow .NET SDK bands rather than the package version, and GitHub Releases is no longer the source of truth. If that's right, it would help enormously to state it in the README so people stop re-deriving it.Ask: add a short "Versioning" section to the README (and ideally the NuGet package readme) answering:
2.0.x= stable; what's3.0.0-preview?)v10.x/v11.xtags and can I ignore them?Suggested starting text (happy to open a PR once the facts are confirmed):
Related prior threads: #1251, #2500, #2576.