Releasing⚓︎
The PyPDFForm release process involves these initial steps:
- A version bump commit that bumps the version and formats the codebase with ruff.
- A new GitHub release with auto-generated changelogs.
These steps trigger the deployment CI.
The Create Release workflow releases the exact commit it runs on, which must be on master. The version at that commit must be the next patch, minor, or major version after the latest tag. The workflow creates the version's tag at that commit before the release, and stops if the tag already points at another commit. Rerunning it after the release exists creates nothing and succeeds.
Versioning⚓︎
PyPDFForm follows Semantic Versioning.
Documentation versioning follows a slightly different strategy, tracking only major and minor versions. For example, a release of v1.2.3 updates the documentation for v1.2, whereas a release of v1.3.0 creates documentation for v1.3.
Deploy process⚓︎
A GitHub release triggers two CIs:
- Deploy, which creates the distribution and uploads it to PyPI.
- Deploy Docs, which updates the doc site or creates a new version for minor/major releases.
When are releases done?⚓︎
Release timing depends on changes pending deployment on the master branch. Generally:
- Serious bugs are usually released immediately after they are fixed.
- New features can usually wait and are released on a weekly basis.
- Trivial changes are usually bundled with other changes and can wait indefinitely.