|
| 1 | +# Release Process |
| 2 | + |
| 3 | +Execute the complete release workflow for httpx-whackamole: |
| 4 | + |
| 5 | +1. **Code Quality Checks** |
| 6 | + - Run `uvx ruff check` |
| 7 | + - If errors occur, run `uvx ruff check --fix --unsafe-fixes` first |
| 8 | + - If still errors remain, fix them manually |
| 9 | + - Run `uvx ruff format` to ensure consistent formatting |
| 10 | + |
| 11 | +2. **Test Suite** |
| 12 | + - Run `./runtests.sh` |
| 13 | + - If test errors occur, STOP and notify the user immediately |
| 14 | + - DO NOT proceed with release if tests fail |
| 15 | + |
| 16 | +3. **Version Bump** |
| 17 | + - Ask the user whether to upgrade major, minor, or micro version |
| 18 | + - Provide a suggestion based on the type of changes in this release |
| 19 | + - Update the version in both `pyproject.toml`. |
| 20 | + |
| 21 | +4. **Changelog Update** |
| 22 | + - Create a Release date section in CHANGELOG.md |
| 23 | + - Use the bash `date` tool to determine today's date (format: YYYY-MM-DD) |
| 24 | + - Update and extend the links to GitHub version comparison at the bottom of the changelog |
| 25 | + |
| 26 | +5. **Git Operations** |
| 27 | + - Create a git commit with the release changes |
| 28 | + - Create a git tag with the new version (format: vX.Y.Z) |
| 29 | + |
| 30 | +6. **User Actions** |
| 31 | + - Inform the user they must manually run: |
| 32 | + - `uv build` |
| 33 | + - `uv publish` |
| 34 | + - `git push` (to push commits) |
| 35 | + - `git push --tags` (to push the created tag) |
| 36 | + - Wait for user confirmation that these steps are completed |
| 37 | + |
| 38 | +7. **GitHub Release** |
| 39 | + - Once user confirms manual steps are done, create a GitHub release |
| 40 | + - Use the `gh` CLI to create the release for the created tag |
| 41 | + - Include the changelog data for this version in the release notes |
| 42 | + |
| 43 | +IMPORTANT: Stop immediately if any tests fail. Do not proceed with the release. |
0 commit comments