Add dev:gen-ext-test-matrix command#1133
Conversation
…windows swow curl bug)
|
StaticPHP Test Bot Detected: Extensions: |
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
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.