Public Access
Complete 26.3 parity acceptance and dual-version release workflow
Build and smoke / changes (push) Waiting to run
Build and smoke / changes (push) Waiting to run
This commit is contained in:
1 parent
41daff1e61
commit
4a59fb5d02
26 files changed
+1241
-369
No files matched your search
@@ -43,11 +43,62 @@ JARs; use new worlds and remove them regardless of pass/fail. Stop test processe
|
||||
If generation stalls, hand the test to the user.
|
||||
|
||||
Before closing a port umbrella issue, compare its acceptance criteria and comments
|
||||
to actual evidence. Current expanded-catalog two-client create/travel/reconnect/
|
||||
restart/stale-ack regression remains in #100. #103 retains dual-line release
|
||||
automation/regression completion and #104 retains the full parity gate.
|
||||
to actual evidence. The expanded-catalog matrix and manual restart/return handoff completed in #100.
|
||||
See [the final parity review](MC263_PARITY_REVIEW.md) for evidence and limits.
|
||||
Shared issues need both versions resolved before closure.
|
||||
|
||||
For each release, document tested optional versions and no-optional fallbacks,
|
||||
match client/server JARs, preserve the independent 1.21.1 support line, update wiki
|
||||
and platform descriptions, and keep known bugs linked in the release notes.
|
||||
|
||||
## Changed-target validation policy
|
||||
|
||||
Only test a Minecraft target when its code/resources changed. Select targets with
|
||||
`python3 scripts/changed_targets.py --base <commit>`. Shared assets can select
|
||||
both; temporary servers must run sequentially. Earlier gameplay sign-off remains
|
||||
valid for unchanged 1.21.1 code.
|
||||
|
||||
Repeatable local checks:
|
||||
|
||||
- Java 21 / 1.21.1: `./gradlew build --console=plain`.
|
||||
- Java 25 / 26.3: `./gradlew -p ports/mc263 build --console=plain`.
|
||||
- Smoke one changed target: `python3 scripts/smoke_server.py --target mc1211`
|
||||
or `--target mc263`.
|
||||
- Two-client 26.3 acceptance: `python3 scripts/regression_multiplayer_263.py`.
|
||||
Fixture sources remain outside the shipping JAR. If a test stalls, stop it,
|
||||
preserve logs, delete temporary worlds and hand the remaining check to the user.
|
||||
Do not automatically retry.
|
||||
|
||||
GitHub and Gitea workflow definitions select changed targets and use
|
||||
`max-parallel: 1`. Hosted execution is not yet verified. Repository runner
|
||||
inventory alone does not establish availability of instance-wide runners.
|
||||
The publisher checks embedded version/Minecraft metadata, Java selection,
|
||||
filename identity, absence of test fixtures and required 1.21.1 dependencies.
|
||||
|
||||
Apply relevant fixes to both supported lines, with separate implementation and
|
||||
validation per target. Keep version-specific fixes on the affected line. Advancing
|
||||
the newer Minecraft/NeoForge target requires a compatibility audit and must not
|
||||
silently replace 1.21.1 support or widen an existing JAR dependency range.
|
||||
|
||||
## Current acceptance evidence (2026-11-14)
|
||||
|
||||
26.3.0.3 builds and the user passed book-window mouse-look, right-click return
|
||||
and re-entry. Beta branding is removed. The release collects these changes,
|
||||
the workflow tools and the final parity review.
|
||||
|
||||
The expanded-catalog dedicated matrix ran with two real clients. Both received
|
||||
runtime-created Ages and authored environment data, traveled using normal books,
|
||||
and passed stale-ack rejection/recovery, occupied-unload refusal, empty-Age
|
||||
reload/reseed and retirement checks. After full server restart both reconnected in
|
||||
the surviving Age with its saved seed and presentation, without the retired Age.
|
||||
The run stalled at the final post-restart return Linking Book step (phase 22).
|
||||
It was stopped, temporary worlds deleted, and the last check handed off rather
|
||||
than retried. Singleplayer preview sign-off does not replace that dedicated check.
|
||||
|
||||
The player completed the manual dedicated-server restart/return check on
|
||||
2026-11-14 and explicitly accepted #100. This was one player-operated client,
|
||||
complementing the automated two-client evidence; it is not described as a new
|
||||
automated two-client pass. The test server was stopped, logs retained under
|
||||
build/verification/issue100-manual, and its temporary world removed.
|
||||
See [the final parity review](MC263_PARITY_REVIEW.md). Renderer bug #116 remains
|
||||
separately tracked. #103/#104 and parent #96 close after release verification.
|
||||
@@ -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.
|
||||
@@ -8,6 +8,18 @@ The user wants both Minecraft lines maintained after the port, not a one-time
|
||||
26.3 release. Gitea milestone "Dual-version support: 1.21.1 and 26.3"
|
||||
tracks issues #97–#103 under parent #96.
|
||||
|
||||
## Final port acceptance — 2026-11-14
|
||||
|
||||
The 26.3 port is playable on the regular release channel. The complete writing,
|
||||
generation, instability, travel, discovery and presentation review is in
|
||||
[MC263_PARITY_REVIEW.md](MC263_PARITY_REVIEW.md). #100 is complete: the
|
||||
expanded-catalog two-client checks and the player-operated full-restart return
|
||||
handoff passed. The look-only book-window overlay and its right-click exit fix
|
||||
also passed on 26.3.0.3. #103/#104 closure follows the workflow/release audit.
|
||||
The original introductory audit and slice entries below are historical, not a
|
||||
list of currently missing features. 1.21.1 remains maintained independently.
|
||||
Known issues and shared enhancements remain tracked separately.
|
||||
|
||||
## Published status — 2026-11-11
|
||||
|
||||
[26.3.0.1](../ports/mc263/RELEASE_NOTES_26.3.0.1.md) collects the player-validated
|
||||
|
||||
Reference in new issue
Block a user