@@ -213,3 +213,27 @@ To cleanup the environment delete the container:
213213 docker rm -f gitlab-test
214214 docker rm -f gitlab-runner-test
215215
216+ Releases
217+ --------
218+
219+ A release is automatically published once a month on the 28th if any commits merged
220+ to the main branch contain commit message types that signal a semantic version bump
221+ (``fix ``, ``feat ``, ``BREAKING CHANGE: ``).
222+
223+ Additionally, the release workflow can be run manually by maintainers to publish urgent
224+ fixes, either on GitHub or using the ``gh `` CLI with ``gh workflow run release.yml ``.
225+
226+ **Note: ** As a maintainer, this means you should carefully review commit messages
227+ used by contributors in their pull requests. If scopes such as ``fix `` and ``feat ``
228+ are applied to trivial commits not relevant to end users, it's best to squash their
229+ pull requests and summarize the addition in a single conventional commit.
230+ This avoids triggering incorrect version bumps and releases without functional changes.
231+
232+ The release workflow uses `python-semantic-release
233+ <https://python-semantic-release.readthedocs.io> `_ and does the following:
234+
235+ * Bumps the version in ``__version__.py `` and adds an entry in ``CHANGELOG.md ``,
236+ * Commits and tags the changes, then pushes to the main branch as the ``github-actions `` user,
237+ * Creates a release from the tag and adds the changelog entry to the release notes,
238+ * Uploads the package as assets to the GitHub release,
239+ * Uploads the package to PyPI using ``PYPI_TOKEN `` (configured as a secret).
0 commit comments