This repo ships three public release surfaces:
- GitHub release for the source tree and release artifacts
- npm package
govynfor the proxy CLI - PyPI package
govynaifor the Python SDK
Do not attempt to publish the proxy itself to PyPI as govyn. That package name already belongs to another project on PyPI. The Python release target for this repo is govynai.
Use one repo version tag for the release, formatted as vX.Y.Z.
Update these files together before tagging:
package.jsonpackage-lock.jsondashboard/package.jsondashboard/package-lock.jsonpython-sdk/pyproject.tomlpython-sdk/govynai/__init__.py- Python SDK version assertions in
python-sdk/tests/
Run the full release check from the repo root:
npm run release:checkThat covers:
- root tests, lint, typecheck, build
- dashboard build
- Python SDK tests
- security scan
- Python package build
Configure these before pushing a release tag:
- npm trusted publishing for the
govynpackage, using the GitHub Actions environment namednpm - PyPI trusted publishing for the
govynaiproject, using the GitHub Actions environment namedpypi DOCKERHUB_USERNAMEandDOCKERHUB_TOKENfor Docker image publishing
- Commit the release-ready tree.
- Create an annotated tag:
git tag -a vX.Y.Z -m "vX.Y.Z"- Push the branch and tag:
git push origin main
git push origin vX.Y.ZThe tag pipeline will:
- rerun repo CI checks
- build and publish
govynto npm - build and publish
govynaito PyPI - build and push the Docker image
- create a GitHub release with packaged artifacts
The GitHub release uploads:
- npm tarball for
govyn - wheel and sdist for
govynai - packaged dashboard build
sha256sums.txt
- npm and PyPI versions are immutable once published
- if a release is bad, cut a new patch version rather than trying to overwrite the old one
- GitHub release notes can be edited after the tag is pushed, but package registries cannot be rewritten