Skip to content

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

@PurHur

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions