Skip to content

Commit d694783

Browse files
committed
docs(forge): track v0.8 progress and restricted release publication
1 parent 546264a commit d694783

5 files changed

Lines changed: 86 additions & 13 deletions

File tree

‎README.md‎

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
SyntaxLauncher is a modern Minecraft launcher from SyntaxDevTeam, written primarily in Kotlin and developed incrementally from a minimal vanilla launcher into a modular launcher with premium authentication, isolated instances, mod loaders, Modrinth integration, modpacks and diagnostics.
44

5-
The project has implemented a v0.2 Instance Manager, reached **v0.6 Modrinth development** and begun v0.7/v0.8 loader work. NeoForge processor execution is implemented and verified with an official Maven smoke test; Forge remains in preflight; Quilt Meta profile integration has been added. Microsoft app approval, v0.3 real-account acceptance and real Minecraft startup verification remain pending. The Kotlin/Compose launcher now connects the offline account, Mojang metadata, verified game preparation, automatic Java runtime installation, metadata-driven LaunchPlan and MinecraftProcessManager to an actual desktop Play workflow. A real clean-machine Minecraft launch is not yet verified.
5+
The project has implemented a v0.2 Instance Manager, reached **v0.6 Modrinth development** and begun v0.7/v0.8 loader work. NeoForge processor execution is implemented and verified with an official Maven smoke test; Forge has a V2 installer adapter under CI validation; Quilt Meta profile integration has been added. Microsoft app approval, v0.3 real-account acceptance and real Minecraft startup verification remain pending. The Kotlin/Compose launcher now connects the offline account, Mojang metadata, verified game preparation, automatic Java runtime installation, metadata-driven LaunchPlan and MinecraftProcessManager to an actual desktop Play workflow. A real clean-machine Minecraft launch is not yet verified.
66

77
## Project philosophy
88

@@ -80,9 +80,16 @@ Fabric and Quilt startup were confirmed by the maintainer on 20 October 2026; lo
8080

8181
## Automatic GitHub Releases
8282

83+
**v0.7.0 publication blocker:** The 21 October 2026 version-change CI passed tests and Linux/Windows/macOS packaging, but GitHub rejected the release creation with HTTP 403 (`Resource not accessible by integration`). `launcherVersion=0.7.0` is in main, but the public Release is still absent. See [UPDATING.md](docs/UPDATING.md) for the optional write-authorized release token fix.
84+
85+
8386
The sole product version is `launcherVersion` in [`gradle.properties`](gradle.properties), now `0.7.0`. Changing it to a higher **plain `X.Y.Z` version** (e.g. `0.7.0` → `0.8.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).
8487

85-
## v0.7 — NeoForge (stable-version release; scoped acceptance)
88+
## v0.8 — Forge and Quilt (development)
89+
90+
Forge modern installer V2 now shares a staged processor engine with NeoForge, while official installer discovery and SHA-1 verification remain loader-specific. Initial target: Minecraft 1.21.1 / Forge 52.1.20. The local mod manager recognizes basic `META-INF/mods.toml` identity and supports isolated Forge instances. Historical Forge V1 and older Java compatibility are not implemented. Forge stays unavailable as a public loader option until official installation and real game startup pass. See [v0.8 acceptance](docs/TESTING_V0.8.md).
91+
92+
## v0.7 — NeoForge (v0.7.0 version set; public Release not yet available)
8693

8794
A processor-backed NeoForge installer adapter is now connected to the existing
8895
instance and launch pipeline. The desktop can discover compatible NeoForge Maven
@@ -96,7 +103,7 @@ and the existing Modrinth loader filter follows the selected NeoForge instance.
96103

97104
**Acceptance scope:** automated installer and official Maven smoke tests passed on
98105
21 October 2026. The maintainer reported that testing is complete, but did not
99-
provide an OS/version matrix or logs. This is a v0.7 development-line release,
106+
provide an OS/version matrix or logs. This is a v0.7 development-line build,
100107
not a certification of every NeoForge/Minecraft/mod combination. Cancellation,
101108
recovery and broader loader compatibility remain tracked in the roadmap. Do not use this stage with your only
102109
world save or assume filesystem staging is a security sandbox. See
@@ -126,7 +133,7 @@ touching installed files and explains unmatched local JARs. Managed updates now
126133
SHA-256 provenance checks, a persistent backup of previous JARs and an explicit
127134
last-update rollback action. Updates requiring missing/different dependencies are
128135
deliberately blocked pending a full dependency reconciliation workflow.
129-
Optional-dependency choice, richer conflicts and final UI/game acceptance remain open. Fabric and Quilt use the shared browsing/installing workflow. NeoForge has processor-backed installation; Forge's processor integration remains the v0.8 target. Local JAR import remains available. See
136+
Optional-dependency choice, richer conflicts and final UI/game acceptance remain open. Fabric and Quilt use the shared browsing/installing workflow. NeoForge has processor-backed installation; Forge's common V2 processor integration is in v0.8 testing. Local JAR import remains available. See
130137
[the v0.6 test plan](docs/TESTING_V0.6.md). Fabric and Quilt startup acceptance was confirmed by the maintainer on 20 October 2026; remaining mod-management and platform checks stay open.
131138

132139
## Current implementation
@@ -389,7 +396,7 @@ Loader support is intentionally staged:
389396

390397
- Fabric — v0.4
391398
- NeoForge — v0.7
392-
- Forge — v0.8 (official Maven discovery; processor installation not yet implemented)
399+
- Forge — v0.8 (official SHA-1-verified V2 installer and shared processor adapter; game boot not yet accepted)
393400
- Quilt — v0.8 (official Quilt Meta v3 profile and instance selection; actual game acceptance pending)
394401

395402
Local mod management arrives in v0.5, followed by Modrinth integration and dependency resolution in v0.6.

‎docs/ROADMAP.md‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -552,12 +552,12 @@ Goal: broaden loader support while preserving historical-version compatibility d
552552

553553
## Forge
554554

555-
- [ ] 🚧 IN PROGRESS — Discover official Forge Maven versions; processor installation and actual launch remain unimplemented.
556-
- [ ] 🚧 IN PROGRESS — Inspect modern Forge installer V2 metadata/processor inputs in read-only preflight; no processor execution yet.
557-
- [ ] Document exact supported Minecraft/Forge range if universal support is not practical.
558-
- [ ] Launch Forge through common pipeline.
559-
- [ ] Integrate Forge mod metadata handling.
560-
- [ ] Integrate Modrinth Forge filtering.
555+
- [x] Discover official Forge Maven versions with Minecraft compatibility filtering; Forge V2 processor adapter added, live acceptance pending.
556+
- [ ] 🚧 IN PROGRESS — Verified SHA-1 Forge installer download and modern V2 profile/processor inspection implemented; synthetic and live CI pending.
557+
- [ ] 🚧 IN PROGRESS — Initial modern V2 target Minecraft 1.21.1 / Forge 52.1.20; legacy Forge V1 and historical Java combinations are intentionally unsupported until tested.
558+
- [ ] 🚧 IN PROGRESS — Forge uses shared ProcessorInstallerV2Engine and PreparedModLoaderProvider through common coordinator; actual Forge Minecraft boot acceptance remains open.
559+
- [ ] 🚧 IN PROGRESS — Read Forge META-INF/mods.toml IDs, names and versions and permit local mod operations under isolated Forge instances; complete TOML dependency semantics remain open.
560+
- [ ] 🚧 IN PROGRESS — Forge loader facet is supported in shared Modrinth adapter; installer/gameplay acceptance required before exposing Forge as supported in the desktop picker.
561561

562562
## Quilt
563563

‎docs/TESTING_V0.8.md‎

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
# v0.8 — Quilt and Forge acceptance
1+
# v0.8 — Forge and Quilt acceptance
2+
3+
## Forge v0.8 development (21 October 2026)
4+
5+
- [x] Official Forge Maven version discovery adapter and strict modern Forge V2 SHA-1 installer download are implemented.
6+
- [ ] Forge profile read-only inspection and checksum/corruption/legacy V1 regressions — code added, CI verification pending.
7+
- [ ] Shared V2 processor engine works with NeoForge/Forge; official Forge 1.21.1/52.1.20 live installation smoke and launch acceptance pending.
8+
- [ ] Forge `META-INF/mods.toml` identity import, scoped installation, disable/remove and Modrinth operations — code added, CI acceptance pending.
9+
- [ ] Historical Minecraft/Forge version matrix and required Java/argument behavior documented and tested.
10+
- [ ] Desktop Forge selection exposed only after successful representative install, mod and graphical game startup.
11+
- [ ] Portable builds, launcher/regression tests and actual native-platform interaction acceptance passed.
12+
13+
Forge V1 (legacy) is deliberately rejected; this phase never claims universal historical Forge support. Quilt Meta integration and maintainer-confirmed startup remain valid independently.
214

315
## Maintainer confirmation — 20 October 2026
416

@@ -9,7 +21,7 @@ The maintainer stated in the project chat that Fabric and Quilt tests had been p
921
- [x] Local `quilt.mod.json` identity/version/dependency parsing — deterministic regression passes.
1022
- [ ] Quilt mod import/Modrinth installation/gameplay and loader switching acceptance.
1123
- [ ] Quilt native Windows/Linux/macOS and representative version matrix recorded.
12-
- [ ] Forge and NeoForge processor execution/generated artifacts implemented and tested.
24+
- [ ] NeoForge generated artifact installation validated in v0.7; Forge V2 processor adapter implemented and awaits official live/game test.
1325
- [ ] Real Forge and NeoForge startup acceptance.
1426
- [ ] Legacy Minecraft/Java compatibility policy and representative historical Forge versions tested.
1527

‎docs/UPDATING.md‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,23 @@ Before release acceptance, manually test a real old→new hosted release with wr
9595
- [GitHub latest-release API](https://docs.github.com/en/rest/releases/releases#get-the-latest-release)
9696
- [GitHub release asset digest contract](https://docs.github.com/en/rest/releases/assets#get-a-release-asset)
9797
- [OpenJDK jpackage property tests](https://github.com/openjdk/jdk/blob/master/test/jdk/tools/jpackage/share/BasicTest.java)
98+
99+
## Publishing HTTP 403 (workflow token denied)
100+
101+
The v0.7.0 version-change CI run 39558146467 passed compilation, tests,
102+
official NeoForge installer smoke, portable builds for Windows/Linux/macOS and
103+
Build Explorer, but GitHub denied the final `gh release create` request with
104+
`HTTP 403: Resource not accessible by integration`.
105+
106+
Job `publish-release` already requests `contents: write`. The workflow now
107+
uses `secrets.SYNTAXLAUNCHER_RELEASE_TOKEN` if configured, or the default
108+
`github.token` otherwise. If repository/organization policy restricts
109+
GitHub Actions token writes, add that Actions repository secret containing a
110+
fine-grained GitHub token scoped to this repository with **Contents: Read
111+
and write**, or adjust workflow token permissions if your policy permits.
112+
Do not commit or paste credentials.
113+
114+
After authorizing the token, re-run **only the failed publication job** of
115+
run 39558146467 while its six verified platform artifacts remain available.
116+
Do not create a new v0.7.0 release from an unverified v0.8 development commit.
117+
Never mark the release as published until it appears in GitHub Releases.

‎docs/WORKLOG.md‎

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

99
---
1010

11+
## 2026-10-21 — Begin Forge V2 milestone and diagnose v0.7.0 publication
12+
13+
**Milestone:** v0.8 — Forge/Quilt
14+
**Author/Agent:** GPT-6
15+
**Status:** Partial — implementation and CI verification ongoing
16+
17+
### Completed
18+
- Implemented SHA-1-verified official Forge V2 installer preflight, strict checksums, cache, client processor inspection and fail-closed legacy handling.
19+
- Reused the existing NeoForge V2 child-Java processor engine via `ProcessorInstallerV2Engine`, wired Forge into the generic `PreparedModLoaderProvider` and shared desktop dependencies.
20+
- Added mocked checksum/legacy/target-version regressions and a CI-gated official Forge 1.21.1/52.1.20 installer smoke test.
21+
- Added Forge mods.toml local identity parsing and expanded isolated local/Modrinth mod operations to Forge and NeoForge while preserving Fabric/Quilt behavior.
22+
- Fixed a stale `manifest` reference uncovered by CI; addressed pre-existing Fabric/Quilt-only restrictions uncovered by the new Forge tests.
23+
- Diagnosed v0.7.0 release CI: verification and all-platform packaging passed, but GitHub Release creation returned HTTP 403; added optional repository release-token fallback.
24+
25+
### Changed files
26+
- `launcher-core/src/main/kotlin/pl/syntaxdevteam/syntaxlauncher/core/loader/ForgeInstallerPreflight.kt`, `NeoForgeInstallerEngine.kt`, `InstallerLoaderDiscovery.kt`, plus Forge regressions.
27+
- `launcher-core/src/main/kotlin/pl/syntaxdevteam/syntaxlauncher/core/mods/LocalModManager.kt`, `ModrinthInstaller.kt` and mod tests.
28+
- Desktop `Main.kt`, `.github/workflows/build.yml`, `README.md`, `docs/ROADMAP.md`, `docs/TESTING_V0.8.md`, `docs/UPDATING.md`, `docs/WORKLOG.md`.
29+
30+
### Verification
31+
- v0.7.0 candidate run 39558146467 — PASS tests/official NeoForge smoke and three-platform packaging, FAIL publication (GitHub HTTP 403).
32+
- v0.8 Gradle and official Forge smoke — pending latest hosted CI after source/test fixes; do not claim all tests pass yet.
33+
- Real Forge Minecraft launch — NOT RUN; no UI availability claim.
34+
35+
### Roadmap updates
36+
- `[ ] v0.8 / Forge verified V2 adapter, native mod metadata` — implementation started; official CI/game acceptance pending.
37+
- `[ ] v0.8 / Historical Java, Quilt/Forge cross-platform quality gates` — remains open.
38+
39+
### Follow-ups / known issues
40+
- Write-authorized release token/policy required to publish v0.7.0 as an ordinary GitHub Release. The product SemVer remains 0.7.0 until v0.8 is accepted.
41+
- Forge processor Java executes as third-party code; isolated working directory is not OS sandboxing.
42+
43+
---
44+
1145
## 2026-10-21 — Confirm v0.7 CI and publish version 0.7.0
1246

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

0 commit comments

Comments
 (0)