Table of Contents

PHP RFC: Clear Process

Foreword

This RFC seeks to clarify the process of introduction, modification, deprecation, and removal of code from PHP. It is the case that we can codify a simple set of rules based on our release process and existing accepted norms that make it easier for contributors to structure their RFC, discussions, and the resulting vote. In addition, it should reduce the number of breaks in patch versions of PHP.

Introduction of Code

The introduction of new code that retains ABI compatibility may occur in minor versions. Should the new code fail to maintain ABI compatibility, it may only be introduced in a major version.

Modification of Code

The modification of existing code that results in no backward compatibility break, and retains ABI compatibility may occur in a patch version: This covers the vast majority of bug fixes, for which we require no RFC.

The modification of existing code that results in a backward or ABI compatibility break must not occur in a patch version: For this minority of bug fixes and minor enhancements, we require an RFC.

Deprecation of Code

The deprecation of existing code must occur in minor versions. Deprecated code shall be assumed to be targeted for removal in the following major version.

Should the focus of an RFC be on deprecation, and should that RFC be accepted, no follow up removal RFC shall be necessary.

Removal of Code

Removal must only occur in major versions, no code shall be removed before being deprecated.

Should the focus of an RFC be on removal, and should that RFC be accepted, deprecation shall be carried out as described above.

Voting

Should this RFC be accepted, a new section in the voting RFC shall be created containing the information agreed upon here.

External References

http://externals.io/somewhere