Re: [RFC][Vote] Policy on third party code
| From: | John Coggeshall | Date: | Mon, 11 Nov 2024 07:14:54 +0000 |
| Subject: | Re: [RFC][Vote] Policy on third party code | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-125939@lists.php.net to get a copy of this message | ||
On Nov 11 2024, at 12:03 am, Larry Garfield <larry@garfieldtech.com> wrote:
>
> First off, the obligatory "it was open for discussion for a month, and now you mention
> this?"
I apologize for that, wasn't intentional. Unfortunately a whole pile of personal matters landed
on my head between ... let's say October and November 6th that kept me from focusing on
internals. As might be expected, the vote refocused my attention.
I think this is worth discussing a bit more below,...
TL;DR; I will at a minimum abstain from voting on this rather than vote "no" as my intent
isn't to derail progress here.
> For using, yes, full frameworks are not allowed for the reasons stated. Components are fine,
> though, and if someone wanted to RFC an exception for Symfony-based bugs.php.net, they can try.
> That's more permissive than the current policy.
> For documentation... it's no change from the current status quo. If your concern is
> "zOMG, why can't we just tell people in the docs to use Symfony?", it's because
> someone else will immediately respond with "zOMG, why can't we just tell people to use
> Laravel instead?", and in a year or so someone will probably say "zOMG why can't we
> just tell people to use Tempest?" And then we'd have to argue if CodeIgnighter is
> something we want to even acknowledge exists. Full frameworks are a very, very active market, and I
> *agree* that we should try to avoid putting our thumb on the scales more than is necessary. Though
> again, there's an RFC process for exceptions.
Tangent, but FWIW I think this is something the PHP Foundation could help take on a bit, by creating
a certification process a given framework can participate in. Any framework could apply, and all
would be measured by the same reasonable standards.. then at least the PHP project could say
"these frameworks have met this certification bar" which would be very helpful to people
evaluating PHP as an option. I would gladly participate in drafting a rubric for community review if
there was interest in that.
> So really, contrary to what you're saying, this RFC improves precisely the situation
> you're talking about in every way. Perhaps not as much as you would like, but it still moves
> the needle closer to it. I really don't have the stomach at the moment for litigating the
> "should we just go ahead and endorse some framework" question (I'm on team-no
> anyway), so I deliberately avoided that question when the main focus is to, as stated, let us
> mention Composer, PHPUnit, and other staples that have nowhere near the healthy competition that
> frameworks have.
As I eluded to above, I am certainly not suggesting we endorse a single framework. I guess at the
end of the day I've got a number of issues with the specifics of the language around how
decisions are made in this doc, but I will concede that at least there is a document here that can
be refined which is indeed a step forward. If you're interested some the concerns I have are
(I'm focused on the maintainer bits below but I think they also largely apply to the marketing
criteria as well):
I don't think the "version 1.0" requirement is a good one, only because I strongly
suspect it wouldn't take me very long to find a very reasonable library that for whatever
reason is 0.8 or something... so now it can't be used, unless there is an RFC?
I don't understand what the point of the "Explicitly approved" list is, if the point
is any and all libraries which meet the acceptance criteria can be used without asking for
permission then they are by default approved, right?
Phrases like the library is a "de facto standard" is a really arbitrary, subjective
criteria, ripe for misinterpretation or conflicting interpretation. As language it makes sense for
the far edge cases and not much else IMO.
I'm not suggesting that these alternatives be adopted right now... but off the top of my head I
would offer these suggestions:
The library should be focused on a specific need and provides clear, specific functionality needed
by the PHP maintainers that would otherwise be unreasonable to implement and maintain themselves.
The library should have an active developer community of at least 2 developers, and the library
should have an currently active development history of at least 1 year.
The library is provided under an Approved License
On the marketing side I think we've got a long way to go, but that can be a discussion for
later.. for now I'll just say that I have a lot of the same issues as the maintainer side
regarding versioning / subjectiveness, etc. In my mind the marketing guidelines are way more
important to the project than the maintainer ones: We can always resolve conflicts regarding this
stuff and maintainers internally, but if we miss opportunities to tell potential users how PHP can
solve their problem effectively we may never see them again.
Anyway, like I said I'll abstain as my intention isn't to derail progress but I think this
needs a lot more work as a set of guidelines. I'd be happy to help out with a second stab that
if there is interest -- probably best off-list for a first draft?
Coogle