rfc:deprecate-pear-include-composer

This is an old revision of the document!


PHP RFC: Deprecate PEAR/PECL & Replace with composer/pickle

Introduction

As the community moves on from PEAR and migrates to composer, the inclusion of PEAR in the PHP package is starting to make less and less sense.

Proposal

As PEAR becomes less relevant, we should deprecate it in favor of more modern, community chosen tools — specifically composer.

PEAR however also comprises PECL, so this RFC also proposes that we move to pickle, an alternative written (primarily) by Anatol Belski and Pierre Joye. Pickle is based on composer and backwards compatible with pecl packages as well as supporting RCS systems similar to composer.

We would like to deprecate pear/pecl in 7.2, and remove them entirely in 8.0. At the same time, we'd like to include composer/pickle as optional (under build flags --with-composer and --with-pickle) for 7.2, then enabled by default in 7.3.

The deprecation would come in the form of updating documentation on php.net (e.g. configure flags) and with a notice at the end of ./configure and during the “make” steps.

Backward Incompatible Changes

None till 8.0, when pear/pecl will be removed. If the projects continue to functions, they can continue to provide methods for manual installation.

Proposed PHP Version(s)

  • PHP 7.2: Deprecate pear/pecl, optional composer/pickle
  • PHP 7.3: Enable composer/pickle by default
  • PHP 8.0: Remove pear/pecl

RFC Impact

To SAPIs

None

To Existing Extensions

None

To Opcache

None

New Constants

None

php.ini Defaults

None

Open Issues

Proposed Voting Choices

As this does not include any language changes, this should be a simple 50%+1 vote. However, this will be discussed before voting begins.

Potential voting choices:

  1. Deprecate pear/pecl & remove in 8.0 (Choices: yes/no)
  2. Include composer/pickle (Choices: yes/no)
  3. Make composer/pickle default in which version? (Choice: 7.2/7.3/8.0/Never)

Patches and Tests

The patch will refactor the current pear make code to be re-usable by composer/pickle.

Implementation

After the project is implemented, this section should contain

  1. the version(s) it was merged to
  2. a link to the git commit(s)
  3. a link to the PHP manual entry for the feature

References

Rejected Features

Keep this updated with features that were discussed on the mail lists.

rfc/deprecate-pear-include-composer.1472844689.txt.gz · Last modified: 2017/09/22 13:28 (external edit)