Releases are published to PyPI via GitHub Actions using trusted publishing (OIDC). The workflow is triggered by creating a GitHub release.
-
Ensure CI is green on
main. -
Bump the version in three files:
pyproject.toml→version = "X.Y.Z"dompower/__init__.py→__version__ = "X.Y.Z"uv.lock→ runuv lockto update automatically
-
Commit and push:
git add pyproject.toml dompower/__init__.py uv.lock git commit -m "Bump version to X.Y.Z" git push -
Wait for CI to pass on the version bump commit.
-
Create a GitHub release:
gh release create vX.Y.Z --title "vX.Y.Z" --notes "Release notes here"
Or create via the GitHub UI at https://github.com/YeomansIII/dompower/releases/new.
-
The
Publish to PyPIworkflow runs automatically:- Runs the full test suite (Python 3.12 + 3.13)
- Builds wheel and sdist
- Publishes to PyPI via trusted publishing
-
Verify the release at https://pypi.org/p/dompower.
To publish to TestPyPI without creating a release, use the workflow dispatch:
gh workflow run publish.yml --field target=testpypiFollow semver:
- Patch (0.2.x): Bug fixes, test changes
- Minor (0.x.0): New features, new API methods
- Major (x.0.0): Breaking API changes
After publishing to PyPI, update ha-dominion-energy to require the new version in manifest.json.