NeoForm must be updated before anything can be done in NeoForge itself.
- Start Kits branch with action
- Press "Run workflow"
- Fill out the fields
- The workflow checks out the specified branch from this repository
- It updates
minecraft_version
in gradle.properties with the given Minecraft version - It updates
neoform_version
in gradle.properties with the given NeoForm version. Grab it from its project page. The version does not include the Minecraft version (i.e.20240415.193619
)
- Wait
- If it fails (i.e. with
Failed to download game artifact EXECUTABLE for CLIENT
), retry the job
- If it fails (i.e. with
- Clone the Kits repository and check out the branch corresponding to the Minecraft version
- Setup has already been run and
projects/neoforge
will contain the patched sources - Fix rejected patch hunks found in the
rejects/
folder by re-applying the broken hunk and deleting the reject file - Fix other compile errors
- Run tests (see above)
- Fix any problems found by tests
- Generate patches (
unpackSourcePatches
) - Apply formatting (
applyAllFormatting
) - Push this state to Kits
- Create a squashed branch (i.e.
<mc_version>-squashed
) - Remove MC sources and commit
- Squash all commits from "Initial base" created by the action, ensure the resulting commit contains no bot authorship.
- Push the squashed branch to Kits
- Make absolutly sure no Minecraft sources are still present in the history of the branch
- If this is the first snapshot for a new version, publish this Kits branch to a
port/<mc_version>
branch on the main repository.
- You grant NeoForged a license to use your code contributed to the primary codebase (everything not under patches) in NeoForge, under the LGPLv2.1 license.
- You assign copyright ownership of your contributions to the patches codebase (everything under patches) to NeoForged, where it will be licensed under the LGPLv2.1 license.
This is intended as a legally binding copyright assignment to the NeoForged project for contributions under the patches codebase. However you retain your copyright for all other contributions.