Public Access
80 lines
7.5 KiB
Markdown
80 lines
7.5 KiB
Markdown
# Milestone 7 regression and migration matrix (issue #83)
|
||
|
||
This is the dated regression record for the 0.6.11.0 candidate. The
|
||
[Milestone 7 acceptance](MILESTONE_7_ACCEPTANCE.md) owns the final sign-off. A passing
|
||
GameTest is server-side evidence; it is not proof of client rendering,
|
||
multiplayer timing, or every optional-mod combination.
|
||
|
||
## Automated evidence
|
||
|
||
| Area | Focused check | Candidate result |
|
||
| --- | --- | --- |
|
||
| Dedicated server, core linking, book/Age identity, old writing and workstation formats | `./gradlew --offline runGameTestServer`; includes `CoreGameTests`, `AgePersistenceGameTests`, `CrystalPortalGameTests`, M7 crafting/advancement checks | 91/91 required GameTests passed on NeoForge 21.1.264; clean shutdown and fresh-world removal. |
|
||
| Deterministic structures and terrain | `./gradlew --offline runGameTestServer -ParchivedGameTestSuites=generation`; includes library template/spacing/loot/stand checks, cave profiles, vanilla structures, crystal formations, fissures | 129/129 passed after correcting one village test to assert its own contribution rather than a seed-dependent total; fresh-world removal. |
|
||
| Sky, glyph numbers, seasons, creative/JEI page feed | `./gradlew --offline runGameTestServer -ParchivedGameTestSuites=environment` | 103/103 passed on the 0.6.11.0 candidate, including issue #94's number-page check; fresh-world removal. |
|
||
| Packaged models and data | `Milestone7ResourceGameTests.coreModelsResolveBundledTextures` in the core suite; parses critical block models, checks their Rivencraft texture references and the library NBT resource | Passed in the 91-test core run. This checks resource presence, not visual orientation or transparency. |
|
||
| Recipe behavior | `Milestone7CraftingGameTests` and `LinkingBookRecipeGameTests` through the loaded Recipe Manager | Passed in the core run; confirms crystal and receptacle quantities, ink bucket return, no Blank Page crafting, and Linking Book ingredients. |
|
||
| Portal state/save-load | `CrystalPortalGameTests` plus `AgePersistenceGameTests` in the core suite | Passed; covers activation/release, fallback orientation, horizontal/underside placement, uninterrupted surface, cooldown, retired Age and seed/plan identity. Full server restart remains manual. |
|
||
|
||
The generation archive initially failed
|
||
`AgeStructureGameTests.mixedEndAndTaigaVillagesChargeForEndPortion` because it
|
||
compared the total instability score (1200) with the village-only expectation
|
||
(200). A seed-completed sky legitimately supplied an extra sun (+1000). The
|
||
production scoring was unchanged; the check now isolates the
|
||
`forced_biome_villages` contribution. The rerun passed 129/129. This is a
|
||
repaired assertion, not a hidden feature failure.
|
||
|
||
Every default GameTest run creates a new world with Minecraft's fixed seed 0
|
||
and deletes it after pass or fail. See [GameTest guidance](GAMETESTS.md).
|
||
Do not retry a storage-stalled GameTest: stop it, remove that automated
|
||
scenario, and give its exact steps to the player. No run in this issue has
|
||
stalled so far. The older full-archive storage stall is historical and is not
|
||
counted as a current pass. On the subsequent **1.0.0.0 release candidate**,
|
||
the environment archive stalled during its first 50-test batch and was
|
||
stopped. The 103/103 result above applies to 0.6.11.0 only, not to 1.0.0.0
|
||
or the later 1.0.0.1–1.0.0.2 candidates. For the 1.0.0.2 manual handoff, create an Age
|
||
with Number Pages immediately before Celestial Angle, Phase, and Size pages;
|
||
confirm each affects the intended body rather than becoming a stray page. Also verify a
|
||
fixed-season Age remains fixed across a restart while the Overworld remains
|
||
independent. Do not rerun the stalled suite merely to obtain a green count.
|
||
|
||
## Old-save boundary (#60)
|
||
|
||
Issue #60 established a policy of preserving old saves where practical. Tests
|
||
cover bare-list `OrderedWriting`, page-free books, unknown symbol IDs, older
|
||
Age definitions with stable defaults, plan-v3/plan-v4 interpretation, and
|
||
workstation inventory migration. A bound book's UUID and its Age's registered
|
||
dimension remain stable through ordinary load. This does **not** imply every
|
||
pre-public-release world, removed biome mod, missing dimension provider, or
|
||
changed datapack can be opened. Back up the full world; the Age registry and
|
||
dimension folders are a unit. The creative Link Modifier can intentionally
|
||
retire an Age, archiving its data and marking the UUID dead. That is an explicit
|
||
administrative boundary, not a silent migration.
|
||
|
||
## Manual matrix for the player
|
||
|
||
Use a backup or disposable save. Record the exact mod list and jar version.
|
||
These checks are **pending for 0.6.11.0** unless a later note records an actual
|
||
pass. Historical passes on earlier slices should not be silently promoted to
|
||
this candidate.
|
||
|
||
| Scenario | What to verify |
|
||
| --- | --- |
|
||
| Full restart | Create a random and an authored Age, a library with a looted chest/page stand, an active portal, and a bound book. Stop and restart the server; UUID, terrain, loot removal, stand contents, portal activation, and return travel must persist. |
|
||
| Two players | Cross the same portal at nearly the same time, return independently, and use separate book previews. Cooldowns, destination positions, dropped-book ownership/retrieval, and preview chunk loaders must not interfere. |
|
||
| Cross-dimension travel | Compare the same Descriptive Book by hand, stand, and portal. Check footing/platform rules, arrival coordinates and facing, Disarm, Maintain Momentum, Intra Linking, and Return Link mode. |
|
||
| Client visuals/audio | Compare book spreads, glyphs, D'ni numbers, page/desk/binder/mixer models, 16×16 crystal buds and translucent elements, portal frame/surface order, skies/eclipses, page turns, and Legacy link sounds. A server test cannot observe pixels or audio. |
|
||
| Optional renderers | With neither Create nor Immersive Portals, confirm Legacy fallback. With Create alone, confirm Ponder snapshots and portal guide. With Immersive Portals, confirm live view, Explore exit, sky/sound isolation, portal travel, and fallback while chunks load. With both, `AUTO` should choose Immersive Portals. |
|
||
| Optional world/recipe mods | Test JEI guides/search, TerraBlender with a biome-producing addon (for example Biomes O' Plenty), Serene's six season modes plus Overworld independence/restart, and Ruins template selection/spawn weighting. Repeat startup without optional mods. |
|
||
| Migration | Copy a backed-up older development world. Verify books and Notebooks retain their Age/page IDs, a desk and stand keep contents, old Ages load or provide a clear error, and removing a custom symbol retains its unresolved ID. Do not test by modifying the only copy. |
|
||
| Binder diagnostics | As a non-OP, verify the Binder still creates books but shows no instability/seeded/status messages. As an OP, run `/rivencraft binder messages enable`, reopen the Binder, and verify those messages appear only for the OP. Disable them and restart the world; the setting should remain disabled. |
|
||
|
||
Historical evidence: the player approved NeoForge 21.1.264 on singleplayer
|
||
and a dedicated server with Immersive Portals; JEI 19.69.0.457 guides, Serene
|
||
Seasons 10.1.0.9's full per-Age matrix, Ruins generation, and issue #94's
|
||
numbered celestials each received an in-game pass on their respective earlier
|
||
release slices. See [compatibility review](MILESTONE_7_COMPATIBILITY_REVIEW.md),
|
||
[JEI review](MILESTONE_7_JEI_REVIEW.md), [Serene review](MILESTONE_7_SERENE_REVIEW.md),
|
||
and [Ruins notes](RUINS_COMPATIBILITY.md). The current candidate's broad
|
||
multiplayer/restart/optional-mod matrix remains unverified until tested.
|