vibe/scripts
Mathias Gesbert 4e495f658d
v2.18.3 (#861)
Co-authored-by: Clément Drouin <clement.drouin@mistral.ai>
Co-authored-by: Laure Hugo <201583486+laure0303@users.noreply.github.com>
Co-authored-by: Paul VEZIA <166131032+le-codeur-rapide@users.noreply.github.com>
Co-authored-by: Peter Evers <peter.evers@mistral.ai>
Co-authored-by: Jules YZERD <newtonlormont@gmail.com>
Co-authored-by: Mistral Vibe <vibe@mistral.ai>
2026-06-30 15:03:21 +02:00
..
ci v2.18.2 (#857) 2026-06-29 17:35:54 +02:00
bump_version.py v2.18.3 (#861) 2026-06-30 15:03:21 +02:00
install.sh v2.7.4 (#579) 2026-04-09 18:40:46 +02:00
prepare_release.py v2.10.0 (#697) 2026-05-19 11:56:25 +02:00
README.md v2.10.0 (#697) 2026-05-19 11:56:25 +02:00

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.