Releases are tag-driven. Pushing a v*.*.* tag triggers
.github/workflows/publish.yml, which builds the sdist + wheel and
uploads to PyPI via the trusted-publisher OIDC flow (no API token in
GitHub secrets).
-
Update
src/readyapis/_version.pyandpyproject.tomlto the new version. -
Add a
## [X.Y.Z]section toCHANGELOG.mdsummarizing user-visible changes. -
Open a PR, get CI green, merge.
-
Tag the merge commit and push:
git tag v0.2.0 git push origin v0.2.0
-
Watch the publish workflow on Actions. The job:
- Installs
build, runspython -m buildto producedist/. - Imports the freshly-built wheel as a smoke test.
- Uploads to PyPI via OIDC trusted publishing.
- Installs
-
Verify on PyPI: https://pypi.org/project/readyapis/. Should appear within a minute.
Trusted-publisher configuration on PyPI side:
- Visit https://pypi.org/manage/project/readyapis/settings/publishing/.
- Add a new pending publisher:
- Owner:
ReadyAPIs-com - Repository:
readyapis-python - Workflow:
publish.yml - Environment: leave blank (or pin to a release env if you set one up)
- Owner:
After the first successful run the pending-publisher graduates and subsequent tag pushes publish without further setup.
SemVer. Breaking changes bump major. New endpoint coverage bumps minor. Bug fixes / docs bump patch. Pre-1.0: minor bumps may include breaking changes for surface that has fewer than five external consumers, documented in CHANGELOG.