Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:97068 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 80076 invoked from network); 19 Nov 2016 18:34:27 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 19 Nov 2016 18:34:27 -0000 Authentication-Results: pb1.pair.com header.from=rowan.collins@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=rowan.collins@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.45 as permitted sender) X-PHP-List-Original-Sender: rowan.collins@gmail.com X-Host-Fingerprint: 74.125.82.45 mail-wm0-f45.google.com Received: from [74.125.82.45] ([74.125.82.45:37963] helo=mail-wm0-f45.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 79/F0-10048-23B90385 for ; Sat, 19 Nov 2016 13:34:26 -0500 Received: by mail-wm0-f45.google.com with SMTP id f82so84013423wmf.1 for ; Sat, 19 Nov 2016 10:34:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:references:from:to:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=BeSiMiQ+6dLpSYaC9g4upCjmyuHeDKGInpzVIHyLYi0=; b=k1q4zkP5k1RNJRq47UfloBo2ZtgKNo5bFe3zVuNwuUq6CefEtKzcIBNFIG67E5PkoS Tlwl2Xh2qp/lGhroFvkQd31rpE8ibvRa9iV6PHIsCIw7Q97b3NUnK6Ji90avtJL9YOI8 1PkTe/SG2v+CRoCxXHcKwx5pAvF2HrzSny6ZZ3CYETDcHOatbaFU+xAK+wpD1MAOjN/G FIRx8ghzK2XoustvVo5PG0LWpU0SCCoOvzgKFCwc8HeDm161onXTrmZiRCRBZU7/1kkJ MWH/G2wEHtSBy7+KEQJT10CgSf5QohVGjoIsx+y7A+gyZ4QstDDL0W39tkbJhoTTimDN fKDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:references:from:to:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=BeSiMiQ+6dLpSYaC9g4upCjmyuHeDKGInpzVIHyLYi0=; b=mp8zo2fJutLUbOICQqe40mWHRu32Ph3pSdguWnJ7cshsnBoOSpY5RQsEgu+WqeTzWX kMlvYEDFecr5cjCL4NgzoyzZCLGF5C2c8HFlRAdRsha73SPILRc6Vw1veHpHNADHWjXQ S8w1RlHy7MyD/fAntMS/Wa6m3XqlTWslgignoeNfoa2RJ3ml4Uu5jV71nyDZgPCpTeL+ yxqLZR8zC36cceUZdw7GtD8SSTwepe60W14col2sLwbSlQPOF3t0JglA4Uqi1zr3MTI8 UoPTCFiL+hHcxY9i3qVHpjA+TbVpJqMyCzpVqlzGtCjqxuCckZzebxg5xh6KRGLgJPLz DCnQ== X-Gm-Message-State: AKaTC01laE5WoGILOzti+rjFpr2+LAHETczfeB44TfXrcnMGG59KlEyzC0kRfE8Ts8BM1g== X-Received: by 10.28.144.70 with SMTP id s67mr4769995wmd.138.1479580463196; Sat, 19 Nov 2016 10:34:23 -0800 (PST) Received: from [192.168.1.5] ([2.27.88.157]) by smtp.googlemail.com with ESMTPSA id im3sm15488973wjb.13.2016.11.19.10.34.22 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 19 Nov 2016 10:34:22 -0800 (PST) References: <94840a5a-39e2-5255-e9c5-c011f00d392b@gmail.com> To: Internals Message-ID: <70039124-d8d7-e139-b0e3-6b2d2ed51aff@gmail.com> Date: Sat, 19 Nov 2016 18:34:21 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [RFC] Deprecations for PHP 7.2 From: rowan.collins@gmail.com (Rowan Collins) On 19/11/2016 17:56, Marco Pivetta wrote: > On Sat, Nov 19, 2016 at 6:42 PM, Kalle Sommer Nielsen > wrote: > > So to answer your question in a short without much more rambling: I > think we should deprecate in x.z, then remove in x.z+1 depending on > the feature, if we say "Oh let's remove this in the next major", > chances are that major won't even be branches for years, and at that > time, it could be forgotten. > > > That will end up breaking the "expected" (because it's not that way > anyway, but almost) SemVer approach, diminishing the trust from > consumers in any kind of upgrade. > Most of the current open-source libs out there are trying to push for > SemVer - having PHP not following that seems like a huge mess to me. > I agree with this, to an extent. If we formally disavow any meaning of "major release" other than branding, the expectation is less of an issue in itself. But it's interesting that PostgreSQL is moving to a 2-part version numbering: instead of the annual feature releases being 9.7.0, 9.8.0, 9.9.0 etc, they will be 10.0, 11.0, 12.0, thus eliminating debate about which releases should be classed as "major". > Like you also mention, major versions are really rare and I > think it should be kept that way, or at least until we reach a point > where we literally cannot improve PHP7 anymore without major changes, > such as the case for PHP 5.6 was. What is a "major change", if you want to abandon the link to compatibility? Do you mean "headline-grabbing feature", i.e. versioning as a brand? > With our current model, that means that when we deprecate something, > users got a year to upgrade their code, if they are bleeding edge > users, but most are likely not, so they have more time to upgrade the > code This is a recipe for massive version fragmentation. When x.3 comes out, some people will be stuck on x.0, some on x.1, some on x.2, etc; library authors won't be able to take advantage of the features introduced in x.3, and everyone has to remember just what's new in each release. I actually think major releases should be *more* common, to reduce the temptation to "bend" the rules, and break compatibility early. The policy could be as simple as "every major release will have between 3 and 5 minor releases". Then the earliest release of 8.0 would be after 7.2 (late 2018 / early 2019), and the latest would be after 7.4 (late 2020 / early 2021). Having a road map in advance also means you can branch early, break things, and know how long you're going to have to maintain that branch for. Regards, -- Rowan Collins [IMSoP]