@ferrflow/doc 7.21.10 → 7.22.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.
- package/data/benchmarks.json +696 -696
- package/docs-en/ci/gitlab-ci.md +6 -0
- package/docs-en/configuration/config-file.md +8 -0
- package/docs-fr/ci/gitlab-ci.md +6 -0
- package/docs-fr/configuration/config-file.md +8 -0
- package/docs-fr-v4/ci/github-actions.md +4 -4
- package/docs-fr-v4/ci/gitlab-ci.md +3 -3
- package/docs-fr-v4/configuration/config-file.md +17 -17
- package/docs-fr-v4/reference/errors.md +73 -73
- package/docs-fr-v5/ci/github-actions.md +4 -4
- package/docs-fr-v5/ci/gitlab-ci.md +3 -3
- package/docs-fr-v5/configuration/config-file.md +16 -16
- package/docs-fr-v5/reference/errors.md +73 -73
- package/docs-fr-v6/ci/github-actions.md +4 -4
- package/docs-fr-v6/ci/gitlab-ci.md +3 -3
- package/docs-fr-v6/configuration/config-file.md +16 -16
- package/docs-fr-v6/reference/errors.md +73 -73
- package/package.json +1 -1
|
@@ -3,16 +3,16 @@ title: Configuration
|
|
|
3
3
|
description: Référence complète du fichier de configuration FerrFlow.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
FerrFlow supporte six formats de fichier de configuration,
|
|
6
|
+
FerrFlow supporte six formats de fichier de configuration, recherchés dans cet ordre :
|
|
7
7
|
|
|
8
8
|
1. `ferrflow.json`
|
|
9
9
|
2. `ferrflow.json5`
|
|
10
10
|
3. `ferrflow.toml`
|
|
11
|
-
4. `ferrflow.ts` (
|
|
12
|
-
5. `ferrflow.js` (
|
|
11
|
+
4. `ferrflow.ts` (nécessite `tsx`)
|
|
12
|
+
5. `ferrflow.js` (nécessite `node`)
|
|
13
13
|
6. `.ferrflow` (JSON)
|
|
14
14
|
|
|
15
|
-
Si aucun fichier de configuration n'est trouv
|
|
15
|
+
Si aucun fichier de configuration n'est trouvé, FerrFlow détecte automatiquement les fichiers de version courants dans le répertoire actuel.
|
|
16
16
|
|
|
17
17
|
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Ajoutez <code>"$schema": "https://ferrflow.com/schema/ferrflow.json"</code> à votre configuration JSON pour l'autocomplétion et la validation dans votre éditeur.</p>
|
|
18
18
|
</div></aside>
|
|
@@ -88,19 +88,19 @@ format = "toml"
|
|
|
88
88
|
</div></div>
|
|
89
89
|
</div>
|
|
90
90
|
|
|
91
|
-
<aside class="ferr-aside ferr-aside--note"><div class="ferr-aside__body"><p>Les configurations JSON, JSON5, et TypeScript/JavaScript utilisent des
|
|
92
|
-
La configuration TOML utilise des
|
|
93
|
-
Toutes les formes sont
|
|
91
|
+
<aside class="ferr-aside ferr-aside--note"><div class="ferr-aside__body"><p>Les configurations JSON, JSON5, et TypeScript/JavaScript utilisent des clés en <strong>camelCase</strong> (<code>tagTemplate</code>, <code>versionedFiles</code>).
|
|
92
|
+
La configuration TOML utilise des clés en <strong>snake_case</strong> (<code>tag_template</code>, <code>versioned_files</code>).
|
|
93
|
+
Toutes les formes sont équivalentes.</p>
|
|
94
94
|
</div></aside>
|
|
95
95
|
|
|
96
96
|
### Configurations TypeScript et JavaScript
|
|
97
97
|
|
|
98
|
-
Les fichiers de config TypeScript (`.ts`) et JavaScript (`.js`) utilisent un export ESM par
|
|
98
|
+
Les fichiers de config TypeScript (`.ts`) et JavaScript (`.js`) utilisent un export ESM par défaut. L'export peut être un objet ou une fonction asynchrone.
|
|
99
99
|
|
|
100
|
-
<aside class="ferr-aside ferr-aside--warning"><div class="ferr-aside__body"><p>Les configs TypeScript
|
|
100
|
+
<aside class="ferr-aside ferr-aside--warning"><div class="ferr-aside__body"><p>Les configs TypeScript nécessitent <code>tsx</code> (<code>npm install -g tsx</code>). Les configs JavaScript nécessitent <code>node</code> (v18+).</p>
|
|
101
101
|
</div></aside>
|
|
102
102
|
|
|
103
|
-
L'avantage principal des configs TS/JS : les **hooks sous forme de fonctions**. Au lieu de commandes shell, vous pouvez
|
|
103
|
+
L'avantage principal des configs TS/JS : les **hooks sous forme de fonctions**. Au lieu de commandes shell, vous pouvez écrire des hooks natifs avec accès complet au contexte :
|
|
104
104
|
|
|
105
105
|
```ts title="ferrflow.ts"
|
|
106
106
|
export default {
|
|
@@ -129,19 +129,19 @@ export default {
|
|
|
129
129
|
|
|
130
130
|
#### Objet de contexte des hooks
|
|
131
131
|
|
|
132
|
-
Les hooks en fonction
|
|
132
|
+
Les hooks en fonction reçoivent un objet de contexte avec ces champs :
|
|
133
133
|
|
|
134
134
|
| Champ | Type | Description |
|
|
135
135
|
| -------------- | -------------- | ---------------------------------------------------------------------------- |
|
|
136
136
|
| `package` | string | Nom du package |
|
|
137
|
-
| `oldVersion` | string | Version avant le bump (vide pour la
|
|
138
|
-
| `newVersion` | string | Version
|
|
137
|
+
| `oldVersion` | string | Version avant le bump (vide pour la première release) |
|
|
138
|
+
| `newVersion` | string | Version après le bump |
|
|
139
139
|
| `bumpType` | string | `major`, `minor`, `patch`, ou `none` |
|
|
140
140
|
| `tag` | string | Nom complet du tag git |
|
|
141
141
|
| `dryRun` | boolean | Vrai si `--dry-run` est actif |
|
|
142
142
|
| `packagePath` | string | Chemin absolu vers la racine du package |
|
|
143
|
-
| `channel` | string ou null | Nom du channel de pr
|
|
144
|
-
| `isPrerelease` | boolean | Vrai si c'est une pr
|
|
143
|
+
| `channel` | string ou null | Nom du channel de pré-release |
|
|
144
|
+
| `isPrerelease` | boolean | Vrai si c'est une pré-release |
|
|
145
145
|
| `monorepo` | boolean | Vrai si c'est une release monorepo |
|
|
146
146
|
| `changelog` | string | Section de changelog rendue pour ce bump (markdown) |
|
|
147
147
|
| `commits` | array | `{ hash, message, type?, scope?, breaking }` par commit du bump |
|
|
@@ -165,7 +165,7 @@ export default {
|
|
|
165
165
|
};
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
-
Les hooks sous forme de commandes shell et de fonctions peuvent
|
|
168
|
+
Les hooks sous forme de commandes shell et de fonctions peuvent être mélangés dans la même config.
|
|
169
169
|
|
|
170
170
|
## `workspace`
|
|
171
171
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Codes d'erreur
|
|
3
|
-
description: "
|
|
3
|
+
description: "Référence des codes d'erreur FerrFlow avec causes et solutions."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
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.
|
|
@@ -11,60 +11,60 @@ Quand FerrFlow rencontre une erreur, il affiche un code comme `error[E2001]` ave
|
|
|
11
11
|
|
|
12
12
|
<span id="e1001"></span>
|
|
13
13
|
|
|
14
|
-
Le fichier de config
|
|
14
|
+
Le fichier de config indiqué via `--config` n'existe pas.
|
|
15
15
|
|
|
16
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Lancez <code>ferrflow init</code> pour
|
|
16
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Lancez <code>ferrflow init</code> pour créer un fichier de config, ou vérifiez le chemin.</p>
|
|
17
17
|
</div></aside>
|
|
18
18
|
|
|
19
|
-
### E1002 :
|
|
19
|
+
### E1002 : Échec du parsing ferrflow.json
|
|
20
20
|
|
|
21
21
|
<span id="e1002"></span>
|
|
22
22
|
|
|
23
23
|
Le fichier `ferrflow.json` contient du JSON invalide.
|
|
24
24
|
|
|
25
|
-
### E1003 :
|
|
25
|
+
### E1003 : Échec du parsing ferrflow.json5
|
|
26
26
|
|
|
27
27
|
<span id="e1003"></span>
|
|
28
28
|
|
|
29
29
|
Le fichier `ferrflow.json5` contient du JSON5 invalide.
|
|
30
30
|
|
|
31
|
-
### E1004 :
|
|
31
|
+
### E1004 : Échec du parsing ferrflow.toml
|
|
32
32
|
|
|
33
33
|
<span id="e1004"></span>
|
|
34
34
|
|
|
35
35
|
Le fichier `ferrflow.toml` contient du TOML invalide.
|
|
36
36
|
|
|
37
|
-
### E1005 : Erreur de
|
|
37
|
+
### E1005 : Erreur de sérialisation TOML
|
|
38
38
|
|
|
39
39
|
<span id="e1005"></span>
|
|
40
40
|
|
|
41
|
-
Erreur interne lors de l'
|
|
41
|
+
Erreur interne lors de l'écriture TOML.
|
|
42
42
|
|
|
43
|
-
### E1006 :
|
|
43
|
+
### E1006 : Échec du parsing .ferrflow
|
|
44
44
|
|
|
45
45
|
<span id="e1006"></span>
|
|
46
46
|
|
|
47
47
|
Le fichier `.ferrflow` contient du JSON invalide.
|
|
48
48
|
|
|
49
|
-
### E1007 : Erreur de
|
|
49
|
+
### E1007 : Erreur de sérialisation .ferrflow
|
|
50
50
|
|
|
51
51
|
<span id="e1007"></span>
|
|
52
52
|
|
|
53
|
-
Erreur interne lors de l'
|
|
53
|
+
Erreur interne lors de l'écriture du dotfile.
|
|
54
54
|
|
|
55
|
-
### E1008 :
|
|
55
|
+
### E1008 : Résolution de chemin impossible
|
|
56
56
|
|
|
57
57
|
<span id="e1008"></span>
|
|
58
58
|
|
|
59
|
-
Un chemin dans la config n'a pas pu
|
|
59
|
+
Un chemin dans la config n'a pas pu être résolu en chemin absolu.
|
|
60
60
|
|
|
61
|
-
### E1009 :
|
|
61
|
+
### E1009 : Écriture du loader temporaire impossible
|
|
62
62
|
|
|
63
63
|
<span id="e1009"></span>
|
|
64
64
|
|
|
65
|
-
Impossible d'
|
|
65
|
+
Impossible d'écrire le loader JS/TS temporaire.
|
|
66
66
|
|
|
67
|
-
### E1010 : Impossible d'
|
|
67
|
+
### E1010 : Impossible d'exécuter tsx
|
|
68
68
|
|
|
69
69
|
<span id="e1010"></span>
|
|
70
70
|
|
|
@@ -73,7 +73,7 @@ Le runtime `tsx` est introuvable pour les configs `.ts`.
|
|
|
73
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
74
|
</div></aside>
|
|
75
75
|
|
|
76
|
-
### E1011 : Impossible d'
|
|
76
|
+
### E1011 : Impossible d'exécuter node
|
|
77
77
|
|
|
78
78
|
<span id="e1011"></span>
|
|
79
79
|
|
|
@@ -82,11 +82,11 @@ Le runtime `node` est introuvable pour les configs `.js`.
|
|
|
82
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
83
|
</div></aside>
|
|
84
84
|
|
|
85
|
-
### E1012 :
|
|
85
|
+
### E1012 : Évaluation de la config échouée
|
|
86
86
|
|
|
87
87
|
<span id="e1012"></span>
|
|
88
88
|
|
|
89
|
-
Le fichier JS/TS a
|
|
89
|
+
Le fichier JS/TS a levé une erreur lors de l'évaluation.
|
|
90
90
|
|
|
91
91
|
### E1013 : Sortie de config invalide
|
|
92
92
|
|
|
@@ -104,22 +104,22 @@ Le fichier JS/TS n'a pas produit de JSON valide.
|
|
|
104
104
|
|
|
105
105
|
<span id="e1015"></span>
|
|
106
106
|
|
|
107
|
-
Le fichier de config existe mais ne peut pas
|
|
107
|
+
Le fichier de config existe mais ne peut pas être lu.
|
|
108
108
|
|
|
109
109
|
### E1016 : Plusieurs fichiers de config
|
|
110
110
|
|
|
111
111
|
<span id="e1016"></span>
|
|
112
112
|
|
|
113
|
-
Plusieurs fichiers de config
|
|
113
|
+
Plusieurs fichiers de config trouvés dans le répertoire.
|
|
114
114
|
|
|
115
115
|
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Gardez un seul fichier de config.</p>
|
|
116
116
|
</div></aside>
|
|
117
117
|
|
|
118
|
-
### E1017 : Fichier
|
|
118
|
+
### E1017 : Fichier déjà existant
|
|
119
119
|
|
|
120
120
|
<span id="e1017"></span>
|
|
121
121
|
|
|
122
|
-
`ferrflow init`
|
|
122
|
+
`ferrflow init` lancé alors qu'un fichier de config existe déjà.
|
|
123
123
|
|
|
124
124
|
## Erreurs de validation
|
|
125
125
|
|
|
@@ -133,13 +133,13 @@ L'argument `--repo` ne correspond pas au format attendu `owner/repo`.
|
|
|
133
133
|
|
|
134
134
|
<span id="e1101"></span>
|
|
135
135
|
|
|
136
|
-
L'API GitHub a
|
|
136
|
+
L'API GitHub a retourné une erreur lors de la validation distante.
|
|
137
137
|
|
|
138
138
|
### E1102 : Erreur API GitLab
|
|
139
139
|
|
|
140
140
|
<span id="e1102"></span>
|
|
141
141
|
|
|
142
|
-
L'API GitLab a
|
|
142
|
+
L'API GitLab a retourné une erreur lors de la validation distante.
|
|
143
143
|
|
|
144
144
|
### E1103 : UTF-8 invalide
|
|
145
145
|
|
|
@@ -147,78 +147,78 @@ L'API GitLab a retourn\u00e9 une erreur lors de la validation distante.
|
|
|
147
147
|
|
|
148
148
|
Le fichier de config distant contient un encodage UTF-8 invalide.
|
|
149
149
|
|
|
150
|
-
### E1104 : Parsing de la config distante
|
|
150
|
+
### E1104 : Parsing de la config distante échoué
|
|
151
151
|
|
|
152
152
|
<span id="e1104"></span>
|
|
153
153
|
|
|
154
|
-
Le fichier de config distant n'a pas pu
|
|
154
|
+
Le fichier de config distant n'a pas pu être parsé.
|
|
155
155
|
|
|
156
156
|
### E1105 : Fichier de config distant introuvable
|
|
157
157
|
|
|
158
158
|
<span id="e1105"></span>
|
|
159
159
|
|
|
160
|
-
Le chemin
|
|
160
|
+
Le chemin spécifié n'existe pas dans le dépôt distant.
|
|
161
161
|
|
|
162
|
-
### E1106 : Aucun fichier de config
|
|
162
|
+
### E1106 : Aucun fichier de config trouvé
|
|
163
163
|
|
|
164
164
|
<span id="e1106"></span>
|
|
165
165
|
|
|
166
|
-
Aucun fichier de config FerrFlow dans le
|
|
166
|
+
Aucun fichier de config FerrFlow dans le dépôt distant.
|
|
167
167
|
|
|
168
|
-
### E1107 : --ref
|
|
168
|
+
### E1107 : --ref nécessite --repo
|
|
169
169
|
|
|
170
170
|
<span id="e1107"></span>
|
|
171
171
|
|
|
172
|
-
Le flag `--ref` a
|
|
172
|
+
Le flag `--ref` a été utilisé sans `--repo`.
|
|
173
173
|
|
|
174
|
-
##
|
|
174
|
+
## Opérations Git
|
|
175
175
|
|
|
176
|
-
### E2001 : Pas un
|
|
176
|
+
### E2001 : Pas un dépôt git
|
|
177
177
|
|
|
178
178
|
<span id="e2001"></span>
|
|
179
179
|
|
|
180
|
-
Le
|
|
180
|
+
Le répertoire courant n'est pas dans un dépôt git.
|
|
181
181
|
|
|
182
|
-
### E2002 :
|
|
182
|
+
### E2002 : Dépôt bare non supporté
|
|
183
183
|
|
|
184
184
|
<span id="e2002"></span>
|
|
185
185
|
|
|
186
|
-
FerrFlow ne supporte pas les
|
|
186
|
+
FerrFlow ne supporte pas les dépôts git bare.
|
|
187
187
|
|
|
188
188
|
### E2003 : Tag existant
|
|
189
189
|
|
|
190
190
|
<span id="e2003"></span>
|
|
191
191
|
|
|
192
|
-
Le tag que FerrFlow veut
|
|
192
|
+
Le tag que FerrFlow veut créer existe déjà.
|
|
193
193
|
|
|
194
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
195
|
</div></aside>
|
|
196
196
|
|
|
197
|
-
### E2004 : Push de branche
|
|
197
|
+
### E2004 : Push de branche échoué
|
|
198
198
|
|
|
199
199
|
<span id="e2004"></span>
|
|
200
200
|
|
|
201
201
|
Impossible de push la branche de release.
|
|
202
202
|
|
|
203
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
203
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Vérifiez vos droits de push et les règles de protection.</p>
|
|
204
204
|
</div></aside>
|
|
205
205
|
|
|
206
|
-
### E2005 : Push
|
|
206
|
+
### E2005 : Push rejeté
|
|
207
207
|
|
|
208
208
|
<span id="e2005"></span>
|
|
209
209
|
|
|
210
|
-
Le remote a
|
|
210
|
+
Le remote a rejeté le push.
|
|
211
211
|
|
|
212
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Pullez les derniers changements et
|
|
212
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Pullez les derniers changements et réessayez.</p>
|
|
213
213
|
</div></aside>
|
|
214
214
|
|
|
215
|
-
### E2006 : Push des tags
|
|
215
|
+
### E2006 : Push des tags échoué
|
|
216
216
|
|
|
217
217
|
<span id="e2006"></span>
|
|
218
218
|
|
|
219
219
|
Impossible de push les tags vers le remote.
|
|
220
220
|
|
|
221
|
-
### E2007 : Push des tags flottants
|
|
221
|
+
### E2007 : Push des tags flottants échoué
|
|
222
222
|
|
|
223
223
|
<span id="e2007"></span>
|
|
224
224
|
|
|
@@ -228,60 +228,60 @@ Impossible de force-push les tags flottants.
|
|
|
228
228
|
|
|
229
229
|
<span id="e2008"></span>
|
|
230
230
|
|
|
231
|
-
Le remote git
|
|
231
|
+
Le remote git configuré n'existe pas.
|
|
232
232
|
|
|
233
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
233
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Vérifiez <code>git remote -v</code> et le champ <code>remote</code> de votre config.</p>
|
|
234
234
|
</div></aside>
|
|
235
235
|
|
|
236
|
-
### E2009 :
|
|
236
|
+
### E2009 : Vérification post-push échouée
|
|
237
237
|
|
|
238
238
|
<span id="e2009"></span>
|
|
239
239
|
|
|
240
|
-
Le commit de release n'a pas pu
|
|
240
|
+
Le commit de release n'a pas pu être vérifié sur la branche distante.
|
|
241
241
|
|
|
242
242
|
### E2010 : Branche distante introuvable
|
|
243
243
|
|
|
244
244
|
<span id="e2010"></span>
|
|
245
245
|
|
|
246
|
-
La branche distante n'a pas
|
|
246
|
+
La branche distante n'a pas été trouvée après le push.
|
|
247
247
|
|
|
248
248
|
## API GitHub
|
|
249
249
|
|
|
250
|
-
### E3001 :
|
|
250
|
+
### E3001 : Création de release échouée
|
|
251
251
|
|
|
252
252
|
<span id="e3001"></span>
|
|
253
253
|
|
|
254
|
-
L'API GitHub Releases a
|
|
254
|
+
L'API GitHub Releases a retourné une erreur.
|
|
255
255
|
|
|
256
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
256
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Vérifiez que <code>GITHUB_TOKEN</code> a la permission <code>contents: write</code>.</p>
|
|
257
257
|
</div></aside>
|
|
258
258
|
|
|
259
259
|
### E3002 to E3010 : Erreurs API GitHub
|
|
260
260
|
|
|
261
261
|
<span id="e3002"></span>
|
|
262
262
|
|
|
263
|
-
Erreurs lors d'
|
|
263
|
+
Erreurs lors d'opérations sur l'API GitHub (releases, PR, auto-merge, GraphQL).
|
|
264
264
|
|
|
265
265
|
## API GitLab
|
|
266
266
|
|
|
267
|
-
### E3101 :
|
|
267
|
+
### E3101 : Création de release échouée
|
|
268
268
|
|
|
269
269
|
<span id="e3101"></span>
|
|
270
270
|
|
|
271
|
-
L'API GitLab Releases a
|
|
271
|
+
L'API GitLab Releases a retourné une erreur.
|
|
272
272
|
|
|
273
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
273
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Vérifiez que le token CI a les accès API nécessaires.</p>
|
|
274
274
|
</div></aside>
|
|
275
275
|
|
|
276
276
|
### E3102 to E3105 : Erreurs API GitLab
|
|
277
277
|
|
|
278
278
|
<span id="e3102"></span>
|
|
279
279
|
|
|
280
|
-
Erreurs lors d'
|
|
280
|
+
Erreurs lors d'opérations sur l'API GitLab (releases, MR, merge).
|
|
281
281
|
|
|
282
282
|
## Fichiers de version
|
|
283
283
|
|
|
284
|
-
Les erreurs E4xxx concernent la lecture, l'
|
|
284
|
+
Les erreurs E4xxx concernent la lecture, l'écriture et le parsing des fichiers de version :
|
|
285
285
|
|
|
286
286
|
| Plage | Format |
|
|
287
287
|
| -------------- | --------------------------------- |
|
|
@@ -293,24 +293,24 @@ Les erreurs E4xxx concernent la lecture, l'\u00e9criture et le parsing des fichi
|
|
|
293
293
|
| E4601 to E4603 | Go mod |
|
|
294
294
|
| E4701 to E4704 | Texte (VERSION, VERSION.txt) |
|
|
295
295
|
|
|
296
|
-
Erreurs courantes : lecture impossible, syntaxe invalide, champ `version` manquant,
|
|
296
|
+
Erreurs courantes : lecture impossible, syntaxe invalide, champ `version` manquant, écriture impossible, UTF-8 invalide.
|
|
297
297
|
|
|
298
|
-
## Pr
|
|
298
|
+
## Pré-release
|
|
299
299
|
|
|
300
300
|
### E5001 : Nom de channel vide
|
|
301
301
|
|
|
302
302
|
<span id="e5001"></span>
|
|
303
303
|
|
|
304
|
-
Le nom du channel de pr
|
|
304
|
+
Le nom du channel de pré-release est vide.
|
|
305
305
|
|
|
306
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
306
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Spécifiez un nom : <code>--channel beta</code></p>
|
|
307
307
|
</div></aside>
|
|
308
308
|
|
|
309
309
|
### E5002 : Nom de channel invalide
|
|
310
310
|
|
|
311
311
|
<span id="e5002"></span>
|
|
312
312
|
|
|
313
|
-
Seuls les
|
|
313
|
+
Seuls les alphanumériques et tirets sont acceptés.
|
|
314
314
|
|
|
315
315
|
## Versioning
|
|
316
316
|
|
|
@@ -325,18 +325,18 @@ La version actuelle n'est pas un semver valide.
|
|
|
325
325
|
|
|
326
326
|
## Hooks
|
|
327
327
|
|
|
328
|
-
### E6001 : Hook
|
|
328
|
+
### E6001 : Hook échoué
|
|
329
329
|
|
|
330
330
|
<span id="e6001"></span>
|
|
331
331
|
|
|
332
|
-
Un hook a
|
|
332
|
+
Un hook a échoué avec `on_failure: "abort"`.
|
|
333
333
|
|
|
334
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
334
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Vérifiez la commande du hook, ou mettez <code>on_failure: "continue"</code>.</p>
|
|
335
335
|
</div></aside>
|
|
336
336
|
|
|
337
337
|
## Query
|
|
338
338
|
|
|
339
|
-
### E7001 : Aucun package
|
|
339
|
+
### E7001 : Aucun package configuré
|
|
340
340
|
|
|
341
341
|
<span id="e7001"></span>
|
|
342
342
|
|
|
@@ -349,7 +349,7 @@ Aucun package dans le fichier de config.
|
|
|
349
349
|
|
|
350
350
|
<span id="e7002"></span>
|
|
351
351
|
|
|
352
|
-
Le nom de package
|
|
352
|
+
Le nom de package spécifié n'existe pas dans la config.
|
|
353
353
|
|
|
354
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
355
|
</div></aside>
|
|
@@ -360,15 +360,15 @@ Le nom de package sp\u00e9cifi\u00e9 n'existe pas dans la config.
|
|
|
360
360
|
|
|
361
361
|
<span id="e8001"></span>
|
|
362
362
|
|
|
363
|
-
Un package
|
|
363
|
+
Un package référencé pendant la release n'a pas été trouvé.
|
|
364
364
|
|
|
365
|
-
### E8002 : Tag flottant
|
|
365
|
+
### E8002 : Tag flottant régressif
|
|
366
366
|
|
|
367
367
|
<span id="e8002"></span>
|
|
368
368
|
|
|
369
|
-
Un tag flottant serait
|
|
369
|
+
Un tag flottant serait déplacé vers une version plus ancienne.
|
|
370
370
|
|
|
371
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Utilisez <code>--force</code> pour ignorer la
|
|
371
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Utilisez <code>--force</code> pour ignorer la vérification.</p>
|
|
372
372
|
</div></aside>
|
|
373
373
|
|
|
374
374
|
### E8003 : Cycle de dépendances
|
|
@@ -69,7 +69,7 @@ FerrFlow ajoute `[skip ci]` dans le message des commits de version par défaut p
|
|
|
69
69
|
|
|
70
70
|
## Commentaires de preview sur les PR
|
|
71
71
|
|
|
72
|
-
FerrFlow peut poster un commentaire sur chaque pull request montrant quelles versions seront
|
|
72
|
+
FerrFlow peut poster un commentaire sur chaque pull request montrant quelles versions seront bumpées au merge. Le commentaire est mis à jour automatiquement à chaque push.
|
|
73
73
|
|
|
74
74
|
```yaml title=".github/workflows/preview.yml"
|
|
75
75
|
name: FerrFlow Preview
|
|
@@ -95,15 +95,15 @@ jobs:
|
|
|
95
95
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
Si aucun changement publiable n'est
|
|
98
|
+
Si aucun changement publiable n'est détecté, le commentaire l'indique.
|
|
99
99
|
|
|
100
100
|
## Exemple monorepo
|
|
101
101
|
|
|
102
|
-
Dans un monorepo, FerrFlow publie chaque package
|
|
102
|
+
Dans un monorepo, FerrFlow publie chaque package modifié en une seule exécution :
|
|
103
103
|
|
|
104
104
|
```yaml
|
|
105
105
|
- uses: FerrLabs/ferrflow@v5
|
|
106
106
|
env:
|
|
107
107
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
108
|
-
#
|
|
108
|
+
# Crée api@v1.3.0 et site@v0.5.1 en une seule étape si les deux ont changé
|
|
109
109
|
```
|
|
@@ -55,7 +55,7 @@ release:
|
|
|
55
55
|
|
|
56
56
|
## Commentaires de preview sur les MR
|
|
57
57
|
|
|
58
|
-
FerrFlow peut poster un commentaire sur chaque merge request montrant quelles versions seront
|
|
58
|
+
FerrFlow peut poster un commentaire sur chaque merge request montrant quelles versions seront bumpées au merge. Le commentaire est mis à jour automatiquement à chaque push.
|
|
59
59
|
|
|
60
60
|
```yaml title=".gitlab-ci.yml"
|
|
61
61
|
ferrflow-preview:
|
|
@@ -70,8 +70,8 @@ ferrflow-preview:
|
|
|
70
70
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
Si aucun changement publiable n'est
|
|
73
|
+
Si aucun changement publiable n'est détecté, le commentaire l'indique.
|
|
74
74
|
|
|
75
75
|
## GitLab Releases
|
|
76
76
|
|
|
77
|
-
Lorsque `GITLAB_TOKEN` est
|
|
77
|
+
Lorsque `GITLAB_TOKEN` est défini, FerrFlow crée une GitLab Release avec le changelog généré comme notes de release, de la même manière que l'intégration GitHub.
|
|
@@ -3,16 +3,16 @@ title: Configuration
|
|
|
3
3
|
description: Référence complète du fichier de configuration FerrFlow.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
FerrFlow supporte six formats de fichier de configuration,
|
|
6
|
+
FerrFlow supporte six formats de fichier de configuration, recherchés dans cet ordre :
|
|
7
7
|
|
|
8
8
|
1. `ferrflow.json`
|
|
9
9
|
2. `ferrflow.json5`
|
|
10
10
|
3. `ferrflow.toml`
|
|
11
|
-
4. `ferrflow.ts` (
|
|
12
|
-
5. `ferrflow.js` (
|
|
11
|
+
4. `ferrflow.ts` (nécessite `tsx`)
|
|
12
|
+
5. `ferrflow.js` (nécessite `node`)
|
|
13
13
|
6. `.ferrflow` (JSON)
|
|
14
14
|
|
|
15
|
-
Si aucun fichier de configuration n'est trouv
|
|
15
|
+
Si aucun fichier de configuration n'est trouvé, FerrFlow détecte automatiquement les fichiers de version courants dans le répertoire actuel.
|
|
16
16
|
|
|
17
17
|
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Ajoutez <code>"$schema": "https://ferrflow.com/schema/ferrflow.json"</code> à votre configuration JSON pour l'autocomplétion et la validation dans votre éditeur.</p>
|
|
18
18
|
</div></aside>
|
|
@@ -88,19 +88,19 @@ format = "toml"
|
|
|
88
88
|
</div></div>
|
|
89
89
|
</div>
|
|
90
90
|
|
|
91
|
-
<aside class="ferr-aside ferr-aside--note"><div class="ferr-aside__body"><p>Les configurations JSON, JSON5, et TypeScript/JavaScript utilisent des
|
|
92
|
-
La configuration TOML utilise des
|
|
93
|
-
Toutes les formes sont
|
|
91
|
+
<aside class="ferr-aside ferr-aside--note"><div class="ferr-aside__body"><p>Les configurations JSON, JSON5, et TypeScript/JavaScript utilisent des clés en <strong>camelCase</strong> (<code>tagTemplate</code>, <code>versionedFiles</code>).
|
|
92
|
+
La configuration TOML utilise des clés en <strong>snake_case</strong> (<code>tag_template</code>, <code>versioned_files</code>).
|
|
93
|
+
Toutes les formes sont équivalentes.</p>
|
|
94
94
|
</div></aside>
|
|
95
95
|
|
|
96
96
|
### Configurations TypeScript et JavaScript
|
|
97
97
|
|
|
98
|
-
Les fichiers de config TypeScript (`.ts`) et JavaScript (`.js`) utilisent un export ESM par
|
|
98
|
+
Les fichiers de config TypeScript (`.ts`) et JavaScript (`.js`) utilisent un export ESM par défaut. L'export peut être un objet ou une fonction asynchrone.
|
|
99
99
|
|
|
100
|
-
<aside class="ferr-aside ferr-aside--warning"><div class="ferr-aside__body"><p>Les configs TypeScript
|
|
100
|
+
<aside class="ferr-aside ferr-aside--warning"><div class="ferr-aside__body"><p>Les configs TypeScript nécessitent <code>tsx</code> (<code>npm install -g tsx</code>). Les configs JavaScript nécessitent <code>node</code> (v18+).</p>
|
|
101
101
|
</div></aside>
|
|
102
102
|
|
|
103
|
-
L'avantage principal des configs TS/JS : les **hooks sous forme de fonctions**. Au lieu de commandes shell, vous pouvez
|
|
103
|
+
L'avantage principal des configs TS/JS : les **hooks sous forme de fonctions**. Au lieu de commandes shell, vous pouvez écrire des hooks natifs avec accès complet au contexte :
|
|
104
104
|
|
|
105
105
|
```ts title="ferrflow.ts"
|
|
106
106
|
export default {
|
|
@@ -129,19 +129,19 @@ export default {
|
|
|
129
129
|
|
|
130
130
|
#### Objet de contexte des hooks
|
|
131
131
|
|
|
132
|
-
Les hooks en fonction
|
|
132
|
+
Les hooks en fonction reçoivent un objet de contexte avec ces champs :
|
|
133
133
|
|
|
134
134
|
| Champ | Type | Description |
|
|
135
135
|
| -------------- | -------------- | ---------------------------------------------------------------------------- |
|
|
136
136
|
| `package` | string | Nom du package |
|
|
137
|
-
| `oldVersion` | string | Version avant le bump (vide pour la
|
|
138
|
-
| `newVersion` | string | Version
|
|
137
|
+
| `oldVersion` | string | Version avant le bump (vide pour la première release) |
|
|
138
|
+
| `newVersion` | string | Version après le bump |
|
|
139
139
|
| `bumpType` | string | `major`, `minor`, `patch`, ou `none` |
|
|
140
140
|
| `tag` | string | Nom complet du tag git |
|
|
141
141
|
| `dryRun` | boolean | Vrai si `--dry-run` est actif |
|
|
142
142
|
| `packagePath` | string | Chemin absolu vers la racine du package |
|
|
143
|
-
| `channel` | string ou null | Nom du channel de pr
|
|
144
|
-
| `isPrerelease` | boolean | Vrai si c'est une pr
|
|
143
|
+
| `channel` | string ou null | Nom du channel de pré-release |
|
|
144
|
+
| `isPrerelease` | boolean | Vrai si c'est une pré-release |
|
|
145
145
|
| `monorepo` | boolean | Vrai si c'est une release monorepo |
|
|
146
146
|
| `changelog` | string | Section de changelog rendue pour ce bump (markdown) |
|
|
147
147
|
| `commits` | array | `{ hash, message, type?, scope?, breaking }` par commit du bump |
|
|
@@ -165,7 +165,7 @@ export default {
|
|
|
165
165
|
};
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
-
Les hooks sous forme de commandes shell et de fonctions peuvent
|
|
168
|
+
Les hooks sous forme de commandes shell et de fonctions peuvent être mélangés dans la même config.
|
|
169
169
|
|
|
170
170
|
## `workspace`
|
|
171
171
|
|