Repository navigation
ci: publish to PyPI on release and add manual Prepare Release workflow - #14
Merged
Merged
Conversation
Mirrors the stormlibpp release setup: - release.yml verifies the tag matches the package version, uploads the package to PyPI with PYPI_DEPLOY_TOKEN, and uses the CHANGELOG entry as the GitHub Release notes. - prepare-release.yml (workflow_dispatch) runs the tests, bumps the version, rolls the CHANGELOG "## Unreleased" section, commits, and pushes a v#.#.# tag with RELEASE_TOKEN, which triggers release.yml. - Adds scripts/changelog.py, CHANGELOG.md, and a `make tests` target, and `make release` now rolls the CHANGELOG too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KBLBzjg3yC85kzUV1oRyyD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mirrors the PyPI release setup from stormlibpp so pyhatching can be released entirely from CI.
Changes
release.yml(onv*tag push): verifies the tag matches thepyproject.tomlversion, uploads the package to PyPI withPYPI_DEPLOY_TOKEN, and uses the version'sCHANGELOG.mdentry as the GitHub Release notes (plus auto-generated notes). Same as stormlibpp's, minus the Storm package steps.prepare-release.yml(new, manualworkflow_dispatch): runs the tests, bumps the version (patch/minor/major or explicit), rolls## UnreleasedinCHANGELOG.mdinto the new version's entry, commits, and pushes av#.#.#tag usingRELEASE_TOKEN, which triggersrelease.yml.scripts/changelog.py: copied from stormlibpp.CHANGELOG.md(new): seeded with an## Unreleasedsection covering the changes since v0.3.1. Please review these entries before the first release.Makefile: addsmake tests;make releasenow also rolls the changelog.README.md: new "Releasing" section.Before the first CI release
Add these repository secrets:
PYPI_DEPLOY_TOKEN: PyPI API token with upload rights for pyhatching.RELEASE_TOKEN: token with Contents read/write from an account that can bypassmain's branch protection. Prepare Release fails immediately without it.DOCS_DISPATCH_TOKEN: already used by the existing workflow.Testing
Workflow YAML parses, and
scripts/changelog.py release/noteswere exercised on a scratch copy ofCHANGELOG.md. The workflows themselves haven't run yet.Generated by Claude Code