Skip to content

Add PHP extension config files (Phase 2 of extension config migration) - #1332

Merged
tnikolova82 merged 2 commits into
masterfrom
add-extension-config
Oct 29, 2026
Merged

tnikolova82 merged 2 commits into
masterfrom
add-extension-config

Conversation

@tnikolova82

Copy link
Copy Markdown
Contributor

Summary

Copy PHP extension YAML files from binary-builder to this repo, establishing the php-buildpack as the authoritative source for extension version configuration.

Context

This is Phase 2 of the PHP extension config migration plan. The full migration moves extension version ownership from binary-builder (where configs are embedded via go:embed) to this repo (where they can be managed independently).

Changes

New directory: config/extensions/ containing:

File Purpose
php8-base-extensions.yml Full extension list for all PHP 8.x (40+ PECL extensions + native modules)
php81-extensions-patch.yml Per-version overrides for PHP 8.1
php82-extensions-patch.yml Per-version overrides for PHP 8.2
php83-extensions-patch.yml Per-version overrides for PHP 8.3
php84-extensions-patch.yml Per-version overrides for PHP 8.4 (major changes: mongodb 2.x, redis 6.1, etc.)
php85-extensions-patch.yml Per-version overrides for PHP 8.5 (extensive: 15+ exclusions/additions)
README.md Documents file format, naming convention, how to add new PHP versions

Impact

None. These files are not consumed by any code or CI pipeline yet. The CI pipeline will be updated in Phase 3 (buildpacks-ci PR forthcoming) to pass these files to binary-builder via --extensions-dir during PHP builds.

Until Phase 3 goes live, binary-builder continues to use its embedded copies (byte-identical to these files).

Migration Plan

Phase Description Status
1 Add --extensions-dir flag to binary-builder PR #126 — open
2 Copy extension YAML to php-buildpack This PR
3 Update CI pipeline to pass --extensions-dir Pending (buildpacks-ci)
4 Add automated PECL version monitoring buildpacks-ci PR #696 — open
5 Remove embedded config from binary-builder Pending (after Phase 3 validation)

Copy the PHP extension YAML files from binary-builder/internal/php/assets/
to config/extensions/ in this repo. This is Phase 2 of the PHP extension
config migration plan (see buildpacks-ci docs/php-extensions-migration-plan.md).

These files define which PECL extensions and native modules are compiled
into each PHP binary version. Moving them here allows the php-buildpack
team to manage extension versions independently of binary-builder.

The files are not yet consumed by the CI pipeline — that happens in
Phase 3 when the build script is updated to pass --extensions-dir to
binary-builder. Until then, binary-builder continues to use its embedded
copies (which are byte-identical to these files).

Files added:
- php8-base-extensions.yml: full extension list for all PHP 8.x
- php81-extensions-patch.yml through php85-extensions-patch.yml:
  per-minor-version overrides (exclusions + additions)
- README.md: documents file format, naming convention, and update process
- php81-extensions-patch.yml: remove empty 'exclusions:' key that had
  no entries. Matches php82/php83 which omit the key entirely.

- php84-extensions-patch.yml: add comment explaining why ioncube has
  md5: nil (binary download, not compiled from source). Matches the
  comment style used for all other entries in the file.

- php85-extensions-patch.yml: same ioncube comment fix.
@tnikolova82
tnikolova82 merged commit 5679f05 into master Oct 29, 2026
5 checks passed
@tnikolova82
tnikolova82 deleted the add-extension-config branch October 29, 2026 13:16

@ivanovac ivanovac left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

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.

2 participants