@ferrflow/doc 7.17.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.
Files changed (170) hide show
  1. package/docs-en/ci/github-actions.md +120 -0
  2. package/docs-en/ci/gitlab-ci.md +90 -0
  3. package/docs-en/ci/hosted-bot.md +82 -0
  4. package/docs-en/ci/pipeline-triggers.md +287 -0
  5. package/docs-en/configuration/config-file.md +1259 -0
  6. package/docs-en/configuration/formats.md +220 -0
  7. package/docs-en/configuration/monorepo.md +390 -0
  8. package/docs-en/installation.md +56 -0
  9. package/docs-en/introduction.md +56 -0
  10. package/docs-en/quickstart.md +66 -0
  11. package/docs-en/reference/api.md +106 -0
  12. package/docs-en/reference/cli.md +483 -0
  13. package/docs-en/reference/conventional-commits.md +103 -0
  14. package/docs-en/reference/errors.md +508 -0
  15. package/docs-en/verifying-releases.md +97 -0
  16. package/docs-fr/ci/github-actions.md +109 -0
  17. package/docs-fr/ci/gitlab-ci.md +77 -0
  18. package/docs-fr/ci/hosted-bot.md +82 -0
  19. package/docs-fr/ci/pipeline-triggers.md +238 -0
  20. package/docs-fr/configuration/config-file.md +839 -0
  21. package/docs-fr/configuration/formats.md +163 -0
  22. package/docs-fr/configuration/monorepo.md +357 -0
  23. package/docs-fr/installation.md +56 -0
  24. package/docs-fr/introduction.md +54 -0
  25. package/docs-fr/quickstart.md +63 -0
  26. package/docs-fr/reference/api.md +106 -0
  27. package/docs-fr/reference/cli.md +407 -0
  28. package/docs-fr/reference/conventional-commits.md +103 -0
  29. package/docs-fr/reference/errors.md +378 -0
  30. package/docs-fr/verifying-releases.md +97 -0
  31. package/docs-fr-v4/ci/github-actions.md +106 -0
  32. package/docs-fr-v4/ci/gitlab-ci.md +77 -0
  33. package/docs-fr-v4/ci/pipeline-triggers.md +214 -0
  34. package/docs-fr-v4/configuration/config-file.md +769 -0
  35. package/docs-fr-v4/configuration/formats.md +128 -0
  36. package/docs-fr-v4/configuration/monorepo.md +324 -0
  37. package/docs-fr-v4/installation.md +48 -0
  38. package/docs-fr-v4/introduction.md +54 -0
  39. package/docs-fr-v4/legal/telemetry.md +65 -0
  40. package/docs-fr-v4/quickstart.md +63 -0
  41. package/docs-fr-v4/reference/cli.md +130 -0
  42. package/docs-fr-v4/reference/conventional-commits.md +67 -0
  43. package/docs-fr-v4/reference/errors.md +372 -0
  44. package/docs-fr-v5/ci/github-actions.md +109 -0
  45. package/docs-fr-v5/ci/gitlab-ci.md +77 -0
  46. package/docs-fr-v5/ci/hosted-bot.md +82 -0
  47. package/docs-fr-v5/ci/pipeline-triggers.md +238 -0
  48. package/docs-fr-v5/configuration/config-file.md +812 -0
  49. package/docs-fr-v5/configuration/formats.md +150 -0
  50. package/docs-fr-v5/configuration/monorepo.md +357 -0
  51. package/docs-fr-v5/installation.md +56 -0
  52. package/docs-fr-v5/introduction.md +54 -0
  53. package/docs-fr-v5/legal/telemetry.md +26 -0
  54. package/docs-fr-v5/quickstart.md +63 -0
  55. package/docs-fr-v5/reference/api.md +106 -0
  56. package/docs-fr-v5/reference/cli.md +356 -0
  57. package/docs-fr-v5/reference/conventional-commits.md +88 -0
  58. package/docs-fr-v5/reference/errors.md +378 -0
  59. package/docs-fr-v5/verifying-releases.md +97 -0
  60. package/docs-fr-v6/ci/github-actions.md +109 -0
  61. package/docs-fr-v6/ci/gitlab-ci.md +77 -0
  62. package/docs-fr-v6/ci/hosted-bot.md +82 -0
  63. package/docs-fr-v6/ci/pipeline-triggers.md +238 -0
  64. package/docs-fr-v6/configuration/config-file.md +813 -0
  65. package/docs-fr-v6/configuration/formats.md +150 -0
  66. package/docs-fr-v6/configuration/monorepo.md +357 -0
  67. package/docs-fr-v6/installation.md +56 -0
  68. package/docs-fr-v6/introduction.md +54 -0
  69. package/docs-fr-v6/quickstart.md +63 -0
  70. package/docs-fr-v6/reference/api.md +106 -0
  71. package/docs-fr-v6/reference/cli.md +356 -0
  72. package/docs-fr-v6/reference/conventional-commits.md +88 -0
  73. package/docs-fr-v6/reference/errors.md +378 -0
  74. package/docs-fr-v6/verifying-releases.md +97 -0
  75. package/docs-v0/ci/github-actions.md +77 -0
  76. package/docs-v0/ci/gitlab-ci.md +59 -0
  77. package/docs-v0/configuration/config-file.md +97 -0
  78. package/docs-v0/configuration/formats.md +86 -0
  79. package/docs-v0/configuration/monorepo.md +59 -0
  80. package/docs-v0/installation.md +48 -0
  81. package/docs-v0/introduction.md +34 -0
  82. package/docs-v0/legal/telemetry.md +63 -0
  83. package/docs-v0/quickstart.md +58 -0
  84. package/docs-v0/reference/cli.md +95 -0
  85. package/docs-v0/reference/conventional-commits.md +68 -0
  86. package/docs-v1/ci/github-actions.md +76 -0
  87. package/docs-v1/ci/gitlab-ci.md +58 -0
  88. package/docs-v1/configuration/config-file.md +515 -0
  89. package/docs-v1/configuration/formats.md +115 -0
  90. package/docs-v1/configuration/monorepo.md +246 -0
  91. package/docs-v1/installation.md +48 -0
  92. package/docs-v1/introduction.md +39 -0
  93. package/docs-v1/legal/telemetry.md +63 -0
  94. package/docs-v1/quickstart.md +62 -0
  95. package/docs-v1/reference/cli.md +128 -0
  96. package/docs-v1/reference/conventional-commits.md +67 -0
  97. package/docs-v2/ci/github-actions.md +117 -0
  98. package/docs-v2/ci/gitlab-ci.md +90 -0
  99. package/docs-v2/ci/pipeline-triggers.md +263 -0
  100. package/docs-v2/configuration/config-file.md +806 -0
  101. package/docs-v2/configuration/formats.md +98 -0
  102. package/docs-v2/configuration/monorepo.md +324 -0
  103. package/docs-v2/installation.md +48 -0
  104. package/docs-v2/introduction.md +40 -0
  105. package/docs-v2/legal/telemetry.md +66 -0
  106. package/docs-v2/quickstart.md +63 -0
  107. package/docs-v2/reference/cli.md +130 -0
  108. package/docs-v2/reference/conventional-commits.md +67 -0
  109. package/docs-v2/reference/errors.md +500 -0
  110. package/docs-v2/self-hosting.md +101 -0
  111. package/docs-v3/ci/github-actions.md +117 -0
  112. package/docs-v3/ci/gitlab-ci.md +90 -0
  113. package/docs-v3/ci/pipeline-triggers.md +263 -0
  114. package/docs-v3/configuration/config-file.md +806 -0
  115. package/docs-v3/configuration/formats.md +99 -0
  116. package/docs-v3/configuration/monorepo.md +324 -0
  117. package/docs-v3/installation.md +48 -0
  118. package/docs-v3/introduction.md +40 -0
  119. package/docs-v3/legal/telemetry.md +66 -0
  120. package/docs-v3/quickstart.md +66 -0
  121. package/docs-v3/reference/cli.md +161 -0
  122. package/docs-v3/reference/conventional-commits.md +67 -0
  123. package/docs-v3/reference/errors.md +502 -0
  124. package/docs-v3/self-hosting.md +137 -0
  125. package/docs-v4/ci/github-actions.md +117 -0
  126. package/docs-v4/ci/gitlab-ci.md +90 -0
  127. package/docs-v4/ci/pipeline-triggers.md +263 -0
  128. package/docs-v4/configuration/config-file.md +850 -0
  129. package/docs-v4/configuration/formats.md +182 -0
  130. package/docs-v4/configuration/monorepo.md +324 -0
  131. package/docs-v4/installation.md +48 -0
  132. package/docs-v4/introduction.md +56 -0
  133. package/docs-v4/legal/telemetry.md +65 -0
  134. package/docs-v4/quickstart.md +66 -0
  135. package/docs-v4/reference/cli.md +161 -0
  136. package/docs-v4/reference/conventional-commits.md +67 -0
  137. package/docs-v4/reference/errors.md +502 -0
  138. package/docs-v4/self-hosting.md +137 -0
  139. package/docs-v5/ci/github-actions.md +120 -0
  140. package/docs-v5/ci/gitlab-ci.md +90 -0
  141. package/docs-v5/ci/hosted-bot.md +82 -0
  142. package/docs-v5/ci/pipeline-triggers.md +287 -0
  143. package/docs-v5/configuration/config-file.md +1133 -0
  144. package/docs-v5/configuration/formats.md +206 -0
  145. package/docs-v5/configuration/monorepo.md +390 -0
  146. package/docs-v5/installation.md +56 -0
  147. package/docs-v5/introduction.md +56 -0
  148. package/docs-v5/legal/telemetry.md +26 -0
  149. package/docs-v5/quickstart.md +66 -0
  150. package/docs-v5/reference/api.md +106 -0
  151. package/docs-v5/reference/cli.md +431 -0
  152. package/docs-v5/reference/conventional-commits.md +88 -0
  153. package/docs-v5/reference/errors.md +508 -0
  154. package/docs-v5/verifying-releases.md +97 -0
  155. package/docs-v6/ci/github-actions.md +120 -0
  156. package/docs-v6/ci/gitlab-ci.md +90 -0
  157. package/docs-v6/ci/hosted-bot.md +82 -0
  158. package/docs-v6/ci/pipeline-triggers.md +287 -0
  159. package/docs-v6/configuration/config-file.md +1134 -0
  160. package/docs-v6/configuration/formats.md +206 -0
  161. package/docs-v6/configuration/monorepo.md +390 -0
  162. package/docs-v6/installation.md +56 -0
  163. package/docs-v6/introduction.md +56 -0
  164. package/docs-v6/quickstart.md +66 -0
  165. package/docs-v6/reference/api.md +106 -0
  166. package/docs-v6/reference/cli.md +431 -0
  167. package/docs-v6/reference/conventional-commits.md +88 -0
  168. package/docs-v6/reference/errors.md +508 -0
  169. package/docs-v6/verifying-releases.md +97 -0
  170. package/package.json +17 -0
@@ -0,0 +1,63 @@
1
+ ---
2
+ title: Démarrage rapide
3
+ description: De zéro à votre première release automatisée en moins de 5 minutes.
4
+ ---
5
+
6
+ <ol>
7
+ <li><p><strong>Générer la configuration</strong></p>
8
+ <p>Exécutez <code>ferrflow init</code> à la racine de votre repository. Il détecte vos fichiers de version et génère un fichier <code>.ferrflow</code> :</p>
9
+ <pre><code class="language-bash">ferrflow init
10
+ </code></pre>
11
+ <p>Pour un projet Rust, cela produit :</p>
12
+ <pre><code class="language-json">{
13
+ &quot;$schema&quot;: &quot;https://ferrflow.com/schema/ferrflow.json&quot;,
14
+ &quot;workspace&quot;: {
15
+ &quot;tagTemplate&quot;: &quot;v{version}&quot;
16
+ },
17
+ &quot;package&quot;: [
18
+ {
19
+ &quot;name&quot;: &quot;my-app&quot;,
20
+ &quot;path&quot;: &quot;.&quot;,
21
+ &quot;changelog&quot;: &quot;CHANGELOG.md&quot;,
22
+ &quot;versionedFiles&quot;: [
23
+ { &quot;path&quot;: &quot;Cargo.toml&quot;, &quot;format&quot;: &quot;toml&quot; }
24
+ ]
25
+ }
26
+ ]
27
+ }
28
+ </code></pre>
29
+ </li>
30
+ <li><p><strong>Prévisualiser le résultat</strong></p>
31
+ <p>Avant de toucher à quoi que ce soit, lancez un dry-run pour voir ce que FerrFlow ferait :</p>
32
+ <pre><code class="language-bash">ferrflow check
33
+ </code></pre>
34
+ <p>Sortie :</p>
35
+ <pre><code>Scanning . ...
36
+ → feat: add user authentication
37
+ → fix: correct pagination offset
38
+
39
+ Bump my-app 0.1.0 → 0.2.0
40
+ Tag v0.2.0
41
+ </code></pre>
42
+ </li>
43
+ <li><p><strong>Lancer la release</strong></p>
44
+ <pre><code class="language-bash">ferrflow release
45
+ </code></pre>
46
+ <p>FerrFlow va :</p>
47
+ <ul>
48
+ <li>Mettre à jour <code>Cargo.toml</code> à <code>0.2.0</code></li>
49
+ <li>Compléter <code>CHANGELOG.md</code></li>
50
+ <li>Committer les changements</li>
51
+ <li>Créer et pousser <code>v0.2.0</code></li>
52
+ <li>Créer une release GitHub (si <code>GITHUB_TOKEN</code> est défini)</li>
53
+ </ul>
54
+ </li>
55
+ </ol>
56
+
57
+ ## Étapes suivantes
58
+
59
+ - Configurez [GitHub Actions](/fr/docs/ci/github-actions) pour lancer les releases automatiquement sur push vers `main`
60
+ - Configurez un [monorepo](/fr/docs/configuration/monorepo) si vous avez plusieurs packages
61
+ - Ajoutez des [hooks pre/post-release](/fr/docs/configuration/config-file#hooks) pour des scripts personnalisés pendant le cycle de release
62
+ - Utilisez `ferrflow version` et `ferrflow tag` dans vos scripts CI — voir la [référence CLI](/fr/docs/reference/cli)
63
+ - Consultez la [référence de configuration](/fr/docs/configuration/config-file) complète
@@ -0,0 +1,130 @@
1
+ ---
2
+ title: Commandes CLI
3
+ description: Référence complète de toutes les commandes et options du CLI FerrFlow.
4
+ ---
5
+
6
+ ## `ferrflow release`
7
+
8
+ Lance le pipeline complet de release : bump des versions, mise à jour des changelogs, commit, tag, push et création de la release.
9
+
10
+ ```bash
11
+ ferrflow release [OPTIONS]
12
+ ```
13
+
14
+ | Option | Description |
15
+ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
16
+ | `--dry-run` | Prévisualiser tous les changements sans écrire, committer ou pousser |
17
+ | `--force` | Autoriser les floating tags à reculer vers une version inférieure |
18
+ | `--force-version <VERSION>` | Forcer une version spécifique, sans analyser les commits. Format : `VERSION` (repo simple) ou `NAME@VERSION` (monorepo) |
19
+ | `--verbose`, `-v` | Afficher la sortie détaillée incluant les hashes de commits et les diffs de fichiers |
20
+
21
+ **Ce que ça fait :**
22
+
23
+ 1. Scanne les commits depuis le dernier tag pour chaque package
24
+ 2. Détermine l'incrément de version à partir des Conventional Commits
25
+ 3. Met à jour tous les `versionedFiles` avec la nouvelle version
26
+ 4. Ajoute la nouvelle section au `CHANGELOG.md`
27
+ 5. Crée un commit git, ouvre une PR, ou passe (selon `releaseCommitMode`)
28
+ 6. Crée et pousse le tag git
29
+ 7. Crée une release GitHub/GitLab avec le changelog comme notes
30
+
31
+ ---
32
+
33
+ ## `ferrflow check`
34
+
35
+ Prévisualiser ce que `ferrflow release` ferait sans effectuer de changements. Équivalent à `ferrflow release --dry-run`.
36
+
37
+ ```bash
38
+ ferrflow check
39
+ ```
40
+
41
+ ---
42
+
43
+ ## `ferrflow changelog`
44
+
45
+ Générer ou mettre à jour `CHANGELOG.md` uniquement, sans bumper les versions ni créer de tags.
46
+
47
+ ```bash
48
+ ferrflow changelog [OPTIONS]
49
+ ```
50
+
51
+ | Option | Description |
52
+ | ----------- | -------------------------------------------------------- |
53
+ | `--dry-run` | Afficher l'entrée du changelog sans écrire sur le disque |
54
+
55
+ ---
56
+
57
+ ## `ferrflow init`
58
+
59
+ Générer un fichier de configuration pour le repository courant. Détecte les fichiers de version existants (`Cargo.toml`, `package.json`, etc.) et génère la configuration appropriée.
60
+
61
+ ```bash
62
+ ferrflow init [OPTIONS]
63
+ ```
64
+
65
+ | Option | Description |
66
+ | ------------------- | -------------------------------------------------------------- |
67
+ | `--format <FORMAT>` | Format du fichier de configuration : `json`, `json5` ou `toml` |
68
+
69
+ ---
70
+
71
+ ## `ferrflow status`
72
+
73
+ Afficher la version actuelle de chaque package et si une release serait déclenchée.
74
+
75
+ ```bash
76
+ ferrflow status [OPTIONS]
77
+ ```
78
+
79
+ | Option | Description |
80
+ | ------------------- | -------------------------------------------- |
81
+ | `--output <FORMAT>` | Format de sortie : `text` (défaut) ou `json` |
82
+
83
+ Exemple de sortie :
84
+
85
+ ```
86
+ api 1.2.3 minor bump pending (1 feat commit)
87
+ site 0.4.1 no release (only chore commits)
88
+ ```
89
+
90
+ ---
91
+
92
+ ## `ferrflow version`
93
+
94
+ Afficher la version actuelle d'un ou de tous les packages. Utile dans les scripts CI.
95
+
96
+ ```bash
97
+ ferrflow version [PACKAGE] [OPTIONS]
98
+ ```
99
+
100
+ | Option | Description |
101
+ | -------- | --------------------- |
102
+ | `--json` | Sortie au format JSON |
103
+
104
+ Retourne la version depuis le dernier tag git correspondant au modèle de tag du package.
105
+
106
+ ---
107
+
108
+ ## `ferrflow tag`
109
+
110
+ Afficher le dernier tag pour un ou tous les packages.
111
+
112
+ ```bash
113
+ ferrflow tag [PACKAGE] [OPTIONS]
114
+ ```
115
+
116
+ | Option | Description |
117
+ | -------- | --------------------- |
118
+ | `--json` | Sortie au format JSON |
119
+
120
+ ---
121
+
122
+ ## Options globales
123
+
124
+ Ces options fonctionnent avec toutes les commandes :
125
+
126
+ | Option | Description |
127
+ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
128
+ | `--config <PATH>` | Chemin vers un fichier de configuration personnalisé (défaut : auto-détecté). Accepte aussi la variable d'environnement `FERRFLOW_CONFIG`. |
129
+ | `--version` | Afficher la version de FerrFlow et quitter |
130
+ | `--help`, `-h` | Afficher l'aide |
@@ -0,0 +1,67 @@
1
+ ---
2
+ title: Conventional Commits
3
+ description: Comment FerrFlow interprète les messages de commit pour déterminer les incréments de version.
4
+ ---
5
+
6
+ FerrFlow suit la spécification [Conventional Commits](https://www.conventionalcommits.org/) pour déterminer de combien incrémenter la version.
7
+
8
+ ## Règles d'incrément
9
+
10
+ | Type de commit | Incrément de version | Exemple |
11
+ | ----------------------------- | -------------------- | ----------------------------------- |
12
+ | `feat:` | **minor** | `feat: add wallet subscriptions` |
13
+ | `fix:` | patch | `fix: correct pagination offset` |
14
+ | `perf:` | patch | `perf: cache user queries` |
15
+ | `refactor:` | patch | `refactor: extract auth middleware` |
16
+ | `feat!:` ou `BREAKING CHANGE` | **major** | `feat!: remove deprecated endpoint` |
17
+ | `chore:` | aucun | `chore: update dependencies` |
18
+ | `docs:` | aucun | `docs: update README` |
19
+ | `ci:` | aucun | `ci: add linting step` |
20
+ | `style:` | aucun | `style: format code` |
21
+ | `test:` | aucun | `test: add unit tests` |
22
+
23
+ ## Breaking changes
24
+
25
+ Un breaking change peut être indiqué de deux manières :
26
+
27
+ **Suffixe point d'exclamation :**
28
+
29
+ ```
30
+ feat!: remove the /v1/users endpoint
31
+ fix!: change authentication header format
32
+ ```
33
+
34
+ **Footer `BREAKING CHANGE` :**
35
+
36
+ ```
37
+ feat: redesign the API
38
+
39
+ BREAKING CHANGE: The /v1/users endpoint has been removed. Use /v2/users instead.
40
+ ```
41
+
42
+ Les deux produisent un incrément **major**.
43
+
44
+ ## Scope
45
+
46
+ Les scopes sont optionnels et ignorés pour le calcul de l'incrément. Ils sont utiles pour la lisibilité :
47
+
48
+ ```
49
+ feat(auth): add OAuth2 support → incrément minor
50
+ fix(db): correct index on user table → incrément patch
51
+ ```
52
+
53
+ ## Pas de release
54
+
55
+ Les commits de type `chore`, `docs`, `ci`, `style` ou `test` ne déclenchent pas de release. Si tous les commits depuis le dernier tag sont de ces types, FerrFlow se termine sans créer de nouvelle version.
56
+
57
+ ## Commits multiples
58
+
59
+ Lorsque plusieurs commits sont présents depuis le dernier tag, FerrFlow prend l'incrément le **plus élevé** parmi tous :
60
+
61
+ ```
62
+ fix: correct typo → patch
63
+ feat: add export button → minor ← gagne
64
+ chore: lint → aucun
65
+ ```
66
+
67
+ Résultat : incrément **minor**.
@@ -0,0 +1,372 @@
1
+ ---
2
+ title: Codes d'erreur
3
+ description: "R\u00e9f\u00e9rence des codes d'erreur FerrFlow avec causes et solutions."
4
+ ---
5
+
6
+ Quand FerrFlow rencontre une erreur, il affiche un code comme `error[E2001]` avec un lien vers cette page. Utilisez le code pour trouver la cause et la solution.
7
+
8
+ ## Erreurs de configuration
9
+
10
+ ### E1001 : Fichier de config introuvable
11
+
12
+ <span id="e1001"></span>
13
+
14
+ Le fichier de config indiqu\u00e9 via `--config` n'existe pas.
15
+
16
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Lancez <code>ferrflow init</code> pour cr\u00e9er un fichier de config, ou v\u00e9rifiez le chemin.</p>
17
+ </div></aside>
18
+
19
+ ### E1002 : \u00c9chec du parsing ferrflow.json
20
+
21
+ <span id="e1002"></span>
22
+
23
+ Le fichier `ferrflow.json` contient du JSON invalide.
24
+
25
+ ### E1003 : \u00c9chec du parsing ferrflow.json5
26
+
27
+ <span id="e1003"></span>
28
+
29
+ Le fichier `ferrflow.json5` contient du JSON5 invalide.
30
+
31
+ ### E1004 : \u00c9chec du parsing ferrflow.toml
32
+
33
+ <span id="e1004"></span>
34
+
35
+ Le fichier `ferrflow.toml` contient du TOML invalide.
36
+
37
+ ### E1005 : Erreur de s\u00e9rialisation TOML
38
+
39
+ <span id="e1005"></span>
40
+
41
+ Erreur interne lors de l'\u00e9criture TOML.
42
+
43
+ ### E1006 : \u00c9chec du parsing .ferrflow
44
+
45
+ <span id="e1006"></span>
46
+
47
+ Le fichier `.ferrflow` contient du JSON invalide.
48
+
49
+ ### E1007 : Erreur de s\u00e9rialisation .ferrflow
50
+
51
+ <span id="e1007"></span>
52
+
53
+ Erreur interne lors de l'\u00e9criture du dotfile.
54
+
55
+ ### E1008 : R\u00e9solution de chemin impossible
56
+
57
+ <span id="e1008"></span>
58
+
59
+ Un chemin dans la config n'a pas pu \u00eatre r\u00e9solu en chemin absolu.
60
+
61
+ ### E1009 : \u00c9criture du loader temporaire impossible
62
+
63
+ <span id="e1009"></span>
64
+
65
+ Impossible d'\u00e9crire le loader JS/TS temporaire.
66
+
67
+ ### E1010 : Impossible d'ex\u00e9cuter tsx
68
+
69
+ <span id="e1010"></span>
70
+
71
+ Le runtime `tsx` est introuvable pour les configs `.ts`.
72
+
73
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Installez tsx : <code>npm install -g tsx</code>, ou utilisez un format JSON/TOML.</p>
74
+ </div></aside>
75
+
76
+ ### E1011 : Impossible d'ex\u00e9cuter node
77
+
78
+ <span id="e1011"></span>
79
+
80
+ Le runtime `node` est introuvable pour les configs `.js`.
81
+
82
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Installez Node.js ou utilisez un format JSON/TOML.</p>
83
+ </div></aside>
84
+
85
+ ### E1012 : \u00c9valuation de la config \u00e9chou\u00e9e
86
+
87
+ <span id="e1012"></span>
88
+
89
+ Le fichier JS/TS a lev\u00e9 une erreur lors de l'\u00e9valuation.
90
+
91
+ ### E1013 : Sortie de config invalide
92
+
93
+ <span id="e1013"></span>
94
+
95
+ Le fichier JS/TS a produit une sortie non UTF-8.
96
+
97
+ ### E1014 : JSON invalide depuis la config
98
+
99
+ <span id="e1014"></span>
100
+
101
+ Le fichier JS/TS n'a pas produit de JSON valide.
102
+
103
+ ### E1015 : Lecture du fichier impossible
104
+
105
+ <span id="e1015"></span>
106
+
107
+ Le fichier de config existe mais ne peut pas \u00eatre lu.
108
+
109
+ ### E1016 : Plusieurs fichiers de config
110
+
111
+ <span id="e1016"></span>
112
+
113
+ Plusieurs fichiers de config trouv\u00e9s dans le r\u00e9pertoire.
114
+
115
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Gardez un seul fichier de config.</p>
116
+ </div></aside>
117
+
118
+ ### E1017 : Fichier d\u00e9j\u00e0 existant
119
+
120
+ <span id="e1017"></span>
121
+
122
+ `ferrflow init` lanc\u00e9 alors qu'un fichier de config existe d\u00e9j\u00e0.
123
+
124
+ ## Erreurs de validation
125
+
126
+ ### E1100 : Spec de repo invalide
127
+
128
+ <span id="e1100"></span>
129
+
130
+ L'argument `--repo` ne correspond pas au format attendu `owner/repo`.
131
+
132
+ ### E1101 : Erreur API GitHub
133
+
134
+ <span id="e1101"></span>
135
+
136
+ L'API GitHub a retourn\u00e9 une erreur lors de la validation distante.
137
+
138
+ ### E1102 : Erreur API GitLab
139
+
140
+ <span id="e1102"></span>
141
+
142
+ L'API GitLab a retourn\u00e9 une erreur lors de la validation distante.
143
+
144
+ ### E1103 : UTF-8 invalide
145
+
146
+ <span id="e1103"></span>
147
+
148
+ Le fichier de config distant contient un encodage UTF-8 invalide.
149
+
150
+ ### E1104 : Parsing de la config distante \u00e9chou\u00e9
151
+
152
+ <span id="e1104"></span>
153
+
154
+ Le fichier de config distant n'a pas pu \u00eatre pars\u00e9.
155
+
156
+ ### E1105 : Fichier de config distant introuvable
157
+
158
+ <span id="e1105"></span>
159
+
160
+ Le chemin sp\u00e9cifi\u00e9 n'existe pas dans le d\u00e9p\u00f4t distant.
161
+
162
+ ### E1106 : Aucun fichier de config trouv\u00e9
163
+
164
+ <span id="e1106"></span>
165
+
166
+ Aucun fichier de config FerrFlow dans le d\u00e9p\u00f4t distant.
167
+
168
+ ### E1107 : --ref n\u00e9cessite --repo
169
+
170
+ <span id="e1107"></span>
171
+
172
+ Le flag `--ref` a \u00e9t\u00e9 utilis\u00e9 sans `--repo`.
173
+
174
+ ## Op\u00e9rations Git
175
+
176
+ ### E2001 : Pas un d\u00e9p\u00f4t git
177
+
178
+ <span id="e2001"></span>
179
+
180
+ Le r\u00e9pertoire courant n'est pas dans un d\u00e9p\u00f4t git.
181
+
182
+ ### E2002 : D\u00e9p\u00f4t bare non support\u00e9
183
+
184
+ <span id="e2002"></span>
185
+
186
+ FerrFlow ne supporte pas les d\u00e9p\u00f4ts git bare.
187
+
188
+ ### E2003 : Tag existant
189
+
190
+ <span id="e2003"></span>
191
+
192
+ Le tag que FerrFlow veut cr\u00e9er existe d\u00e9j\u00e0.
193
+
194
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Supprimez le tag existant ou utilisez <code>--force</code>.</p>
195
+ </div></aside>
196
+
197
+ ### E2004 : Push de branche \u00e9chou\u00e9
198
+
199
+ <span id="e2004"></span>
200
+
201
+ Impossible de push la branche de release.
202
+
203
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>V\u00e9rifiez vos droits de push et les r\u00e8gles de protection.</p>
204
+ </div></aside>
205
+
206
+ ### E2005 : Push rejet\u00e9
207
+
208
+ <span id="e2005"></span>
209
+
210
+ Le remote a rejet\u00e9 le push.
211
+
212
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Pullez les derniers changements et r\u00e9essayez.</p>
213
+ </div></aside>
214
+
215
+ ### E2006 : Push des tags \u00e9chou\u00e9
216
+
217
+ <span id="e2006"></span>
218
+
219
+ Impossible de push les tags vers le remote.
220
+
221
+ ### E2007 : Push des tags flottants \u00e9chou\u00e9
222
+
223
+ <span id="e2007"></span>
224
+
225
+ Impossible de force-push les tags flottants.
226
+
227
+ ### E2008 : Remote introuvable
228
+
229
+ <span id="e2008"></span>
230
+
231
+ Le remote git configur\u00e9 n'existe pas.
232
+
233
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>V\u00e9rifiez <code>git remote -v</code> et le champ <code>remote</code> de votre config.</p>
234
+ </div></aside>
235
+
236
+ ### E2009 : V\u00e9rification post-push \u00e9chou\u00e9e
237
+
238
+ <span id="e2009"></span>
239
+
240
+ Le commit de release n'a pas pu \u00eatre v\u00e9rifi\u00e9 sur la branche distante.
241
+
242
+ ### E2010 : Branche distante introuvable
243
+
244
+ <span id="e2010"></span>
245
+
246
+ La branche distante n'a pas \u00e9t\u00e9 trouv\u00e9e apr\u00e8s le push.
247
+
248
+ ## API GitHub
249
+
250
+ ### E3001 : Cr\u00e9ation de release \u00e9chou\u00e9e
251
+
252
+ <span id="e3001"></span>
253
+
254
+ L'API GitHub Releases a retourn\u00e9 une erreur.
255
+
256
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>V\u00e9rifiez que <code>GITHUB_TOKEN</code> a la permission <code>contents: write</code>.</p>
257
+ </div></aside>
258
+
259
+ ### E3002 to E3010 : Erreurs API GitHub
260
+
261
+ <span id="e3002"></span>
262
+
263
+ Erreurs lors d'op\u00e9rations sur l'API GitHub (releases, PR, auto-merge, GraphQL).
264
+
265
+ ## API GitLab
266
+
267
+ ### E3101 : Cr\u00e9ation de release \u00e9chou\u00e9e
268
+
269
+ <span id="e3101"></span>
270
+
271
+ L'API GitLab Releases a retourn\u00e9 une erreur.
272
+
273
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>V\u00e9rifiez que le token CI a les acc\u00e8s API n\u00e9cessaires.</p>
274
+ </div></aside>
275
+
276
+ ### E3102 to E3105 : Erreurs API GitLab
277
+
278
+ <span id="e3102"></span>
279
+
280
+ Erreurs lors d'op\u00e9rations sur l'API GitLab (releases, MR, merge).
281
+
282
+ ## Fichiers de version
283
+
284
+ Les erreurs E4xxx concernent la lecture, l'\u00e9criture et le parsing des fichiers de version :
285
+
286
+ | Plage | Format |
287
+ | -------------- | --------------------------------- |
288
+ | E4101 to E4105 | TOML (Cargo.toml, pyproject.toml) |
289
+ | E4201 to E4205 | JSON (package.json) |
290
+ | E4301 to E4304 | Helm / YAML (Chart.yaml) |
291
+ | E4401 to E4413 | XML / CSProj |
292
+ | E4501 to E4504 | Gradle |
293
+ | E4601 to E4603 | Go mod |
294
+ | E4701 to E4704 | Texte (VERSION, VERSION.txt) |
295
+
296
+ Erreurs courantes : lecture impossible, syntaxe invalide, champ `version` manquant, \u00e9criture impossible, UTF-8 invalide.
297
+
298
+ ## Pr\u00e9-release
299
+
300
+ ### E5001 : Nom de channel vide
301
+
302
+ <span id="e5001"></span>
303
+
304
+ Le nom du channel de pr\u00e9-release est vide.
305
+
306
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Sp\u00e9cifiez un nom : <code>--channel beta</code></p>
307
+ </div></aside>
308
+
309
+ ### E5002 : Nom de channel invalide
310
+
311
+ <span id="e5002"></span>
312
+
313
+ Seuls les alphanum\u00e9riques et tirets sont accept\u00e9s.
314
+
315
+ ## Versioning
316
+
317
+ ### E5010 : Semver invalide
318
+
319
+ <span id="e5010"></span>
320
+
321
+ La version actuelle n'est pas un semver valide.
322
+
323
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Format attendu : <code>MAJEUR.MINEUR.PATCH</code>.</p>
324
+ </div></aside>
325
+
326
+ ## Hooks
327
+
328
+ ### E6001 : Hook \u00e9chou\u00e9
329
+
330
+ <span id="e6001"></span>
331
+
332
+ Un hook a \u00e9chou\u00e9 avec `on_failure: "abort"`.
333
+
334
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>V\u00e9rifiez la commande du hook, ou mettez <code>on_failure: &quot;continue&quot;</code>.</p>
335
+ </div></aside>
336
+
337
+ ## Query
338
+
339
+ ### E7001 : Aucun package configur\u00e9
340
+
341
+ <span id="e7001"></span>
342
+
343
+ Aucun package dans le fichier de config.
344
+
345
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Lancez <code>ferrflow init</code> ou ajoutez des packages manuellement.</p>
346
+ </div></aside>
347
+
348
+ ### E7002 : Package introuvable
349
+
350
+ <span id="e7002"></span>
351
+
352
+ Le nom de package sp\u00e9cifi\u00e9 n'existe pas dans la config.
353
+
354
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Lancez <code>ferrflow version</code> pour lister les packages.</p>
355
+ </div></aside>
356
+
357
+ ## Monorepo
358
+
359
+ ### E8001 : Package introuvable dans la config
360
+
361
+ <span id="e8001"></span>
362
+
363
+ Un package r\u00e9f\u00e9renc\u00e9 pendant la release n'a pas \u00e9t\u00e9 trouv\u00e9.
364
+
365
+ ### E8002 : Tag flottant r\u00e9gressif
366
+
367
+ <span id="e8002"></span>
368
+
369
+ Un tag flottant serait d\u00e9plac\u00e9 vers une version plus ancienne.
370
+
371
+ <aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Utilisez <code>--force</code> pour ignorer la v\u00e9rification.</p>
372
+ </div></aside>