Skip to content

Commit ca16a62

Browse files
committed
Promote the v2 README to README.md ahead of the first v2 beta
The repo front page still showed the v1 README while every release cut from main is a v2 pre-release. Make the v2 README (README.v2.md) the root README, with a banner that makes the status unmissable: alpha/beta pre-release line, breaking changes between pre-releases, not for production, v1.x is the stable line. Retire the freeze machinery that kept README.md pinned at v1: - the readme-v1-frozen pre-commit hook and the CI freeze check with its override-readme-freeze label gate - the --readme indirection in scripts/update_readme_snippets.py (the script now reads README.md, its only remaining purpose) - dead config that existed only for the split: the ruff hook exclude, the pyproject ruff extend-exclude entries, the SKIP env in shared.yml, and the examples/ trigger on the readme-snippets hook Point pyproject's readme at README.md so PyPI keeps publishing the v2 long description, and add a release-checklist step to bump the version examples in README.md and the docs when cutting a pre-release - the tagged commit's README is what PyPI shows.
1 parent e942d00 commit ca16a62

12 files changed

Lines changed: 84 additions & 2683 deletions

File tree

.github/workflows/shared.yml

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ jobs:
2727
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
2828
with:
2929
extra_args: --all-files --verbose
30-
env:
31-
SKIP: no-commit-to-branch,readme-v1-frozen
3230

3331
- name: Surface types match vendored schema
3432
run: |
@@ -42,19 +40,6 @@ jobs:
4240
uv run --isolated --no-project --with ./src/mcp-types python -c \
4341
"import mcp_types, mcp_types.jsonrpc, mcp_types.methods, mcp_types.version, mcp_types.v2025_11_25, mcp_types.v2026_07_28"
4442
45-
# TODO(Max): Drop this in v2. Deliberate updates (e.g. the v2 status
46-
# banner) go through the 'override-readme-freeze' label.
47-
- name: Check README.md is not modified
48-
if: github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'override-readme-freeze')
49-
run: |
50-
git fetch --no-tags --depth=1 origin "$BASE_SHA"
51-
if git diff --name-only "$BASE_SHA" -- README.md | grep -q .; then
52-
echo "::error::README.md is frozen at v1. Edit README.v2.md instead."
53-
exit 1
54-
fi
55-
env:
56-
BASE_SHA: ${{ github.event.pull_request.base.sha }}
57-
5843
test:
5944
name: test (${{ matrix.python-version }}, ${{ matrix.dep-resolution.name }}, ${{ matrix.os }})
6045
runs-on: ${{ matrix.os }}
@@ -116,7 +101,7 @@ jobs:
116101
run: uv sync --frozen --all-extras --python 3.10
117102

118103
- name: Check README snippets are up to date
119-
run: uv run --frozen scripts/update_readme_snippets.py --check --readme README.v2.md
104+
run: uv run --frozen scripts/update_readme_snippets.py --check
120105

121106
# `mkdocs.yml` sets `strict: true` and `pymdownx.snippets: check_paths: true`,
122107
# but until this job existed the docs were only ever built post-merge by

.pre-commit-config.yaml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ repos:
4242
types: [python]
4343
language: system
4444
pass_filenames: false
45-
exclude: ^README(\.v2)?\.md$
4645
- id: pyright
4746
name: pyright
4847
entry: uv run --frozen pyright
@@ -55,15 +54,9 @@ repos:
5554
language: system
5655
files: ^(pyproject\.toml|uv\.lock)$
5756
pass_filenames: false
58-
# TODO(Max): Drop this in v2.
59-
- id: readme-v1-frozen
60-
name: README.md is frozen (v1 docs)
61-
entry: README.md is frozen at v1. Edit README.v2.md instead.
62-
language: fail
63-
files: ^README\.md$
6457
- id: readme-snippets
6558
name: Check README snippets are up to date
6659
entry: uv run --frozen python scripts/update_readme_snippets.py --check
6760
language: system
68-
files: ^(README\.v2\.md|docs_src/.*\.py|examples/.*\.py|scripts/update_readme_snippets\.py)$
61+
files: ^(README\.md|docs_src/.*\.py|scripts/update_readme_snippets\.py)$
6962
pass_filenames: false

AGENTS.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
shim) must be documented in `docs/migration.md`.
1313
- `v1.x` is the release branch for the current stable line. Backport PRs target
1414
this branch and use a `[v1.x]` title prefix.
15-
- `README.md` is frozen at v1 (a pre-commit hook rejects edits). Edit
16-
`README.v2.md` instead.
15+
- `README.md` documents v2. The v1 README lives on the `v1.x` branch.
1716

1817
## Package Management
1918

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ uv run ruff check .
105105
uv run ruff format .
106106
```
107107

108-
7. Update README snippets if you modified example code:
108+
7. Update README snippets if you modified `docs_src/` code embedded in the README:
109109

110110
```bash
111111
uv run scripts/update_readme_snippets.py

0 commit comments

Comments
 (0)