fix(release): write composer.json to host workspace, add macOS PIE binaries - #78
Merged
Conversation
…naries The Source job's fallback "pskel init skeleton" wrote composer.json to /opt/pskel inside the container because get_workspace_dir never checked the compose-mounted /workspace when invoked with a working directory outside it (docker compose run defaults to /). Add an explicit /workspace fallback so the generated composer.json lands in the host checkout, fixing the "composer.json not found" release failure. Also complete the prebuilt binary matrix with macOS: a new release job builds on macos-15 (arm64) and macos-15-intel (x86_64) for PHP 8.1-8.5 ts/nts via setup-php and runs "pskel package" natively (darwin/bsdlibc naming). cmd_package now falls back to sysctl hw.ncpu where nproc is unavailable and skips the Linux-only ltmain.sh patch on Darwin, mirroring the proven ci_macos build steps. The Source job now uses the lightweight builder target instead of the full base image. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
zeriyoshi
added a commit
that referenced
this pull request
Jul 27, 2026
Since get_workspace_dir learned to detect the compose-mounted /workspace (#78), pskel coverage captures into /workspace/ext/lcov.info (the host checkout) instead of the image's /ext. The coverage job still bind-mounted an empty host file over /ext/lcov.info and shipped it as the shard, which coverage-report rejected with "missing FNL: records". Drop the single-file mount and take the shard from ext/lcov.info. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the failed Release run (
Verify project is initialized→ composer.json not found): the fallbackpskel init skeletonwrotecomposer.jsonto/opt/pskelinside the container becauseget_workspace_dirnever considered the compose-mounted/workspacewhen the working directory is outside it (docker compose rundefaults to/). An explicit/workspacefallback now places the generatedcomposer.jsonin the host checkout.Completes the prebuilt binary matrix with macOS (Linux was added in #77, Windows already existed):
macOSrelease job:macos-15(arm64) +macos-15-intel(x86_64) × PHP 8.1–8.5 × ts/nts = 20 assets, built natively withpskel package(darwin/bsdlibcPIE naming)cmd_package:sysctl -n hw.ncpufallback wherenprocis unavailable; the Linux-only ltmain.sh patch is skipped on Darwin (mirrors the proven ci_macos build steps)Sourcejob now uses the lightweightbuildertarget instead of the full base image (no Valgrind/LLVM needed for skeleton init)Test plan
docker compose run ... pskel init skeleton, builder target):composer.jsonand initializedext/land in the host checkout, extension-name resolves toskeletonpskel packageproducedphp_skeleton-v9.9.9-mac_php8.5-arm64-darwin-bsdlibc.zipcontainingskeleton.so, load smoke test passed🤖 Generated with Claude Code