rfc:third-party-code
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
rfc:third-party-code [2024/09/28 05:23] – created 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 ===== | ||
- | ==== PHP tooling ==== | ||
- | PHP tooling (the PHP.net website, first-party marketing material, the documentation generator project PhD, etc.) MAY make use of existing third party libraries and tools (collectively " | + | The specific policy to adopt is documented precisely in this Pull Request: https:// |
- | Inclusion criteria: | + | In the interest of avoiding confusion by having multiple versions of it, this RFC will not repeat what is listed there. |
- | - 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.) | + | ===== Discussion ===== |
- | - 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 MIT, BSD, LGPL, or GPL license. | + | |
+ | This section is non-normative. | ||
- | Exclusion | + | * Composer - It's 2024. Composer is the sole project in its market, and is used by the overwhelming majority of the PHP ecosystem. |
+ | * Symfony/ | ||
+ | * Ramsey/uuid - This has long been a staple of UUID handling in PHP. It would be fine for tooling to use. More recently, Symfony/ | ||
+ | * Symfony, Laravel, Slim, Yii, | ||
+ | * Serializers - This is another market with many viable players of various sizes, so we should not " | ||
+ | * PHPStan, Psalm - These are, to my knowledge, the only serious players in the static analysis space that meet the above criteria. It's entirely reasonable, and encouraged, for tooling to make use of them. We can also document both under the heading of " | ||
- | - The library is a " | + | ===== Open Questions |
- | - The library is available under an AGPL license. | + | |
- | - The library is not available under an Open Source 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 hosted on the PHP.net website, first-party marketing material, and other public facing text (collectively " | + | |
- | + | ||
- | 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 numerous types of projects, and a reasonable estimate would make it relevant to at least 40% of 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 is available under an Free Software license (as defined by the Free Software Foundation). | + | |
- | - 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 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 not available under an Open Source 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. | + | |
- | + | ||
- | ==== Conflict resolution ==== | + | |
- | + | ||
- | Should there be a reasonable dispute as to whether a given library satisfies the criteria above, an RFC may be posted to explicitly approve the library for either use or reference. | + | |
- | + | ||
- | ==== 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 | + | |
- | + | ||
- | + | ||
- | ===== Discussion | + | |
- | + | ||
- | This section is non-normative. | + | |
- | | + | - It likely |
- | * Symfony/ | + | |
- | * Ramsey/uuid - This has long been a staple of UUID handling in PHP. It would be fine for tooling to use. More recently, Symfony/ | + | |
- | * Symfony, Laravel, Slim, Yii, etc. - While Laravel and Symfony | + | |
- | * WordPress, Drupal, TYPO3, Concrete5, etc. - As with frameworks, this market is far too dynamic for us to document without tipping the scales. | + | |
- | * Serializers - This is another market with many viable players of various sizes, so we should not " | + | |
- | * PHPStan, Psalm - These are, to my knowledge, the only serious players in the static analysis space that meet the above criteria. | + | |
===== Proposed Voting Choices ===== | ===== Proposed Voting Choices ===== | ||
Line 91: | 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.1727501000.txt.gz · Last modified: 2024/09/28 05:23 by crell