🔄 Compatibilité des versions et cycle de vie
Cette page présente la matrice de compatibilité des versions, les règles de conception et la gestion des dépendances pour Agrarian Reform.
📌 Avertissement sur le code source : La documentation reflète l'état actuel du code du dépôt, qui peut inclure des fonctionnalités en développement en avance sur les versions publiques.
📊 Matrice de compatibilité des versions Minecraft
| Version Minecraft | Build du mod | Statut | Cible Java | Fabric Loader | Contrainte de dépendance |
|---|---|---|---|---|---|
| Minecraft 26.3 | 2.2.18+26.3 | Branche principale (Snapshot 6+) | Java 25 | >=0.16.9 | "minecraft": ">=26.3-" |
| Minecraft 26.2 | 2.2.18+26.2 | Branche principale (Stable) | Java 25 | >=0.16.9 | "minecraft": ">=26.2-" |
| Minecraft 26.1.2 | 1.2.7+R-26.1.2 | Version archivée | Java 25 | >=0.15.0 | "minecraft": ">=26.1.2" |
🛡️ 1 Jar 1 Version et bornes ouvertes
Agrarian Reform applique la règle 1 Jar 1 Version et l'impératif de compatibilité ascendante :
- Build dédié : Chaque fichier JAR est compilé, testé et archivé pour une version cible précise de Minecraft (
agrarian-reform-2.2.18+26.2.jaretagrarian-reform-2.2.18+26.3.jar). - Bornes inférieures ouvertes : Dans
fabric.mod.json, la dépendance Minecraft est déclarée avec une borne ouverte :jsonet pour 26.3 :"minecraft": ">=26.2-"jsonCela empêche le blocage de Fabric Loader sur les mises à jour mineures ou correctifs."minecraft": ">=26.3-" - Dépendances ouvertes : Les bibliothèques comme
dasik-libraryutilisent des jokers ("*") pour éviter les conflits lors des montées de version mineures.
🔄 Architecture moderne et Codecs SavedData
- Versionnage annuel (Annual Drop) : Minecraft utilise le cycle
Year.Drop.Patch. Les versions 26.2 et 26.3 représentent les releases actives. - Ère non-offusquée : Les codes 26.x reposent sur les mappings officiels de Mojang. L'ancien vocabulaire Yarn est banni.
- Modernisation de SavedData : Les données persistantes utilisent
SavedDataTypeavec des Codecs explicites au lieu de la manipulation directe de NBT :
java
public static final SavedDataType<ContinuumData> TYPE = new SavedDataType<>(
Identifier.fromNamespaceAndPath("agrarian_reform", "continuum"),
ContinuumData::create,
Codec.unboundedMap(Codec.STRING, Codec.LONG).xmap(
map -> {
ContinuumData data = new ContinuumData();
map.forEach((k, v) -> data.timestamps.put(Long.parseLong(k), v));
return data;
},
data -> {
Map<String, Long> map = new HashMap<>();
data.timestamps.forEach((k, v) -> map.put(k.toString(), v));
return map;
}
),
DataFixTypes.SAVED_DATA_MAP_DATA
);Voir aussi : Guide Minecraft 26.2 et 26.3 et API et intégration d'addons.
