Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:78792 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 93140 invoked from network); 6 Nov 2014 07:54:03 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 6 Nov 2014 07:54:03 -0000 Authentication-Results: pb1.pair.com smtp.mail=kris.craig@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=kris.craig@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.218.42 as permitted sender) X-PHP-List-Original-Sender: kris.craig@gmail.com X-Host-Fingerprint: 209.85.218.42 mail-oi0-f42.google.com Received: from [209.85.218.42] ([209.85.218.42:63244] helo=mail-oi0-f42.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 57/CB-28384-A192B545 for ; Thu, 06 Nov 2014 02:54:02 -0500 Received: by mail-oi0-f42.google.com with SMTP id a3so388393oib.1 for ; Wed, 05 Nov 2014 23:53:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=VtJ4HjQb1i2A0Y8gyEiVomPKyiX2KYvbDEZMZFnASKU=; b=nUgaooXcozRIPhWwFZ9kV1MZ8/T4uHZ9L4WPVDpBRYVjPiQ2L34mU6me3ieCOy+Wjb ymMPtmEv9y9CgPy5fSt0YDpdTahIfVusy+MRfxj7gYlyGIBxUR2fzO75g5JHtTF1/QAo xddW3XFU1Kv3K1KcqqM/5KSvqRCV6Fv7VYYyNvk8YJrpSnAzT9pv2ejo5TWTlhFxcINq +iMBownsRRfp4IMiAAd4P3N9ylYqxDJ4lSB/AHQ0XXg5+458VHQqr/3kn9JzgvCg7Hwh tugKpDiXGj22RnwlRT5mSnccEFxiXqntFjFfi1+q2jKKXiEV1qgP6iHt6zHPdXzZim3f C8ZA== MIME-Version: 1.0 X-Received: by 10.182.92.234 with SMTP id cp10mr921923obb.53.1415260439052; Wed, 05 Nov 2014 23:53:59 -0800 (PST) Received: by 10.202.227.76 with HTTP; Wed, 5 Nov 2014 23:53:58 -0800 (PST) In-Reply-To: References: <3E2593DC-5755-48A6-8802-6F2FB3625778@ajf.me> Date: Wed, 5 Nov 2014 23:53:58 -0800 Message-ID: To: Ferenc Kovacs Cc: Andrew Faulds , PHP Internals , Florian Margaine Content-Type: multipart/alternative; boundary=001a11c30504bc089905072bff8f Subject: Re: [PHP-DEV] Thresholds of backwards compatibility breaks From: kris.craig@gmail.com (Kris Craig) --001a11c30504bc089905072bff8f Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Wed, Nov 5, 2014 at 10:49 PM, Ferenc Kovacs wrote: > 2014.11.06. 2:46 ezt =C3=ADrta ("Andrea Faulds" ): > > > > > > > On 5 Nov 2014, at 20:34, Ferenc Kovacs wrote: > > > > > > Regardless of those, I think it would be worse from the users POV tha= n > our > > > current policy where we target no BC breaks in minor/micro versions. > > > The only exception should be security concerns (see the unserialize > changes > > > in 5.6 for such an example), which shows that usually BC breaks are > more > > > about the tradeoff, having a BC for a cornercase which probably nobod= y > will > > > notice but it will simplify the langspec/parser is a different kind o= f > BC > > > that switching the needle/haystack argument order or removing the > dollar > > > sign would cause. > > > Trying to compare or quantify those are hard, and they should be > decided on > > > their own merrit not how much open slot do we have. > > > > > > Just my 2 cents ofc. > > > > Hmm. Wouldn=E2=80=99t allowing minor BC breaks in minor versions be bet= ter than > having BC breaks only in majors? Is it not easier to make one or two smal= l > code changes each year, than to do a massive migration every 5 years? > > With major versions you have years to migrate(while we don't cover this i= n > our release process rfc, but we tend to keep the previous major version > alive for years) but I do agree that more frequent but smaller BC breaks > are better, but I would use that as an argument for having smaller but mo= re > frequent majors. Like a new major version every 3 years where we provide > support 2years standard and 1 year security support, so we always have 2 > major branches active, but never have more than two minor versions for a > major. > But this probably needs a bit more thought. > It's more than just a matter of time and convenience, though. It also has to do with expectations. There is a predominant expectation that upgrading minor increments on the same major release branch is essentially safe; that you won't have to worry about BC breaks-- minor or otherwise-- causing your code to start failing. Furthermore, as someone else already pointed out, "major" and "minor" can be very subjective terms and would likely lead to increased confusion. Many maintainers would probably opt not to just stay on their current version rather than risk a BC break that someone here regarded as "minor" causing their code to blow-up. This is especially problematic given that essential security updates and bug fixes are frequently included in minor version releases. It could be argued that staying current with the latest minor increment on whatever major branch you're on is more important than being on the latest major increment for that very reason. I fear that this proposal would undermine that and erode the trust people currently have in our minor releases to be BC-friendly, drastically curtailing the proliferation of critical bug fixes and security updates. Historically, we haven't had much trouble on that side of the coin and I'd prefer to keep it that way. On the flip side, of course, there is also an expectation that major increments will have BC breaks and will likely require updates to your code; which, in turn, leads to the expectation that adoption of new major version releases will be gradual. I've often argued here that we tend to allow known flaws to persist in major version increments due to an inappropriate level of concern for BC in major release increments and I still believe that. That said, this proposal would represent the opposite extreme, making our minor releases too unreliable in terms of BC for many people's comfort. Also, the limit of 5 BC breaks seems completely arbitrary. Why not 6? Or 4? There's no rational basis for that number that I can see and it could potentially tie our hands when faced with a major revision of some kind that would carry more BC breaks with it. I do like the idea of having a clear, consistent policy regarding BC and version increments. I just don't think the specifics of the proposal are the right way to go about doing that. --Kris --001a11c30504bc089905072bff8f--