Hi Davey,

thanks for the proposal and excuse my rather longish reply already.

> On 02 Sep 2016, at 21:32, Davey Shafik <m...@daveyshafik.com> wrote:
[...]
> I'd like to introduce a new RFC to deprecate pear/pecl (in 7.2, and remove
> in 8.0), as well as add composer/pickle (optional in 7.2, default in 7.3+)
> in their place.
[...]

Before discussing the proposal, I wanna go back one step and disaggregate the 
main use cases of what pear does so far (I simplified that a bit, but look at 
pear help on your own):

 - Install PHP extensions written in C/C++ through pecl and pecl.php.net
 - Install PHP libraries written in PHP through pear.php.net
 - Act as a version manager for both C and PHP based extensions/libraries
 - Package pecl packages for release

Probably less used (my guess!):
 - Building an RPM spec file from a PEAR package
 - Adding additional PEAR channels to install more dependencies than what is on 
pecl.php.net and pear.php.net
 - Signing packages
 - I’ve heard there might be a web interface somewhere but I have no idea about 
it :)

I believe out of those use cases there should only be two that are supported in 
core:

 1) Install PHP extensions written in C/C++ based on a global repository like 
pecl.php.net (or it’s successor)
 2) Tooling for maintaining such PHP extensions written in C/C++

Note: The second one could be solved in userland but I think for convenience 
reasons this should be supported by core.

For a healthy ecosystem we want to have alignment but also competition on 
central pieces of infrastructure like composer is. Don’t get me wrong, composer 
was programmer-heaven-sent and I love using it but if somebody has a better 
idea I don’t want core to provide relative competitive advantage just because 
it’s bundled. Maybe if PHP would not have shipped pear it would be long gone. 
Also I would argue that the lifecycle of a package management tool is different 
than the lifecycle of language, meaning that a package management needs more 
upgrades than the language so bundling doesn't really fit.

Having said that, I think we should offer an easy way to install composer in 
the core as a practical, convenient and realistic compromise. Something like 
php --composer-install that basically does curl getcomposer.org/composer.phar > 
/usr/local/bin/composer && chmod +x /usr/local/bin/composer. If we want to get 
fancy even a script that replaces itself with the content of 
getcomposer.org/composer.phar. This could also include a policy that we would 
include competing package managers if they proof a certain level of traction in 
the same way.

Now for pickle specifically: as I have never used it personally I have no way 
to judge it’s stability or defect rate. I would love to hear an opinion on that 
from people with more experience here. Also what about traction: looking at the 
commit history of the project, could some of the authors chime and provide some 
perspective on wether it's more or less done, what the development roadmap (if 
any) looks like and what would be caveats of including it.

cu,
Lars

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to