Release process¶
Releases are automated by GitHub Actions (release-major-minor.yml ->
reusable-release-stack.yml).
Trigger¶
Manual workflow dispatch with:
bump_type:patch|minor|majoroptional
subtree_repo_owner
What the pipeline does¶
Checks out stable branch (
mainby default).Bumps lockstep versions in package
pyproject.tomlfiles.Aligns inter-package dependency constraints.
Updates root
CHANGELOG.md.Commits and pushes release changes to stable branch.
Publishes packages to PyPI in dependency order:
mini-arcade-coremini-arcade-pygame-backendmini-arcade-native-backendmini-arcade
Tags release artifacts:
mini-arcade-core-vX.Y.Zmini-arcade-pygame-backend-vX.Y.Zmini-arcade-native-backend-vX.Y.Zmini-arcade-vX.Y.Z
Creates GitHub Releases with zip assets per package subtree.
Syncs
developfrom stable branch.Pushes subtree mirrors to package repos.
Sends release notifications (Slack/Discord, if secrets are configured).
Prerequisites¶
PyPI token (
PYPI_API_TOKEN)Subtree push token (
SUBTREE_PUSH_TOKEN)Optional notification secrets for Slack/Discord
Notes¶
Versioning is lockstep across the four published packages.
Native backend pipeline builds Windows wheels and also publishes sdist.
Stable/develop branch names are configurable in workflow inputs.