Re: Re: [RFC][Discussion] Policy release process update

From: Date: Tue, 14 Oct 2025 13:35:10 +0000
Subject: Re: Re: [RFC][Discussion] Policy release process update
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-128837@lists.php.net to get a copy of this message
On Mon, Oct 13, 2025, at 5:28 PM, Gina P. Banyard wrote:
> On Monday, 13 October 2025 at 19:42, Larry Garfield 
> <larry@garfieldtech.com> wrote:
>> 
>> My only pushback is not specific to this PR, but more that this PR would be a good time to
>> address this existing gap:
>> 
>> Under Major Version releases
>> 
>> > - Significant userland API backward compatibility breaks SHOULD be preceded
>> 
>> by the deprecation phase in the previous major version.
>> 
>> Right now, that deprecation phase could be as little as 15 months, or as long as 5-6 years
>> (and counting). And when deprecating something, we have no idea how long it's going to be
>> deprecated before it's removed. That's decided well after the fact, whenever it's
>> decided (by whatever means) that PHP.next will be a major this time.
>> 
>> This is hostile for users, who do not know, and cannot know, how long they have to address
>> deprecations. Things deprecated in 8.5 (of which there were many) could be removed as soon as
>> November of 2026. Things deprecated in 8.1, however, have been deprecated for ~4-5 years now, and
>> also could be removed in November of 2026.
>> 
>> I would very much like us to put more structure around deprecations, when they happen, and
>> the release cycle to support that. Fixing the number of years between Majors would be ideal, as then
>> everyone can plan better around deprecations. (Eg, we can say "no deprecations in the last
>> minor of a series", to ensure all deprecations have at least a 2 year window to address.) As
>> is, it's still largely guesswork for everyone.
>> 
>> --Larry Garfield
>
> I vehemently disagree with this proposed policy.
>
> Either we move to a system where deprecations are removed in constant 
> intervals, e.g. every 3 years like Python does regardless of what the 
> version number is,
> Or we continue our "semver-ish" policy where we only remove 
> deprecations in major versions.
> Users are *not* forced to upgrade to a new major version when it is 
> released, and restricting when php-src can introduce deprecations is 
> not something that is practically doable.
> A bunch of deprecations were already pushed back from 8.0 to 8.1 
> because we were told deprecations in a brand new major release just 
> adds extra friction, and now you are floating the idea of no 
> deprecations in the last minor?
> Deprecations are basically never planned, because most, if not all, of 
> them are proposed after someone encounters an oddity in the language.
> Contributing to php-src is not easy, and we already have lost 
> contributors by telling them that they should have proposed X 2-3 years 
> ago because "now" is inconvenient.
>
> Any policy that aims to restrict when php-src can or cannot do 
> something will get an automatic NO from me.
>
> Best regards,
>
> Gina P. Banyard

There were like 3 or 4 proposals in my spitballing above.  I am not wedded to any in particular: My
point is that right now, the handling of deprecations and their scheduling is user-hostile.  We
should fix that.  That may involve some inconveniences for Internals, but... everything is a
tradeoff.  If it's a small inconvenience in return for a much more predictable and reliable
release cycle for users, then frankly that's a win.

The details I am flexible on and happy to discuss options.

--Larry Garfield


Thread (19 messages)

« previous php.internals (#128837) next »