Releasing (maintainers)¶
Releases are built and published by GitHub Actions (.github/workflows/release.yml) using PyPI Trusted Publishing: no API token is stored anywhere.
One-time setup¶
- Create accounts on pypi.org and test.pypi.org (separate accounts), with two-factor authentication.
- On each site, add a pending trusted publisher (Your projects → Publishing → Add a new pending publisher):
- PyPI project name:
fyro - Owner and repository: your GitHub user or org, and the repository name
- Workflow name:
release.yml - Environment:
pypion pypi.org,testpypion test.pypi.org
- PyPI project name:
- In the GitHub repository, Settings → Environments: create
testpypiandpypi(optionally require your approval forpypi). - Settings → Pages: set Source to GitHub Actions for the docs site.
Each release¶
- Update
versioninpyproject.tomlandCHANGELOG.md; commit. - Check locally:
uv run ruff check && uv run pytest && uv build. - Tag and push:
git tag v0.1.0 && git push origin v0.1.0. - The workflow checks the tag matches the version, builds, installs the wheel in a clean environment, publishes to TestPyPI, then to PyPI.
- Check:
uv run --isolated --no-project --with fyro -- python -c "import fyro".