Describe the maintenance line without hardcoding 1.28 (#3212)

This commit is contained in:
Max 2026-07-29 14:54:45 +01:00 • committed by GitHub
commit d82ed88eb5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 10 deletions

View file

@ -19,7 +19,7 @@ own: a `main` tag builds and publishes two distributions (`mcp` and
| Line | Branch | Tag | GitHub release flags | | Line | Branch | Tag | GitHub release flags |
| ---------------------------- | ------ | ------------------------- | ------------------------------------- | | ---------------------------- | ------ | ------------------------- | ------------------------------------- |
| Current stable | `main` | `v2.X.Y` | not a pre-release; becomes **Latest** | | Current stable | `main` | `v2.X.Y` | not a pre-release; becomes **Latest** |
| Maintenance (previous major) | `v1.x` | `v1.28.Z` | not a pre-release; **not** Latest | | Maintenance (previous major) | `v1.x` | `v1.X.Y` | not a pre-release; **not** Latest |
| Pre-releases | `main` | `v2.X.YaN` / `bN` / `rcN` | **Pre-release** ticked, never Latest | | Pre-releases | `main` | `v2.X.YaN` / `bN` / `rcN` | **Pre-release** ticked, never Latest |
The `Development Status` classifier in both `pyproject.toml` files is The `Development Status` classifier in both `pyproject.toml` files is
@ -75,7 +75,7 @@ before the tag.
the replacement version, since yanking doesn't stop `==` pins from installing the replacement version, since yanking doesn't stop `==` pins from installing
the broken version. the broken version.
## Maintenance release from `v1.x` (`v1.28.Z`) ## Maintenance release from `v1.x` (`v1.X.Y`)
Land the `[v1.x]`-prefixed backport PRs (and any README banner update, which is Land the `[v1.x]`-prefixed backport PRs (and any README banner update, which is
the README PyPI shows for that version), verify the branch tip green, then the README PyPI shows for that version), verify the branch tip green, then
@ -89,11 +89,11 @@ create the release the same way with two differences:
- **It must not take "Latest" back from the 2.x line.** The UI ticks "Set as - **It must not take "Latest" back from the 2.x line.** The UI ticks "Set as
the latest release" by default for the newest non-pre-release; untick it, or the latest release" by default for the newest non-pre-release; untick it, or
pass `--latest=false`, and afterwards confirm `/releases/latest` still names pass `--latest=false`, and afterwards confirm `/releases/latest` still names
the newest v2 tag. If it slipped, `gh release edit v1.28.Z --latest=false` the newest v2 tag. If it slipped, `gh release edit v1.X.Y --latest=false`
fixes it — release metadata only, no re-cut. fixes it — release metadata only, no re-cut.
```shell ```shell
gh release create v1.28.Z --title v1.28.Z --target <commit-sha> --latest=false --notes-file <notes.md> gh release create v1.X.Y --title v1.X.Y --target <commit-sha> --latest=false --notes-file <notes.md>
``` ```
When generating notes, set **Previous tag** to the previous `v1.*` release by When generating notes, set **Previous tag** to the previous `v1.*` release by

View file

@ -4,15 +4,15 @@ Thank you for helping keep the Model Context Protocol and its ecosystem secure.
## Supported Versions ## Supported Versions
| Version | Line | Support | | Version | Line | Support |
| ------------------------------------ | ----------------------- | ---------------------------------------- | | ---------------------------------------- | ----------------------- | ------------------------------------------- |
| 2.x (newest release) | current stable (`main`) | bug fixes, security fixes, new features | | 2.x (newest release) | current stable (`main`) | bug fixes, security fixes, new features |
| 1.28.x (`v1.x` branch) | maintenance | critical bug fixes and security fixes | | 1.x newest release (`v1.x` branch) | maintenance | critical bug fixes and security fixes |
| < 1.28, and all pre-release versions | unsupported | upgrade to the newest 1.28.x or to 2.x | | older 1.x releases, and all pre-releases | unsupported | upgrade to the newest 1.x release or to 2.x |
Only the newest release of a supported line receives fixes, so reproduce against Only the newest release of a supported line receives fixes, so reproduce against
it before reporting. If your project depends on `mcp` and is not yet ready for it before reporting. If your project depends on `mcp` and is not yet ready for
2.x, constrain to `mcp>=1.28,<2` and follow the 2.x, keep a `<2` upper bound on your `mcp` requirement and follow the
[migration guide](https://py.sdk.modelcontextprotocol.io/migration/) when you [migration guide](https://py.sdk.modelcontextprotocol.io/migration/) when you
migrate. migrate.