From eda19de43cf734d54324929ddfd3e558608175ec Mon Sep 17 00:00:00 2001 From: Dustin Norberg Date: Thu, 29 Oct 2026 14:25:39 -0400 Subject: [PATCH] Prepare Minecraft 26.3 technical alpha 1.0.1.2-alpha.1 --- docs/MINECRAFT_26_3_ALPHA_1.md | 42 +++++++++++++++++++ docs/MINECRAFT_26_3_PORT.md | 9 ++++ ports/mc263/README.md | 21 +++++----- ports/mc263/build.gradle | 9 +--- ports/mc263/gradle.properties | 2 +- .../templates/META-INF/neoforge.mods.toml | 6 ++- 6 files changed, 67 insertions(+), 22 deletions(-) create mode 100644 docs/MINECRAFT_26_3_ALPHA_1.md diff --git a/docs/MINECRAFT_26_3_ALPHA_1.md b/docs/MINECRAFT_26_3_ALPHA_1.md new file mode 100644 index 0000000..034ea10 --- /dev/null +++ b/docs/MINECRAFT_26_3_ALPHA_1.md @@ -0,0 +1,42 @@ +# Rivencraft 1.0.1.2-alpha.1 — Minecraft 26.3 + +Experimental **NeoForge 26.3** port preview. This is a separate artifact from +the supported Minecraft 1.21.1 release, and it does **not** have feature +parity. Use a disposable test world or make a backup first. Do not migrate a +1.21.1 Rivencraft world to this alpha. + +## Working in this alpha + +- Rivencraft loads on Minecraft 26.3 / NeoForge 26.3.0.99 with Java 25. +- The first-party runtime Age backend creates separately seeded, persistent + prototype dimensions. The operator-only `/rivencraft_port age` commands can + create and inspect them. +- Runtime Age catalogs are synchronized and acknowledged before cross-dimension + travel. A missing or unacknowledged destination is refused. +- Operator-created Descriptive Books can enter prototype Ages. +- Handheld Linking Books can be named and bound to a location, then used from + their book GUI to return there. The destination data survives a restart. +- The Crystal Block and Crystal Shard are registered with reused art. + +## Not yet ported + +Normal authored Age generation, book crafting and workstations, Page symbols, +most blocks and items, portal systems, Link modifiers, the rotating destination +preview, instability, and optional mod integrations. The Linking Book GUI shows +a placeholder destination panel rather than a live scene. Generated Ages use +prototype vanilla terrain, not the player's authored Pages. + +The [26.3 port status](MINECRAFT_26_3_PORT.md) and [open port issues](https://git.paddedcell.org/dnorberg/rivencraft/issues) +track the remaining work. The stable 1.21.1 release remains available +separately. Please file alpha bugs with the exact Minecraft, NeoForge and +Rivencraft versions, plus the relevant client/server log. + +## Verification + +- Clean 26.3 Gradle build passed. +- Disposable dedicated-server smoke test passed: two distinct Age seeds and + their terrain persisted across a restart. +- The user verified the handheld Linking Book GUI click and travel in-game on + 2026-10-27. + +These checks are **not** the full port acceptance matrix or a stability claim. diff --git a/docs/MINECRAFT_26_3_PORT.md b/docs/MINECRAFT_26_3_PORT.md index c766c07..5bcf615 100644 --- a/docs/MINECRAFT_26_3_PORT.md +++ b/docs/MINECRAFT_26_3_PORT.md @@ -365,6 +365,15 @@ The player confirmed the `0.0.0.7-port-dev` bound Linking Book click/travel path passes in game on 2026-10-27. The 26.3 target remains incomplete and is not ready for a public release or closure of the parent port issue. +### Explicit technical alpha exception + +At the player's request, `1.0.1.2-alpha.1` packages this limited 26.3 port as +an experimental alpha. It is **not** the full mod and does not pass the stable +release gate above. The alpha label and release notes must state that Ages use +prototype vanilla terrain, normal authoring and most content are absent, and +worlds should be disposable or backed up. The 1.21.1 stable release remains +independent; issues #96–#104 stay open until the full port and validation pass. + ## Verification of this first slice The 1.21.1 `compileJava` and `build` tasks passed offline after the backend diff --git a/ports/mc263/README.md b/ports/mc263/README.md index b6ac38d..b5fe283 100644 --- a/ports/mc263/README.md +++ b/ports/mc263/README.md @@ -1,14 +1,13 @@ # Minecraft 26.3 port workspace -This is an **incomplete mod port** for issues #97–#103. It currently registers -the Crystal Shard and Crystal Block to verify NeoForge 26.3 loading, block and -item registration, and modern item resources. It also has a server-only -runtime Age prototype: the operator-only `rivencraft_port age create -`, `list`, and `sample ` commands exercise separate vanilla-terrain -levels with persisted seeds. Authored generators, book binding and client -dimension synchronization are **not** ported, so it is not playable. Its JAR -task is disabled. Do not upload output -from this directory to Gitea, CurseForge, or Modrinth. +This is an **experimental alpha port** for issues #97–#104, not gameplay parity +with the Minecraft 1.21.1 release. It registers basic items and a runtime Age +prototype with persisted seeds. The operator-only `rivencraft_port age` +commands create and inspect separate vanilla-terrain levels. Descriptive Book +travel and named Linking Book binding/travel work as limited probes. Authored +generation, most content, recipes, workstations, portal systems, modifiers and +the destination preview renderer remain unported. Use a test world and keep a +backup; do not substitute this JAR for the 1.21.1 mod or import 1.21.1 saves. From the repository root: @@ -24,8 +23,8 @@ Minecraft 1.21.1/Java 21 build: ./gradlew build ``` -Continue migrating the actual mod in issues #98–#101. Only enable JAR -assembly once the dual-version validation in #103 is complete. +The alpha JAR is under `ports/mc263/build/libs`. Continue the port and its +full dual-version validation in issues #98–#104 before calling 26.3 stable. The dedicated development server uses `build/run-server`, with its own world and properties. Set a nonconflicting `server-port` there before running if diff --git a/ports/mc263/build.gradle b/ports/mc263/build.gradle index 86483db..74bf48c 100644 --- a/ports/mc263/build.gradle +++ b/ports/mc263/build.gradle @@ -7,7 +7,7 @@ group = 'net.dnorberg.rivencraft' version = mod_version base { - archivesName = "rivencraft-${minecraft_version}-INCOMPLETE" + archivesName = "rivencraft-${minecraft_version}" } java.toolchain.languageVersion = JavaLanguageVersion.of(25) @@ -78,13 +78,6 @@ tasks.named('processResources', ProcessResources).configure { } } -// This partial 26.3 port is not a playable release. An explicitly requested -// local test JAR can be built with -PallowIncompletePortJar=true, but the -// default build must never produce a distributable artifact. -tasks.named('jar').configure { - enabled = providers.gradleProperty('allowIncompletePortJar').map(String::toBoolean).getOrElse(false) -} - tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' } diff --git a/ports/mc263/gradle.properties b/ports/mc263/gradle.properties index 55aa81f..b2c3b8b 100644 --- a/ports/mc263/gradle.properties +++ b/ports/mc263/gradle.properties @@ -7,4 +7,4 @@ neo_version=26.3.0.99 mod_id=rivencraft mod_name=Rivencraft mod_license=LGPL-3.0-or-later -mod_version=0.0.0.7-port-dev +mod_version=1.0.1.2-alpha.1 diff --git a/ports/mc263/src/main/templates/META-INF/neoforge.mods.toml b/ports/mc263/src/main/templates/META-INF/neoforge.mods.toml index 9042aca..7d5632b 100644 --- a/ports/mc263/src/main/templates/META-INF/neoforge.mods.toml +++ b/ports/mc263/src/main/templates/META-INF/neoforge.mods.toml @@ -4,11 +4,13 @@ issueTrackerURL="https://git.paddedcell.org/dnorberg/rivencraft/issues" [[mods]] modId="${mod_id}" version="${mod_version}" -displayName="${mod_name} 26.3 Port Preview" +displayName="${mod_name} 26.3 Alpha" displayURL="https://git.paddedcell.org/dnorberg/rivencraft" authors="dnorberg and contributors" description=''' -Incomplete Minecraft 26.3 development slice. Not for gameplay or distribution. +Experimental Minecraft 26.3 alpha. Provides a runtime Age prototype and basic +Linking Book travel. Most Rivencraft gameplay has not yet been ported. Use a +test world and keep backups; this alpha is not compatible with 1.21.1 worlds. ''' [[dependencies.${mod_id}]]