Release process¶
- Update
CHANGELOG.md— move items from[Unreleased]into the new version. - Pick the version number from the closing milestone's content:
- If the
Changed (behavior)section is empty, ship the milestone's patch tag (e.g. closev0.2.1→ releasev0.2.1). - If
Changed (behavior)has any entry, bump to the next minor instead (e.g. closev0.2.1→ releasev0.3.0). Behaviour changes don't go out as patch releases. - Bump the version in
pyproject.tomlandsdwan_mcp/__init__.py. -
Commit on
mainonce CI is green: -
Tag and push:
-
The
releaseworkflow runs on the tag. It builds the sdist + wheel, attaches them to a GitHub release, and publishes to PyPI via trusted publishing — OIDC, no API token in the repo. -
A companion workflow (
milestone-rollover.yml) fires on the same tag push and performs the milestone auto-rollover step: it closes the milestone whose title matches the released tag and opens the next patch milestone (e.g. closev0.2.1→ openv0.2.2). Re-target any leftover open issues at the new milestone.
The docs workflow deploys mkdocs-material to GitHub Pages on pushes to main that touch docs/**, mkdocs.yml, or the workflow itself (and via workflow_dispatch).