Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com> Co-authored-by: Mathias Gesbert <mathias.gesbert@mistral.ai> Co-authored-by: Maxime Dolores <maxime.dolores@ext.mistral.ai> Co-authored-by: Nelson PROIA <144663685+Nelson-PROIA@users.noreply.github.com> Co-authored-by: Paul VEZIA <166131032+le-codeur-rapide@users.noreply.github.com> Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai> Co-authored-by: Quentin <quentin.torroba@mistral.ai> Co-authored-by: Val <102326092+vdeva@users.noreply.github.com> Co-authored-by: Vincent G <10739306+VinceOPS@users.noreply.github.com> Co-authored-by: Mistral Vibe <vibe@mistral.ai> |
||
|---|---|---|
| .. | ||
| ci | ||
| bump_version.py | ||
| install.sh | ||
| prepare_release.py | ||
| README.md | ||
Project Management Scripts
This directory contains scripts that support project versioning and deployment workflows.
Versioning
Usage
# Bump major version (1.0.0 -> 2.0.0)
uv run scripts/bump_version.py major
# Bump minor version (1.0.0 -> 1.1.0)
uv run scripts/bump_version.py minor
# Bump patch/micro version (1.0.0 -> 1.0.1)
uv run scripts/bump_version.py micro
# or
uv run scripts/bump_version.py patch
Releasing
prepare_release.py builds the release branch from the previous public release tag, cherry-picks commits from the matching -private tags, and (by default) squashes them into a single release commit.
As part of release branch creation, the script freezes the full transitive dependency graph into both [project].dependencies and [dependency-groups].build of pyproject.toml using the current uv.lock:
uv export --no-hashes --no-dev --no-emit-project --frozen --format requirements.txt
uv export --only-group build --no-emit-project --no-hashes --frozen --format requirements.txt
The pinned [project].dependencies is what uv build reads in .github/workflows/release.yml, so the wheel published to PyPI carries Requires-Dist: entries pinned to exact versions (with environment markers preserved). End users installing mistral-vibe from PyPI get the same dependency set the team tested against.
The pinned [dependency-groups].build is what uv sync --no-dev --group build reads in .github/workflows/build-and-upload.yml, so the PyInstaller binaries on each release tag are built against the exact same PyInstaller / truststore versions every time.
main keeps >= ranges, so day-to-day upgrades on main (uv lock --upgrade-package …, Renovate PRs, etc.) are unaffected. Each new release re-snapshots uv.lock — there is no hand-maintained pin list.