Public Access
72 lines
6.6 KiB
Markdown
72 lines
6.6 KiB
Markdown
# Milestone 7 regression and migration matrix (issue #83)
|
||
|
||
This is a **working** acceptance record for the 0.6.11.0 candidate, not the
|
||
Milestone 7 completion sign-off. Issue #84 owns the final gate. 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 current 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.
|
||
|
||
## 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. |
|
||
|
||
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.
|