Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:127339 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id A68BE1A00BC for ; Tue, 13 May 2025 12:03:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1747137658; bh=+4eUR4nYAs/OkWvsqQhsSSZZrxDW3HjLeLiKzk0G91o=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=ORY64czxmkcI/EkOm4BpESwPpR2VEmd0HqZSx1lDEqcrnL3JBug/Ho1sCpLxkPjn+ BwTlNBR10VM/IdujOCja3lvsW+ThoDJCnLWinqDhcGByGst72BOQGdRdEeDgT1ahEJ 398/eajuaf5ipAg0zwX0sJo8L62+yb2C0veCKEWhw0K7NRsh2X3j06wbos+QY4GPsP 8shBfNVwtyd8ErCDrPWujyuF3SN3XTZ2qX3stjs5nA0IIL0kjMtGNfaFp8G7gMQ43z b5R/qx2qR/VK7h+S4dWeZCHRYgOodOhgeAOnrSHjfJRZo56VRFJgJz+HCDuzhdTfI3 d6ZCW+llADCDA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 2A03D18006A for ; Tue, 13 May 2025 12:00:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: * X-Spam-Status: No, score=1.7 required=5.0 tests=BAYES_50,DMARC_NONE, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from mail-oo1-f46.google.com (mail-oo1-f46.google.com [209.85.161.46]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 13 May 2025 12:00:57 +0000 (UTC) Received: by mail-oo1-f46.google.com with SMTP id 006d021491bc7-606330df903so1453046eaf.0 for ; Tue, 13 May 2025 05:03:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747137788; x=1747742588; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=EBlVgpEn/mgdFFJCbRJ9NGsb0C9LC73a1WYB83jkgGM=; b=QSv6y/1wdUrMYJ3HQu5tqhqRKkXUbl3J5qOrK75kktGORK5XGQAWxgUFkWxX2qF9sg 4avXY3U4CByWxEatmjpX+N//DDs6pqc0PdUFAACF6fFJI4SyB7REbBrWCofB+k8Q1Y3o mJqqzClgcD1RV3Bapl/F7bGmpSLxhtnQIcL7ATe8izMfPrw/2IAq6fQrF7S9+D+wxTAg 2f4cCzvSYmo2Jds4ZIMLFCcZB2KZJCJgrvsc/Shx974jDwX1KMQUrpDJRpxPPWvzEqFi jBOHiDslQ0CIulwVEEiP8K2+ctEcOrGKtRy3U691hp3VXCvPkoAMmR6Bb0aSfcpeaRc5 oiNA== X-Gm-Message-State: AOJu0Yw6DVQ5If8Im5Tn7dH5NESC5+31xLhYgKgxnAULQBt01TgI0SKt 5kt69eM4tUvBpbDVA9AHTIaBJH2Nx3KE/qGqrAasXuajvzmqjYswdQC5P2MmL8jSQBjeQSBh8KV tuQoJ03WCoyA2jGVXwVQFDTwGV/4uhe/M X-Gm-Gg: ASbGncuv4o+dnJ4wa+mQag0ARg+IniUajgA0LJIj4WwvlyfPhDJSsr5BF6xPwVk3tdQ aC8A8iS1VJRx4G7i7KSRNHF82LmQi4r7Ow04RndnByt8DfIpFnAYpif3KgyRAOLJ8kFTKe/4Ada IIgLKLvY1g3O21N7n6xI3f+pvhuEsdTEJY X-Google-Smtp-Source: AGHT+IF9ksWD+0/krc4xjbpm4FwxDwn44C20hjokGI76zylStG+YcxZ30u4j4A5lpq+eweRSCq/J1nFiBJ8oN2G2ndQ= X-Received: by 2002:a05:6820:818d:b0:607:6268:c0a5 with SMTP id 006d021491bc7-6083fdbf76cmr9748402eaf.0.1747137788520; Tue, 13 May 2025 05:03:08 -0700 (PDT) Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 References: <08df054856f9076039b5835c0625ee6f@bastelstu.be> <0c55c9b700ddac8810974ca62522c3fd@bastelstu.be> In-Reply-To: <0c55c9b700ddac8810974ca62522c3fd@bastelstu.be> Date: Tue, 13 May 2025 14:02:56 +0200 X-Gm-Features: AX0GCFsqFHVavokhFSv0q8YGLkQG6oQPLc35DfyIP2ycn-lJBs-7Fc4KMDdp0wk Message-ID: Subject: Re: [PHP-DEV] [RFC][Discussion] Policy release process update To: =?UTF-8?Q?Tim_D=C3=BCsterhus?= Cc: PHP internals list Content-Type: multipart/alternative; boundary="000000000000422db806350337eb" From: bukka@php.net (Jakub Zelenka) --000000000000422db806350337eb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Tue, May 13, 2025 at 12:56=E2=80=AFPM Tim D=C3=BCsterhus wrote: > Hi > > Am 2025-05-13 12:13, schrieb Jakub Zelenka: > >> From my experience in maintaining an old PHP application and > >> upgrading > >> it to support the latest and greatest PHP every year, I think the > >> following points would be a good starting point to discuss: > >> > >> - For backwards compatibility breaks introduced in minor versions > >> there > >> MUST be a simple (for some appropriate definition of simple) way to > >> adjust the code to be compatible with both the current PHP version and > >> the upcoming version. Ideally the change would be compatible with a > >> wider range of past PHP versions (past 3 or so?). It must be a change > >> that is simple to perform even with basic tooling (i.e. not requiring > >> an > >> IDE or static analyzers). > >> > > > > If I understand it correctly, this sounds really more like completely > > new > > rule that we don't currently have so I would rather not add it. We > > don't > > have this relation differences between X.Y and X.(Y+2) to do some extra > > breaks so it's more for a separate RFC. I'm also not a big fan of such > > change to be honest. > > We don't currently have any rules at all, except for =E2=80=9Cwhen the RF= C > approves the break, then it's okay=E2=80=9D. I was trying to find some gu= ideline > for BC breaks that might be okay in a minor (when approved) and BC > breaks that are never okay in a minor. > What I meant is that this would be quite significant change as it could lead to some sort of bigger breaks when people could think that introducing break after few years is ok. That's how I understood it but thinking about it, it would be probably fine if it was an additional restriction (meaning we would still keep "Syntax backward compatibility SHOULD be preserved"). It would need some good formulation though. So if you can come up with something that is clear, I would be happy to add it. > The application in question is in a very similar position that PHP > itself is, it has a large public API that "third party" developers rely > on and a long development history. BC breaks sometimes are not avoidable > when you try to move forward. Basically the rule of thumb for a breaking > change in a minor version was that "most third party add-on should be > adaptable with minimal changes, while remaining compatible with both > minor versions after making these minimal changes". > I understand what you mean. The only challenge is to find a good wording to the policy. :) Kind regards Jakub --000000000000422db806350337eb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

On Tue, May 13, 2025 at 12:5= 6=E2=80=AFPM Tim D=C3=BCsterhus <tim= @bastelstu.be> wrote:
Hi

Am 2025-05-13 12:13, schrieb Jakub Zelenka:
>>=C2=A0 From my experience in maintaining an old PHP application and=
>> upgrading
>> it to support the latest and greatest PHP every year, I think the<= br> >> following points would be a good starting point to discuss:
>>
>> - For backwards compatibility breaks introduced in minor versions =
>> there
>> MUST be a simple (for some appropriate definition of simple) way t= o
>> adjust the code to be compatible with both the current PHP version= and
>> the upcoming version. Ideally the change would be compatible with = a
>> wider range of past PHP versions (past 3 or so?). It must be a cha= nge
>> that is simple to perform even with basic tooling (i.e. not requir= ing
>> an
>> IDE or static analyzers).
>>
>
> If I understand it correctly, this sounds really more like completely =
> new
> rule that we don't currently have so I would rather not add it. We=
> don't
> have this relation differences between X.Y and X.(Y+2) to do some extr= a
> breaks so it's more for a separate RFC. I'm also not a big fan= of such
> change to be honest.

We don't currently have any rules at all, except for =E2=80=9Cwhen the = RFC
approves the break, then it's okay=E2=80=9D. I was trying to find some = guideline
for BC breaks that might be okay in a minor (when approved) and BC
breaks that are never okay in a minor.

= What I meant is that this would be quite significant change as it could lea= d to some sort of bigger breaks when people could think that introducing br= eak after few years is ok. That's how I understood it but thinking abou= t it, it would be probably fine if it was an additional restriction (meanin= g we would still keep "Syntax backward compatibility SHOULD be preserv= ed"). It would need some good formulation though. So if you can come u= p with something that is clear,=C2=A0 I would be happy to add it.
=C2=A0
The application in question is in a very similar position that PHP
itself is, it has a large public API that "third party" developer= s rely
on and a long development history. BC breaks sometimes are not avoidable when you try to move forward. Basically the rule of thumb for a breaking change in a minor version was that "most third party add-on should be =
adaptable with minimal changes, while remaining compatible with both
minor versions after making these minimal changes".

I understand what you mean. The only challenge is to find= a good wording to the policy. :)

Kind regards

Jakub
=C2=A0
=C2=A0
--000000000000422db806350337eb--