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.