On Wed, Aug 24, 2022 at 4:45 AM Alexandru Pătrănescu <dreal...@gmail.com> wrote: > Maybe this should be clarified as the term "small self contained feature" > is not clear. > I mean, a lot of the new features are self contained, depending on how you > view it, and some of them are also small. > Like array_is_list could have gone into PHP 8.0.2 or 8.0.3 release and not > wait for PHP 8.1.0 release? > (Vote ended on 2021-01-20 and was merged on 2021-01-21) > > Just want to make it clear for me how the rules are understanded by > internal devs so I know better. > If it's not an agreement, how can we clarify them better? >
The rules* are pretty clear. Feature freeze means feature freeze. If there's a feature you want in, big or small, you get it approved by the RFC process prior to the feature freeze date for the branch you want it on. Period. * Any good rule is more of a guideline. Specific features or changes to features CAN be considered on a case-by-case basis after the FF date. However, the bar is set high for these exceptions. As an example, in the 8.0 release process, attributes went through a number of syntax changes well into the beta and RC phases. This was NOT ideal, and it was kind of a mess, but it met RM criteria for consideration because it was an already approved and merged new feature, and the consequence of not considering changes to the syntax would mean that we might need to live with a hastily chosen one forever. Essentially, the pressure to consider it came from the potential negative impact. By comparison, the consequence of waiting for the next branch on something like array_is_list() is just a little extra time. That may be disappointing for those wanting the feature, but that disappointment will pass once the next branch is released, and we'll forget the delay ever happened and move on. To generalize: Completely new features are unlikely to gain a feature freeze exception, because they've waited 25 years, so they can wait 26. Tweaks to already approved, but unreleased new features are likely to gain an exception because the impact to the future is already there, we want that impact to be positive. BC breaking fixes for existing functionality (see recent ksort() thread) are probably 50/50 depending on the fix, but as you'll see in that thread, we reverted the "fix" on the 8.0 branch already (fix never saw a release). -Sara