Complete 26.3 parity acceptance and dual-version release workflow
Build and smoke / changes (push) Waiting to run

This commit is contained in:
dnorberg committed 2026-11-14 12:17:49 -05:00
1 parent 41daff1e61
commit 4a59fb5d02
26 files changed
+1241 -369

No files matched your search

+79
View File
@@ -0,0 +1,79 @@
# 26.3 port parity and acceptance review
Reviewed 2026-11-14 for 26.3.0.3 against the independently maintained 1.21.1
implementation. This closes the port feature checklist, not every open bug or
future enhancement. The dated development entries in MINECRAFT_26_3_PORT.md
retain their original evidence and are superseded by later slices where stated.
## Feature comparison
| Area | 1.21.1 implementation | 26.3 counterpart / acceptance |
| --- | --- | --- |
| Page language | Ordered writing, registry-backed pages, modifiers, recovery and corrupted pages | PortAuthoredWriting, PortWritingRecovery, PortMaterialCompletion, PortRegistryPages and the shared symbol resources retain source writing, material pairing and diagnostics. Port slices received player sign-off. |
| Ink Mixer | Paper/ink, additive modifiers, vial/bottle exchange and output reset | InkMixerMenu/Screen, InkModifierIngredients and InkVialExchange port the interaction and assets. One ink and paper per panel; additives reset on removal. The separate 1.21.1 correction remains a shared follow-up. |
| Page storage | Notebook, folders, portfolios, sealed notebooks | NotebookMenu/Screen and the corresponding item components port sparse storage, selection/moving, held-slot protection and bulk import. Legacy glyph/page assets reused. |
| Desk / Binder | Tab catalog, ink/paper copy transactions, collection input, named books and OP diagnostics | WritingDeskMenu/Screen, WritingDeskCatalog and PortBookBinderMenu/Screen with authoritative networking and existing textures/models. Input, output pickup and naming fixes passed in game. |
| Link Modifier | Name, properties, seed and retirement | LinkModifierMenu/Screen and explicit edit payloads provide six property controls, title/seed edits and guarded retirement. Player-approved before this audit. |
| Terrain and biomes | Standard/amplified/flat/cave/void/sky-island profiles and biome distributions | PortAgeTerrain, PortBiomePlan, native registry biome pools and first-party generators. Authored and random plans persist their own seeds. Version-specific terrain/biome follow-ups remain separate. |
| Decorations and structures | Material features, vegetation, lakes, carvers, vanilla structures, libraries, crystals and fissures | Port terrain/vegetation/lake/carver/structure plans and generation passes implement these families, with modern structures and registry-backed materials. Family-specific terrain restrictions are retained; this audit does not claim every possible combination can generate. |
| Time, sky and celestials | Authored/random bodies, number/color modifiers, time modes, eclipses and ambient lighting | PortDayCycle, PortAgeColors, PortCelestialDiscs and sky/light mixins; colors, multiple bodies, sizes, positions, frozen time and eclipse rendering received player checks. Static Sky with Reborn has known bug #116. |
| Weather and seasons | Per-Age weather and optional Serene policies | PortWeatherMode, PortSeasonPolicies and Serene adapters preserve independent Age policy. Serene is optional; Ecliptic integration remains deferred on both lines. |
| Instability | Writing and live material scores, provider plans, effects and operator controls | PortInstabilityData/Plan/Runtime, block profiling, status/decay/hazard/meteor/environment providers and operator commands. Scores remain OP-only. Accelerated ticks use bounded loaded-world budgets; machine parity work remains tracked separately. |
| Travel | Handheld books, stands, receptacles, portals, footing/platform, modifiers and return links | Shared port destination/travel services, PortalTravelQueue and CrystalPortalNetwork keep book properties authoritative. Return links default disabled. Unsafe or unsynchronized travel leaves the player at source. |
| Presentation | Legacy books/pages/models/sounds, dropped open books and preview renderers | Existing assets reused through 26.3 extracted render states and modern input. Live Reborn book/portal views and look-only exploration are implemented; right-click return/re-entry passed on 26.3.0.3. |
| Discovery / guides | Libraries, loot, crafting, advancements, creative pages and JEI | Libraries/stands, sealed notebook discovery, progression and JEI guides ported. Random eligibility controls apply to new random choices/loot while existing authored pages remain usable. |
| Backend lifecycle | Dynamic Dimensions AR plus catalog/travel behavior | Rivencraft-owned backend with atomic creation, seed persistence, catalog acknowledgement, unload/reseed/retire. #99/#101 and now #100 accepted. |
## Deliberate platform differences
- Java 21 / NeoForge 21.1.264 and Dynamic Dimensions AR + Bad Packets stay on
1.21.1. The tested 26.3 target uses Java 25 / NeoForge 26.3.0.99 and a first-party
Age backend. No optional integration is bundled or made mandatory.
- 26.3 starts fresh saves. Importing 1.21.1 dimension/save internals is unsupported.
New chunk algorithms and random streams need not produce identical terrain.
- Create/Ponder has no ported 26.3 integration. Built-in animation is always
available; Reborn 7.0.12 provides optional live book/crystal views and look-only
exploration. Seamless has the dimension bridge, not this Reborn rendering path.
- Optional libraries, registry contents and vanilla generation APIs differ across
game versions. Changes to shared symbols/assets must be considered for both;
version-specific implementations and dependency requirements stay separate.
- Shared requested enhancements in #105–#115 and renderer bug #116 are separate
work. Port closure does not close those issues or describe their work as done.
## Regression evidence and limits
Earlier recorded 1.21.1 client/dedicated/optional-mod sign-offs remain valid:
its game code did not change during this work, so it was not retested merely
because the 26.3 target changed. Both build targets were built during the workflow
audit; only changed-target gameplay checks are required going forward.
The expanded-catalog 26.3 test used two actual clients on one dedicated server.
Runtime Age creation, catalog/environment delivery, normal-book travel,
stale-ack rejection/recovery, occupied unload refusal, empty reload/reseed and
retirement passed. On full restart both reconnected in the surviving Age with
the saved seed/presentation; retired data stayed absent. The final return-book
step stalled and was handed off without retry, per the user's instruction.
The player then created and entered an Age on the current local dedicated server
with the Dev optional stack, requested a full restart, reconnected, and returned
to the Overworld by Linking Book. Server logs confirm restored Age
rivencraft:age/random, seed -1985136355166262436, and the Overworld return.
The player explicitly accepted #100. This final handoff used one player-operated
client, not a new two-client automated pass. Logs are retained locally under
build/verification; temporary worlds and server processes were removed.
Production 26.3.0.3 builds and its book-window look/exit/re-entry received an
in-game pass. Earlier slices record no-optional startup, generation, portal
geometry/lifecycle and optional integration checks. This is cumulative evidence,
not a claim that every historical test was rerun on the final JAR.
## Release gate
[DUAL_VERSION_RELEASE.md](DUAL_VERSION_RELEASE.md) defines changed-target builds,
sequential temporary servers, stalled-test handoff, maintenance policy and upload
identity checks. Offline tooling checks cover track selection, release naming,
required dependencies, wrong-artifact/fixture rejection and server exclusion.
Hosted workflow execution remains unverified; repeatable local commands provide
the supported fallback. Release acceptance is recorded in Gitea after publication
and artifact verification. The existing published 1.21.1 release is retained;
unchanged code is not republished merely to adopt the new filename scheme.