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.
Erreurs de configuration
E1001 : Fichier de config introuvable
Le fichier de config indiqué via --config n'existe pas.
E1002 : Échec du parsing ferrflow.json
Le fichier ferrflow.json contient du JSON invalide.
E1003 : Échec du parsing ferrflow.json5
Le fichier ferrflow.json5 contient du JSON5 invalide.
E1004 : Échec du parsing ferrflow.toml
Le fichier ferrflow.toml contient du TOML invalide.
E1005 : Erreur de sérialisation TOML
Erreur interne lors de l'écriture TOML.
E1006 : Échec du parsing .ferrflow
Le fichier .ferrflow contient du JSON invalide.
E1007 : Erreur de sérialisation .ferrflow
Erreur interne lors de l'écriture du dotfile.
E1008 : Résolution de chemin impossible
Un chemin dans la config n'a pas pu être résolu en chemin absolu.
E1009 : Écriture du loader temporaire impossible
Impossible d'écrire le loader JS/TS temporaire.
E1010 : Impossible d'exécuter tsx
Le runtime tsx est introuvable pour les configs .ts.
E1011 : Impossible d'exécuter node
Le runtime node est introuvable pour les configs .js.
E1012 : Évaluation de la config échouée
Le fichier JS/TS a levé une erreur lors de l'évaluation.
E1013 : Sortie de config invalide
Le fichier JS/TS a produit une sortie non UTF-8.
E1014 : JSON invalide depuis la config
Le fichier JS/TS n'a pas produit de JSON valide.
E1015 : Lecture du fichier impossible
Le fichier de config existe mais ne peut pas être lu.
E1016 : Plusieurs fichiers de config
Plusieurs fichiers de config trouvés dans le répertoire.
E1017 : Fichier déjà existant
ferrflow init lancé alors qu'un fichier de config existe déjà.
E1024 : Fichier versionne introuvable
Un package que cette execution allait publier declare une entree versionedFiles dont le fichier n'est pas sur le disque. L'execution s'arrete au moment du plan plutot qu'au moment de l'ecriture, ou le meme probleme apparait sous la forme d'une simple erreur de lecture.
La cause habituelle est un chemin ecrit relativement au package plutot qu'a la racine du depot. package.path n'est pas un prefixe que FerrFlow ajoute pour vous :
[[package]]
name = "api"
path = "packages/api"
[[package.versioned_files]]
path = "Cargo.toml" # faux, cherche a la racine du depot
# path = "packages/api/Cargo.toml" # correct
L'erreur indique le chemin qu'elle suppose correct. ferrflow validate signale le meme probleme pour tous les packages configures, y compris ceux que cette execution n'aurait pas touches.
Erreurs de validation
E1100 : Spec de repo invalide
L'argument --repo ne correspond pas au format attendu owner/repo.
E1101 : Erreur API GitHub
L'API GitHub a retourné une erreur lors de la validation distante.
E1102 : Erreur API GitLab
L'API GitLab a retourné une erreur lors de la validation distante.
E1103 : UTF-8 invalide
Le fichier de config distant contient un encodage UTF-8 invalide.
E1104 : Parsing de la config distante échoué
Le fichier de config distant n'a pas pu être parsé.
E1105 : Fichier de config distant introuvable
Le chemin spécifié n'existe pas dans le dépôt distant.
E1106 : Aucun fichier de config trouvé
Aucun fichier de config FerrFlow dans le dépôt distant.
E1107 : --ref nécessite --repo
Le flag --ref a été utilisé sans --repo.
Opérations Git
E2001 : Pas un dépôt git
Le répertoire courant n'est pas dans un dépôt git.
E2002 : Dépôt bare non supporté
FerrFlow ne supporte pas les dépôts git bare.
E2003 : Tag existant
Le tag que FerrFlow veut créer existe déjà.
E2004 : Push de branche échoué
Impossible de push la branche de release.
E2005 : Push rejeté
Le remote a rejeté le push.
E2006 : Push des tags échoué
Impossible de push les tags vers le remote.
E2007 : Push des tags flottants échoué
Impossible de force-push les tags flottants.
E2008 : Remote introuvable
Le remote git configuré n'existe pas.
E2009 : Vérification post-push échouée
Le commit de release n'a pas pu être vérifié sur la branche distante.
E2010 : Branche distante introuvable
La branche distante n'a pas été trouvée après le push.
API GitHub
E3001 : Création de release échouée
L'API GitHub Releases a retourné une erreur.
E3002 to E3010 : Erreurs API GitHub
Erreurs lors d'opérations sur l'API GitHub (releases, PR, auto-merge, GraphQL).
API GitLab
E3101 : Création de release échouée
L'API GitLab Releases a retourné une erreur.
E3102 to E3105 : Erreurs API GitLab
Erreurs lors d'opérations sur l'API GitLab (releases, MR, merge).
Fichiers de version
Les erreurs E4xxx concernent la lecture, l'écriture et le parsing des fichiers de version :
| Plage | Format |
|---|---|
| E4101 to E4105 | TOML (Cargo.toml, pyproject.toml) |
| E4201 to E4205 | JSON (package.json) |
| E4301 to E4304 | Helm / YAML (Chart.yaml) |
| E4401 to E4413 | XML / CSProj |
| E4501 to E4504 | Gradle |
| E4601 to E4603 | Go mod |
| E4701 to E4704 | Texte (VERSION, VERSION.txt) |
Erreurs courantes : lecture impossible, syntaxe invalide, champ version manquant, écriture impossible, UTF-8 invalide.
Pré-release
E5001 : Nom de channel vide
Le nom du channel de pré-release est vide.
E5002 : Nom de channel invalide
Seuls les alphanumériques et tirets sont acceptés.
Versioning
E5010 : Semver invalide
La version actuelle n'est pas un semver valide.
Hooks
E6001 : Hook échoué
Un hook a échoué avec on_failure: "abort".
Query
E7001 : Aucun package configuré
Aucun package dans le fichier de config.
E7002 : Package introuvable
Le nom de package spécifié n'existe pas dans la config.
Monorepo
E8001 : Package introuvable dans la config
Un package référencé pendant la release n'a pas été trouvé.
E8002 : Tag flottant régressif
Un tag flottant serait déplacé vers une version plus ancienne.
E8003 : Cycle de dépendances
Deux packages ou plus dépendent l'un de l'autre via dependsOn, directement ou transitivement : il n'existe aucun ordre de release possible. Le message nomme la boucle, par exemple cycle detected: api → web → api. Supprimez l'une des arêtes dependsOn pour la casser. La vérification s'exécute avant toute écriture de version, donc une configuration cyclique ne laisse jamais de release partielle.