Quick start
-
Scaffold the config
Run
ferrflow initat the root of your repository. It detects your version files and writes a.ferrflowconfig:Terminal window ferrflow initFor a Rust project this produces:
{"$schema": "https://ferrflow.com/schema/ferrflow.json","workspace": {"tagTemplate": "v{version}"},"package": [{"name": "my-app","path": ".","changelog": "CHANGELOG.md","versionedFiles": [{ "path": "Cargo.toml", "format": "toml" }]}]} -
Preview what would happen
Before touching anything, run a dry-run to see what FerrFlow would do:
Terminal window ferrflow checkOutput:
Scanning . ...→ feat: add user authentication→ fix: correct pagination offsetBump my-app 0.1.0 → 0.2.0Tag v0.2.0 -
Run the release
Terminal window ferrflow releaseFerrFlow will:
- Update
Cargo.tomlto0.2.0 - Append to
CHANGELOG.md - Commit the changes
- Create and push
v0.2.0 - Create a GitHub release (if
GITHUB_TOKENis set)
- Update
Next steps
Section titled “Next steps”- Set up GitHub Actions to run releases automatically on push to
main - Configure a monorepo if you have multiple packages
- Add pre/post-release hooks for custom scripts during the release lifecycle
- Use
ferrflow versionandferrflow tagin CI scripts — see the CLI reference - Review the full config reference