Releasing¶
Mozaiks has a tag-driven release workflow.
Keep versions pre-1.0.0 until the repo contracts, CLI UX, and Studio-first builder flow settle. A 0.x release is the honest signal to users that breaking changes can still happen.
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__ = "<version>"
git add mozaiksai/version.py
git commit -m "Release <version>"
git tag v<version>
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.
The mozaiks PyPI project must 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¶
Public install docs should present pip install mozaiks followed by python -m mozaiks ... so PATH mechanics stay out of the main onboarding flow. The mozaiks command can be mentioned as an optional shortcut only. Keep source-checkout setup separate 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.