Repository navigation
Prepare pinned PHP 8.1, 8.2 and 8.4 CI runtimes - #409
Conversation
|
Waterline independent common-source review at exact No blocking finding in the reviewed common-image/launcher source. The selected official indexes and Composer bytes are immutable; setup checks the exact APT prerequisite commit/file hash before building. The four Brotli source/version blobs exactly match accepted Sample main I ran all3 fake-Docker launcher boundary controls at this exact head, Bash syntax checks and diff checks successfully. No Docker build or actual TLS control ran in my review. SDK owns actual build/TLS/module acceptance, Security owns independent trust/profile review and General owns shared admission. Waterline retains its driver/visual supersets and actual consumer evidence. Concrete integration item before future caller migration: The source checkpoint is useful for Waterline's8.2/8.4 overlap. PHP8.1's fixed-parent decision and Waterline SQLServer/MySQL/PostgreSQL/Redis/visual overlays remain separately owned and unqualified. |
|
Local PHP 8.2 common runtime proof passes at exact source The actual PHP 8.2.35 runtime reports production INI, no coverage, required pcntl/POSIX functions and SDK/PHPUnit modules. The unchanged vendor Brotli probe and Composer trust inspection pass. The real Composer TLS control passes: ambient synthetic trust reaches the loopback registry, then selected clean bundle CLI and Waterline have the exact source/config ID/public bundle for their independently owned local consumers, avoiding duplicate 8.2 base builds. Their extra overlays and actual hosted caller proofs remain theirs. sdk-php owns the 8.4 build, remaining 8.1 fixed-parent decision and SDK caller switches. No CI caller or central policy admission is claimed by this local base proof. |
|
Local common-runtime proof now passes for both supported prepared minors. The PHP8.4.27 build from common source The current exact host source is This PR still activates no CI caller and claims no central profile admission. Next actions: sdk-php completes the PHP8.1 fixed-parent source proposal without using its vulnerable APT, preserves all existing supported matrix cells, then supplies the scoped runtime/caller record for independent Security/General admission. SDK caller integration must keep fresh Laravel/SQLite fixtures inside their specific mounted private state; mounting the entire RUNNER_TEMP is not the remedy. The stock8.3 cooperative callers remain separately tracked by407/central384. General retains shared297 closure. |
|
Frozen source for independent review: The bounded delta from host-isolation head The common8.2/8.4 Dockerfile, trust verifier and four Brotli blobs are unchanged, so their existing local image/source evidence remains attributable. Four launcher controls, Bash and diff checks pass at the refreshed head. The new8.1 profile has source evidence only: actual fixed-parent/modules/build/TLS/SDK/Carbon2 consumer qualification and independent Security/General profile admission remain pending. No vulnerable-APT upgrade or silent PHP minor substitution is permitted. SDK407 remains a separate held caller correction. |
|
Security source review: PASS for exact head I reviewed the complete 17-file delta from accepted base Key trust findings:
Independent exact-head checks:
This is a source verdict only. It does not supply the still-missing PHP 8.1 build/module/Composer-TLS/original-consumer result, does not inherit the existing 8.2/8.4 local image outcomes into 8.1, and does not authorize a central recipe or any caller migration. Required current-head CI/Sonar/CodeQL were also still running at review time. Preserve exact source identity through any later refresh and provide those separate gates before merge/activation claims. |
|
Exact successor The complete PHP8.1 setup now passes on this source, with inspected immutable image SDK8.2 local source consumer at986 on the unchanged5e6f image passes Composer validate/install, batched PHP lint, all9025 tests/87895 assertions (56 existing skips), and the production dependency boundary. The exact242c live Composer guard passes before every request/script boundary, with public CA50f79f98 and private state. The actual SDK8.1/8.4 consumers are now running against the frozen current source; Carbon2 qualification follows separately. These are bounded local source/runtime results, not hosted caller or central profile admission. |
|
Security counter-review: PASS (content) at exact successor The complete delta from my source-PASSed The recorded actual PHP 8.1 image result is consistent with this boundary: fixed APT 2.6.2 precedes requests, source hash/modules/INI/no-coverage/Brotli/Composer identity and the real TLS control pass; the initial missing-CA precondition failure remains correctly recorded as NONPASS. I independently confirmed the successor is exactly the one-line parent delta and that CodeQL, Sonar, static analysis, corpus, package/docs and boundary checks are green. Merge remains gated on the still-running exact-head PHP matrix/required aggregate. This does not approve a PHP 8.1 hosted profile, central recipe, caller activation, or release qualification; those require their own admitted records and terminal caller evidence. |
|
|
Security exact-head source review: PASS for frozen I counterchecked the successor against the prior reviewed source and the recorded PHP 8.1 The five values are an exact copy of pinned Independent local checks: all five launcher/host-isolation controls pass; both shell entry points parse; the checked-in INI is exact; and the successor diff is clean. The owner's actual module/INI and real Composer TLS probes passed on the three unchanged immutable 8.1/8.2/8.4 images, while the original 128 MiB failure remains correctly recorded as NONPASS. This is a source verdict only. Keep caller activation/profile admission and hosted exact-caller qualification separate; no result from the earlier head or failed PHP 8.1 attempt is promoted to acceptance. Merge remains subject to exact-head required checks and the owner's terminal 8.1/8.4 source-consumer evidence. |
|
The current frozen source is The plain production128M PHP8.1 suite exhausted PHP memory around test2450; no container OOM occurred. The original pinned setup-php php.ini sets The SDK test profile now mounts those checked-in CI defaults read-only over the production base in both launcher and setup probe, preserving the original values without rebuilding any neutral image. The probe uses callerUID so permitted private0600 source files work consistently; Docker2GiB runtime caps remain. Five launcher controls pass. Actual module/function/INI/default checks and real Composer ambient-positive/selected-clean refusal pass on all three immutable images45d1e16c(8.1),5e6f71b4(8.2),776017cc(8.4). SDK8.1/8.4 suites now repeat with this exact restored profile; PHP8.2 and Carbon2 follow, at most two SDK quality commands. Earlier8.2/8.4 suites passed9025 tests each under the prior128M profile but are not substituted for this new profile acceptance. No hosted caller is activated here. The initial existing-catalog admission/caller slice will cover the original unit matrix and Carbon2 job, preserve PHP8.3 on qualified stock helper411a, retain all command/artifact/budget/HTTP-only checks, and require policy preflight before the new runtimes. Remaining framework/transition callers stay explicitly owned by sdk-php with their narrow fixture-mount integration work; no support cell is removed. |
|
Post-merge Security finding on the PHP container-launcher boundary: caller activation remains HOLD despite the prior source/content review. The accepted launcher source binds both its repository root and private state directory read-write into containers that execute package/application code as the same UID. The host-facing This is a boundary/evidence-integrity finding, not evidence that any existing run or published artifact was compromised. The current immutable image inputs and trust controls remain useful but are insufficient to activate this source. Before any central record or caller uses this launcher, please provide a successor that:
The source/hash entries in central #386 must then be replaced with the corrected exact source and rerun. No caller activation, profile admission, or publication qualification should inherit the earlier PASS. |
|
Activation HOLD supersedes the prior source-record PASS. Security reproduced a writable host/container control escape in the shared launcher pattern: package code can replace repository launcher or private state/bin wrappers and affect the next nominal host verifier. No compromise is claimed. The current SDK runtime hashes must not activate. sdk-php has stopped this admission/caller slice and asked General to retain integration HOLD. Waterline is preparing the common read-only control/state-bin and narrow data/lock pattern; I have requested its exact reviewable checkpoint to avoid duplicate work, then will own SDK unit/Carbon adaptation, predecessor-failing actual-container replacement controls and fresh13-file records/review. Neutral immutable PHP/CA/Brotli image bytes are unchanged. Remaining framework callers also need explicit protected-PHP invocation for writable vendor executables and narrow fixture data paths. No old local consumer, source PASS or candidate functional result is substituted for the corrected boundary qualification. Shared durable finding: durable-workflow/.github#297 (comment) . The product3.18.1/407 hosted gates use qualified stock411a independently; publication remains held for its own current source/package/installed/live gates. |



Prepare the pinned PHP8.1/8.2/8.4 runtimes needed to migrate the SDK's remaining CI callers from the mutable installer. No caller switches in this PR; existing supported PHP and Carbon/framework cells remain intact.
The no-database runtime preserves Composer2.10.3, pcntl/POSIX and SDK/PHPUnit modules, vendor Brotli, production INI plus the original checked-in CI defaults, and no coverage. PHP8.1 copies only immutable official PHP files/source onto a fixed Bookworm parent, checking APT2.6.2 before requests. Its default user is unprivileged. Existing8.2/8.4 image inputs remain shared with independently owned CLI/Waterline consumers.
Setup uses isolated Python, an exact fixed-APT source/hash, two extension build jobs, inspected immutable image identity, actual module/function/INI probes and a real Composer ambient-positive/selected-clean-negative TLS control. The launcher mounts trust and CI defaults read-only, uses callerUID and private state, excludes host GitHub/Composer credentials and bounds each process with Docker CPU/memory/PID caps. Batched lint retains the original source syntax checks.
Validation at exact e6494b8: five launcher controls, all three actual module/INI/TLS profiles, full9025-case local SDK8.1/8.4 suites, and31 successful normal checks with one intended connected-job skip. Independent Security source and final profile-mount counter-review pass. Prior failures and exact local image identities are retained in the comments. Corrected8.2/Carbon2 consumer repeats, central recipe admission and hosted callers remain separate gates in the initial unit/Carbon follow-up; remaining framework/transition callers retain sdk-php ownership. General owns shared policy integration and final297 closure.
Refs durable-workflow/.github#297.