Release tapo & tapo-py
Release a new version of the tapo (Rust) and tapo-py (Python) crates. Both libraries are released simultaneously and share the same version number.
Steps
Determine the new version. Read the current version from
tapo/Cargo.toml. Ask the user what the new version should be if not provided.Bump the versions. Update the
versionfield in both:tapo/Cargo.tomltapo-py/pyproject.toml
Update changelog. In
CHANGELOG.md:- Replace the heading
## [Python Unreleased][Unreleased]with## [Python vX.X.X][vX.X.X] - YYYY-MM-DD(use the current date). - Replace the heading
## [Rust Unreleased][Unreleased]with## [Rust vX.X.X][vX.X.X] - YYYY-MM-DD(use the current date). - Insert new empty
## [Rust Unreleased][Unreleased]and## [Python Unreleased][Unreleased]sections (in that order) immediately above the newly versioned Rust section. - If a
## [MCP Unreleased][Unreleased]section exists elsewhere in the file, move it (with its body intact) so it sits immediately after the new## [Python Unreleased][Unreleased]section, keeping all three Unreleased sections grouped at the top in the order Rust → Python → MCP. - Add a link reference
[vX.X.X]: https://github.com/mihai-dinculescu/tapo/tree/vX.X.Xto the link definitions at the bottom of the file (right after the[Unreleased]link).
- Replace the heading
Commit. Run
/commitwith messagechore(tapo): release vX.X.X.Tag. Create an annotated git tag:
git tag -a vX.X.X -m "vX.X.X"Push. Ask the user for confirmation, then:
git push && git push origin vX.X.XCreate GitHub release. Ask the user for confirmation. Use the content under the
## [Rust vX.X.X][vX.X.X]and## [Python vX.X.X][vX.X.X]headings fromCHANGELOG.mdas the release body, followed by a full changelog comparison link. The previous version (vP.P.P) is the tag before this release:gh release create vX.X.X --title "Tapo vX.X.X" --notes "$(cat <<'EOF' ## Rust <rust changelog content here> ## Python <python changelog content here> **Full Changelog**: https://github.com/mihai-dinculescu/tapo/compare/vP.P.P...vX.X.X EOF )"