Aller au contenu
FerrFlow

Getting Started / Introduction

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.

La plupart des outils de versionnage sont liés à un écosystème spécifique ou nécessitent Node.js dans votre CI.

OutilMonorepoMulti-langageRuntime
semantic-releasevia pluginsJS/Node uniquementNode.js
changesetsbump manuelJS uniquementNode.js
release-pleaselimitépartielNode.js
cargo-releasenonRust uniquementRust
FerrFlownatiftousaucun

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.

  1. Lit les commits depuis le dernier tag git pour chaque package
  2. Détermine l’incrément à partir des Conventional Commits (feat → minor, fix → patch, breaking → major)
  3. Met à jour les fichiers de versionCargo.toml, package.json, pom.xml, etc.
  4. Rédige le changelog au format Keep a Changelog
  5. Crée un tag git (api@v1.2.0) et pousse
  6. 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.

  • Hooks pre/post-release — exécutez des scripts à chaque étape du cycle de vie (bump, commit, publish, failure)
  • Commandes de requêteferrflow version, ferrflow tag et ferrflow status pour le scripting CI
  • Tout fichier de version — Cargo.toml, package.json, pom.xml, build.gradle, Chart.yaml, texte brut, et plus
  • Support navigateur@ferrflow/wasm apporte le parsing de commits, le calcul de bump et la génération de changelog dans le navigateur