Skip to content

build(profiling)!: use phpize and configure#3613

Draft
morrisonlevi wants to merge 8 commits intomasterfrom
levi/phpize
Draft

build(profiling)!: use phpize and configure#3613
morrisonlevi wants to merge 8 commits intomasterfrom
levi/phpize

Conversation

@morrisonlevi
Copy link
Collaborator

Description

The README has been updated to describe new build instructions. The backwards compatibility break here is that build instructions have changed.

A brief and incomplete summary of changes:

  • build.rs no longer runs php-config commands
  • build.rs looks for configuration settings in Makefile
  • The Makefile is generated by ./configure.
  • ./configure is generated by phpize.

So essentially instead of this:

# Or to wherever you have PHP installed
export PATH="/opt/php/8.4/bin:$PATH"
cargo build --release

You now do:

# Or to wherever you have PHP installed
export PATH="/opt/php/8.4/bin:$PATH"
phpize
./configure
make

# or you can still run cargo as regular after ./configure
# it uses a separate target directory, if you want to reuse it:
CARGO_TARGET_DIR=target cargo build --release

But you also get things you didn't have before:

make install # installs to the php extension directory
make test # runs phpt tests

# can also run cargo tests through make:
make cargo-test

There are options to ./configure to set cargo features or to enable the debug profile.

Reviewer checklist

  • Test coverage seems ok.
  • Appropriate labels assigned.

@morrisonlevi morrisonlevi added the profiling Relates to the Continuous Profiler label Feb 1, 2026
@datadog-official
Copy link

datadog-official bot commented Feb 1, 2026

⚠️ Tests

Fix all issues with Cursor

⚠️ Warnings

🧪 1024 Tests failed

    testSearchPhpBinaries from integration.DDTrace\Tests\Integration\PHPInstallerTest (Fix with Cursor)

    testSimplePushAndProcess from laravel-58-test.DDTrace\Tests\Integrations\Laravel\V5_8\QueueTest (Fix with Cursor)

testSimplePushAndProcess from laravel-8x-test.DDTrace\Tests\Integrations\Laravel\V8_x\QueueTest (Datadog) (Fix with Cursor)
DDTrace\Tests\Integrations\Laravel\V8_x\QueueTest::testSimplePushAndProcess
Test code or tested code printed unexpected output: spanLinksTraceId: 697fd11400000000cdca4f3f489222d4
tid: 697fd11400000000
hexProcessTraceId: cdca4f3f489222d4
hexProcessSpanId: c327f5916722241a
processTraceId: 14828751856289850068
processSpanId: 14062478366337016858

phpvfscomposer://tests/vendor/phpunit/phpunit/phpunit:106
View all

ℹ️ Info

❄️ No new flaky tests detected

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: d2bc90a | Docs | Datadog PR Page | Was this helpful? Give us feedback!

@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.11%. Comparing base (491a9e3) to head (d2bc90a).

Additional details and impacted files

Impacted file tree graph

@@                Coverage Diff                 @@
##           levi/backtrace    #3613      +/-   ##
==================================================
- Coverage           62.12%   62.11%   -0.02%     
==================================================
  Files                 141      141              
  Lines               13387    13387              
  Branches             1753     1753              
==================================================
- Hits                 8317     8315       -2     
- Misses               4270     4273       +3     
+ Partials              800      799       -1     

see 1 file with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 491a9e3...d2bc90a. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pr-commenter
Copy link

pr-commenter bot commented Feb 1, 2026

Benchmarks [ tracer ]

Benchmark execution time: 2026-02-01 23:03:06

Comparing candidate commit d2bc90a in PR branch levi/phpize with baseline commit 491a9e3 in branch levi/backtrace.

Found 0 performance improvements and 5 performance regressions! Performance is the same for 185 metrics, 4 unstable metrics.

scenario:MessagePackSerializationBench/benchMessagePackSerialization-opcache

  • 🟥 execution_time [+3.349µs; +5.011µs] or [+3.241%; +4.849%]

scenario:SamplingRuleMatchingBench/benchRegexMatching1

  • 🟥 execution_time [+105.852ns; +135.348ns] or [+9.254%; +11.833%]

scenario:SamplingRuleMatchingBench/benchRegexMatching2

  • 🟥 execution_time [+95.695ns; +147.905ns] or [+8.313%; +12.848%]

scenario:SamplingRuleMatchingBench/benchRegexMatching3

  • 🟥 execution_time [+76.787ns; +140.013ns] or [+6.617%; +12.065%]

scenario:SamplingRuleMatchingBench/benchRegexMatching4

  • 🟥 execution_time [+113.685ns; +150.515ns] or [+9.960%; +13.187%]

Base automatically changed from levi/backtrace to master February 2, 2026 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

profiling Relates to the Continuous Profiler

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants