Skip to content

Commit 5688bd0

Browse files
committed
docs
1 parent f894c30 commit 5688bd0

3 files changed

Lines changed: 40 additions & 2 deletions

File tree

File renamed without changes.

docs/plans/2026-03-13-migration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# LittleLogistics NeoForge 1.21.10 Migration Evaluation
1+
# LittleLogistics NeoForge 1.21.1 Migration Evaluation
22

33
**Evaluator:** evaluator-migration
44
**Date:** 2026-03-13
@@ -9,7 +9,7 @@
99

1010
## Executive Summary
1111

12-
After synthesizing discoveries from all 12 explorers, the migration from Forge 1.20.1 to NeoForge 1.21.10 is **technically demanding but tractable**. The mod has ~180 Java files, but only ~30 require non-trivial migration work. The adversarial explorer's core argument — that a focused big-bang port is faster than incremental abstraction — is correct and well-supported by the evidence.
12+
After synthesizing discoveries from all 12 explorers, the migration from Forge 1.20.1 to NeoForge 1.21.1 is **technically demanding but tractable**. The mod has ~180 Java files, but only ~30 require non-trivial migration work. The adversarial explorer's core argument — that a focused big-bang port is faster than incremental abstraction — is correct and well-supported by the evidence.
1313

1414
The single most valuable pre-migration action is fixing a **pre-existing bug** found by the entity data explorer.
1515

docs/plans/phases/README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# NeoForge 1.21.1 Migration — Phase Plans
2+
3+
Concrete, step-by-step migration plans for each phase of the Forge 1.20.1 → NeoForge 1.21.1 port.
4+
5+
See [evaluation.md](../../../evaluation.md) for the comprehensive gap analysis that informed these plans.
6+
7+
## Phases
8+
9+
| Phase | Doc | Effort | Key Challenge |
10+
|-------|-----|--------|---------------|
11+
| 1 | [Build System](phase-1-build-system.md) | MEDIUM-HIGH | ForgeGradle → NeoGradle, Java 17 → 21 |
12+
| 1.5 | [Vanilla API Compatibility](phase-1.5-vanilla-api.md) | HIGH | Boat.Status physics rewrite, AttributeModifier, AbstractMinecart.Type removal |
13+
| 2 | [Mod Entrypoint & Registration](phase-2-registration.md) | MEDIUM | RegistryObject → DeferredHolder across 15 files |
14+
| 3 | [Networking](phase-3-networking.md) | MEDIUM | SimpleChannel → CustomPacketPayload records with StreamCodec |
15+
| 4 | [Capabilities](phase-4-capabilities.md) | CRITICAL | 14 getCapability() overrides, 15 LazyOptional fields, centralized RegisterCapabilitiesEvent |
16+
| 5 | [Entity Data & BlockEntity Serialization](phase-5-entity-data.md) | MEDIUM | defineSynchedData Builder pattern, HolderLookup.Provider on BlockEntity load/save |
17+
| 6 | [Data Components](phase-6-data-components.md) | HIGH | Codec design for TugRoute/LocoRoute, Item NBT → DataComponentType |
18+
| 7 | [Recipe & Data Generation](phase-7-recipe-datagen.md) | LOW-MEDIUM | RecipeOutput signature (NO Runner class in 1.21.1) |
19+
| 8 | [GUI / Screens](phase-8-gui-screens.md) | LOW-MEDIUM | NetworkHooks.openScreen() removal, RegisterMenuScreensEvent |
20+
| 9A | [Vanilla/NeoForge API Reworks](phase-9a-api-reworks.md) | MEDIUM | AbstractMinecart.Type physics rewrite, PartEntity relocation |
21+
| 9B | [Mechanical Cleanup](phase-9b-mechanical-cleanup.md) | LOW | 80x ResourceLocation find-and-replace |
22+
| 10 | [Create Mod Compatibility](phase-10-create-compat.md) | DEFERRED | Follow-up PR after Create for NeoForge 1.21.1 is available |
23+
24+
## Execution Order
25+
26+
Phases must be executed in order. Each phase gate requires `./gradlew build` to pass before proceeding to the next.
27+
28+
```
29+
Phase 1 → 1.5 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9A → 9B → 10
30+
```
31+
32+
## Pre-Migration (Complete)
33+
34+
The following pre-migration tasks were completed in run 561c8bb0:
35+
- Fixed defineId bug in FluidTankBargeEntity and FluidTankCarEntity
36+
- Removed dead EVENT_BUS.register(this) in ShippingMod
37+
- Replaced StallingCapability with instanceof pattern
38+
- Added JUnit 5 unit tests for SpringPhysicsUtil and route serialization

0 commit comments

Comments
 (0)