Skip to content

ci: tag-driven release + PyPI publish on tag push#11

Merged
lesnik512 merged 1 commit into
mainfrom
ci/tag-driven-release
Jun 25, 2026
Merged

ci: tag-driven release + PyPI publish on tag push#11
lesnik512 merged 1 commit into
mainfrom
ci/tag-driven-release

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Ports modern-di's tag-driven release model here. Pushing a semver tag now publishes to PyPI and creates the matching GitHub Release in one job, replacing the old "publish a GitHub Release to trigger PyPI" flow (publish.yml).

  • Old on: release: published trigger removed — the new workflow creates a published Release itself, which would otherwise re-fire it and double-publish.
  • PyPI runs first (irreversible); the Release is only created if just publish succeeds. just publish derives the version from the tag via uv version.
  • Release description: planning/releases/<tag>.md verbatim if present, else GitHub auto-notes. Pre-release tags (2.0.0rc1) are flagged.
  • No in-workflow CI gate — by convention a tag is cut only off a green main.

Infra-only: no release is cut by this PR.

🤖 Generated with Claude Code

Replace publish.yml (on: release: published) with a tag-driven release.yml:
pushing a semver tag publishes to PyPI and creates the matching GitHub Release
in one job. Removing publish.yml prevents a double-publish — the new workflow
creates a published Release itself. Ported from modern-python/modern-di.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@lesnik512 lesnik512 merged commit 820056b into main Jun 25, 2026
6 checks passed
@lesnik512 lesnik512 deleted the ci/tag-driven-release branch June 25, 2026 09:24
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.

1 participant