Skip to content

DevEx: make north-star2-verify presenter gate (self-host M0–M4) #1865

Description

@PurHur

Problem

North Star 1 has a single presenter entry point (#1845 make north-star1-verify, phpc doctor --gates). North Star 2 (#1492) still requires contributors to remember a scattered ladder:

  • php script/bootstrap-inventory.php --check
  • make bootstrap-wave-check / BOOTSTRAP_LIB_SPINE_SMOKE=1 make bootstrap-selfhost-lib-spine-smoke
  • BOOTSTRAP_LIB_SPINE_VM_SMOKE=1 make bootstrap-selfhost-lib-spine-vm-smoke (#1846)
  • BOOTSTRAP_M3_HELLOWORLD_STRICT=1 ./script/bootstrap-selfhost-helloworld-probe.sh (#1493)
  • BOOTSTRAP_LOOP_PROBE_GATE=1 ./script/bootstrap-loop-probe.sh --dry-run (#1498)

Before M3/M4 milestones close, there is no one command for demos or pre-merge self-host sanity.

Scope

  1. Add script/north-star2-verify.sh + make north-star2-verify mirroring #1845 structure:
    • Step 1: phpc doctor --gates (or dedicated --selfhost flag) — list self-host env vars
    • Step 2: inventory --check (#765)
    • Step 3: bootstrap-wave-check (M0–M2 probes)
    • Step 4 (LLVM): spine native link + VM -r smoke (#1846)
    • Step 5 (LLVM, opt-in tail): M3 strict probe + M4 loop --dry-run
  2. Flags: --require-llvm, --skip-llvm-tail (same UX as north-star1)
  3. test/unit/NorthStar2VerifyScriptTest.php asserts script + Makefile wiring
  4. Document in docs/bootstrap-selfhost.md, docs/GETTING-STARTED.md, README North Star 2 section

Out of scope: flipping BOOTSTRAP_M3_HELLOWORLD_STRICT_GATE default-on — tracked in #1866.

Acceptance criteria

Dependencies

Verify (local / Docker only)

make docker-build-22
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev make north-star2-verify
# Without LLVM on host:
make north-star2-verify   # expects skip message for LLVM tail

Do not require GitHub Actions. Optional cloud mirror only per #394 policy.

Links

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions