@ferrflow/doc 7.17.1 → 7.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -438,6 +438,38 @@ channel = "beta"
438
438
  </div></div>
439
439
  </div>
440
440
 
441
+ ### Build metadata
442
+
443
+ `buildMetadata` names a command whose stdout is appended to the version after a `+`. Reach for it when part of the version comes from the code rather than from the commits: a supported protocol range, a vendored upstream revision.
444
+
445
+ The command runs once per release, from the repository root, before any version file is written. FerrFlow trims the output and requires dot-separated alphanumerics and hyphens, which is all semver allows after the `+`. The release aborts if the command fails, prints nothing, or prints anything outside that set.
446
+
447
+ Only the version files carry the suffix. The tag, the changelog and the next bump keep the plain version, because semver excludes build metadata from a version's identity and ignores it when comparing precedence. `1.4.0+26.2-26.45` is tagged `v1.4.0`, and the minor after it is computed from `1.4.0`.
448
+
449
+ Under `--dry-run` the command is printed rather than executed.
450
+
451
+ <div class="ferr-tabs">
452
+ <div class="ferr-tab" data-label="JSON"><p class="ferr-tab__label">JSON</p><div class="ferr-tab__body"><pre><code class="language-json">{
453
+ &quot;workspace&quot;: {
454
+ &quot;buildMetadata&quot;: &quot;sh scripts/protocol-versions.sh&quot;
455
+ }
456
+ }
457
+ </code></pre>
458
+ </div></div>
459
+ <div class="ferr-tab" data-label="TOML"><p class="ferr-tab__label">TOML</p><div class="ferr-tab__body"><pre><code class="language-toml">[workspace]
460
+ buildMetadata = &quot;sh scripts/protocol-versions.sh&quot;
461
+ </code></pre>
462
+
463
+ </div></div>
464
+ <div class="ferr-tab" data-label="JSON5"><p class="ferr-tab__label">JSON5</p><div class="ferr-tab__body"><pre><code class="language-json5">{
465
+ workspace: {
466
+ buildMetadata: &quot;sh scripts/protocol-versions.sh&quot;,
467
+ },
468
+ }
469
+ </code></pre>
470
+ </div></div>
471
+ </div>
472
+
441
473
  ### Changelog rendering
442
474
 
443
475
  Omit `changelog` entirely and FerrFlow writes the classic layout: **Breaking Changes**, **Features**, **Bug Fixes** and **Refactoring**, flat bullets, no links. `perf` commits fold into **Bug Fixes** there, and every other type, `docs` and `security` included, is left out.
@@ -364,6 +364,38 @@ channel = &quot;beta&quot;
364
364
  </div></div>
365
365
  </div>
366
366
 
367
+ ### Métadonnées de build
368
+
369
+ `buildMetadata` désigne une commande dont la sortie standard est ajoutée à la version après un `+`. À utiliser quand une partie de la version vient du code et non des commits : une plage de protocoles supportés, une révision amont vendorisée.
370
+
371
+ La commande est exécutée une fois par release, depuis la racine du dépôt, avant l'écriture du moindre fichier de version. FerrFlow élague la sortie et exige des caractères alphanumériques et des tirets séparés par des points, seul jeu autorisé par semver après le `+`. La release est interrompue si la commande échoue, n'affiche rien, ou affiche autre chose que ce jeu.
372
+
373
+ Seuls les fichiers de version portent le suffixe. Le tag, le changelog et le bump suivant conservent la version nue, car semver exclut les métadonnées de build de l'identité d'une version et les ignore dans les comparaisons de précédence. `1.4.0+26.2-26.45` est taggé `v1.4.0`, et le mineur qui suit est calculé à partir de `1.4.0`.
374
+
375
+ Avec `--dry-run`, la commande est affichée et non exécutée.
376
+
377
+ <div class="ferr-tabs">
378
+ <div class="ferr-tab" data-label="JSON"><p class="ferr-tab__label">JSON</p><div class="ferr-tab__body"><pre><code class="language-json">{
379
+ &quot;workspace&quot;: {
380
+ &quot;buildMetadata&quot;: &quot;sh scripts/protocol-versions.sh&quot;
381
+ }
382
+ }
383
+ </code></pre>
384
+ </div></div>
385
+ <div class="ferr-tab" data-label="TOML"><p class="ferr-tab__label">TOML</p><div class="ferr-tab__body"><pre><code class="language-toml">[workspace]
386
+ buildMetadata = &quot;sh scripts/protocol-versions.sh&quot;
387
+ </code></pre>
388
+
389
+ </div></div>
390
+ <div class="ferr-tab" data-label="JSON5"><p class="ferr-tab__label">JSON5</p><div class="ferr-tab__body"><pre><code class="language-json5">{
391
+ workspace: {
392
+ buildMetadata: &quot;sh scripts/protocol-versions.sh&quot;,
393
+ },
394
+ }
395
+ </code></pre>
396
+ </div></div>
397
+ </div>
398
+
367
399
  ## `package`
368
400
 
369
401
  Définit un package à versionner. Vous pouvez en avoir un ou plusieurs.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ferrflow/doc",
3
- "version": "7.17.1",
3
+ "version": "7.18.0",
4
4
  "description": "Documentation for FerrFlow, the universal semantic versioning CLI. Rendered at ferrflow.com/docs.",
5
5
  "license": "MIT",
6
6
  "repository": {