Skip to content

Releases publish themselves when a new version reaches main - #10

Merged
aranculleton merged 1 commit into
mainfrom
release-from-main
Oct 19, 2026
Merged

aranculleton merged 1 commit into
mainfrom
release-from-main

Conversation

@aranculleton

Copy link
Copy Markdown
Owner

What changed

The publish workflow ran on a pushed v* tag. A Claude Code session can push branches but not tags (the push is refused), and before that releases were made by hand on the website, the step nothing reminds anyone of. So 0.2.0 is merged and unpublished.

Now it runs on a push to main that changes the version, and on demand:

  1. build checks __version__, both server.json versions and a ## X.Y.Z ( CHANGELOG entry agree (fails loudly if not), and stops quietly when vX.Y.Z is already tagged.
  2. publish to PyPI by trusted publishing, skip-existing so a half-finished run can simply run again.
  3. release tags the published commit and creates the GitHub release with the CHANGELOG entry as notes and the built files attached.
  4. mcp-registry as before.

CONTRIBUTING's Releases section says so, with the version rule (semver: patch for fixes only, minor for anything a user notices, major for a change to their code). Merging this publishes 0.2.0.

How it was checked

  • The workflow parses, and its version step was run locally against this tree: version=0.2.0, new=true. v0.1.0 to v0.1.2 exist, so none of those is published again.

  • Not testable before merge: the PyPI upload from a main push. If the pypi environment only allows tags, the publish job will say so and I will report it.

  • pytest and ruff check . pass

  • No runtime dependency added; works on Python 3.9

  • robots.txt and the request limits are respected (no reader changed)


Generated by Claude Code

A session can push a branch but not a tag, and a release made by hand on
the website is the step nothing reminds anyone of. The publish workflow
now runs on a push to main that changes the version: when the package,
server.json and the CHANGELOG agree and no v<version> tag exists, it
publishes to PyPI, then tags the commit and creates the GitHub release,
then lists the server in the MCP Registry. A version already tagged is
never published again; PyPI's upload skips files it already has, so a
run that stopped halfway can simply run again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LrnN33G65kWMuv8y7xpUk4
@aranculleton
aranculleton merged commit dfd7569 into main Oct 19, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants