This document describes the manual process for creating a new release of ezcoo-cli.
- Ensure you have the
ghCLI tool installed and authenticated - Ensure you have PyPI credentials configured (via
~/.pypircor environment variables) - Ensure all tests pass locally:
./scripts/test-replay.sh - Ensure the working directory is clean (no uncommitted changes)
Edit pyproject.toml and update the version number:
[project]
version = "X.Y.Z" # Update this lineCreate or update CHANGELOG.md with the changes in this release:
## [X.Y.Z] - YYYY-MM-DD
### Added
- New features
### Changed
- Changes to existing functionality
### Fixed
- Bug fixesgit add pyproject.toml CHANGELOG.md
git commit -m "chore: bump version to X.Y.Z"
git push origin maingit tag -a vX.Y.Z -m "Release vX.Y.Z"
git push origin vX.Y.Zuv buildThis creates distribution files in the dist/ directory:
ezcoo_cli-X.Y.Z-py3-none-any.whlezcoo_cli-X.Y.Z.tar.gz
gh release create vX.Y.Z \
--title "vX.Y.Z" \
--notes-file CHANGELOG.md \
dist/*Or create the release manually via the GitHub web interface:
- Go to https://github.com/YOUR_USERNAME/ezcoo-cli/releases/new
- Select the tag
vX.Y.Z - Set the release title to
vX.Y.Z - Copy the changelog content into the description
- Upload the files from
dist/ - Publish the release
uv publishThe AUR package needs to be updated after the PyPI release:
-
Clone the AUR repository (if not already cloned):
git clone ssh://aur@aur.archlinux.org/ezcoo-cli.git aur-ezcoo-cli cd aur-ezcoo-cli -
Update the
PKGBUILDfile:- Update
pkgverto the new version (without the 'v' prefix) - Update
pkgrelto1(reset for new version) - Update checksums by running:
updpkgsums
- Update
-
Update
.SRCINFO:makepkg --printsrcinfo > .SRCINFO -
Test the package builds correctly:
makepkg -si
-
Commit and push to AUR:
git add PKGBUILD .SRCINFO git commit -m "Update to version X.Y.Z" git push
- Check the GitHub release: https://github.com/YOUR_USERNAME/ezcoo-cli/releases
- Check PyPI: https://pypi.org/project/ezcoo-cli/
- Check AUR: https://aur.archlinux.org/packages/ezcoo-cli
- Test installation:
pip install ezcoo-cli==X.Y.Z
If uv publish fails, you may need to configure PyPI credentials:
# Using environment variables
export TWINE_USERNAME=__token__
export TWINE_PASSWORD=pypi-...
# Or create ~/.pypirc
[pypi]
username = __token__
password = pypi-...Ensure you have the gh CLI authenticated:
gh auth loginIf the version already exists on PyPI, you must bump to a new version. PyPI does not allow re-uploading the same version.
After a successful release:
- Announce the release (if applicable)
- Update any documentation that references version numbers
- Close any related GitHub issues/milestones