Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:70230 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 15281 invoked from network); 20 Nov 2013 11:01:03 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Nov 2013 11:01:03 -0000 Authentication-Results: pb1.pair.com header.from=julienpauli@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=julienpauli@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.220.176 as permitted sender) X-PHP-List-Original-Sender: julienpauli@gmail.com X-Host-Fingerprint: 209.85.220.176 mail-vc0-f176.google.com Received: from [209.85.220.176] ([209.85.220.176:45665] helo=mail-vc0-f176.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 18/B5-20870-D669C825 for ; Wed, 20 Nov 2013 06:01:01 -0500 Received: by mail-vc0-f176.google.com with SMTP id lf12so1243073vcb.21 for ; Wed, 20 Nov 2013 03:00:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=0rh9loiwVAelGnTy1XkqrUfCEpPpAtTijCWPL57nDjs=; b=TsIZ4SADGJ2EpTcNQ4cZZ6wSSlRlV1tyDNbkWXlY38ohzTNO9Gbcy2oo4pBW+UYyCK z8UUCFLJf1WIW0R0v1ySWG4Ux6Rs8DX1xLocpFRZs7r6QMjJSZ3zxcuuzVp/a79vPsow dSsabg/pKUMRlr0H4PbnM71tSSy7NGZBEl5Iwx3S7txkZ8pRas18hH2ABMJenWXqdcfW 1XwnesLN3W36HXFOxuiDQr7ABfBa75q42nUTb3/MSss94SvUWSGDqGpY38Mtk1nkyFNX j2OMY7aM8WNJt1aUhqh8HR/3c7AT290zepmegpGkuJbgp8+pGshtUZKy1xvU66UdgA36 k7oA== X-Received: by 10.220.172.8 with SMTP id j8mr65454vcz.79.1384945258578; Wed, 20 Nov 2013 03:00:58 -0800 (PST) MIME-Version: 1.0 Sender: julienpauli@gmail.com Received: by 10.220.73.197 with HTTP; Wed, 20 Nov 2013 03:00:18 -0800 (PST) In-Reply-To: References: Date: Wed, 20 Nov 2013 12:00:18 +0100 X-Google-Sender-Auth: KyHV2DdTE4b3xucVFWFxgKu-SM8 Message-ID: To: Pierre Joye Cc: Nikita Popov , PHP internals Content-Type: multipart/alternative; boundary=001a11c3678c2bc89004eb99b23b Subject: Re: [PHP-DEV] Making "backwards compatibility" discussions more constructive From: jpauli@php.net (Julien Pauli) --001a11c3678c2bc89004eb99b23b Content-Type: text/plain; charset=ISO-8859-1 On Wed, Nov 20, 2013 at 9:23 AM, Pierre Joye wrote: > hi, > > On Tue, Nov 19, 2013 at 8:16 PM, Nikita Popov > wrote: > > Hi internals! > > > > In a lot of the recent discussions (e.g. the HTTP_RAW_POST_DATA one) I've > > seen the "we can't break backwards compatibility in PHP 5.x.y" argument > > crop up again and again. > > It is not an argument, but a rule we try to respect. > > > This rather unfortunate formulation takes root in the releaseprocess RFC > > [1] and drives all discussions of BC issues into a non-constructive > > direction. > > As it can see as non constructive, the goal is to actually smooth and > speed up updates, be direct end users or ISPs. > > > Fact is that nearly all changes (by being changes...) break backwards > > compatibility to some degree [2] and we *do* most certainly allow them in > > both minor and bugfix releases. Whether they are allowed (and for what > > version) depends on the *severity* (rather than existence) of the > breakage. > > We have discussed that already. However I cannot compare new features, > keywords or functions as BC breaks. That's about namespaces or non > guarantee that a given keyword won't be used by PHP in later releases. > > > I would really appreciate it if we could move BC-related discussions away > > from "Does it break BC?" (Yes, it does, in some way) to "How much does it > > break BC and are we okay with that?" > > Many small acceptable BC breaks do not allow one to update smoothly. > Reducing newer releases adoption rate and increase the common opinion > that all new releases cannot be used with current maintained PHP > applications. I would rather avoid introducing new reasons to support > this belief. > > > > In the context of the HTTP_RAW_POST_DATA discussion this means thinking > > about questions like a) how much code will be negatively affected, b) how > > hard will it be for the code to be fixed and c) do the benefits in > > performance, memory usage and/or functionality (significantly?) outweigh > > the inconvenience of code-adjustments? > > The "amount of code" affected can hardly be an argument. Especially > when we know that this code is actually used. > > > > As some people have a hard time understanding that small BC breaks are > > introduced routinely and intentionally, some examples of changes that are > > considered "generally okay" for bugfix and minor releases: > > > > Bugfix x.y.z -> x.y.(z+1): > > Same as before, please explain why a bug fix can be considered as a BC > break. > > > > * Addition of new functions, if the function name is unlikely to already > > be in (unconditional) use. E.g. the addition of getallheaders() for the > > built-in webserver in PHP 5.5.7. > > Was it added in 5.5.x and not present in 5.5.0? That should not have > happened. > > That's gonna be reverted. Revisions are bug fixes only, new features should come to master and eventually specific branches when discussed and accepted as is. We cannot afford a new feature / function in revision anymore like we did in the past, that's too dangerous and clearly out of our release process. Julien Pauli --001a11c3678c2bc89004eb99b23b--