Add dev:gen-ext-test-matrix command#1133
Merged
crazywhalecc merged 58 commits intov3from May 11, 2026
Merged
Conversation
6 tasks
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces automation to generate an extension-build test matrix and to analyze PR changes/labels for driving CI test selection, while also improving download robustness and adjusting several package/build behaviors.
Changes:
- Add
dev:gen-ext-test-matrixanddev:test-botcommands, and wire them into the console app and CI workflow for label-gated extension test runs. - Add retry support to GitHub/cURL/git download paths and adjust binary extraction to support merging into the shared buildroot.
- Update multiple package configs/build scripts (curl deps, zstd libs, assorted extension patches, docs updates, etc.).
Reviewed changes
Copilot reviewed 44 out of 44 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/StaticPHP/Runtime/Shell/DefaultShell.php | Adds curl debug logging and git-clone retry support. |
| src/StaticPHP/Runtime/Executor/UnixCMakeExecutor.php | Restricts framework-flag injection to macOS target builds. |
| src/StaticPHP/Package/PackageInstaller.php | Fixes install-state fallback behavior for target packages. |
| src/StaticPHP/ConsoleApplication.php | Registers new dev commands in the CLI app. |
| src/StaticPHP/Command/Dev/TestBotCommand.php | New command: analyzes PR files/labels and outputs bot metadata JSON. |
| src/StaticPHP/Command/Dev/GenExtTestMatrixCommand.php | New command: generates GHA matrix entries for extension testing. |
| src/StaticPHP/Artifact/DownloaderOptions.php | Adds -i short option for --ignore-cache. |
| src/StaticPHP/Artifact/Downloader/Type/GitHubTarball.php | Threads retry count through GitHub tarball API/HEAD calls and downloads. |
| src/StaticPHP/Artifact/Downloader/Type/GitHubRelease.php | Threads retry count through GitHub release API calls. |
| src/StaticPHP/Artifact/Downloader/Type/Git.php | Passes retry count into git clone operations. |
| src/StaticPHP/Artifact/ArtifactExtractor.php | Adds “merge” extraction mode when extracting into shared buildroot. |
| src/Package/Target/php/windows.php | Simplifies Windows micro build flow (removes phar patch wrapper). |
| src/Package/Target/php/unix.php | Simplifies Unix micro build flow (removes phar patch wrapper). |
| src/Package/Library/zstd.php | Adds an additional Windows lib alias output (libzstd.lib). |
| src/Package/Library/mpir.php | Pins WindowsTargetPlatformVersion in msbuild invocation. |
| src/Package/Extension/zlib.php | Adjusts zlib configure args based on PHP version + spx presence. |
| src/Package/Extension/opentelemetry.php | Adds toolchain-aware warning suppression flags. |
| src/Package/Extension/memcache.php | Adds PHP 8.5 header path patching for smart_string headers. |
| src/Package/Extension/intl.php | Extends Windows intl patching to enforce C++17 for ICU 73+. |
| src/Package/Extension/imap.php | Adds a PHP 8.2 compatibility patch for imap source. |
| src/Package/Artifact/go_xcaddy.php | Adds retries for Go version/page fetches. |
| src/Package/Artifact/go_win.php | Adds retries for Go version/page fetches. |
| docs/zh/guide/cli-reference.md | Documents -i short option for --ignore-cache (ZH). |
| docs/en/guide/cli-reference.md | Documents -i short option for --ignore-cache (EN). |
| config/pkg/target/curl.yml | Promotes brotli/zstd to dependencies for curl builds. |
| config/pkg/lib/zstd.yml | Adds libzstd.lib to Windows static libs. |
| config/pkg/lib/zlib.yml | Removes hosted-binary config for zlib. |
| config/pkg/lib/xz.yml | Removes hosted-binary config for xz. |
| config/pkg/lib/openssl.yml | Removes hosted-binary config for openssl. |
| config/pkg/lib/libunistring.yml | Removes hosted-binary config for libunistring. |
| config/pkg/lib/libssh2.yml | Removes hosted-binary config for libssh2. |
| config/pkg/lib/libsodium.yml | Removes hosted-binary config for libsodium. |
| config/pkg/lib/libpng.yml | Removes hosted-binary config for libpng. |
| config/pkg/lib/libiconv.yml | Removes hosted-binary config for libiconv. |
| config/pkg/lib/libedit.yml | Removes hosted-binary config for libedit. |
| config/pkg/lib/libcares.yml | Removes hosted-binary config for libcares. |
| config/pkg/lib/glfw.yml | Adds macOS framework linkage metadata for glfw. |
| config/pkg/lib/bzip2.yml | Removes hosted-binary config for bzip2. |
| config/pkg/lib/brotli.yml | Removes hosted-binary config for brotli. |
| config/pkg/ext/ext-swow.yml | Removes suggests entries from swow extension config. |
| config/pkg/ext/ext-ds.yml | Switches ds extension artifact source from PECL to git extraction. |
| config/pkg/ext/builtin-extensions.yml | Adds ext-dom dependency to ext-xmlreader. |
| config/artifact/ncurses.yml | Removes hosted-binary config for ncurses artifact. |
| .github/workflows/tests.yml | Refactors CI to label-gate and generate ext-test matrices via new dev commands. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…to prevent minilua segfault
henderkes
reviewed
May 10, 2026
Owner
Author
Summary of changesCI automation
Bugfix
|
Collaborator
|
I'll first see why using zig-cc leads to a crash there. Other than that looks good. |
henderkes
reviewed
May 10, 2026
henderkes
reviewed
May 11, 2026
crazywhalecc
commented
May 11, 2026
henderkes
approved these changes
May 11, 2026
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.
What does this PR do?
Checklist before merging
*.phpor*.json, run them locally to ensure your changes are valid:composer cs-fixcomposer analysecomposer testbin/spc dev:sort-configsrc/globals/test-extensions.php.extension testortest extensionsto trigger full test suite.