Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:120231 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 12593 invoked from network); 11 May 2023 09:36:46 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 11 May 2023 09:36:46 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id B9521180382 for ; Thu, 11 May 2023 02:36:44 -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.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS24940 176.9.0.0/16 X-Spam-Virus: No X-Envelope-From: Received: from chrono.xqk7.com (chrono.xqk7.com [176.9.45.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 11 May 2023 02:36:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bastelstu.be; s=mail20171119; t=1683797802; bh=H8dsWD31omNsXBPQge1RJr2QcjJypWHJyMvlOQWbseA=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type:from:to:cc:subject:message-id; b=N7+1lrQGC2Ppx7hBzZYp304ktBBrv2G/5f1ZfBTYjbU045RXbyCjUV2zKNjhRQ0Gj pE7rKfNLfpQDjp+8mWCD5c6HZ9Rqh+e8CjUKcm/94PWfARXbjBFpIPcDGXADN3zMwK 3M0OO14WJEriEErvwn1+y4M+oa5xKNRYrqsNflFYfsq+WKDWlbRkHFkBrrHoxQfF5i WXxaXzQ/VqJ4DvpPrfapumjDCw6biq7LQ/Z5N2E+ktkkopxyZpz2pLidCJtUvFp3yn KJ0ZzyuVH+sfnLrKDZGJDVF6uEjw+tfLT1ud09K8PwHPseU/gtFoDKDncsuVZ3xv5N APFC1aFamhSLQ== Message-ID: <9ab0173f-a6f2-66f6-3ab3-d5f0c44feb05@bastelstu.be> Date: Thu, 11 May 2023 11:36:37 +0200 MIME-Version: 1.0 To: =?UTF-8?B?TcOhdMOpIEtvY3Npcw==?= , Larry Garfield Cc: php internals References: Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [PHP-DEV] [RFC] [Discussion] Deprecate functions with overloaded signatures From: tim@bastelstu.be (=?UTF-8?Q?Tim_D=c3=bcsterhus?=) Hi On 5/11/23 00:10, Máté Kocsis wrote: > If not, then we could just move really slowly on deprecating them. We >> could deprecate them at some point in the 9.x release cycle and remove >> them in 10.0. > > > Although I would love to get rid of as many overloaded signatures as > possible due to the above mentioned fact, > I admit that there might be some signatures which other internals would > prefer to phase out slower than me. So > thanks for the idea! Now, the individual votes in the RFC contain 2 options > for removing a signature: a shorter path (deprecation > in PHP 8.4, removal in PHP 9.0) and a longer one (deprecation in PHP 9.0 > and removal in PHP 10.0). > I believe this vote format ("three options") is not really compatible with the voting rules (https://wiki.php.net/rfc/voting). For example it's not entirely clear what would happen here: 5 votes to deprecate in 8.3 / remove 9.0 4 votes to deprecate in 9.0 / remove 10.0 4 votes to not deprecate. Neither option has a 2/3 majority over any other option. The two deprecation options together have a 2/3 majority over not deprecating, which might indicate that a deprecation should happen. But in which version? This would likely require ranked choice voting which feels complex for something that should be a simple vote. I've had a similar issue with my "Improve unserialize() error handling RFC" (https://externals.io/message/118566) and opted to make an executive decision as the RFC author and not offer one of the possible version targets to avoid that problem entirely. ---------------------- Repeating my previous question: > Does it necessarily follow that a function that is deprecated in major X > must be removed in major X+1? Otherwise deprecating with 8.3 and > removing in 10 would be an option that could be evaluated when it's time > for 9 and the migration did not yet "sufficiently" happen in userland code. Would it be an option to just deprecate everything in PHP 8.3 and defer the vote for the removal target version to a later date? This would give users the deprecation notice as early as possible and also gives them appropriate time to migrate if migration for a specific set of functions is (much) slower than others. It doesn't really feel right to decide on a deprecation for 9.0 / removal for 10.0 at the current time, but deprecation in 8.3 + removal when it's ready seems to be okay. Best regards Tim Düsterhus