Skip to content

Commit 2c2377a

Browse files
committed
Address review: one publish step, no mkdocs watch list, stable classifier
- publish-pypi: build both packages into one dist/ and publish in a single step with skip-existing, so a partially failed upload is fixed by re-running the job rather than by step ordering. - mkdocs: drop the watch package list instead of extending it. - The Development Status classifier is permanently 5 - Production/Stable; say so in RELEASE.md and set it on mcp-types, which #2975 left at Alpha.
1 parent 631efd8 commit 2c2377a

4 files changed

Lines changed: 10 additions & 21 deletions

File tree

.github/workflows/publish-pypi.yml

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ jobs:
2828

2929
- name: Build
3030
run: |
31-
uv build --package mcp-types -o dist/types
32-
uv build --package mcp -o dist/mcp
31+
uv build --package mcp
32+
uv build --package mcp-types
3333
3434
- name: Upload artifacts
3535
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -56,18 +56,9 @@ jobs:
5656
name: release-dists
5757
path: dist/
5858

59-
# The `mcp` wheel exact-pins `mcp-types`, so the dependency must publish
60-
# first: if its upload fails, nothing `mcp`-named has been uploaded yet and
61-
# `pip install mcp` keeps resolving to the previous release. `skip-existing`
62-
# lets a re-run after a failed `mcp` upload get past the already-published
63-
# `mcp-types`; the `mcp` step omits it so a duplicate upload still fails loudly.
64-
- name: Publish mcp-types to PyPI
59+
- name: Publish package distributions to PyPI
6560
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # release/v1
6661
with:
67-
packages-dir: dist/types
62+
# Lets a re-run after a partially failed upload publish the remaining
63+
# files instead of erroring on the ones already on PyPI.
6864
skip-existing: true
69-
70-
- name: Publish mcp to PyPI
71-
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # release/v1
72-
with:
73-
packages-dir: dist/mcp

RELEASE.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ version, and the `mcp` wheel exact-pins `mcp-types`. Before the first release
2828
that includes both, the `mcp-types` PyPI project must be given the same
2929
trusted publisher as `mcp` (this repository, workflow `publish-pypi.yml`,
3030
environment `release`) and the same owners — without it the `mcp-types`
31-
upload is rejected. The publish workflow uploads `mcp-types` first so that a
32-
failed upload stops the job before anything `mcp`-named has been published.
31+
upload is rejected. If only some of the files upload, fix the cause and re-run
32+
the publish job — `skip-existing` makes it skip whatever already landed. The
33+
`Development Status` classifier in both `pyproject.toml` files is permanently
34+
`5 - Production/Stable`; it is not bumped as part of any release.
3335

3436
1. Check the full test matrix is green on the release commit. The matrix runs
3537
with `continue-on-error`, so a green workflow run does not mean the tests

mkdocs.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,6 @@ markdown_extensions:
101101
custom_checkbox: true
102102
- sane_lists # this means you can start a list from any number
103103

104-
watch:
105-
- src/mcp
106-
- src/mcp-types
107-
108104
plugins:
109105
- search
110106
- social:

src/mcp-types/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ maintainers = [
1414
keywords = ["mcp", "llm", "automation"]
1515
license = { text = "MIT" }
1616
classifiers = [
17-
"Development Status :: 3 - Alpha",
17+
"Development Status :: 5 - Production/Stable",
1818
"Intended Audience :: Developers",
1919
"License :: OSI Approved :: MIT License",
2020
"Programming Language :: Python :: 3",

0 commit comments

Comments
 (0)