rfc:third-party-code
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
rfc:third-party-code [2024/10/02 18:21] – Tweak wording crell | rfc:third-party-code [2024/11/23 19:23] (current) – Close the vote crell | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== PHP RFC: Policy on 3rd party code ====== | ====== PHP RFC: Policy on 3rd party code ====== | ||
* Version: 0.9 | * Version: 0.9 | ||
- | * Date: 2013-02-24 (use today' | + | * Date: 2024-10-02 |
* Author: Larry Garfield (larry@garfieldtech.com) | * Author: Larry Garfield (larry@garfieldtech.com) | ||
- | * Status: | + | * Status: |
* First Published at: http:// | * First Published at: http:// | ||
Line 15: | Line 15: | ||
===== Proposal ===== | ===== Proposal ===== | ||
- | ==== Definitions ==== | ||
+ | The specific policy to adopt is documented precisely in this Pull Request: https:// | ||
- | **PHP tooling** refers to the code behind the PHP.net website, the documentation generator project PhD, the PHP wiki, and other similar systems. | + | In the interest |
- | + | ||
- | **Documentation** refers to objective information about PHP, the PHP language, the PHP standard library, and PHP ecosystem hosted on PHP.net. | + | |
- | + | ||
- | **Marketing material** refers to content on PHP.net or similar sites intended to promote or evangelize PHP the language or ecosystem. | + | |
- | + | ||
- | **Libraries** refers to existing third party code packages or tools, either C extensions or PHP code, maintained by someone other than the PHP Internals team. It may also refer to non-profit PHP ecosystem organizations, | + | |
- | + | ||
- | **Approved license** refers to a license [approved by the Free Software Foundation](https:// | + | |
- | + | ||
- | ==== PHP tooling ==== | + | |
- | + | ||
- | PHP tooling MAY make use third party libraries, provided that the library meets all of the " | + | |
- | + | ||
- | Inclusion criteria: | + | |
- | + | ||
- | - The library must have a stable >= 1.0 release, and have had one for at least a year. (This is to ensure it has longevity.) | + | |
- | - The library provides targeted, necessary functionality. | + | |
- | - The library is a recognized de facto standard, or one of a small number of de facto standards, in its problem space. | + | |
- | - The library is available under an Approved License. | + | |
- | + | ||
- | Exclusion criteria: | + | |
- | + | ||
- | - The library is a " | + | |
- | - The library is not available under an Approved License. | + | |
- | - The library has shown no meaningful activity for one year prior to its first inclusion. | + | |
- | + | ||
- | PHP tooling maintainers MAY use their judgement to determine if a library meets the above criteria, but SHOULD be conservative in their interpretation of whether or not a library satisfies the necessary criteria. | + | |
- | + | ||
- | ==== PHP documentation ==== | + | |
- | + | ||
- | Documentation MAY reference and link to third party libraries, provided that the library meets all of the " | + | |
- | + | ||
- | Inclusion criteria: | + | |
- | + | ||
- | - The library must have a stable >= 1.0 release, and have had one for at least a year. | + | |
- | - The library provides a use that is commonly needed | + | |
- | - The library is a recognized de facto standard, or one of a small number of de facto standards, in its problem space. | + | |
- | - The library is available under an Approved License. | + | |
- | - The language used to describe the library does not imply that the PHP Project | + | |
- | + | ||
- | Exclusion criteria: | + | |
- | + | ||
- | - The library is one of many (more than ~4) viable options in its problem space, even if it is the most common of those many options. | + | |
- | - The library is a " | + | |
- | - The library is not available under an Approved License. | + | |
- | - The library has shown no meaningful activity for one year prior to its first mention. | + | |
- | - The library is not of broad interest to the PHP ecosystem. | + | |
- | + | ||
- | PHP documentation maintainers MAY use their judgement to determine if a library meets the above criteria, but SHOULD be conservative in their interpretation of whether or not a library satisfies the necessary criteria. | + | |
- | + | ||
- | ==== Marketing material ==== | + | |
- | + | ||
- | Marketing material MAY reference and link to third party libraries, provided that the library meets all of the " | + | |
- | + | ||
- | Inclusion criteria: | + | |
- | + | ||
- | - The library must have a stable >= 1.0 release, and have had one for at least a year. | + | |
- | - The library provides a use that is commonly needed by many types of projects, making it of **significant interest** to the PHP ecosystem. | + | |
- | - The library is a recognized de facto standard, or one of a small number of de facto standards, in its problem space. | + | |
- | - The library MAY be a full application or framework, provided its mention clearly does not specifically endorse the library. | + | |
- | - The library is available under an Approved License. | + | |
- | - The language used to describe the library does not imply that the PHP Project is involved in or specifically recommends the library over some other. | + | |
- | + | ||
- | Exclusion criteria: | + | |
- | + | ||
- | - The library is not available under an Approved License. | + | |
- | - The library has shown no meaningful activity for one year prior to its first mention. | + | |
- | - The library is not of broad interest to the PHP ecosystem. | + | |
- | + | ||
- | PHP marketing material maintainers MAY use their judgement to determine if a library meets the above criteria, but SHOULD be conservative in their interpretation of whether or not a library satisfies the necessary criteria. | + | |
- | + | ||
- | ==== Conflict resolution ==== | + | |
- | + | ||
- | Should | + | |
- | + | ||
- | ==== Initially approved libraries ==== | + | |
- | + | ||
- | The following packages are explicitly approved for use by this RFC, as they meet all of the criteria above. | + | |
- | + | ||
- | * Composer | + | |
- | * PHPUnit | + | |
- | * Xdebug | + | |
- | * PHPStan | + | |
- | * Psalm | + | |
- | * Any library or PSR published by the PHP-FIG | + | |
- | + | ||
- | Additionally, | + | |
===== Discussion ===== | ===== Discussion ===== | ||
Line 122: | Line 34: | ||
- It likely would not come up, but are we OK with using AGPL code in PHP tooling? | - It likely would not come up, but are we OK with using AGPL code in PHP tooling? | ||
- | - | ||
===== Proposed Voting Choices ===== | ===== Proposed Voting Choices ===== | ||
Line 128: | Line 39: | ||
Simple 2/3 majority vote. | Simple 2/3 majority vote. | ||
+ | <doodle title=" | ||
+ | * Yes | ||
+ | * No | ||
+ | </ | ||
===== References ===== | ===== References ===== | ||
- | Links to external references, discussions or RFCs | + | * [[https:// |
===== Rejected Features ===== | ===== Rejected Features ===== | ||
rfc/third-party-code.1727893279.txt.gz · Last modified: 2024/10/02 18:21 by crell