Aller au contenu

lore release

Générer des notes de version depuis votre corpus de documentation.

Synopsis

lore release [flags]

Qu'est-ce que ça fait ?

lore release lit votre corpus et génère des notes de version automatiquement. Au lieu d'écrire "ce qui a changé dans la v1.2.0" de mémoire, Lore collecte tous les documents créés entre deux tags et les regroupe par type : features, bugfixes, décisions, refactors.

Analogie : Comme chaque commit a été documenté au fil du temps, lore release agrège simplement ces enregistrements — transformant votre corpus en changelog structuré.

Scénario concret

Vendredi après-midi. Vous êtes sur le point de tagger v1.2.0. Au lieu d'écrire les notes de version à la main (scroller dans git log, essayer de se rappeler ce qui comptait), vous laissez Lore les générer :

lore release --version v1.2.0

3 features, 2 bugfixes, 1 décision — tout documenté au moment du commit, maintenant agrégé en notes de version professionnelles. 5 secondes au lieu de 30 minutes.

lore release

Flags

Flag Type Défaut Description
--from string Dernier tag Début de la plage de commits (tag ou SHA)
--to string HEAD Fin de la plage
--version string Label de version pour les notes
--quiet bool false Afficher uniquement le chemin du fichier généré

Comment ça marche

graph TD
    A[lore release --version v1.2.0] --> B[Trouver la plage de commits]
    B --> C{--from spécifié ?}
    C -->|Oui| D[Utiliser --from comme début]
    C -->|Non| E[Trouver le dernier tag automatiquement]
    D --> F[Collecter tous les .lore/docs entre début et --to]
    E --> F
    F --> G[Grouper par type : features, bugfixes, décisions...]
    G --> H[Générer release-v1.2.0-date.md]
    H --> I[Mettre à jour CHANGELOG.md]
    I --> J[Mettre à jour .lore/releases.json]

Sortie

Le fichier généré dans .lore/docs/ :

# Release v1.2.0 (2026-03-16)

## Features
- Add rate limiting to API endpoints
- Add user authentication middleware

## Bug Fixes
- Fix token refresh race condition

## Decisions
- Switch to PostgreSQL for data persistence

## Refactors
- Extract auth middleware into dedicated package

Met également à jour : - CHANGELOG.md — Nouveau header de version en haut - .lore/releases.json — Métadonnées des releases

Exemples

Le plus courant : release depuis le dernier tag

lore release --version v1.2.0
# → Collecte les documents depuis v1.1.0
# → Génère .lore/docs/release-v1.2.0-2026-03-16.md
# → Met à jour CHANGELOG.md

Entre deux tags spécifiques

lore release --version v1.2.0 --from v1.0.0

Mode silencieux (Scripting)

filepath=$(lore release --version v1.2.0 --quiet)
echo "Notes de version : $filepath"
# → .lore/docs/release-v1.2.0-2026-03-16.md

Workflow de release typique

# 1. Vérifier la cohérence du corpus
lore angela review

# 2. Générer les notes de version
lore release --version v1.2.0

# 3. Relire les notes générées
lore show "release v1.2.0"

# 4. Committer les notes
git add .lore/docs/release-*.md CHANGELOG.md
git commit -m "docs: release notes for v1.2.0"

# 5. Tagger et pousser
git tag v1.2.0
git push origin main v1.2.0
# → GoReleaser récupère CHANGELOG.md automatiquement

Questions fréquentes

"Aucun document dans la plage"

lore release --version v1.2.0
# → Erreur : aucun document trouvé entre v1.1.0 et HEAD
# Aucun commit de cette plage n'a été documenté. Corrigez avec : lore pending resolve

"Je n'ai pas encore taggé ?"

Si aucun tag n'existe, utilisez --from avec un hash de commit :

lore release --version v1.0.0 --from $(git rev-list --max-parents=0 HEAD)
# → Utilise le tout premier commit comme point de départ

"Ça marche avec GoReleaser ?"

Oui. GoReleaser lit CHANGELOG.md par défaut. lore release met à jour ce fichier.

"Le document de release est cherchable ?"

Oui. C'est un document Lore normal avec type: release. Trouvez-le avec lore show --type release.

Tips & Tricks

  • Avant git tag — pour inclure les notes dans le commit taggé.
  • lore angela review d'abord — détectez les contradictions avant de publier.
  • Le document fait partie du corpus — cherchable avec lore show --type release.
  • Pair avec GoReleaserCHANGELOG.md alimente directement goreleaser release.
  • Automatisez en CIlore release --version $TAG --quiet dans votre pipeline.

Codes de sortie

Code Signification
0 Notes de version générées
1 Erreur (pas de documents, pas de tags)

Voir aussi