Repository navigation
|
I came here from PECL site's deprecation notice. I've looked in discussions and issues in case anyone already bothered with the question, and linked document in that issue doesn't explain significant benefits from switching from PECL to PIE. We're using PECL in our Docker PHP images based on official PHP-FPM ones and while extensions are installed there by one line like |
Replies: 1 comment 2 replies
|
Hi @Luniterse, thanks for the great question. There's a few reasons we've dropped PECL support in favour of PIE, primarily it is driven by ensuring we have a sustainable and modern infrastructure with PHP. PECL depends on a repository and infrastructure that is struggling, and difficult to maintain. In order to reduce maintenance effort, we have made a coordinated effort to introduce this new tool - PIE - which is based heavily on Composer, and thus uses the very well maintained Packagist.org infrastructure for package metadata. The PIE tool itself is being actively developed, primarily by me at the PHP Foundation, with an express goal of making extension management better and easier going forward, certainly easier that PECL ever was. The decision to deprecate PECL in favour of this more modern tooling was discussed on the mailing list, and the eventual RFC was accepted with 36 ayes, 0 nays, and 5 abstentions. To address specific technical points you encountered:
It is actually still possible to use a single line like If you would like a MUCH simpler example, but with drawbacks/caveats that must be understood first, you could simplify this into something like: COPY --from=ghcr.io/php/pie:bin /pie /usr/bin/pie
RUN pie install phpredis/phpredisWhich leads me neatly onto:
We actually discussed this quite heavily in docker-library/php#1554 and we did a lot of thinking/research about this. PECL/PEAR is indeed in the base PHP images provided by Docker, but that may actually be removed as PECL/PEAR are removed from PHP itself. Ultimately, PIE is specifically a build tool not a runtime tool, and as such should not be built into the final image - again, a best practice we recommend.
There isn't really moderation on pecl.php.net beyond an initial account approval. Once you have an account, in theory you could just publish anything you want. The same is true of Composer, but the moderation tools available to the Packagist repository are much more modern - and PIE takes advantage of that by using Composer internally. However, there is a good point here about supply chain security, and it's something that we are taking seriously, and both the PHP Foundation, and the Packagist team are actively looking into to improve this important aspect. Finally, in order to alay any immediate concern, plans have not yet been made for a timeline to actually disable PECL repository. That is still a discussion to be had, but I think a reasonable approach would be to set a sunset timeline where PECL itself will be made "read only", and then eventually turned off, perhaps. But I stress - that's not a decision, just ideas, and still will need to be discussed. I hope this helps, and I'm happy to clarify and help further if needed :) |
Hi @Luniterse, thanks for the great question. There's a few reasons we've dropped PECL support in favour of PIE, primarily it is driven by ensuring we have a sustainable and modern infrastructure with PHP. PECL depends on a repository and infrastructure that is struggling, and difficult to maintain. In order to reduce maintenance effort, we have made a coordinated effort to introduce this new tool - PIE - which is based heavily on Composer, and thus uses the very well maintained Packagist.org infrastructure for package metadata. The PIE tool itself is being actively developed, primarily by me at the PHP Foundation, with an express goal of making extension management better and easier goin…