Skip to content

feat(build): ship simdjson.h beside the ext/simdjson headers - #165

Merged
loadinglucian merged 2 commits into
mainfrom
feat/build-kit-simdjson
Sep 29, 2026
Merged

loadinglucian merged 2 commits into
mainfrom
feat/build-kit-simdjson

Conversation

@loadinglucian

@loadinglucian loadinglucian commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

The installed ext/simdjson bindings header includes "simdjson.h", which the build kit didn't ship, so an extension using those headers couldn't compile with phpize. Packaging now stages the amalgamated header beside it and stops when it's missing. It also reads the kit include folder through KIT_INCLUDE in stage_header_closure.

scripts/package.sh is a recipe input, so this changes the recipe identity. After merge the watcher rebuilds every maintained release once more, one per run: -3 for 8.5.11, 8.5.10, 8.5.9, 8.5.8, 8.4.23, 8.3.32 and 8.2.32, and -2 for 8.4.26, 8.3.35 and 8.2.34.

Summary by CodeRabbit

  • Documentation
    • Clarified that extensions can build against ext/simdjson using phpize alone.
    • Documented simdjson.h alongside the PHP bindings header.
  • Packaging
    • Packaged PHP include files now include the simdjson header when the bindings header is present, so extensions have the headers needed to build.

The installed ext/simdjson bindings header includes "simdjson.h", which the build kit did not carry, so an extension including those headers could not compile with phpize. Stage the amalgamated header beside it, stop packaging when it is missing, and read the kit include folder through KIT_INCLUDE in stage_header_closure.
@loadinglucian loadinglucian self-assigned this Sep 29, 2026
@coderabbitai

coderabbitai Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: b221d3ef-1abf-4015-8b70-2165340d83bc

📥 Commits

Reviewing files that changed from the base of the PR and between fd19c36 and 4ec7932.

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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 521f527d-ace2-4c9e-ac80-2bfe5574bcc9

📥 Commits

Reviewing files that changed from the base of the PR and between e629ea8 and fd19c36.

📒 Files selected for processing (3)
  • README.md
  • scripts/package.sh
  • scripts/test.sh

Included review availability: This review used your included allowance. 3 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.


📝 Walkthrough

Walkthrough

The packaging script now stages simdjson.h beside the PHP simdjson bindings header when that header is present. The README documents the header and phpize support. Packaging tests check archive contents and missing-header failure.

Changes

Simdjson header packaging

Layer / File(s) Summary
Stage and document the simdjson header
scripts/package.sh, README.md
The packaging script stages the source simdjson.h beside the bindings header and requires that source file. The README documents simdjson.h and phpize support for ext/simdjson.
Test simdjson header packaging
scripts/test.sh
The fixture includes simdjson headers. Tests check for the header in the archive and confirm that packaging fails with the missing source header path when that file is absent.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to fd19c

The package now includes the sibling header required by the pinned simdjson extension. No actionable merge risk remains.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the change and its recipe identity impact, but it does not use the required Summary, Verification, or Security and licensing sections. It also omits the required verification … Restructure the description with the template headings. Add the required Verification checklist, including scripts/test.sh, the macOS arm64 build stage, module diff review, and release-contract compatibility. Add the Security and licensing …
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: shipping simdjson.h beside the ext/simdjson headers.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 …
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the change and its recipe identity impact, but it does not use the required Summary, Verification, or Security and licensing sections. It also omits the required verification and licensing check items.

Resolution

Restructure the description with the template headings. Add the required Verification checklist, including scripts/test.sh, the macOS arm64 build stage, module diff review, and release-contract compatibility. Add the Security and licensing checklist, including credentials, generated artifacts, licenses, and immutable pins.

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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

* origin/main:
  fix(autorelease): email publish runs, set Latest, and resume finalize (#164)
@loadinglucian
loadinglucian merged commit f662906 into main Sep 29, 2026
4 checks passed
@loadinglucian
loadinglucian deleted the feat/build-kit-simdjson branch September 29, 2026 14:46
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.

1 participant