Skip to content

Commit 52eb73f

Browse files
committed
docs(neoforge): record v0.7 implementation and strict release acceptance
1 parent 15d66dd commit 52eb73f

4 files changed

Lines changed: 79 additions & 13 deletions

File tree

‎README.md‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,24 @@ Fabric and Quilt startup were confirmed by the maintainer on 20 October 2026; lo
8282

8383
The sole product version is `launcherVersion` in [`gradle.properties`](gradle.properties), now `0.6.0`. Changing it to a higher **plain `X.Y.Z` version** (e.g. `0.6.0` → `0.7.0`) and pushing to `main` automatically publishes a normal GitHub Release `vX.Y.Z` after all Gradle/Python tests and Windows/Linux/macOS packaging succeed. **No GitHub pre-releases are published.** Ordinary code changes do not issue new releases. Matching plain-version manual tags remain supported. Each published release is eligible for the stable launcher updater; remaining gameplay and distribution acceptance limitations are recorded in the roadmap. See [publishing instructions](docs/UPDATING.md).
8484

85+
## v0.7 — NeoForge (in development, not yet released)
86+
87+
A processor-backed NeoForge installer adapter is now connected to the existing
88+
instance and launch pipeline. The desktop can discover compatible NeoForge Maven
89+
versions and save them in instance metadata. Before game launch, the common
90+
coordinator first prepares the official Vanilla client and Java runtime, then
91+
downloads the official SHA-256-verified NeoForge installer, stages processor
92+
dependencies and generates the required client libraries in a separate working
93+
directory. A generated runtime profile is merged back into the shared launch
94+
pipeline. Local mod inventory can recognize the first NeoForge mods.toml record,
95+
and the existing Modrinth loader filter follows the selected NeoForge instance.
96+
97+
**Not a certified working NeoForge release:** official installer smoke, real
98+
Minecraft boot, cancellation/recovery checks, and native platform acceptance
99+
must pass before marking v0.7 complete. Do not use this stage with your only
100+
world save or assume filesystem staging is a security sandbox. See
101+
[the v0.7 acceptance checklist](docs/TESTING_V0.7.md).
102+
85103
## v0.6 — Browse and install popular Modrinth mods (development)
86104

87105
Open **Instances → Mods → Discover on Modrinth** for a Fabric instance. The discover

‎docs/ROADMAP.md‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -523,16 +523,17 @@ Goal: add a second major loader and prove the loader architecture is genuinely r
523523

524524
- [ ] 🚧 IN PROGRESS — Discover official NeoForge Maven versions; processor installation and actual launch remain unimplemented.
525525
- [ ] 🚧 IN PROGRESS — Inspect NeoForge installer V2 metadata and list client processors in read-only preflight; execution/generated artifacts remain open.
526-
- [ ] 🚧 IN PROGRESS — Fetch the official NeoForge installer SHA-256 sidecar, download the checksum-verified JAR to a dedicated cache and run read-only preflight. Implementation added; automated/hosted and live Maven verification pending. See [v0.7 tests](TESTING_V0.7.md).
527-
- [ ] Resolve required libraries.
528-
- [ ] Integrate generated/processed artifacts safely.
529-
- [ ] Store NeoForge loader state in instance metadata.
530-
- [ ] Launch through common launch pipeline.
526+
- [ ] 🚧 IN PROGRESS — Fetch official NeoForge installer and SHA-256, verify the cache and inspect V2 client steps. Synthetic tests pass; live Maven/processor acceptance required before completion. See [v0.7 tests](TESTING_V0.7.md).
527+
- [ ] 🚧 IN PROGRESS — Execute NeoForge V2 processors in a child Java process using a temporary workspace, check declared output files, stage generated libraries and merge runtime version metadata. Synthetic fixtures integrated; official installation/game startup and failure-recovery matrix are not yet accepted.
528+
- [ ] 🚧 IN PROGRESS — Download processor libraries through verified shared download infrastructure and resolve generated output paths. Official Maven dependency matrix not yet accepted.
529+
- [ ] 🚧 IN PROGRESS — Stage generated/processed artifacts with collision checks; interrupted/concurrent processor recovery and real versions still require verification.
530+
- [x] Store NeoForge loader id/version using the existing instance metadata schema and expose the compatible-version selector in desktop creation/editing.
531+
- [ ] 🚧 IN PROGRESS — Wire NeoForge processing after base client/Java preparation into common launch pipeline. Actual NeoForge game startup remains to be demonstrated.
531532

532533
## Compatibility
533534

534-
- [ ] Filter Modrinth content for NeoForge.
535-
- [ ] Parse relevant NeoForge mod metadata in local manager.
535+
- [ ] 🚧 IN PROGRESS — Generic Modrinth adapter already filters by the instance loader; NeoForge profile/UI integration added. Live install acceptance pending.
536+
- [ ] 🚧 IN PROGRESS — Identify NeoForge mods from META-INF/neoforge.mods.toml; richer TOML dependency/version semantics remain open.
536537
- [ ] Detect common incompatible loader combinations.
537538

538539
## v0.7 quality gate

‎docs/TESTING_V0.7.md‎

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,24 @@
33
## Stage 1: official installer acquisition and read-only preflight
44

55
- [ ] Official NeoForge Maven metadata and compatible-version mapping verified against currently published releases.
6-
- [ ] SHA-256 sidecar fetch, checksum parsing, verified JAR download and cache reuse validated in Gradle tests.
6+
- [x] Synthetic SHA-256 sidecar fetch, checksum parsing, verified JAR download and cache reuse validated in Gradle core tests.
77
- [ ] Tampered archive, missing/bad checksum, unsupported installer layout and wrong Minecraft target rejected.
88
- [ ] Windows/Linux/macOS cache paths and interrupted downloads verified.
99
- [ ] Real official NeoForge installer checked in preflight (read-only, no processor execution).
1010

1111
## Stage 2: processors, libraries and generated outputs
1212

13-
- [ ] Resolve installer library coordinates and metadata-defined trusted repositories, with file integrity checks.
13+
- [ ] 🚧 Processor library coordinate resolution and allow-listed Maven downloads implemented; official source and artifact matrix acceptance open.
1414
- [ ] Expand client-side installer data placeholders in a confined staging directory; reject unsafe paths.
15-
- [ ] Execute required processors using managed Java with bounded resource/time limits and captured diagnostics.
15+
- [ ] 🚧 Execute client processors in a child JVM selected from the resolved runtime, bounded by a time limit; cancellation/log persistence and official process acceptance open.
1616
- [ ] Check declared outputs, reject incomplete/corrupt generated artifacts and publish only on success.
17-
- [ ] Merge generated NeoForge version metadata with Mojang version for common launch pipeline.
17+
- [ ] 🚧 Overlay generated NeoForge metadata on the base client and route through common launch pipeline; actual Minecraft bootstrap/launch acceptance open.
1818
- [ ] Reuse the shared instance activity lock and preserve every existing world/mod when preparation fails.
19-
- [ ] Add deterministic successful/error/rollback MockEngine and process fixtures.
19+
- [ ] 🚧 Added deterministic successful Java processor and mismatch fixtures; rollback, partial-publish and cancellation cases open.
2020

2121
## Stage 3: desktop and actual-game acceptance
2222

23-
- [ ] Offer NeoForge only after its end-to-end installer/launch path is operational.
23+
- [ ] 🚧 NeoForge selector is visible; do not label this path production-ready until full official smoke and gameplay pass.
2424
- [ ] Select compatible versions in instance creation/editing, without breaking Vanilla/Fabric/Quilt.
2525
- [ ] Filter Modrinth by NeoForge, and recognize NeoForge mod metadata in local manager.
2626
- [ ] Test real Minecraft startup using NeoForge and at least one compatible client mod.
@@ -31,3 +31,10 @@
3131
It never executes downloaded installers and never exposes an unusable NeoForge
3232
selection in the UI. GitHub CI and real-world acceptance must be recorded before
3333
checking their respective boxes. Stage 2 and Stage 3 are not implemented.
34+
35+
## Hosted verification record
36+
37+
- The core has both synthetic processor tests and an opt-in official NeoForge 21.1.213 / Minecraft 1.21.1 Maven integration test.
38+
- GitHub Actions runs the real integration test on main before creating native packages. A passing test demonstrates installation, not a real graphical Minecraft startup.
39+
- Processor code is downloaded executable third-party Java; the staged filesystem provides data isolation, **not an operating-system sandbox**.
40+
- No stable v0.7 release is authorized solely by passing unit tests or package builds. Real game launch, compatible mods and supported platform matrix must still be accepted.

‎docs/WORKLOG.md‎

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,46 @@ Every code/build/documentation/CI task must add an entry according to `AGENTS.md
88

99
---
1010

11+
## 2026-10-21 — NeoForge V2 processor integration and hosted acceptance gate
12+
13+
**Milestone:** v0.7 — NeoForge
14+
**Author/Agent:** GPT-6
15+
**Status:** Partial — implementation and CI submitted; release acceptance pending
16+
17+
### Completed
18+
- Added a processor-driven NeoForge installer staging service, shared dependency downloader integration, verification of declared processor outputs, SHA-1-tracked generated runtime libraries and profile merge.
19+
- Added a distinct prepared-loader interface. The standard coordinator obtains base client and Java first for processor-backed loaders; Fabric/Quilt retain the original metadata-only path.
20+
- Exposed NeoForge version selection in instance settings, instance creation and advanced modded-game setup, plus home mode switch/Mods workspace reuse.
21+
- Added simple NeoForge mods.toml ID/name/version extraction to local mod inventory. Full TOML dependency resolution remains future work.
22+
- Added synthetic Java processor fixture and negative checksum/target tests. Added opt-in official NeoForge Maven integration test, run as a CI gate for main before platform packaging. Actual Minecraft client startup is not tested by this fixture.
23+
- Left launcherVersion at 0.6.0 pending real NeoForge installer and gameplay acceptance; **did not publish a GitHub Release**.
24+
25+
### Changed files
26+
- `launcher-core/.../loader/NeoForgeInstallerEngine.kt`, `ModLoader.kt`, `InstallerLoaderDiscovery.kt` — processor-driven loader adapter.
27+
- `launcher-core/.../launch/MinecraftLaunchCoordinator.kt` and desktop `Main.kt` — correct runtime/preparation order and dependency injection.
28+
- Desktop game setup, instance settings/workspace, home navigation and local-mod parser — NeoForge selection and metadata.
29+
- Core NeoForge smoke/fixture tests and `.github/workflows/build.yml` — synthetic and official Maven acceptance coverage.
30+
- `docs/ROADMAP.md`, `docs/TESTING_V0.7.md`, `README.md`, `docs/WORKLOG.md` — status and release gates.
31+
32+
### Verification
33+
- `./gradlew test` — synthetic suite submitted to GitHub CI; latest run result must be checked.
34+
- `./gradlew build` — submitted to hosted CI; this entry does not assume final success.
35+
- Official NeoForge 21.1.213 V2 processor smoke — submitted as a hosted main-branch gate; must be checked.
36+
- Real Minecraft startup/native user acceptance — NOT RUN.
37+
- GitHub stable release — NOT PUBLISHED; do not call this a completed milestone yet.
38+
39+
### Roadmap updates
40+
- `[x] v0.7 / Persist loader selection in instance metadata`
41+
- `[ ] v0.7 / Processor installation, runtime launch, Modrinth and platform quality gates` — integration added but final acceptance missing.
42+
43+
### Follow-ups / known issues
44+
- The external Java process is constrained to a staging working directory but not sandboxed by the operating system. Do not claim that it cannot write outside that directory.
45+
- The live smoke test verifies processor artifacts, not that Minecraft opens a window or runs a NeoForge mod.
46+
- Do not bump the single-source version to 0.7.0 until all release checks pass.
47+
48+
---
49+
50+
1151
## 2026-10-21 — Begin v0.7 NeoForge installer acquisition and verification
1252

1353
**Milestone:** v0.7 — NeoForge

0 commit comments

Comments
 (0)