Skip to content

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

Open
tnikolova82 wants to merge 1 commit into
masterfrom
add-extension-config
Open

tnikolova82 wants to merge 1 commit 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
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