TOML

Utilisé par Rust (Cargo.toml) et Python (pyproject.toml).

FerrFlow met à jour le champ version sous [package], [project] ou [tool.poetry].

[package]
name = "my-crate"
version = "1.2.3"   # ← mis à jour

JSON

Utilisé par Node.js (package.json).

FerrFlow met à jour le champ version de premier niveau.

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

XML

Utilisé par Java/Maven (pom.xml).

FerrFlow met à jour le premier élément rencontré.

<project>
  <groupId>com.example</groupId>
  <artifactId>my-app</artifactId>
  <version>1.2.3</version>   <!-- mis à jour -->
</project>

Gradle

Utilisé par les projets Java/Kotlin Gradle (build.gradle, build.gradle.kts).

FerrFlow met à jour l'assignation version = "...".

version = "1.2.3"   // mis à jour

Texte brut

Utilisé pour les fichiers de version simples (VERSION, VERSION.txt).

FerrFlow remplace l'intégralité du contenu du fichier par le numéro de version.

1.2.3

Go modules

Utilisé par les projets Go (go.mod).

Les modules Go utilisent directement les tags git — FerrFlow ne modifie pas go.mod. La version est dérivée entièrement du tag git (v1.2.3 ou {name}@v1.2.3).

Helm

Utilisé par les charts Helm Kubernetes (Chart.yaml).

FerrFlow met à jour le champ version et, lorsqu'il est présent, maintient appVersion synchronisé.

apiVersion: v2
name: my-app
version: 1.2.3        # ← mis à jour
appVersion: "1.2.3"   # ← mis à jour si présent

Plusieurs fichiers par package

Un package peut avoir autant d'entrées de fichiers versionnés que nécessaire :

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" },
      ],
    },
  ],
}

Les deux fichiers seront mis à jour avec la même version avant le commit git.