Skip to content

Document the versioning scheme in the README: 2.0.x (stable) vs 3.0.0-preview, stale GitHub Releases, and v10/v11 tags #2813

@gerritgoetzen

Description

@gerritgoetzen

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.32.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:

  1. Which version do I use? (2.0.x = stable; what's 3.0.0-preview?)
  2. Why is GitHub Releases stale, and what should I look at instead for a changelog?
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions