1. Scaffold the config

    Run ferrflow init at the root of your repository. It detects your version files and writes a ferrflow.toml:

    ferrflow init
    

    For a Rust project this produces:

    [workspace]
    remote = "origin"
    branch = "main"

    [[package]] name = "my-app" path = "." changelog = "CHANGELOG.md"

    [[package.versioned_files]] path = "Cargo.toml" format = "toml"

  2. Preview what would happen

    Before touching anything, run a dry-run to see what FerrFlow would do:

    ferrflow check
    

    Output:

    Scanning . ...
    → feat: add user authentication
    → fix: correct pagination offset

    Bump my-app 0.1.0 → 0.2.0 Tag my-app@v0.2.0

  3. Run the release

    ferrflow release
    

    FerrFlow will:

    • Update Cargo.toml to 0.2.0
    • Append to CHANGELOG.md
    • Commit the changes
    • Create and push my-app@v0.2.0
    • Create a GitHub release (if GITHUB_TOKEN is set)

Next steps