Skip to content

🔄 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 MinecraftBuild du modStatutCible JavaFabric LoaderContrainte de dépendance
Minecraft 26.32.2.18+26.3Branche principale (Snapshot 6+)Java 25>=0.16.9"minecraft": ">=26.3-"
Minecraft 26.22.2.18+26.2Branche principale (Stable)Java 25>=0.16.9"minecraft": ">=26.2-"
Minecraft 26.1.21.2.7+R-26.1.2Version archivéeJava 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 :

  1. 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.jar et agrarian-reform-2.2.18+26.3.jar).
  2. Bornes inférieures ouvertes : Dans fabric.mod.json, la dépendance Minecraft est déclarée avec une borne ouverte :
    json
    "minecraft": ">=26.2-"
    et pour 26.3 :
    json
    "minecraft": ">=26.3-"
    Cela empêche le blocage de Fabric Loader sur les mises à jour mineures ou correctifs.
  3. Dépendances ouvertes : Les bibliothèques comme dasik-library utilisent 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 SavedDataType avec 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.

Official documentation & web portal for Dasik Igaijinn mods.