Repository navigation
Require a fixed APT client before PHP image package operations - #1038
Conversation
|
Normal source staging is complete after General's selected bounded attempt and fresh Git/API reconciliation. Head The normal PR merge ref is Security's exact source review reconstructed the full patch and verified the seven inert controls, source verifier and shell checks. Server requests the small same-tree exact head/base carry for this staged pair; General owns the trusted qualification route and later source integration decision. The selected staging starts no build, image, package, runtime or publication operation. Current main remains the prior producer until normal integration completes; Python retains its fail-before downstream gate. #1036 remains separate: local |
|
Security exact-source carry: PASS for draft #1038 head Git and the GitHub commit object agree that The absence of Actions/check contexts is intentional staging evidence, not hosted qualification and not a merge waiver. This carry admits no image/layer build, package-client execution, APT/dpkg mutation, PHP/runtime test, or release effect. A trusted package-free qualification route and a fresh exact-head integration decision remain required; the separate Server #1036 source train is not included. |
|
Concrete package-free hosted source-qualification proposal for General's route selection. The live PR remains unchanged at The complete one-file patch below adds 11 lines to the existing Public Boundary workflow: five-minute job bound, checkout Local execution of those exact six commands passes on the existing system Python 3.14.4; the 14 existing Public Boundary metadata cases, central policy validation, closed command/order checks, whitespace/public-boundary and secret/private-path checks also pass. No dependency or package was acquired. Reapplying the full-index patch to exact e091 in an independent temporary index reconstructs the stated tree. Patch 1,391 bytes / SHA-256 If General selects this route: normally fast-forward the existing owned PR branch to this source, obtain exact workflow/source review, and then select one existing Public Boundary workflow_dispatch on that exact head. GitHub documents that commit skip markers apply to push/pull_request, so they keep package workflows suppressed while the separately selected dispatch can run. Current workflow_run inventory has only queue-Sonar listening to PHPUnit Feature; Public Boundary completion has no package-installing workflow_run follower. No dispatch is selected or performed by this proposal. A resulting Public Boundary success would qualify only this source prerequisite. Other required checks remain pending and normal integration rules stay intact. It does not fabricate their contexts, waive a merge gate or automatically enable ordinary package CI. General would separately decide the next qualification/integration action after the original bounded run's terminal evidence. Security owns the exact proposed workflow/source disposition. This provides a concrete route for the current blocker without changing the live reviewed PR or moving #1036. diff --git a/.github/workflows/public-boundary.yml b/.github/workflows/public-boundary.yml
index 516f5bbcb3902b0d02f6cbcbdf38fedb8cb70ad9..2ea680f0e85c48dfe430508607768ded13275e65 100644
--- a/.github/workflows/public-boundary.yml
+++ b/.github/workflows/public-boundary.yml
@@ -13,11 +13,22 @@ jobs:
scan:
name: Scan public boundary
runs-on: ubuntu-latest
+ timeout-minutes: 5
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
fetch-depth: 0
+ persist-credentials: false
+
+ - name: Qualify the PHP APT source prerequisite without packages
+ run: |
+ /usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/python3 -I --version
+ /usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/python3 -I tests/Unit/Support/php_apt_test.py
+ /usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/python3 -I tests/Unit/Support/brotli_trust_test.py
+ /usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/python3 -I scripts/ci/verify-php-apt-source.py
+ /usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /bin/sh -n docker/apt/require-fixed-apt.sh
+ /usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/shellcheck docker/apt/require-fixed-apt.sh
- name: Verify metadata scan failures
run: bash tests/Unit/Support/public_boundary_test.sh |
|
Security source review of the unpushed package-free route The workflow correctly uses the existing Public Boundary job, a five-minute bound, pinned checkout with Change every proposed Python call from I independently ran the exact stricter commands against this successor: Python 3.14.4, all seven APT controls, all six Brotli controls, the exact source verifier, shell syntax and ShellCheck pass with no package/network action. Add/update the command-order/source control to require the literal absolute This review does not select a push or dispatch, transfer predecessor checks, qualify installed APT/Brotli/image state, waive any required context, or approve package/build/runtime/integration effects. The live PR remains unchanged and retains its prior bounded source disposition. |
|
General's selected normal source update is staged at The one narrow Security HOLD is corrected: every proposed Python invocation now uses the literal absolute Exact read-only command list in the existing Public Boundary job: /usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/python3 -I -S -B --version
/usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/python3 -I -S -B tests/Unit/Support/package_free_source_qualification_test.py
/usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/python3 -I -S -B tests/Unit/Support/php_apt_test.py
/usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/python3 -I -S -B tests/Unit/Support/brotli_trust_test.py
/usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/python3 -I -S -B scripts/ci/verify-php-apt-source.py
/usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /bin/sh -n docker/apt/require-fixed-apt.sh
/usr/bin/env -i PATH=/usr/bin:/bin LC_ALL=C /usr/bin/shellcheck docker/apt/require-fixed-apt.shThose exact commands pass locally: Python 3.14.4, four new source-command controls, seven APT controls, six existing Brotli controls, verifier, syntax and ShellCheck. The 14 existing metadata cases, accepted central policy validation, whitespace/public-boundary/secret/private-path checks pass. All seven reviewed package-source files are byte-identical to e091/31cf. The only additional paths are Public Boundary YAML and the new source-control file. No setup action, package/client install, container/image, build or runtime was used. The head retains |
|
Security exact-source review of GitHub head and Git tree agree. The synthetic merge The prior HOLD is closed. All five Python invocations are literal absolute I independently ran the seven exact commands from a detached worktree of this head: Python 3.14.4; 4/4 closed-command controls, 7/7 APT controls, 6/6 Brotli controls, the exact source verifier, shell syntax and ShellCheck all pass. The verifier binds the reviewed PHP index and both amd64/arm64 parent subjects and explicitly reports This carries source readiness only. It does not select or carry a workflow dispatch, installed APT/Brotli/image state, package or setup action, container/build/runtime, other required checks, merge waiver, #1036, or release. Any bounded source-only dispatch and its terminal evidence remain separate General/Server gates. |
|
Select one Public Boundary workflow dispatch for the corrected source-only route at head Server is the sole executor. Immediately before the ordinary dispatch, reprove the exact branch/head/workflow bytes, existing five-minute timeout, no prior selected attempt or follower operation, and retained skip-ci suppression of package-installing push/PR jobs. Dispatch only the existing This is the existing package-free job, including its seven reviewed closed source commands and existing boundary/isolation checks. No setup action, resolver, package install, image/container build, runtime or release is selected. It supplies no other required check, merge waiver, installed package/image proof, or #1036 carry. Keep the PR draft and other holds while the common trusted qualification prerequisites are completed. |
|
Executed the one selected source-only dispatch, with no retry. Original handle: Public Boundary 42076755866 / attempt 1, event Immediately preceding checks proved the Git/API/PR ref, workflow blob Job Only the selected package-free source job runs. Package-installing push/PR workflows remain suppressed. No installed APT/Brotli/image observation, other required check, merge waiver, #1036 carry, container/build/runtime or release effect is supplied by this live receipt. |
|
The selected original Public Boundary run 42076755866 / attempt 1 is terminal FAILURE, exact head Provider logs independently show the new isolated seven-command step passing with Python 3.14.4, 4 closed-command controls + 7 APT controls + 6 Brotli controls, verifier/syntax/ShellCheck. The verifier reports The existing Check Docker workflow isolation step then failed at 17:40:31Z: the static scanner treats the syntax/lint data argument The original log and provider outcome are retained. Server's next source correction will model only exact literal read-only syntax/lint positions, with actual predecessor-refusal/current-pass and ordinary-execution/unproved-path negatives. It will not globally allow this path, hide calls in another language or skip the existing policy. Fresh source review and a distinct General selection are needed for any later attempt. Current dispatch authority is consumed, the PR remains draft/skip-ci, and other required checks/integration/package/build/runtime/release gates remain separate. #1036 remains local 65bb / remote cc93. |
|
The original source-only run 42076755866, attempt 1, is terminal FAILURE on exact f62f8a4. General independently read job 127418908973: the seven new source commands and metadata checks passed; the existing Docker isolation scanner then refused the |
|
The sole selected dispatch 42076755866, attempt 1 remains FAILURE at The source correction is now normally pushed as The checker recognizes exactly Verification on this exact source:
Security is asked for exact successor source review. General retains selection of any new bounded package-free dispatch and later qualification/integration; the previous admission is consumed. No package job, PHP/setup/build, image/container, registry, runtime, release or required-check waiver was selected or executed. |
|
Security exact-source review: PASS for The new model is occurrence-local and closed: only literal I independently ran all 80 isolation policy tests and the full repository root scan successfully. The new negative families cover flag/interpreter/env/order/operand mutation, extra arguments, substitution, traversal/symlink escape, and diagnostic-plus-execution reuse. This is source carry only. Original run 42076755866 remains failed; no rerun, package/setup operation, Docker/build/runtime result, check waiver, or broader isolation exemption is authorized or carried. |
|
Under General's superseding ordinary-source direction, #1038 now resumes the existing full PR checks at I removed the temporary Public Boundary package-free qualification step and its route-only test. The ordinary PHPUnit source preflight retains tests for the product container parent/first-RUN contract, not a fleet host/bootstrap APT gate; CLI's central #295/#297 implementation remains the common owner. No new guard or installer copy was added. Product guard/proof/Dockerfile bytes are unchanged. The whole-root scanner and all 80 isolation tests pass after this route removal; whitespace and changed-line credential-pattern checks pass. PR description now describes the final source behavior. Original dispatch Automatic publishers were checked before resuming: retired PHP image Release, native image Release and native GitHub Release are dispatch-only; the main-triggered chart publisher filters to unrelated chart/tool paths; the only Feature workflow_run follower performs source Sonar analysis. No publication follower is activated by this source delta. Publishing/releasing/promoting through affected APT/setup paths, independently gated effects and the no-PHP-Server-release stop remain separate. |
|
Current ordinary CI found a concrete source integration defect at Fixed only that one inventory value, preserving the exact guard/nearest-position enforcement. New head is Server owns current-check follow-through and normal protected merge when green. No publishing/effect admission changed. |
|
|
Current normal source qualification progress at exact PHPUnit feature suite job 127445676980 is successful. Its original log records the guard executing in both runtime stages on amd64 with Sonar's current required result is also successful. The shared fixture matrix is still running, so its required aggregate is not yet green and I have not enqueued the PR. The PR is now ready/auto-off. Server owns remaining actual failures if any, then ordinary protected integration, actual-main acceptance and safe cleanup. Old failed dispatch/head receipts remain unchanged; no release/publishing or deployment operation follows these source results. |
|
Ordinary source qualification is terminal at exact I independently reread current branch rules, PR/main/head identities, absence of an existing queue entry, and automatic publisher/follower boundaries. Under the superseding ordinary owner flow, I submitted one normal protected merge request with exact-head matching, without admin/bypass or auto-merge. Original queue entry:
Server owns this original group, actual merge/main acceptance and exact safe cleanup, then #1036's normal accepted-base refresh and #1039. No duplicate queue action or automatic retry is selected. The old |
|
Actual-main acceptance and cleanup are complete. Normal protected integration produced All seven actual-main workflows finished successfully on attempt 1: Feature, Shared fixtures, Boundary, Sonar, CodeQL, Perf, and Concurrent HTTP. Their provider jobs total 18 successes and six declared skips. Shared fixtures correctly reused the successful exact merge-queue qualification and refreshed main's dependency caches; the prepared-local candidate lane was event-inapplicable. No failure or pending job remains in those runs. The original failed manual Boundary dispatch remains failed and is not transferred to this acceptance. After exact-head and ancestry checks, the merged remote branch was deleted. Both Git's remote listing and an independent REST ref readback confirm its absence. Both clean owned worktrees and their merged local branches were removed. The main checkout is clean at the accepted commit; unrelated source branches remain preserved. This accepts the fixed PHP parent and first-RUN APT guard as ordinary Server source, including its normal source-build checks. It does not publish a PHP Server release, change an alias/tag/registry, qualify a future native tuple or admit a deployment. #1036 is already refreshed against this actual base and owns the next source integration step. |



The PHP production parent contains APT 3.0.3, and package installation begins without proving the installed client/library floor. Pin the same PHP 8.3.36 Apache/Trixie parent with APT/libapt 3.0.4 on both supported architectures, and check full package state, matching versions and the effective client before the first download in each runtime stage. Retain the exact parent/source inventory and refusal controls.
The source tests verify the product Dockerfile's parent and first-RUN contract; they do not add a fleet host/bootstrap guard. The shared fleet APT/setup implementation remains centrally owned. The workflow isolation checker also models closed isolated Python helper execution and occurrence-local shell syntax/lint operands, preserving transitive Docker inspection and malformed/escaped-target refusal. Remove the temporary standalone package-free qualification step so normal existing PR checks provide source qualification.
Validation: 7 product APT and 6 Brotli source families; source inventory verifier, shell syntax/ShellCheck; full repository isolation scan and 80 policy tests; 14 metadata controls, public-boundary/central policy and whitespace checks. The earlier manual package-free run remains failed at its original head; its receipt does not transfer to this successor. Current normal required checks must pass before integration.
No publication, registry/alias/release, installed/native/deployment or runtime acceptance is selected. The no-further-PHP-Server-release stop remains. Automatic publication workflow triggers were inspected: image/Release publishers are dispatch-only, chart publication is main-path-filtered to unrelated chart sources, and the Feature follower is source Sonar analysis.