|
| 1 | +# Release process for `changelist` |
| 2 | + |
| 3 | +## Introduction |
| 4 | + |
| 5 | +Example `version` |
| 6 | + |
| 7 | +- 1.8.dev0 # development version of 1.8 (release candidate 1) |
| 8 | +- 1.8rc1 # 1.8 release candidate 1 |
| 9 | +- 1.8rc2.dev0 # development version of 1.8 release candidate 2 |
| 10 | +- 1.8 # 1.8 release |
| 11 | +- 1.9.dev0 # development version of 1.9 (release candidate 1) |
| 12 | + |
| 13 | +## Process |
| 14 | + |
| 15 | +- Update and review `CHANGELOG.md`: |
| 16 | + |
| 17 | + changelist scientific-python/changelist <v0.0> main --version <0.1> >> CHANGELOG.md |
| 18 | + |
| 19 | + where <v0.0> is the last release and <0.1> is the new one. |
| 20 | + |
| 21 | +- Update `version` in `pyproject.toml`. |
| 22 | + |
| 23 | +- Commit changes: |
| 24 | + |
| 25 | + git add pyproject.toml CHANGELOG.md |
| 26 | + git commit -m 'Designate <version> release' |
| 27 | + |
| 28 | +- Add the version number (e.g., `1.2.0`) as a tag in git: |
| 29 | + |
| 30 | + git tag -s [-u <key-id>] v<version> -m 'signed <version> tag' |
| 31 | + |
| 32 | + If you do not have a gpg key, use -u instead; it is important for |
| 33 | + Debian packaging that the tags are annotated |
| 34 | + |
| 35 | +- Push the new meta-data to github: |
| 36 | + |
| 37 | + git push --tags origin main |
| 38 | + |
| 39 | + where `origin` is the name of the `github.com:scientific-python/changelist` |
| 40 | + repository |
| 41 | + |
| 42 | +- Review the github release page: |
| 43 | + |
| 44 | + https://github.com/scientific-python/changelist/tags |
| 45 | + |
| 46 | +- Publish on PyPi: |
| 47 | + |
| 48 | + git clean -fxd |
| 49 | + pip install -U build twine wheel |
| 50 | + python -m build --sdist --wheel |
| 51 | + twine upload -s dist/* |
| 52 | + |
| 53 | +- Update `version` in `pyproject.toml`. |
| 54 | + |
| 55 | +- Commit changes: |
| 56 | + |
| 57 | + git add pyproject.toml |
| 58 | + git commit -m 'Bump version' |
| 59 | + git push origin main |
0 commit comments