Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:78744 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 93912 invoked from network); 5 Nov 2014 20:20:40 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 5 Nov 2014 20:20:40 -0000 Authentication-Results: pb1.pair.com smtp.mail=florian@margaine.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=florian@margaine.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain margaine.com from 209.85.223.176 cause and error) X-PHP-List-Original-Sender: florian@margaine.com X-Host-Fingerprint: 209.85.223.176 mail-ie0-f176.google.com Received: from [209.85.223.176] ([209.85.223.176:39171] helo=mail-ie0-f176.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E6/10-27106-6968A545 for ; Wed, 05 Nov 2014 15:20:39 -0500 Received: by mail-ie0-f176.google.com with SMTP id rd18so1503262iec.21 for ; Wed, 05 Nov 2014 12:20:35 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-type; bh=yDXRk0AWi6x9S43KbvpFBzRuQR55hcvpAKHxeezq2A4=; b=Gns4vrCFrnJWSPTnNQxAsGWDXBYQoYTNgjkxnGrODE2OughcQFNJQItbwEvXt7XFwo zKKZuqdqi+6oc73FGwGRBi3lmVUhSCp5H4l6zn/q+NXybjJO8DmYznv520pUDyXLfkck dv9ewK08JNnnwtbj2/8ISJQ+r1kXm7KC0q4DDIPicPXmI+/XVzrIXUWTwMRpXaz6Niuj 5/r+67nBTyQidgumw3rmXj5CbNVdyWTYAdtjj5P5mZQlwUsZgXqAuyMvVdKRGV4DVeBh InLsxE5PP3wYTt1pGgj3Hu2qTz5Xw9JofwRTLxygOHL9Volr40CsnjKYLXfZuiF5+u62 nHxw== X-Gm-Message-State: ALoCoQmMvJMUMycK3qfRsOqBTo9h7SoBigUx/mH1/OW/RGxxiKUoXKCfFBo/N2yXQHk+630stHYN X-Received: by 10.43.143.18 with SMTP id jk18mr6658152icc.73.1415218835048; Wed, 05 Nov 2014 12:20:35 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.31.149 with HTTP; Wed, 5 Nov 2014 12:20:14 -0800 (PST) X-Originating-IP: [90.42.228.19] Date: Wed, 5 Nov 2014 21:20:14 +0100 Message-ID: To: PHP Internals Content-Type: multipart/alternative; boundary=001a11c2af94f16c7f0507224ff3 Subject: Thresholds of backwards compatibility breaks From: florian@margaine.com (Florian Margaine) --001a11c2af94f16c7f0507224ff3 Content-Type: text/plain; charset=UTF-8 Hi list, I'd like to introduce thresholds of backwards compatibility breaks, i.e. maximum numbers of allowed BC breaks per version. Lester's mail from a couple days ago had me thinking about the BC breaks that occur now and then in all the RFCs or all the mails I see these days. Now, take what I say with a grain of salt, as I've only recently been involved in this mailing list, as well as in php-src development. Let me explain my reasoning. To allow the users of PHP to upgrade their versions, and enjoy the new features, as well as the security fixes, the least number of BC breaks should get in the new released versions. That is because a BC break can lead to many hours of a codebase adaptation, hours that many companies don't want to pay for if the benefits are minimal. However, to allow us to evolve the language, BC breaks are a necessary evil. Another issue is the short timeline of security fixes for the versions. PHP 5.4 will have a total lifetime of 3 years, a very short one for many people. I'm not advising to increase this timeline, just saying that it gets in the equation of my discussion. To mitigate the issue of BC breaks, I think introducing the concept of thresholds would greatly help the PHP adoption, and mostly upgrades of PHP versions. If people know that a limited amount of work is going to be needed when upgrading a PHP version, the upgrades should be done more often. For example, the following thresholds could be used: - major BC break: major versions only. 5 major BC breaks allowed per major version. - minor BC break: - minor versions: 5 minor BC breaks allowed. - patch versions: 1 BC break allowed. Thoughts? Am I thinking too much? Is this idea unfeasible? Is it a good idea? Regards, -- Florian Margaine --001a11c2af94f16c7f0507224ff3--