Introduction
FerrFlow est un binaire unique qui automatise le versionnage sémantique pour n’importe quel repository — monorepo ou classique, quel que soit le langage.
Il analyse votre historique de commits, détermine le bon incrément de version, met à jour vos fichiers de version, rédige un changelog, crée un tag git et publie une release. Zéro dépendance runtime.
CLI d'abord
Tout se passe depuis votre terminal ou votre CI. Aucune UI à cliquer, aucun serveur de configuration à surveiller.
Multi-forge
GitHub, GitLab, auto-hébergé — FerrFlow s’adapte à votre forge. Un seul outil, toutes les plateformes.
Commits conventionnels
Analyse l’historique des commits pour déterminer les incréments de version automatiquement. Aucune maintenance manuelle du changelog.
Zéro infra
Un seul binaire, sans daemon, sans serveur, sans base de données. Tourne là où votre CI tourne.
Pourquoi pas semantic-release ou changesets ?
Section intitulée « Pourquoi pas semantic-release ou changesets ? »La plupart des outils de versionnage sont liés à un écosystème spécifique ou nécessitent Node.js dans votre CI.
| Outil | Monorepo | Multi-langage | Runtime |
|---|---|---|---|
| semantic-release | via plugins | JS/Node uniquement | Node.js |
| changesets | bump manuel | JS uniquement | Node.js |
| release-please | limité | partiel | Node.js |
| cargo-release | non | Rust uniquement | Rust |
| FerrFlow | natif | tous | aucun |
FerrFlow est distribué sous forme de binaire compilé. Déposez-le dans n’importe quel environnement CI sans installer de runtime. Un build WASM (@ferrflow/wasm) est également disponible pour une utilisation côté navigateur.
Comment ça marche
Section intitulée « Comment ça marche »- Lit les commits depuis le dernier tag git pour chaque package
- Détermine l’incrément à partir des Conventional Commits (
feat→ minor,fix→ patch, breaking → major) - Met à jour les fichiers de version —
Cargo.toml,package.json,pom.xml, etc. - Rédige le changelog au format Keep a Changelog
- Crée un tag git (
api@v1.2.0) et pousse - Publie une release GitHub/GitLab avec le changelog comme notes de version
Dans un monorepo, FerrFlow ne publie que les packages modifiés et comprend les chemins de dépendances partagées.
Fonctionnalités clés
Section intitulée « Fonctionnalités clés »- Hooks pre/post-release — exécutez des scripts à chaque étape du cycle de vie (bump, commit, publish, failure)
- Commandes de requête —
ferrflow version,ferrflow tagetferrflow statuspour le scripting CI - Tout fichier de version — Cargo.toml, package.json, pom.xml, build.gradle, Chart.yaml, texte brut, et plus
- Support navigateur —
@ferrflow/wasmapporte le parsing de commits, le calcul de bump et la génération de changelog dans le navigateur