Skip to content

v0.3.62 — Safe consumer package rollout

Choose a tag to compare

@FoxsterDev FoxsterDev released this 29 Aug 10:32
· 25 commits to master since this release

Why this matters

A package release can be correct while a multi-project rollout still gives a
false sense of coverage. A missed project, an unproven package pin, or a Unity
process left running after a timeout can turn a partial rollout into risky
manual cleanup.

What changed

This release adds scripts/testing/run_consumer_rollout.py, a fail-closed
helper for moving several Unity projects to one published Git package tag. It:

  • compares the expected projects with an ignore-independent manifest scan;
  • freezes clean and dirty package files before changing anything;
  • checks Unity, licensing, write access, running processes, and cleanup
    ownership;
  • resolves and compiles one canary before updating other clean projects;
  • records each project in an atomic, resumable ledger; and
  • lets a root operator clean up a timed-out process only after rechecking its
    process identifier, project, and log.

What this gives developers

Release operators get one repeatable path that protects in-progress package
edits, proves the published package in a canary first, stops on unexpected
conditions, and leaves compact evidence that can be reviewed or resumed.

Validation

  • Focused rollout and timeout-contract tests: 23/23 passed.
  • Full host suite: 966/966 passed, with 14 expected platform skips.
  • Public documentation UI suite: 42/42 browser checks passed.
  • Unity 2022.3.67f2 and 6000.0.58f2: each passed package Edit Mode
    91/91, Play Mode 5/5, interactive acceptance 9/9, refresh
    contract 2/2, compile contract 2/2, and batch compilation. Both
    editors closed with no owned Unity process left for cleanup.
  • Release-version consistency, documentation freshness, and public-release
    safety checks passed on the release tree.

Known limitations

  • The helper proves Git package resolution and script compilation; it does not
    replace each game's Edit Mode, Play Mode, user-interface, or product tests.
  • Dirty package manifests or locks are skipped. One ledger covers one selected
    Unity version. A licensing or global-process blocker stops before mutation.
  • The hosted Unity Package CI continuous integration workflow remains
    explicitly waived because its runners do not have Unity license credentials.
    The local Unity results above are the package proof for this release; there
    is no CI-recorded Unity test result for the release commit.