Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:120320 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 34314 invoked from network); 16 May 2023 21:41:57 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 16 May 2023 21:41:57 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id D524C180209 for ; Tue, 16 May 2023 14:41:55 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS19151 66.111.4.0/24 X-Spam-Virus: No X-Envelope-From: Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 16 May 2023 14:41:54 -0700 (PDT) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 608685C00DD for ; Tue, 16 May 2023 17:41:53 -0400 (EDT) Received: from imap50 ([10.202.2.100]) by compute4.internal (MEProxy); Tue, 16 May 2023 17:41:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= garfieldtech.com; h=cc:content-type:content-type:date:date:from :from:in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; t=1684273313; x= 1684359713; bh=Je6Q5Ful09GNBoWVw10P+p9mIlDEFbwFZlosiGJpHlU=; b=C IUGKEqwBDBmlC8KXV7ku/fKEwmpztYJzzlZC5FHvYiijPvrLf4RjEMXLL/K9PoUK xlmGmyuGn7SiqG82+wcQYlS5VjQR/hS87mnxVuwQlZUmzTQMDIl8kYTSnAoLxEsP kAyN14dOH9NeCqHyYLwGZjogtKRcrGdGlH4WEx1z3+yFLN/zXwulcWMZ5Wyxe8qV EvJxnW2BZliIA0YmW5ZkGT4g4OUr2BCbiJASHBb923u5q7eCZUWvubsmR619kkYA EE8GQJptV8OEv1iOXj45xDYD1XWcQ8RIu8CuVcYWCaBdTGD90NpmGLIDZ5lI8d5a owE3/xovVuN8pQshNVHsA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1684273313; x=1684359713; bh=Je6Q5Ful09GNB oWVw10P+p9mIlDEFbwFZlosiGJpHlU=; b=rCSX1hbqA6LyZNnJ02NUIBZSA2g2h LvEhSsB6xocX4Pq1LzLmbEUOTjae9LG8Fv6veCSJM1wwcav2/xO4zi0YX1QlkCKz lwtdgPuhB3M5sMy/rK6t6BlT24dPWoSOXDcXkvjckltnPzIbRkDR75M5k53npCYd FYczkOr+kS1nP63Qo0ODIVzT0+WydszM2k8kWGIAsFl5BPXN+p6+e2MpYXHdFakX UT3VEYPpUfFXV+dJjtDh2aNCsmJ9J34aZ0X2VY/7snwGG7AHx2IxvqD8RLTcYJrn hx5PnbL7xITr68WpriYcRw+ifEblNBfO8BYPR5AYl3Lf/Kp3uWgillxDw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfeehledgudeigecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefofgggkfgjfhffhffvufgtsehttdertderredtnecuhfhrohhmpedfnfgr rhhrhicuifgrrhhfihgvlhgufdcuoehlrghrrhihsehgrghrfhhivghlughtvggthhdrtg homheqnecuggftrfgrthhtvghrnhepgeelgfekudeivddvteffueejffdthfejieevhefg ffekudevkedtvdelvddvffefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe hmrghilhhfrhhomheplhgrrhhrhiesghgrrhhfihgvlhguthgvtghhrdgtohhm X-ME-Proxy: Feedback-ID: i8414410d:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 0B1011700089; Tue, 16 May 2023 17:41:52 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-431-g1d6a3ebb56-fm-20230511.001-g1d6a3ebb Mime-Version: 1.0 Message-ID: <5434c20e-ff64-4665-9a85-b497c15efd43@app.fastmail.com> In-Reply-To: <2B7287AB-7619-4066-B136-386FAD76E3E0@php.net> References: <9ab0173f-a6f2-66f6-3ab3-d5f0c44feb05@bastelstu.be> <9F928894-199E-4C46-A590-136BDDE035F7@gmail.com> <68c1b984-1bcd-4dfd-8499-65fe392d7783@app.fastmail.com> <731143A6-D1A2-47E1-B878-8F4C5906139C@gmail.com> <2B7287AB-7619-4066-B136-386FAD76E3E0@php.net> Date: Tue, 16 May 2023 21:41:32 +0000 To: "php internals" Content-Type: text/plain Subject: Re: [PHP-DEV] [RFC] [Discussion] Deprecate functions with overloaded signatures From: larry@garfieldtech.com ("Larry Garfield") On Tue, May 16, 2023, at 2:26 PM, Derick Rethans wrote: > On 15 May 2023 13:38:56 GMT-05:00, Larry Garfield > wrote: >>On Mon, May 15, 2023, at 6:36 PM, Rowan Tommins wrote: >>> On 15 May 2023 09:54:41 BST, "G. P. B." wrote: >>> >>>>Why are we assuming that PHP 9.0 is going to come after PHP 8.4? >>> >>> Historically, PHP has had a major release roughly every five years. The >>> main exception is PHP 6, which was never released - but whose major >>> features became PHP 5.3, five years after 5.0, and six before 7.0 >>> >>> I think planning a rough timeline is more useful to users and >>> contributors than waiting until there's some exciting headline feature. >>> Otherwise, it becomes tempting to sneak in breaking changes in 8.x >>> because "we don't know how soon 9.0 is", or to have a rush of changes >>> because "we've only just decided 9.0 is soon". >>> >>> It also helps avoid putting a release number on an experimental feature >>> that might never arrive, as with Unicode strings in 6.0; or that might >>> turn out to be less important to most users than other changes, like >>> the JIT in 8.0. >> >>I agree entirely. Setting reasonable expectations for users to plan around, such as a known 5-years-per-major cycle, helps end users far more than "whelp, we did something big, version number time!" >> >>Tangent: If I were to put together an RFC that set out such a 5 year cycle expectation with reasonable guidelines around when things could be deprecated, would anyone actually support it? >> >>--Larry Garfield >> > > I would. With some remarks. > > I think that having a 5 year cycle for major releases is beneficial. > > First to users as they know when all the deprecations are being rolled > up into behavioural changes and (potential) breakage. > > But also to us, as maintainers, as it could signal *when* it makes > sense to work on deprecations, behaviour changes, and code refactoring > (that's more likely to break APIs and extensions). > > IMO it would make sense to tweak what sort of user land deprecations > can be done in the .3 and .4 releases (probably being more strict) > compared to the .1-.2 releases. We'd want to enlarge thr time frame for > significant changes more ahead of time compared to more minor ones. > > But I do think we ought to be weary of making these rules, in when to > allow to deprecate what, too strict. A rough set of guidelines makes > IMO more sense. > > cheers > Derick What would be a reasonable heuristic for "gotta do in .1 or .2 to give people time" deprecations vs "this is minor enough that it's OK to do in .3 or .4" deprecations? "Amount of code impacted" is not great, as that's extremely hard to determine (as we've seen). But I'm not sure of a better metric. --Larry Garfield