TeamJM / journeymap-legacy

GNU Lesser General Public License v2.1
10 stars 13 forks source link

RetroFuturaGradle/GTNHGradle buildscript migration #13

Closed eigenraven closed 8 months ago

eigenraven commented 8 months ago

This PR updates the build system to the one we use for all GTNH mods (Gradle 8.6 + RetroFuturaGradle + GTNHGradle plugins), which brings faster build times, better IDE compatibility and various bug fixes to the workflow. It also brings in generics mapping for Minecraft types, so most public and protected raw types like List or Map in the Minecraft API actually become their real generic variants like List<String>

On top of that I ported some of our old mixins used to fix old JM builds, and included them as patches in this PR. I'd recommend reviewing this commit-by-commit in the Files view to get the best idea of what happened, a rebase merge without squashing would probably also help git history readability.

Fixes included:

I have included a slightly modified copy of our github actions workflow for automatic PR testing and publishing to Curseforge&Modrinth. Setting the MODRINTH_TOKEN and CURSEFORGE_TOKEN secrets in this repository's settings to your personal API keys for those websites should be enough to make the publishing work - but I didn't have a good way to test if everything about my configuration for it is correct.

Versioning was switched from being based on the project properties file, to being read from the latest git tag (it includes dirty/current branch metadata if on a dev branch). This means publishing is as simple as git tag 5.1.3p6 && git push origin 5.1.3p6

I have tried to keep the fairplay and unlimited jars working as before, and verified that the file layout looks the same - but another set of eyes certainly wouldn't hurt.

You can now test the mod via Gradle in various run configurations too:

CLAassistant commented 8 months ago

CLA assistant check
All committers have signed the CLA.