Release process
One-time repository setup
- Create
Ameyanagi/ondotori-bleand push themainbranch. - Enable GitHub Pages using GitHub Actions as the source.
- Create protected
testpypiandpypienvironments. - Register each workflow as a Trusted Publisher on TestPyPI and PyPI.
- Require the CI checks before merging to
main.
No long-lived package-index token is stored in the repository.
Alpha release checklist
- Confirm the support table matches the actual decoder registry.
- Confirm all public fixtures are synthetic or explicitly anonymized.
- Run Ruff, ty, tests, strict docs,
uv build --no-sources, Twine, and wheel-content validation. - Install both built artifacts into isolated environments.
- Update the version and changelog.
- Run the manual TestPyPI workflow and install that exact release.
- Create an annotated tag matching the version, such as
v0.1.0a1. - Push the tag; the PyPI workflow verifies that tag and package versions match.
- Verify the PyPI metadata, documentation links, provenance, and fresh install.
PyPI files are immutable. If an artifact or metadata error escapes, increment the version rather than attempting to replace an existing file.
Protocol release checklist
A release that adds a decoder must also verify its model/module provenance, conversion boundaries, invalid markers, sanitized fixtures, and hardware behavior. A Bluetooth-capable product is not listed as advertisement-decoded unless its current-value layout is actually verified.