Skip to content

test: give every ignored workflow an executed integration lane - #526

Merged
jBernavaPrah merged 1 commit into
mainfrom
test-boundary-build
Oct 2, 2026
Merged

jBernavaPrah merged 1 commit into
mainfrom
test-boundary-build

Conversation

@jBernavaPrah

Copy link
Copy Markdown
Contributor

Purpose

Third step of the accepted test-boundary refactor: selecting a suite now establishes its prerequisites. No test is silently skipped, no test hides behind an environment early-return, and no feature flag gates a lane — every formerly ignored workflow runs in a job that builds what it needs.

What changes

  • Composition legs (tests/contracts/robot): #[ignore] removed; PHOXAL_EVAL_BUNDLE and PHOXAL_SUBSTITUTION_BUNDLE are required parameters, built by the new integration acceptance job. The substitution run uses the checked-in robot.substitution.yaml (selects encoder-b for consumer.encoder) instead of a hand-edited manifest.
  • Warm-edit regression (tests/contracts/standard-plus-custom): #[ignore] and its environment gate removed; the job selection replaces lane selection because the scratch package builds its own cold dependency tree.
  • Host acquisition: the two paths move from phoxal-build's build_api suite into a dedicated tests/host-acquisition fixture package (phoxal-host-acquisition-fixture) that the integration job runs. Their stale 0.0.0-dev.7 SDK version pin (the test never ran in CI, so it drifted) becomes a manifest read that cannot drift from the framework train.
  • CI: the workspace test command excludes the three prerequisite-bearing fixture packages alongside the existing supervisor and MuJoCo exclusions; the new integration acceptance job builds cargo-phoxal, the supervisor binary, and both bundles (manifest swap with restore and re-prepare), then runs the three packages. Both test jobs cache target/suites and target/tests — nested trees the Rust cache does not cover — keyed on the lockfile.
  • Nested build trees: prepare_cycles and prepared_selection share one target/suites/composition tree, built without incremental compilation and with line-tables-only debug info.
  • consumer_policy: the exact cargo tree dependency inventories are replaced by six compilation checks for the supported consumer profiles (base, runtime, session, scenario, build, default). The profiles' dependency roles remain a manifest design property rather than something re-derived from tree output.

Verified locally, with the exact job commands

  • Slimmed workspace run: 56 test binaries, 0 failures.
  • Composition legs: 2/2 driving real supervisor processes (14 s).
  • Warm edit: 1/1 (87 s, cold scratch build).
  • Host acquisition: 2/2 through real Git and local-registry sources (283 s).
  • Consumer profiles: 6/6 (43 s cold).
  • clippy --workspace --all-targets -D warnings (includes the new package) and fmt --check clean.

Not yet in this PR (remaining phase-3 slice)

phoxal-build semantic tests against in-memory documents, and trybuild slimming to a representative case per guarantee.

Delivery order

Single repository; the new fixture package is publish = false; Cargo.lock records the new member only.

Selecting a suite now establishes its prerequisites: no test is silently
skipped, no test hides behind an environment early-return, and no
feature flag gates a lane.

- The supervisor-process composition legs lose #[ignore] and require
  PHOXAL_EVAL_BUNDLE and PHOXAL_SUBSTITUTION_BUNDLE, both built by the
  integration acceptance job from tests/contracts/robot; the
  substitution run uses the checked-in robot.substitution.yaml instead
  of a hand-edited manifest.
- The warm-edit regression loses #[ignore] and its environment gate;
  job selection replaces lane selection because its scratch package
  builds its own cold dependency tree.
- The two host-acquisition paths move from phoxal-build's build_api
  suite to a dedicated tests/host-acquisition fixture package that the
  integration acceptance job runs; their stale 0.0.0-dev.7 SDK version
  pin becomes a manifest read that cannot drift from the train.
- The nested-build suites share one dependency tree under
  target/suites/composition, built without incremental compilation and
  with line-tables-only debug info, and both test jobs cache the nested
  trees the Rust cache does not cover.
- consumer_policy's exact cargo-tree dependency inventories become six
  compilation checks for the supported consumer profiles; the profiles'
  dependency roles stay a manifest design property instead of being
  re-derived from tree output.

The ordinary workspace run excludes the three prerequisite-bearing
fixture packages alongside the existing supervisor and MuJoCo exclusions.

Verified locally with the exact job commands: slimmed workspace run 56
test binaries green; composition legs 2/2 under real supervisors (14 s);
warm edit 1/1 (87 s cold scratch build); host acquisition 2/2 through
real Git and local-registry sources (283 s); consumer profiles 6/6;
clippy -D warnings and fmt clean.

Signed-off-by: jbernavaprah <webjure@gmail.com>
@jBernavaPrah
jBernavaPrah enabled auto-merge (squash) October 2, 2026 18:42
@jBernavaPrah
jBernavaPrah merged commit b7da970 into main Oct 2, 2026
4 checks passed
@jBernavaPrah
jBernavaPrah deleted the test-boundary-build branch October 2, 2026 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant