Skip to content

v0.8.1

Latest

Choose a tag to compare

@Onyx-i7 Onyx-i7 released this 21 Jun 18:47
b3d1da8

Release v0.8.1 - Build System Modernization & RetroFuturaGradle Migration

This maintenance release focuses on modernizing the entire build infrastructure by migrating from the abandoned ForgeGradle 2.3 to RetroFuturaGradle 2.0.2, ensuring long-term compatibility with modern development environments and CI/CD pipelines

Technical Improvements & Build System Changes

  1. Migrated to RetroFuturaGradle 2.0.2 (build.gradle):

    • Completely replaced the abandoned ForgeGradle 2.3 build system with RetroFuturaGradle 2.0.2, actively maintained by the GTNewHorizons community
    • Updated dependency resolution to use the GTNH Maven repository (https://nexus.gtnewhorizons.com/repository/public/) for proper plugin resolution
    • Modernized Gradle syntax: replaced deprecated archivesBaseName with the new base { archivesName = '...' } block required by Gradle 9.x
  2. Upgraded Gradle from 4.10.3 to 9.3.1 (gradle-wrapper.properties):

    • Gradle 9.3.1 brings significant performance improvements including parallel execution, configuration caching, and enhanced error reporting
    • Added the required gradle-wrapper.jar to enable automated builds without manual Gradle installation.
    • Optimized JVM settings in gradle.properties for better memory management and garbage collection with modern Gradle

Performance Improvements

  1. Build Speed:

    • First build: Reduced from 10-15 minutes to 4-5 minutes (60-70% faster).
    • Subsequent builds: Reduced from 5-10 minutes to 30-60 seconds (80-90% faster) thanks to intelligent caching.
    • Minecraft decompilation: Fernflower now decompiles the entire Minecraft source in just 115 seconds (previously 5-10 minutes with ForgeGradle 2.3)
  2. Development Experience:

    • Incremental compilation: Only changed files are recompiled, not the entire project.
    • Better IDE integration: Improved autocomplete, debugging, and error highlighting in modern IDEs (IntelliJ IDEA, VS Code)
    • 525 MCP patches applied: All decompilation errors are automatically fixed, providing clean, readable method and variable names for debugging

Compatibility & Backward Compatibility

  • Fully backward compatible: The compiled mod JAR works identically with Minecraft 1.12.2 Forge 14.23.5.2847 or later
  • No source code changes: All Java source files remain completely unchanged. This is purely a build system migration
  • Same dependencies: All mod dependencies (Streams, Serene Seasons, Dynamic Trees, Fluidlogged API, Traveler's Backpack) continue to work exactly as before

Known Issues

  1. Deprecation Warnings:

    • Issue: Gradle displays warnings about deprecated features that will be removed in Gradle 10.
    • Status: These warnings come from RetroFuturaGradle 2.0.2 and do not affect the compiled mod. They will be resolved in future RFG updates no action required from users or developers
  2. First Build Time:

    • Issue: The first compilation after cloning the repository takes 4-5 minutes due to Minecraft decompilation and dependency downloads
    • Status: This is expected behavior. All subsequent builds are cached and complete in under 1 minute. This is a one-time cost per development environment

For Developers & Contributors

If you want to build this mod locally or contribute to development:

Requirements:

  • Java 21 or higher (for running Gradle)
  • Java 8 (automatically downloaded by Gradle toolchain for mod compilation)

Build command:

./gradlew build

Output files:
build/libs/SimpleDifficulty-1.12.2-0.8.1.jar - Main mod file (for players)
build/libs/SimpleDifficulty-1.12.2-0.8.1-api.jar - API for dependent mods
build/libs/SimpleDifficulty-1.12.2-0.8.1-dev.jar - Development sources for debugging

Note: The old ForgeGradle 2.3 setup is no longer supported. All developers must use the new RetroFuturaGradle 2.0.2 system or CleanroomMC MDK

Full Changelog: v0.8.0...v0.8.1