Release Process#
Releasing a new version of the project involves a few steps to ensure that the code is ready for release. The release process itself is automated through GitHub Actions, assuming the requirements are met.
Update the Version#
The package version in pyproject.toml in the main branch must be a higher version than the last release of pyticktick. To update the version, you can manually update the version field in the pyproject.toml file, or run uv version <new_version>.
Versioning Scheme#
pyticktick follows the PyPA versioning scheme, which is derived from Semantic Versioning. The version number is composed of three parts: MAJOR.MINOR.PATCH, where:
MAJORversion when you make incompatible API changesMINORversion when you add functionality in a backward compatible mannerPATCHversion when you make backward compatible bug fixes
No pre-release or post-release tags are used in the version number.
Update the Changelog#
The changelog is tracked in the CHANGELOG.md file. The changelog must be manually updated, with the format:
...
## MAJOR.MINOR.PATCH
- Words describing the changes ([#123]((https://github.com/sebpretzer/pyticktick/pull/123)))
## MAJOR.MINOR.PATCH-1
...
The relevant section of the changelog is extracted by the GitHub Action as part of the release.
Trigger the Release#
To trigger the release, you need to go to the publish workflow. Select Run workflow from the main branch.
Wait for the workflow to finish. The workflow will automatically:
- Build the package
- Create a new release on GitHub
- Upload the package to PyPI