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.