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
-
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
archivesBaseNamewith the newbase { archivesName = '...' }block required by Gradle 9.x
-
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.jarto enable automated builds without manual Gradle installation. - Optimized JVM settings in
gradle.propertiesfor better memory management and garbage collection with modern Gradle
Performance Improvements
-
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)
-
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
-
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
-
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 buildOutput 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