Releasing¶
Mozaiks now has a tag-driven release workflow.
The release entrypoint is:
- bump
mozaiksai/version.py - commit the version change
- push a matching Git tag
Example:
git checkout main
git pull
# edit mozaiksai/version.py -> __version__ = "1.0.1"
git add mozaiksai/version.py
git commit -m "Release 1.0.1"
git tag v1.0.1
git push origin main --tags
What The Release Workflow Does¶
The GitHub Actions workflow at .github/workflows/release.yml runs when a tag matching v* is pushed.
It:
- verifies the Git tag matches
mozaiksai.version.__version__ - builds the shared Studio frontend shell
- builds the Python sdist and wheel
- runs
twine check - installs the built wheel into a clean virtualenv
- smoke-tests the installed CLI and packaged resources
- creates a GitHub release with attached artifacts
- publishes the distributions to PyPI
PyPI Setup Requirement¶
The workflow is configured for GitHub-to-PyPI trusted publishing.
Before the first public release, configure the mozaiks project on PyPI to trust this GitHub repository and the release.yml workflow.
Until that is configured on the PyPI side, the publish-pypi job will fail even if the build and GitHub release steps succeed.
Documentation Impact¶
The packaging and release plumbing is now in place, but the public install story should only change after the first successful PyPI publish.
Until that happens:
README.md,docs/getting-started.md, anddocs/install-modes.mdshould keep the repo-first bootstrap path as the default.pip install mozaiksshould remain documented as a future public path, not the primary first-run path.
After the first successful PyPI release:
- update the first-run docs to promote
pip install mozaiks - keep the repo checkout path as the framework/developer mode
Notes¶
- The package version is now sourced from
mozaiksai/version.py. pyproject.tomlreads that value dynamically during builds.- The CLI
--versionoutput and FastAPI host version metadata now use the same version source.