Release process¶
Nobody cuts releases here — the automation does. Versions are derived from what actually changed by vibey-gh and published to PyPI via Trusted Publishing (OIDC — no long-lived token stored anywhere).
- Feature PRs squash-merge into
develop; every push todeveloppublishes a.devNbuild to TestPyPI. promote-to-main.ymlcomparesdevelopandmainby content, opens the promotion PR when they differ, applies the derived version bump, waits for checks, and rebase-merges. That push publishes to PyPI (TestPyPI first, then a verify step, then PyPI).- After each publish,
developis fast-forwarded ontomainautomatically — never back-merge by hand.
vibey-gh version --since origin/main --explain shows the derivation. There
is no release-please, no standing release PR, and no manual tag in the normal
flow; a v* tag only attaches artifacts to a GitHub Release.