Releases
On this page
main holds tagged releases. The shared branch and release policy
covers release and hotfix PRs.
Publish a release
- Run the repository checks and
uv build. - Merge the release PR into
main. Tag it, for examplev0.1.0-alpha.7, and publish the GitHub release. The owner approves each step. - In Actions → release packages → Run workflow, choose
mainand enter the tag. The workflow checks that the tag matches the package version. It builds the wheel and the source archive and writesSHA256SUMSwith plain file names. It checks that file in a fresh folder and attaches all three files to the release. It never replaces an asset. - To upload to PyPI, run it again with Also upload to PyPI. The upload uses trusted
publishing: GitHub gives the job a short-lived identity, and no PyPI token is stored.
The
pypienvironment waits for the owner's approval.
Check a download
mkdir release-check
cd release-check
gh release download v0.1.0-alpha.7 --repo adidshaft/grok-gadgets-linux-sdk
shasum -a 256 -c SHA256SUMS
Releases made before this workflow may list dist/ paths in SHA256SUMS
(hub #151).
One-time PyPI setup (owner)
- Sign in to pypi.org with two-factor authentication on.
- Open Your projects → Publishing → Add a new pending publisher → GitHub. Enter
PyPI project
grok-gadgets-linux-sdk, owneradidshaft, repositorygrok-gadgets-linux-sdk, workflowrelease.ymland environmentpypi. - In GitHub, open Settings → Environments → New environment, name it
pypi. Addadidshaftas a required reviewer. Under deployment branches, allow onlymain.
The first approved upload creates the PyPI project. After that, the pending publisher
becomes a normal trusted publisher for grok-gadgets-linux-sdk.