@ferrflow/doc 7.21.9 → 7.21.10
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 +682 -682
- package/docs-en/ci/gitlab-ci.md +16 -4
- package/docs-fr/ci/github-actions.md +4 -4
- package/docs-fr/ci/gitlab-ci.md +19 -7
- package/docs-fr/configuration/config-file.md +16 -16
- package/docs-fr/reference/errors.md +73 -73
- package/package.json +1 -1
package/docs-en/ci/gitlab-ci.md
CHANGED
|
@@ -9,7 +9,9 @@ The official FerrFlow Docker image ships the binary and can be used directly as
|
|
|
9
9
|
|
|
10
10
|
```yaml title=".gitlab-ci.yml"
|
|
11
11
|
release:
|
|
12
|
-
image:
|
|
12
|
+
image:
|
|
13
|
+
name: ghcr.io/ferrlabs/ferrflow:latest
|
|
14
|
+
entrypoint: [""]
|
|
13
15
|
stage: release
|
|
14
16
|
script:
|
|
15
17
|
- ferrflow release
|
|
@@ -20,6 +22,10 @@ release:
|
|
|
20
22
|
when: on_success
|
|
21
23
|
```
|
|
22
24
|
|
|
25
|
+
The image's entrypoint is `ferrflow`, so `docker run ghcr.io/ferrlabs/ferrflow:latest check` works as is. GitLab runs a job's `script` through a shell instead, which is why every example here resets it with `entrypoint: [""]`. Without that line the job fails with `unrecognized subcommand 'sh'`.
|
|
26
|
+
|
|
27
|
+
The image ships `git`, trusts the checkout whatever user cloned it, and signs release commits as `FerrFlow <bot@ferrflow.com>`. To sign them as the person who triggered the pipeline instead, set `GIT_AUTHOR_NAME: $GITLAB_USER_NAME` and `GIT_AUTHOR_EMAIL: $GITLAB_USER_EMAIL` in the job variables.
|
|
28
|
+
|
|
23
29
|
<aside class="ferr-aside ferr-aside--warning"><div class="ferr-aside__body"><p>Make sure your CI runner clones with full history. Add <code>GIT_DEPTH: 0</code> to the job variables to disable shallow cloning.</p>
|
|
24
30
|
</div></aside>
|
|
25
31
|
|
|
@@ -27,7 +33,9 @@ release:
|
|
|
27
33
|
|
|
28
34
|
```yaml title=".gitlab-ci.yml"
|
|
29
35
|
release:
|
|
30
|
-
image:
|
|
36
|
+
image:
|
|
37
|
+
name: ghcr.io/ferrlabs/ferrflow:latest
|
|
38
|
+
entrypoint: [""]
|
|
31
39
|
variables:
|
|
32
40
|
GIT_DEPTH: 0 # full history: required for tag scanning
|
|
33
41
|
GITLAB_TOKEN: $CI_JOB_TOKEN
|
|
@@ -43,7 +51,9 @@ If `CI_JOB_TOKEN` doesn't have permission to push tags, create a project deploy
|
|
|
43
51
|
|
|
44
52
|
```yaml title=".gitlab-ci.yml"
|
|
45
53
|
release:
|
|
46
|
-
image:
|
|
54
|
+
image:
|
|
55
|
+
name: ghcr.io/ferrlabs/ferrflow:latest
|
|
56
|
+
entrypoint: [""]
|
|
47
57
|
variables:
|
|
48
58
|
GIT_DEPTH: 0
|
|
49
59
|
GITLAB_TOKEN: $FERRFLOW_DEPLOY_TOKEN # CI variable with write_repository access
|
|
@@ -59,7 +69,9 @@ FerrFlow can post a comment on every merge request showing what versions will be
|
|
|
59
69
|
|
|
60
70
|
```yaml title=".gitlab-ci.yml"
|
|
61
71
|
ferrflow-preview:
|
|
62
|
-
image:
|
|
72
|
+
image:
|
|
73
|
+
name: ghcr.io/ferrlabs/ferrflow:latest
|
|
74
|
+
entrypoint: [""]
|
|
63
75
|
stage: test
|
|
64
76
|
variables:
|
|
65
77
|
GIT_DEPTH: 0
|
|
@@ -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
|
```
|
package/docs-fr/ci/gitlab-ci.md
CHANGED
|
@@ -9,7 +9,9 @@ L'image Docker officielle FerrFlow embarque le binaire et peut être utilisée d
|
|
|
9
9
|
|
|
10
10
|
```yaml
|
|
11
11
|
release:
|
|
12
|
-
image:
|
|
12
|
+
image:
|
|
13
|
+
name: ghcr.io/ferrlabs/ferrflow:latest
|
|
14
|
+
entrypoint: [""]
|
|
13
15
|
stage: release
|
|
14
16
|
script:
|
|
15
17
|
- ferrflow release
|
|
@@ -20,6 +22,10 @@ release:
|
|
|
20
22
|
when: on_success
|
|
21
23
|
```
|
|
22
24
|
|
|
25
|
+
Le point d'entrée de l'image est `ferrflow`, donc `docker run ghcr.io/ferrlabs/ferrflow:latest check` fonctionne tel quel. GitLab, lui, exécute le `script` d'un job dans un shell : c'est pourquoi chaque exemple ici le réinitialise avec `entrypoint: [""]`. Sans cette ligne, le job échoue avec `unrecognized subcommand 'sh'`.
|
|
26
|
+
|
|
27
|
+
L'image embarque `git`, fait confiance au dépôt quel que soit l'utilisateur qui l'a cloné, et signe les commits de release `FerrFlow <bot@ferrflow.com>`. Pour les signer au nom de la personne qui a déclenché le pipeline, définissez `GIT_AUTHOR_NAME: $GITLAB_USER_NAME` et `GIT_AUTHOR_EMAIL: $GITLAB_USER_EMAIL` dans les variables du job.
|
|
28
|
+
|
|
23
29
|
<aside class="ferr-aside ferr-aside--warning"><div class="ferr-aside__body"><p>Assurez-vous que votre runner CI clone avec l'historique complet. Ajoutez <code>GIT_DEPTH: 0</code> aux variables du job pour désactiver le clonage superficiel.</p>
|
|
24
30
|
</div></aside>
|
|
25
31
|
|
|
@@ -27,7 +33,9 @@ release:
|
|
|
27
33
|
|
|
28
34
|
```yaml
|
|
29
35
|
release:
|
|
30
|
-
image:
|
|
36
|
+
image:
|
|
37
|
+
name: ghcr.io/ferrlabs/ferrflow:latest
|
|
38
|
+
entrypoint: [""]
|
|
31
39
|
variables:
|
|
32
40
|
GIT_DEPTH: 0 # historique complet : requis pour le scan des tags
|
|
33
41
|
GITLAB_TOKEN: $CI_JOB_TOKEN
|
|
@@ -43,7 +51,9 @@ Si `CI_JOB_TOKEN` n'a pas les permissions pour pousser des tags, créez un deplo
|
|
|
43
51
|
|
|
44
52
|
```yaml
|
|
45
53
|
release:
|
|
46
|
-
image:
|
|
54
|
+
image:
|
|
55
|
+
name: ghcr.io/ferrlabs/ferrflow:latest
|
|
56
|
+
entrypoint: [""]
|
|
47
57
|
variables:
|
|
48
58
|
GIT_DEPTH: 0
|
|
49
59
|
GITLAB_TOKEN: $FERRFLOW_DEPLOY_TOKEN # variable CI avec accès write_repository
|
|
@@ -55,11 +65,13 @@ release:
|
|
|
55
65
|
|
|
56
66
|
## Commentaires de preview sur les MR
|
|
57
67
|
|
|
58
|
-
FerrFlow peut poster un commentaire sur chaque merge request montrant quelles versions seront
|
|
68
|
+
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
69
|
|
|
60
70
|
```yaml title=".gitlab-ci.yml"
|
|
61
71
|
ferrflow-preview:
|
|
62
|
-
image:
|
|
72
|
+
image:
|
|
73
|
+
name: ghcr.io/ferrlabs/ferrflow:latest
|
|
74
|
+
entrypoint: [""]
|
|
63
75
|
stage: test
|
|
64
76
|
variables:
|
|
65
77
|
GIT_DEPTH: 0
|
|
@@ -70,10 +82,10 @@ ferrflow-preview:
|
|
|
70
82
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
71
83
|
```
|
|
72
84
|
|
|
73
|
-
Si aucun changement publiable n'est
|
|
85
|
+
Si aucun changement publiable n'est détecté, le commentaire l'indique.
|
|
74
86
|
|
|
75
87
|
Si vous stockez ce token dans une variable **protégée**, GitLab ne l'expose qu'aux pipelines des branches et tags protégés, et le pipeline d'une merge request venant d'une branche ordinaire tourne sans lui. FerrFlow affiche alors `Warning: preview comment not posted: no Gitlab token found in FERRFLOW_TOKEN or GITLAB_TOKEN` et le job réussit quand même. Retirez la protection de la variable, ou utilisez `CI_JOB_TOKEN`, que chaque job reçoit.
|
|
76
88
|
|
|
77
89
|
## GitLab Releases
|
|
78
90
|
|
|
79
|
-
Lorsque `GITLAB_TOKEN` est
|
|
91
|
+
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
|
|
|
@@ -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
|
### E1024 : Fichier versionne introuvable
|
|
125
125
|
|
|
@@ -153,13 +153,13 @@ L'argument `--repo` ne correspond pas au format attendu `owner/repo`.
|
|
|
153
153
|
|
|
154
154
|
<span id="e1101"></span>
|
|
155
155
|
|
|
156
|
-
L'API GitHub a
|
|
156
|
+
L'API GitHub a retourné une erreur lors de la validation distante.
|
|
157
157
|
|
|
158
158
|
### E1102 : Erreur API GitLab
|
|
159
159
|
|
|
160
160
|
<span id="e1102"></span>
|
|
161
161
|
|
|
162
|
-
L'API GitLab a
|
|
162
|
+
L'API GitLab a retourné une erreur lors de la validation distante.
|
|
163
163
|
|
|
164
164
|
### E1103 : UTF-8 invalide
|
|
165
165
|
|
|
@@ -167,78 +167,78 @@ L'API GitLab a retourn\u00e9 une erreur lors de la validation distante.
|
|
|
167
167
|
|
|
168
168
|
Le fichier de config distant contient un encodage UTF-8 invalide.
|
|
169
169
|
|
|
170
|
-
### E1104 : Parsing de la config distante
|
|
170
|
+
### E1104 : Parsing de la config distante échoué
|
|
171
171
|
|
|
172
172
|
<span id="e1104"></span>
|
|
173
173
|
|
|
174
|
-
Le fichier de config distant n'a pas pu
|
|
174
|
+
Le fichier de config distant n'a pas pu être parsé.
|
|
175
175
|
|
|
176
176
|
### E1105 : Fichier de config distant introuvable
|
|
177
177
|
|
|
178
178
|
<span id="e1105"></span>
|
|
179
179
|
|
|
180
|
-
Le chemin
|
|
180
|
+
Le chemin spécifié n'existe pas dans le dépôt distant.
|
|
181
181
|
|
|
182
|
-
### E1106 : Aucun fichier de config
|
|
182
|
+
### E1106 : Aucun fichier de config trouvé
|
|
183
183
|
|
|
184
184
|
<span id="e1106"></span>
|
|
185
185
|
|
|
186
|
-
Aucun fichier de config FerrFlow dans le
|
|
186
|
+
Aucun fichier de config FerrFlow dans le dépôt distant.
|
|
187
187
|
|
|
188
|
-
### E1107 : --ref
|
|
188
|
+
### E1107 : --ref nécessite --repo
|
|
189
189
|
|
|
190
190
|
<span id="e1107"></span>
|
|
191
191
|
|
|
192
|
-
Le flag `--ref` a
|
|
192
|
+
Le flag `--ref` a été utilisé sans `--repo`.
|
|
193
193
|
|
|
194
|
-
##
|
|
194
|
+
## Opérations Git
|
|
195
195
|
|
|
196
|
-
### E2001 : Pas un
|
|
196
|
+
### E2001 : Pas un dépôt git
|
|
197
197
|
|
|
198
198
|
<span id="e2001"></span>
|
|
199
199
|
|
|
200
|
-
Le
|
|
200
|
+
Le répertoire courant n'est pas dans un dépôt git.
|
|
201
201
|
|
|
202
|
-
### E2002 :
|
|
202
|
+
### E2002 : Dépôt bare non supporté
|
|
203
203
|
|
|
204
204
|
<span id="e2002"></span>
|
|
205
205
|
|
|
206
|
-
FerrFlow ne supporte pas les
|
|
206
|
+
FerrFlow ne supporte pas les dépôts git bare.
|
|
207
207
|
|
|
208
208
|
### E2003 : Tag existant
|
|
209
209
|
|
|
210
210
|
<span id="e2003"></span>
|
|
211
211
|
|
|
212
|
-
Le tag que FerrFlow veut
|
|
212
|
+
Le tag que FerrFlow veut créer existe déjà.
|
|
213
213
|
|
|
214
214
|
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Supprimez le tag existant ou utilisez <code>--force</code>.</p>
|
|
215
215
|
</div></aside>
|
|
216
216
|
|
|
217
|
-
### E2004 : Push de branche
|
|
217
|
+
### E2004 : Push de branche échoué
|
|
218
218
|
|
|
219
219
|
<span id="e2004"></span>
|
|
220
220
|
|
|
221
221
|
Impossible de push la branche de release.
|
|
222
222
|
|
|
223
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
223
|
+
<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>
|
|
224
224
|
</div></aside>
|
|
225
225
|
|
|
226
|
-
### E2005 : Push
|
|
226
|
+
### E2005 : Push rejeté
|
|
227
227
|
|
|
228
228
|
<span id="e2005"></span>
|
|
229
229
|
|
|
230
|
-
Le remote a
|
|
230
|
+
Le remote a rejeté le push.
|
|
231
231
|
|
|
232
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Pullez les derniers changements et
|
|
232
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Pullez les derniers changements et réessayez.</p>
|
|
233
233
|
</div></aside>
|
|
234
234
|
|
|
235
|
-
### E2006 : Push des tags
|
|
235
|
+
### E2006 : Push des tags échoué
|
|
236
236
|
|
|
237
237
|
<span id="e2006"></span>
|
|
238
238
|
|
|
239
239
|
Impossible de push les tags vers le remote.
|
|
240
240
|
|
|
241
|
-
### E2007 : Push des tags flottants
|
|
241
|
+
### E2007 : Push des tags flottants échoué
|
|
242
242
|
|
|
243
243
|
<span id="e2007"></span>
|
|
244
244
|
|
|
@@ -248,60 +248,60 @@ Impossible de force-push les tags flottants.
|
|
|
248
248
|
|
|
249
249
|
<span id="e2008"></span>
|
|
250
250
|
|
|
251
|
-
Le remote git
|
|
251
|
+
Le remote git configuré n'existe pas.
|
|
252
252
|
|
|
253
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
253
|
+
<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>
|
|
254
254
|
</div></aside>
|
|
255
255
|
|
|
256
|
-
### E2009 :
|
|
256
|
+
### E2009 : Vérification post-push échouée
|
|
257
257
|
|
|
258
258
|
<span id="e2009"></span>
|
|
259
259
|
|
|
260
|
-
Le commit de release n'a pas pu
|
|
260
|
+
Le commit de release n'a pas pu être vérifié sur la branche distante.
|
|
261
261
|
|
|
262
262
|
### E2010 : Branche distante introuvable
|
|
263
263
|
|
|
264
264
|
<span id="e2010"></span>
|
|
265
265
|
|
|
266
|
-
La branche distante n'a pas
|
|
266
|
+
La branche distante n'a pas été trouvée après le push.
|
|
267
267
|
|
|
268
268
|
## API GitHub
|
|
269
269
|
|
|
270
|
-
### E3001 :
|
|
270
|
+
### E3001 : Création de release échouée
|
|
271
271
|
|
|
272
272
|
<span id="e3001"></span>
|
|
273
273
|
|
|
274
|
-
L'API GitHub Releases a
|
|
274
|
+
L'API GitHub Releases a retourné une erreur.
|
|
275
275
|
|
|
276
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
276
|
+
<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>
|
|
277
277
|
</div></aside>
|
|
278
278
|
|
|
279
279
|
### E3002 to E3010 : Erreurs API GitHub
|
|
280
280
|
|
|
281
281
|
<span id="e3002"></span>
|
|
282
282
|
|
|
283
|
-
Erreurs lors d'
|
|
283
|
+
Erreurs lors d'opérations sur l'API GitHub (releases, PR, auto-merge, GraphQL).
|
|
284
284
|
|
|
285
285
|
## API GitLab
|
|
286
286
|
|
|
287
|
-
### E3101 :
|
|
287
|
+
### E3101 : Création de release échouée
|
|
288
288
|
|
|
289
289
|
<span id="e3101"></span>
|
|
290
290
|
|
|
291
|
-
L'API GitLab Releases a
|
|
291
|
+
L'API GitLab Releases a retourné une erreur.
|
|
292
292
|
|
|
293
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
293
|
+
<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>
|
|
294
294
|
</div></aside>
|
|
295
295
|
|
|
296
296
|
### E3102 to E3105 : Erreurs API GitLab
|
|
297
297
|
|
|
298
298
|
<span id="e3102"></span>
|
|
299
299
|
|
|
300
|
-
Erreurs lors d'
|
|
300
|
+
Erreurs lors d'opérations sur l'API GitLab (releases, MR, merge).
|
|
301
301
|
|
|
302
302
|
## Fichiers de version
|
|
303
303
|
|
|
304
|
-
Les erreurs E4xxx concernent la lecture, l'
|
|
304
|
+
Les erreurs E4xxx concernent la lecture, l'écriture et le parsing des fichiers de version :
|
|
305
305
|
|
|
306
306
|
| Plage | Format |
|
|
307
307
|
| -------------- | --------------------------------- |
|
|
@@ -313,24 +313,24 @@ Les erreurs E4xxx concernent la lecture, l'\u00e9criture et le parsing des fichi
|
|
|
313
313
|
| E4601 to E4603 | Go mod |
|
|
314
314
|
| E4701 to E4704 | Texte (VERSION, VERSION.txt) |
|
|
315
315
|
|
|
316
|
-
Erreurs courantes : lecture impossible, syntaxe invalide, champ `version` manquant,
|
|
316
|
+
Erreurs courantes : lecture impossible, syntaxe invalide, champ `version` manquant, écriture impossible, UTF-8 invalide.
|
|
317
317
|
|
|
318
|
-
## Pr
|
|
318
|
+
## Pré-release
|
|
319
319
|
|
|
320
320
|
### E5001 : Nom de channel vide
|
|
321
321
|
|
|
322
322
|
<span id="e5001"></span>
|
|
323
323
|
|
|
324
|
-
Le nom du channel de pr
|
|
324
|
+
Le nom du channel de pré-release est vide.
|
|
325
325
|
|
|
326
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
326
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Spécifiez un nom : <code>--channel beta</code></p>
|
|
327
327
|
</div></aside>
|
|
328
328
|
|
|
329
329
|
### E5002 : Nom de channel invalide
|
|
330
330
|
|
|
331
331
|
<span id="e5002"></span>
|
|
332
332
|
|
|
333
|
-
Seuls les
|
|
333
|
+
Seuls les alphanumériques et tirets sont acceptés.
|
|
334
334
|
|
|
335
335
|
## Versioning
|
|
336
336
|
|
|
@@ -345,18 +345,18 @@ La version actuelle n'est pas un semver valide.
|
|
|
345
345
|
|
|
346
346
|
## Hooks
|
|
347
347
|
|
|
348
|
-
### E6001 : Hook
|
|
348
|
+
### E6001 : Hook échoué
|
|
349
349
|
|
|
350
350
|
<span id="e6001"></span>
|
|
351
351
|
|
|
352
|
-
Un hook a
|
|
352
|
+
Un hook a échoué avec `on_failure: "abort"`.
|
|
353
353
|
|
|
354
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>
|
|
354
|
+
<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>
|
|
355
355
|
</div></aside>
|
|
356
356
|
|
|
357
357
|
## Query
|
|
358
358
|
|
|
359
|
-
### E7001 : Aucun package
|
|
359
|
+
### E7001 : Aucun package configuré
|
|
360
360
|
|
|
361
361
|
<span id="e7001"></span>
|
|
362
362
|
|
|
@@ -369,7 +369,7 @@ Aucun package dans le fichier de config.
|
|
|
369
369
|
|
|
370
370
|
<span id="e7002"></span>
|
|
371
371
|
|
|
372
|
-
Le nom de package
|
|
372
|
+
Le nom de package spécifié n'existe pas dans la config.
|
|
373
373
|
|
|
374
374
|
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Lancez <code>ferrflow version</code> pour lister les packages.</p>
|
|
375
375
|
</div></aside>
|
|
@@ -380,15 +380,15 @@ Le nom de package sp\u00e9cifi\u00e9 n'existe pas dans la config.
|
|
|
380
380
|
|
|
381
381
|
<span id="e8001"></span>
|
|
382
382
|
|
|
383
|
-
Un package
|
|
383
|
+
Un package référencé pendant la release n'a pas été trouvé.
|
|
384
384
|
|
|
385
|
-
### E8002 : Tag flottant
|
|
385
|
+
### E8002 : Tag flottant régressif
|
|
386
386
|
|
|
387
387
|
<span id="e8002"></span>
|
|
388
388
|
|
|
389
|
-
Un tag flottant serait
|
|
389
|
+
Un tag flottant serait déplacé vers une version plus ancienne.
|
|
390
390
|
|
|
391
|
-
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Utilisez <code>--force</code> pour ignorer la
|
|
391
|
+
<aside class="ferr-aside ferr-aside--tip"><div class="ferr-aside__body"><p>Utilisez <code>--force</code> pour ignorer la vérification.</p>
|
|
392
392
|
</div></aside>
|
|
393
393
|
|
|
394
394
|
### E8003 : Cycle de dépendances
|