Skip to content

Release v1.1.0: examples web smoke green #9226

Description

@PurHur

Category

bootstrap / release gate (#78 v1.1.0) · web runtime

Problem

script/examples-web-smoke.sh exercises HTTP loopback against compiled/JIT web examples. Must be green before v1.1.0 user release (#9224).

php-src reference

N/A (integration). Underlying gaps are usually ext/standard HTTP/header/session parity (ext/standard/http.c, ext/session).

Repro

./script/docker-exec.sh -- bash -lc './script/examples-web-smoke.sh'

Requires loopback TCP (do not set PHP_COMPILER_SKIP_SERVE_TESTS=1 for local CI).

What the gate covers

  • Spins example apps from examples/001-SimpleWeb, 003-MiniWebApp, 005-SessionsWeb, etc.
  • Asserts HTTP status + body needles (see script for per-example URLs)
  • Fails fast on: bind errors, empty response, wrong Content-Type, session cookie missing

Debug one example

./script/docker-exec.sh -- bash -lc 'EXAMPLES_WEB_SMOKE_ONLY=003 ./script/examples-web-smoke.sh'

Scope (this repo)

  • lib/Web/ CGI/FCGI runtime
  • examples/00*/ + phpc.json web entrypoints
  • Stdlib: header(), http_response_code(), session_start(), superglobals refresh

Done when

  • ./script/examples-web-smoke.sh green inside docker-exec on master
  • Failures traced to parity issues (link in issue body) or fixed
  • No GHA — verify locally per .cursor/rules/local-ci-only.mdc

Context

Pairs with #9225 AOT smoke. Release blocker chain: #9224 → #9225 + #9226 → #78.

Activity

  1. added
    releaseUser-facing release tracking
    implementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claim
    on Jun 17, 2026
  2. PurHur commented on Jun 17, 2026

    @PurHur
    OwnerAuthor

    claim: cursor-agent-lane-b — starting this run

  3. PurHur commented on Jun 17, 2026

    @PurHur
    OwnerAuthor

    Merged via PR #9314 — 005-SessionsWeb session flash and 006-FileUploadWeb multipart upload are green in `examples-web-smoke.sh`.

    Root cause: long docblocks in example.php (curl snippets with `message=Saved`) triggered compile-time superglobal dim-fetch corruption (#1887 class).

    Verification:

    • `./vendor/bin/phpunit --filter TernaryArrayDimFetchMergeTest|test005SessionsWebServeFlashRoundTrip` — OK
    • `./script/examples-web-smoke.sh --sessions-only` — OK
    • Full `examples-web-smoke.sh`: 003-MiniWebApp contact POST still shows empty name (`Thank you, `) — separate from this fix; file or follow-up.

    Also checked #9288 on master: enum relational repro already matches Zend (no code change needed).

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

    implementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimreleaseUser-facing release tracking

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions