Skip to content

fix(release): add missing PHP extensions - #321

Merged
clvsh merged 2 commits into
mainfrom
pullfrog/320-add-missing-php-extensions
Aug 12, 2026
Merged

fix(release): add missing PHP extensions#321
clvsh merged 2 commits into
mainfrom
pullfrog/320-add-missing-php-extensions

Conversation

@pullfrog

@pullfrog pullfrog Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add ftp and gd to the default PHP/FrankenPHP extension contract, with FreeType, JPEG, AVIF, and WebP support
  • bundle rar as an optional shared module and include its legal notice
  • add runtime smoke probes for SQLite3 queries, FTP availability, GD image creation/codecs, and RarArchive loading
  • bump paired PHP artifact recipes from pv5 to pv6 and update release fixtures/snapshots

Verification

  • cargo fmt --all -- --check
  • shellcheck release/artifacts/recipes/php/build.sh release/artifacts/recipes/php/smoke.sh
  • cargo test -p pv-release --test smoke php_ --locked
  • cargo test -p pv-release --test recipe_metadata --test recipe_fixtures --locked
  • cargo clippy -p pv-release --all-targets --all-features --locked -- -D warnings
  • no .snap.new or .snap.tmp files remain

Known unrelated blockers

  • workspace Clippy and cargo test --workspace --locked stop because crates/daemon/tests/supervisor_foundation.rs imports undeclared crate rustix
  • the complete pv-release smoke target has an unrelated MySQL 8.0 fixture failure: bzip2: (stdin) is not a bzip2 file
  • cargo insta pending-snapshots --workspace was unavailable because cargo-insta is not installed; the snapshot-producing tests pass

Release follow-up

After merge, run Artifact Recipes from main with resource=php, track=all, and platform=all (the current Apple Silicon preview matrix), then publish that successful source run with required_native_platforms=darwin-arm64 and verify both PHP and FrankenPHP tracks resolve to pv6. Intel remains diagnostic-only until its existing StaticPHP linker blocker is resolved.

Closes #320

Pullfrog  | View workflow run | via Pullfrog | Using GPT Sol𝕏

Summary by CodeRabbit

  • New Features
    • PHP builds now include FTP and GD by default.
    • GD supports FreeType, JPEG, AVIF, and WebP.
    • Added optional RAR archive support.
  • Bug Fixes
    • Updated PHP build metadata and validation to accurately recognize the new extensions and capabilities.
  • Documentation
    • Documented the updated default and optional extension catalog.
    • Added licensing and attribution notices for RAR support.

@codspeed-hq

codspeed-hq Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 7 untouched benchmarks


Comparing pullfrog/320-add-missing-php-extensions (0e7787c) with main (62f2ca4)

Open in CodSpeed

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: c0690c86-904c-4e2d-abb1-9c123db822f7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PHP recipe now includes ftp and gd by default, supports GD codecs, and offers rar as an optional extension. Build revision metadata, archive fixtures, smoke tests, documentation, and RAR licensing notices were updated.

Changes

PHP extension recipe and metadata

Layer / File(s) Summary
Extension metadata and contracts
DESIGN.md, crates/pv-release/src/recipe.rs, crates/pv-release/tests/recipe_metadata.rs, crates/pv-release/tests/recipe_fixtures.rs, docs/adr/..., release/artifacts/recipes/php/tracks.toml
Default extensions now include ftp and gd. Optional extensions now include rar. Recipe revision expectations use pv6.

Build and validation

Layer / File(s) Summary
Build and runtime capability validation
release/artifacts/recipes/php/build.sh, release/artifacts/recipes/php/smoke.sh, crates/pv-release/tests/smoke.rs, release/artifacts/recipes/php/LICENSE, release/artifacts/recipes/php/NOTICE
The build enables GD image libraries. PHP and FrankenPHP smoke checks validate default capabilities and RarArchive. RAR licensing and attribution metadata were added.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Recipe
  participant StaticPHP
  participant SmokeChecks
  Recipe->>StaticPHP: Request ftp, gd, and rar
  StaticPHP->>SmokeChecks: Provide PHP and FrankenPHP artifacts
  SmokeChecks->>SmokeChecks: Validate default capabilities
  SmokeChecks->>SmokeChecks: Validate optional extensions
Loading

Possibly related PRs

  • prvious/pv#293: Updates the PHP artifact recipe and validation for another extension capability set.

Suggested reviewers: clvsh

Poem

I’m a rabbit with a build in flight,
FTP and GD now work just right.
RAR joins the optional crew,
Smoke checks test each feature too.
pv6 hops into release light.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding missing PHP extensions to the release.
Linked Issues check ✅ Passed The changes add and verify GD, FTP, RAR, and SQLite3 support as requested by issue #320.
Out of Scope Changes check ✅ Passed The changes remain within the linked issue scope, including implementation, release metadata, legal notices, documentation, and tests.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch pullfrog/320-add-missing-php-extensions

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@release/artifacts/recipes/php/LICENSE`:
- Around line 77-82: The UnRAR licensing and attribution details are missing
from the PHP artifacts. In release/artifacts/recipes/php/LICENSE lines 77-82,
add the complete UnRAR license text; in release/artifacts/recipes/php/NOTICE
lines 16-18, add the UnRAR attribution and restrictions against creating a
RAR-compatible archiver or re-creating RAR compression; in
crates/pv-release/tests/smoke.rs lines 888-895, assert both generated PHP and
FrankenPHP NOTICE files contain the attribution and restriction.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: dc65998d-d4a6-4d15-bfb9-072e0a4a83cb

📥 Commits

Reviewing files that changed from the base of the PR and between 62f2ca4 and b2e06a1.

⛔ Files ignored due to path filters (3)
  • crates/pv-release/tests/snapshots/recipe_fixtures__recipe_fixture_generation_validates_archives_records_and_manifest.snap is excluded by !**/*.snap
  • crates/pv-release/tests/snapshots/recipe_metadata__print_recipe_env_frankenphp.snap is excluded by !**/*.snap
  • crates/pv-release/tests/snapshots/recipe_metadata__print_recipe_env_php.snap is excluded by !**/*.snap
📒 Files selected for processing (11)
  • DESIGN.md
  • crates/pv-release/src/recipe.rs
  • crates/pv-release/tests/recipe_fixtures.rs
  • crates/pv-release/tests/recipe_metadata.rs
  • crates/pv-release/tests/smoke.rs
  • docs/adr/0014-project-level-php-extension-opt-ins.md
  • release/artifacts/recipes/php/LICENSE
  • release/artifacts/recipes/php/NOTICE
  • release/artifacts/recipes/php/build.sh
  • release/artifacts/recipes/php/smoke.sh
  • release/artifacts/recipes/php/tracks.toml

Comment thread release/artifacts/recipes/php/LICENSE
@pullfrog

pullfrog Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the UnRAR licensing feedback in commit 0e7787c: added the complete upstream license, included attribution and both restrictions in generated artifact notices, and covered PHP plus FrankenPHP in the existing smoke test. Formatting, targeted smoke testing, Clippy, and diff checks pass; the fix is pushed and the review thread is resolved.

Task list (5/5 completed)
  • Check out PR 321 and inspect review feedback plus repository guidance
  • Verify and address each review comment with minimal changes
  • Run relevant tests and inspect the final diff
  • Commit and push the fixes
  • Reply to and resolve addressed review threads

Pullfrog  | View workflow run | via Pullfrog | Using GPT Sol𝕏

@clvsh
clvsh merged commit 8a644de into main Aug 12, 2026
8 checks passed
@clvsh
clvsh deleted the pullfrog/320-add-missing-php-extensions branch August 12, 2026 22:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

missing php extensions in the built artifacts

1 participant