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