VERSION (racine) devient la source unique de verite MAJEUR.MINEUR.CORRECTIF, incrementee a chaque commit par le hook prepare-commit-msg (BREAKING -> majeur, feat -> mineur, sinon correctif) ; post-commit rattache les fichiers derives au commit et cree le tag vX.Y.Z, publie au push (push.followTags). Tous les derives sont resynchronises : package.json, desktop Tauri, README.md/README.fr.md, docs/ROADMAP.md, CHANGELOG.md. Backend, image Docker et desktop lisent le meme fichier (plus de numero code en dur). Outils : scripts/bump_version.py, scripts/install-hooks.sh. Tests : tests/test_version.py (46, garde-fou de coherence globale).
35 lines
1.2 KiB
Bash
35 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
# -----------------------------------------------------------------------------
|
|
# ObsiGate — version bump helper (SemVer MAJEUR.MINEUR.CORRECTIF)
|
|
#
|
|
# Wrapper historique : toute la logique vit dans `scripts/bump_version.py`
|
|
# (source unique de vérité : `./VERSION`, incrément inspiré des
|
|
# Conventional Commits).
|
|
#
|
|
# breaking (`!:` / BREAKING CHANGE) -> MAJEUR (x.0.0)
|
|
# `feat` -> MINEUR (x.y.0)
|
|
# tout le reste (fix, perf, …) -> CORRECTIF (x.y.z)
|
|
#
|
|
# Usage :
|
|
# scripts/bump_version.sh --dry-run # prévisualiser
|
|
# scripts/bump_version.sh # bump + synchro des fichiers
|
|
# scripts/bump_version.sh --minor --commit --tag --push
|
|
# scripts/bump_version.sh --print-version
|
|
#
|
|
# Voir `scripts/bump_version.py --help` pour la liste complète des options.
|
|
# -----------------------------------------------------------------------------
|
|
set -euo pipefail
|
|
|
|
root="$(git rev-parse --show-toplevel)"
|
|
|
|
py=""
|
|
for cand in python3 python; do
|
|
if command -v "$cand" >/dev/null 2>&1; then py="$cand"; break; fi
|
|
done
|
|
if [ -z "$py" ]; then
|
|
echo "✗ Aucun interpréteur Python trouvé (python3 / python)." >&2
|
|
exit 1
|
|
fi
|
|
|
|
exec "$py" "$root/scripts/bump_version.py" "$@"
|