Skip to content

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:

  1. MAJOR version when you make incompatible API changes
  2. MINOR version when you add functionality in a backward compatible manner
  3. PATCH version 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:

docs/CHANGELOG.md
...
## 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:

  1. Build the package
  2. Create a new release on GitHub
  3. Upload the package to PyPI