Skip to content
FerrFlow

Getting Started / Introduction

Introduction

FerrFlow is a single binary that automates semantic versioning for any repository — monorepo or classic, any language.

It reads your commit history, determines the right version bump, updates your version files, writes a changelog, creates a git tag, and publishes a release. Zero runtime dependencies.

CLI-first

Everything happens from your terminal or your CI. No UI to click, no config server to babysit.

Multi-forge

GitHub, GitLab, self-hosted — FerrFlow adapts to your forge. One tool, any platform.

Conventional commits

Reads commit history to determine version bumps automatically. No manual changelog maintenance.

Zero infra

A single binary with no daemon, no server, no database. Runs wherever your CI runs.

Most versioning tools are coupled to a specific ecosystem or require Node.js to be present in your CI.

ToolMonorepoMulti-languageRuntime
semantic-releasevia pluginsJS/Node onlyNode.js
changesetsmanual bumpJS onlyNode.js
release-pleaselimitedpartialNode.js
cargo-releasenoRust onlyRust
FerrFlownativeanynone

FerrFlow ships as a compiled binary. Drop it in any CI environment without installing a runtime. A WASM build (@ferrflow/wasm) is also available for browser-side usage.

  1. Reads commits since the last git tag for each package
  2. Determines the bump from Conventional Commits (feat → minor, fix → patch, breaking → major)
  3. Updates version filesCargo.toml, package.json, pom.xml, etc.
  4. Writes the changelog in Keep a Changelog format
  5. Creates a git tag (api@v1.2.0) and pushes
  6. Publishes a GitHub/GitLab release with the changelog as release notes

In a monorepo, FerrFlow only releases packages that have changed, and understands shared dependency paths.

  • Pre/post-release hooks — run scripts at every lifecycle stage (bump, commit, publish, failure)
  • Query commandsferrflow version, ferrflow tag, and ferrflow status for CI scripting
  • Any version file — Cargo.toml, package.json, pom.xml, build.gradle, Chart.yaml, plain text, and more
  • Browser support@ferrflow/wasm brings commit parsing, bump computation, and changelog generation to the browser