Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:73567 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 63002 invoked from network); 3 Apr 2014 11:39:00 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 3 Apr 2014 11:39:00 -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.214.174 as permitted sender) X-PHP-List-Original-Sender: kris.craig@gmail.com X-Host-Fingerprint: 209.85.214.174 mail-ob0-f174.google.com Received: from [209.85.214.174] ([209.85.214.174:61963] helo=mail-ob0-f174.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id BB/00-62638-3584D335 for ; Thu, 03 Apr 2014 06:38:59 -0500 Received: by mail-ob0-f174.google.com with SMTP id wo20so1756590obc.5 for ; Thu, 03 Apr 2014 04:38:57 -0700 (PDT) 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=8gKJEApzIzLVpwEesJ4SXNUayeXg3bKojg464PxhIrY=; b=VFi3rbIB7mTiIRkghUjuVdjn2AA7afEmyHlky75Y/UOfwFzll7ju/nNYqsONj7ni74 2/2iHmX04/FtO6lG1X2GGsKFi0icD+3oHnkoZqiCZpiiAaIKncFTaeqoOw7Jy4Y71MSw +HSEPqagJ74XSxjrreDkyVKks1v2JfHpHPbY+ccHo2Sx7y388ABP4DlDsASGMaWVeawP cgr6OYaK7uXx3IctIlq3d99+9ON9IspMKYipK0ORN4FTR4U6Y+Er/gYI4IJGWQmbeKUt VkWM3z5NAD6sg7bNuSsz5jdq1Qeny1fdaCALAq+IpGLXZZHNCujYd8PW8pLTApz+urYV pGHw== MIME-Version: 1.0 X-Received: by 10.60.155.72 with SMTP id vu8mr1180979oeb.60.1396525136794; Thu, 03 Apr 2014 04:38:56 -0700 (PDT) Received: by 10.182.231.230 with HTTP; Thu, 3 Apr 2014 04:38:56 -0700 (PDT) In-Reply-To: References: <1396523991.2982.340.camel@guybrush> Date: Thu, 3 Apr 2014 04:38:56 -0700 Message-ID: To: =?ISO-8859-1?Q?Johannes_Schl=FCter?= Cc: Julien Pauli , PHP Internals Content-Type: multipart/alternative; boundary=047d7bd6ab54b2d9b504f621d8ec Subject: Re: [PHP-DEV] Branching PHP6 From: kris.craig@gmail.com (Kris Craig) --047d7bd6ab54b2d9b504f621d8ec Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Thu, Apr 3, 2014 at 4:32 AM, Kris Craig wrote: > > > > On Thu, Apr 3, 2014 at 4:19 AM, Johannes Schl=FCter wrote: > >> On Thu, 2014-04-03 at 04:06 -0700, Kris Craig wrote: >> > I think we should use this opportunity to start following a more >> Git-style >> > branching model. Currently, every maintenance release increment exist= s >> as >> > its own separate branch; i.e. "PHP-5.5.10" is a branch and "PHP-5.5.11= " >> is >> > a branch, and so on. This is redundant because we already have a tag >> for >> > each release. Additionally, it also forces us to target features for >> one >> > or more specific maintenance version increments. A more flexible >> approach >> > would be to have each increment reflect the totality of what's been >> merged >> > in as stable as of whenever the increment went to release. >> >> These release branches are owned by the RM. No other developers should >> touch them. The only commits there should be related to release process >> or critical cherry picked fixes. >> The decision the developer has to make is whether a change should make >> 5.4, 5.5, 5.6 or newer, not the actual release. New features should only >> be merged in the top most branch. >> > > By release branch, are you referring to minor releases or maintenance > releases? If the latter, it'd be a moot point under this model because > we'd be getting rid of separate branches for maintenance releases > altogether. Instead, the RM would simply apply the tag to the commit whe= re > they want the maintenance release to occur. That would be a much cleaner > approach than what we're doing now. > > If you want to continue having a gatekeeper approach with only one person > having access to a minor increment branch, a simple alternative would be = to > have people push their feature branches if they believe the commits shoul= d > go on one or more minor increments. Then, the release manager for each > minor increment (i.e. there'd be an RM for 6.0 and 6.1 instead of for eac= h > individual maintenance increment) would decide whether or not to merge th= at > feature branch in. The feature branch itself would be based on a minor > release branch and subsequently deleted after it's either merged or > rejected. > > --Kris > > So, for example, if I'm committing a new feature or whatever, I'd just merge it into PHP-6 as described in my previous email. If, however, it's a bug fix or something else I think should go in a current minor branch, I'd push the feature branch with the commits and leave it to the various RMs to decide whether or not to merge it in. RM for Release-PHP-6.0 may decide it's not needed but the RM for Release-PHP-6.1 decides to merge it in. That person would then tag the next maintenance release increment as described earlier, except in this scenario they would be the only person with the ability to commit/merge to that branch. This way, RMs continue having control over release branches, just as they do now, while having a vastly improved branching model. --Kris --047d7bd6ab54b2d9b504f621d8ec--