Re: What is our definition of a "Backward Compatibility Break"
| From: | Nikita Popov | Date: | Mon, 10 Sep 2012 20:27:23 +0000 |
| Subject: | Re: What is our definition of a "Backward Compatibility Break" | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-62932@lists.php.net to get a copy of this message | ||
On Mon, Sep 10, 2012 at 9:54 PM, Rasmus Lerdorf <rasmus@lerdorf.com> wrote:
> On 09/10/2012 12:00 PM, Anthony Ferrara wrote:
>
>> I chose it for that specific reason. The line is blurry if taken literally
>> (which many do)...
>
> It can't possibly be an absolute rule. If you take it completely
> literally then we wouldn't be able to fix bugs either. Every change has
> some effect that may or may not affect users.
>
> I know we are mostly geeks here and geeks love structure and rules
> without exceptions to fall back on so they don't have to think so much
> and can end arguments simply by pointing at a set of hard rules everyone
> follows. But this really doesn't work that well in the real world. The
> real world isn't binary. It is a complicated analog world with many many
> levels of gray between right and wrong, between minor and major BC break
> and between peoples' expectations and their personal uses of PHP.
I'd like to point out two things here:
a) The current releaseprocess RFC [1] says that "Backward
compatibility must be kept" in minor version increments (5.4 -> 5.5).
Seeing the discussion above, may I rephrase this to "Only minor
backwards compatibility breaks allowed"? It seems that we agree that
smaller breaks are okay, just no big stuff. I think that's what was
meant all along there, but phrased a little bit too conservatively.
b) In the PHP 5.5 thread Pierre said the following:
> There is o 5.5 branch, there is master. Master is the development
> branch and as such can have such breakages. It does not mean that we
> have these BC breaks in 5.5. 5.5 should be based on 5.4 with the
> feature additions and improvements we want in, but definitively not
> with BC breaks.
This is concerning me a bit. Does this mean that PHP 5.5 will be
branched off PHP 5.4 and we will then backport features from master?
If so, this would seem like a Very Bad Idea to me, from a purely
technical point of view. Unless I'm much mistaken this would have to
be done manually (git is of no help here) and would be a very tedious
and fragile business.
Before Pierre said that I was under the impression that PHP 5.5 will
be branched off master, which would make a lot more sense to me. Could
someone clarify how it will be done?
[1]: https://wiki.php.net/rfc/releaseprocess