JSON

Used by Node.js (package.json).

FerrFlow updates the top-level version field.

{
  "name": "my-package",
  "version": "1.2.3"
}

TOML

Used by Rust (Cargo.toml) and Python (pyproject.toml).

FerrFlow updates the version field under [package], [project], or [tool.poetry].

[package]
name = "my-crate"
version = "1.2.3"   # ← updated

XML

Used by Java/Maven (pom.xml).

FerrFlow updates the first <version> element it encounters.

<project>
  <groupId>com.example</groupId>
  <artifactId>my-app</artifactId>
  <version>1.2.3</version>   <!-- updated -->
</project>

Gradle

Used by Java/Kotlin Gradle projects (build.gradle, build.gradle.kts).

FerrFlow updates the version = "..." assignment.

version = "1.2.3"   // updated

Plain text

Used for simple version files (VERSION, VERSION.txt).

FerrFlow replaces the entire file content with the version number.

1.2.3

Go

Used by Go projects (go.mod).

Go modules use git tags directly — FerrFlow does not modify go.mod. The version is derived entirely from the git tag (v1.2.3 or {name}@v1.2.3).

On a brand-new repo with no matching tag yet, FerrFlow v3+ bootstraps from the strategy's zero value (0.0.0 for semver, 0 for sequential, …) and creates the first real tag itself — you do not need to run git tag … v0.0.0 before the first release. See how release picks the baseline.

Helm

Used by Kubernetes Helm charts (Chart.yaml).

FerrFlow updates the version field and, when present, keeps appVersion in sync.

apiVersion: v2
name: my-app
version: 1.2.3        # ← updated
appVersion: "1.2.3"   # ← updated when present

Multiple files per package

A package can have as many versioned file entries as needed:

JSON

{
  "package": {
    "versionedFiles": [
      { "path": "Cargo.toml", "format": "toml" },
      { "path": "npm/package.json", "format": "json" }
    ]
  }
}

TOML

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

[[package.versioned_files]] path = "npm/package.json" format = "json"

JSON5

{
  package: {
    versionedFiles: [
      { path: "Cargo.toml", format: "toml" },
      { path: "npm/package.json", format: "json" },
    ],
  },
}

YAML

package:
  versionedFiles:
    - path: Cargo.toml
      format: toml
    - path: npm/package.json
      format: json

Both files will be updated to the same version before the git commit.