Re: [RFC] Policy on 3rd party code
| From: | Stephen Reay | Date: | Sun, 06 Oct 2024 04:27:35 +0000 |
| Subject: | Re: [RFC] Policy on 3rd party code | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-125754@lists.php.net to get a copy of this message | ||
Sent from my iPhone
> On 6 Oct 2024, at 09:38, Larry Garfield <larry@garfieldtech.com> wrote:
>
> On Sat, Oct 5, 2024, at 12:30 PM, Stephen Reay wrote:
>>>> On 3 Oct 2024, at 01:48, Larry Garfield <larry@garfieldtech.com> wrote:
>>>
>>> Since Jim's RFC proposal was criticized for being too vague, I hereby offer a
>>> somewhat more prescriptive policy proposal on using 3rd party code. (With JIm's blessing.)
>>> It's still more heuristics than rules, but I think that's the right approach generally.
>>> It also includes a voting mechanism to resolve edge cases when they come up.
>>>
>>> I'm sure we'll bikeshed it to death, but please keep an open mind about the
>>> concept in the first place. PHP is more than just php-src, and that's a good thing. We need
>>> to catch up with that reality, while at the same time maintaining a reasonable neutrality about
>>> projects Internals doesn't manage directly.
>>>
>>> https://wiki.php.net/rfc/third-party-code
>>>
>>> *Puts on trusty flame-retardant suit*
>>>
>>> --
>>> Larry Garfield
>>> larry@garfieldtech.com
>>>
>>
>> Hi Larry,
>>
>> Can you expand a bit more on this item from the exclusion list?
>>
>>> The library is a “full” application or framework.
>> To me that would mean anything that can be executed itself (be it a web
>> app, a command like tool or daemon, etc.
>>
>> But then you specifically say Composer and PHPUnit and Psalm and
>> PHPstan are explicitly allowed... aren't all of them "full"
>> applications, because they can be executed in and of themselves.
>>
>> So, can you perhaps define what you mean by "full application" a little
>> more clearly?
>>
>> Cheers
>>
>> Stephen
>
> A number of people are concerned that if we use any of the "Big Names", it would be
> interpreted as an endorsement of that project. Eg, if we rebuilt the main website using Laravel,
> the Symfony folks would feel slighted. If we used Symfony, the Laravel folks would get rather
> cross. If we used Yii, the Slim folks would get upset. If we used Drupal, we'd get constant
> "well why not Wordpress?" questions. Etc.
>
> While I feel that concern is sometimes over-blown, I do believe it is valid. Notably, the
> "big name communities" tend to also be complete, integrated solutions, and those also tend
> to be where there's more active competition. Eg, there's only one meaningful Yaml
> implementation the market, and two UUID libraries worth mentioning. But there's literally
> dozens of "frameworks" or "CMSes" to get mad at us.
>
> So banning "full" frameworks is my attempt at steering clear of the appearance of
> that kind of favoritism. Showing favoritism for Composer or Xdebug is, well, there's no
> competition to complain. PHPUnit is technically not the only testing framework on the market, but
> it has north of 90% share (and is used internally by some of the few others). But showing
> favoritism between Drupal, Wordpress, TYPO3, Concrete5, and Joomla gets a lot dicier.
>
> A full framework also makes maintenance potentially more challenging, as we it's a much
> larger external moving target than a UUID library that we could easily fork in a worst case
> scenario.
>
> So... I don't really have a solid, clear definition of what constitutes a "full
> framework", because in the market, there isn't one. I'm sure someone could make a
> compelling argument that Slim isn't a full framework, for instance, although I don't think
> I'd agree with it.
>
> It is inherently squishy, which is why these are intended as heuristics, not strict rules, and
> when it's unclear we can bring it to a vote via RFC, case by case.
>
> I'm open to better ways to define what "full" means here if anyone has
> suggestions.
>
> --Larry Garfield
>
Hi Larry,
Right I understand the motivation, it's just the phrasing that I think needs to be clarified.
From what you've said (which is kind of what I imagined you probably meant) I think it just
needs to be clarified that the "full application" exclusion is about *web* applications,
and doesn't applying to command line tooling/utilities.
Cheers
Stephen