Repository navigation
Document the full release: version bump, tag, PyPI, Hugging Face Space - #23
Merged
Merged
Conversation
RELEASING.md now covers every step of a release, not only the Space push: - Bump the version in all four places that carry it (pyproject.toml, uv.lock via `uv version`, world.py and openenv.yaml), through a PR with the check list green; fixtures keep the world_version they were frozen at. - Tag the merged main commit vX.Y.Z, after checking the hand-edited versions, and release from a fresh clone of the tag. - Build out of tree (openenv push uploads everything but dot-files), inspect the wheel and sdist, and smoke-test the wheel in a throwaway environment, asserting world.version matches the package version. - Publish with `uv publish` and a project-scoped UV_PUBLISH_TOKEN, note that a PyPI version can never be re-uploaded, and verify the published package by installing it. - Push to the Space, set its card and test it, as before. The Space's Dockerfile builds from the uploaded checkout, so PyPI goes first only because it cannot be redone. AGENTS.md's pointer to RELEASING.md now names what it covers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FVqE8sQ6jvyHDJJjQ1yaWK
4 of 5 tasks
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.
Summary
.github/RELEASING.mdused to cover only the Hugging Face Space push. It now walks through the whole release in seven numbered steps:Bump the version in all four places that hold it:
pyproject.tomlanduv.lock, both set byuv version X.Y.Zsrc/seahaven_stripe_world/world.pyandopenenv.yaml, both edited by handThe bump merges through a PR once the check list is green. Each fixture keeps the
world_versionit was frozen at, and the doc gives the reason (frozen_world_version, SH403).Tag the merged
maincommitvX.Y.Z. First,grepthe two hand-edited version fields to confirm they were changed.Check the release from a fresh clone of the tag:
openenv validate.uv buildinto a directory beside the clone.openenv pushuploads everything except dot-files, so adist/inside the clone would end up on the Space.world.versionmatches the package version.Publish to PyPI by hand with
uv buildanduv publish, using a project-scopedUV_PUBLISH_TOKEN. The doc covers:--check-urlfor retrying an upload that stopped partway.to 7. Push to the Space, set the Space card, test the Space. Unchanged, except that they now run from the release clone. The Space's
Dockerfilebuilds from the uploaded tree, not from PyPI. PyPI goes first only because it is the one step that cannot be redone.The
AGENTS.mdline that points to RELEASING.md now says what it covers.Heads-up: v0.3.0 shipped with only part of the version bump
372d2ce("version bump for release", taggedv0.3.0) changed onlypyproject.tomlanduv.lock.world.pyandopenenv.yamlonmainstill say0.2.0, so the publishedseahaven-stripe-world==0.3.0wheel reportsworld.version == "0.2.0". This PR's post-publish check fails on 0.3.0 withAssertionError: 0.2.0. This PR does not fix that. PyPI won't accept a second 0.3.0, so the clean fix is a 0.3.1 release that follows this checklist.Test plan
uv run ruff format --check && uv run ruff check,uv run ty check,uv run pytest,uv run seahaven check: all passuv versionchanges onlypyproject.tomlanduv.lock; after the hand edits there are exactly four changed files. The suite andseahaven checkpass with the fixtures left at their oldworld_version.v0.3.0.AssertionError: 0.2.0, which is how it caught the partial bump above.uv publishandopenenv pushwere not run (they publish)Generated by Claude Code