|
| 1 | +How to do a release |
| 2 | +################### |
| 3 | + |
| 4 | +We use calendar versioning, similar to the `twisted/twisted` project. |
| 5 | + |
| 6 | +To do a release, follow these steps: |
| 7 | + |
| 8 | +* Create a new branch. You can name the branch `release-YEAR.MONTH`. |
| 9 | +* Update the `[metadata] version` inside `setup.cfg` |
| 10 | +* Update the `Changelog.rst` file with the summary of the changes. |
| 11 | +* Commit the changes to GitHub and create a PR |
| 12 | +* Request the review from `twisted-contributors` team. |
| 13 | +* Once the PR is approved, create a new release via `GitHub Releases<https://github.com/twisted/twisted-iocpsupport/releases/new>`_. |
| 14 | + The tag name should be the current version. Select to create a new tag. |
| 15 | + Select the release branch as the target branch. |
| 16 | + Copy/paste the release notes. |
| 17 | +* Publish the release. |
| 18 | + This will automatically trigger that creation of a new that, |
| 19 | + which in turn will trigger the build process for the wheels and will |
| 20 | + publish them to PyPI. |
| 21 | + |
| 22 | +Using GitHub Releases is not required. |
| 23 | +You can also just create and push a new tag. |
| 24 | +It will still trigger the publish process. |
| 25 | + |
| 26 | +GitHub Release should just make it a bit easier to detect the release of this project. |
| 27 | + |
| 28 | + |
| 29 | +Implementation details |
| 30 | +====================== |
| 31 | + |
| 32 | +To publish to PyPi, the GitHub Action workflow needs to be named `github-deploy.yml`. |
| 33 | +You can `reconfigure this via PyPi <https://pypi.org/manage/project/twisted-iocpsupport/settings/publishing/>`_. |
| 34 | + |
| 35 | +The binary wheels are generated using `cibuildwheel`. |
| 36 | +To build wheels for newer Python version you might need to update the version |
| 37 | +of `cibuildwheel`. |
| 38 | + |
| 39 | +To disable building binaries for older Python version you might need to |
| 40 | +edit the `[tool.cibuildwheel]` section from the `pyproject.toml` file. |
| 41 | + |
| 42 | +GitHub Action is used to run `cibuildwheel` to generate the wheels on any |
| 43 | +commit pushed to the main branch, to a PR or a tag. |
| 44 | + |
| 45 | +Any tag pushed that has a name starting with `v` will trigger the publishing |
| 46 | +to the production PyPI site. |
0 commit comments