
# Notes de version

```text
Usage: sovrium changelog [<version>] [--list] [--since <version>] [--format md|json] [--output <path>]
```

Chaque version de Sovrium publie des notes de version : ce qui a cassé, ce qui est nouveau, ce qui a été corrigé et ce qui est devenu plus rapide. Le binaire embarque ces notes pour chaque version : la réponse à « qu'est-ce qui a changé ? » est donc toujours à une commande de distance — sur votre ordinateur, sur un serveur sans accès à Internet, ou dans l'IA qui modifie votre configuration.

Les notes qu'affiche le binaire sont celles publiées avec lui. Rien n'est téléchargé, et rien dans votre projet n'est lu.

## Ce qui a changé dans la version que j'exécute

```bash
sovrium changelog
```

Affiche l'entrée de la version que rapporte `sovrium --version`, puis une ligne indiquant combien de versions antérieures le binaire connaît.

Une entrée ressemble à ceci :

```markdown
## 0.27.0 (2026-09-23)

### Features

- **cli**: add sovrium docs --export for documentation sites

### Bug Fixes

- **pages**: keep what is typed into a form inside a tab panel
```

Le préfixe en gras nomme la partie de Sovrium que touche un changement. Une version sans rien de visible pour vous le dit en une ligne.

Un binaire que vous avez compilé vous-même entre deux versions n'a pas encore d'entrée publiée qui lui soit propre. Il le dit, et affiche la dernière entrée qu'il embarque.

## Une version

```bash
sovrium changelog 0.25.0
sovrium changelog v0.25.0
```

Les deux écritures fonctionnent. Une version que le binaire n'embarque pas est refusée, et le message suggère les versions les plus proches qu'il embarque.

## Toutes les versions

```bash
sovrium changelog --list
```

Une ligne par version, de la plus récente à la plus ancienne, avec sa date et le décompte de ce qu'elle contient — `1 feature, 3 fixes`, `4 breaking, …` — pour voir quelles entrées valent la peine d'être ouvertes. La version que vous exécutez est marquée `current`.

## Tout ce qui a changé depuis ma mise à jour

```bash
sovrium changelog --since 0.24.0
```

Affiche chaque version postérieure à `0.24.0`, jusqu'à celle que vous exécutez, de la plus récente à la plus ancienne. Avant la première entrée, il rassemble **tous les changements cassants** de ces versions en un seul endroit, chacun nommant la version qui l'a introduit : quand vous sautez plusieurs versions d'un coup, c'est la liste à lire avant toute autre chose.

Si `0.24.0` est la version que vous exécutez, ou une plus récente, la réponse est `Already up to date`.

## Pour les outils et les scripts

```bash
sovrium changelog --since 0.24.0 --format json
```

Affiche un seul document JSON :

```json
{
  "format": "sovrium-changelog",
  "schemaVersion": 1,
  "engine": "0.28.0",
  "releases": [
    {
      "version": "0.27.0",
      "date": "2026-09-23",
      "compareUrl": "https://github.com/sovrium/sovrium/compare/v0.26.0...v0.27.0",
      "current": false,
      "sections": [
        {
          "kind": "features",
          "title": "Features",
          "entries": [
            { "scope": "cli", "text": "add sovrium docs --export for documentation sites" }
          ]
        }
      ]
    }
  ]
}
```

`kind` vaut `breaking`, `features`, `fixes`, `performance` ou `other`. `scope` vaut `null` pour un changement qui ne nomme aucun domaine. Les versions sont les mêmes que celles qu'affiche la vue markdown, dans le même ordre.

`--output <path>` écrit le résultat dans un fichier au lieu du terminal, en créant les dossiers manquants :

```bash
sovrium changelog --since 0.24.0 --output notes/upgrade.md
```

## Refus

Chacun sort en `1` avec un message indiquant quoi faire à la place :

- une version que le binaire n'embarque pas, ou un mot qui n'est pas une version ;
- une version accompagnée de `--list` ou de `--since` — demandez une vue à la fois ;
- un `--format` autre que `md` ou `json`.

`sovrium changelog --help` affiche l'usage.
