Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:59566 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 10718 invoked from network); 9 Apr 2012 21:55:50 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 9 Apr 2012 21:55:50 -0000 Authentication-Results: pb1.pair.com header.from=kris.craig@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=kris.craig@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.212.176 as permitted sender) X-PHP-List-Original-Sender: kris.craig@gmail.com X-Host-Fingerprint: 209.85.212.176 mail-wi0-f176.google.com Received: from [209.85.212.176] ([209.85.212.176:39363] helo=mail-wi0-f176.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 3A/B0-34074-5EA538F4 for ; Mon, 09 Apr 2012 17:55:49 -0400 Received: by wibhm17 with SMTP id hm17so2386081wib.11 for ; Mon, 09 Apr 2012 14:55:45 -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=+YOWPV8J0YFhTvNggGJst+V3UFV6wt/cOM3G801730w=; b=jIq0bpV34lzktUtppU9vNmxXN7NPe80sVorfBQq2l3QhXB/jzvHLUNQ8pDMWnqL35z 8uCMPak9S8fxM3oE5UCHHM900PExtOY4V/GRGAgeJ84whoE2fANOKFHBoAf2bG+4uCcg qsCvwJvmFIetjPXxRmm/xpQIxyZ349Mr42kg70+eMMV33jmYp8SybRalYUaFgESRtvwx 8Jm7TnlbSeozBxzMTrHUwMYPmHE2/Udgl98is1yHNB+YtZISnN6ogEnsPLQtQpsqLTjb G+gPbn9yx+ezeLnB4I06UEUD1u6pE5bzdnFHJI2Ky7xXR5mdcLl4nXEvgtBr1eCEOwTM ohBQ== MIME-Version: 1.0 Received: by 10.180.81.166 with SMTP id b6mr1379494wiy.0.1334008545712; Mon, 09 Apr 2012 14:55:45 -0700 (PDT) Received: by 10.223.79.67 with HTTP; Mon, 9 Apr 2012 14:55:45 -0700 (PDT) In-Reply-To: References: <4F82878A.6030609@sugarcrm.com> <4F834F94.1000002@sugarcrm.com> Date: Mon, 9 Apr 2012 14:55:45 -0700 Message-ID: To: Kiall Mac Innes Cc: Stas Malyshev , PHP Internals Content-Type: multipart/alternative; boundary=f46d0442811e7e9a4f04bd461127 Subject: Re: [PHP-DEV] release process with git From: kris.craig@gmail.com (Kris Craig) --f46d0442811e7e9a4f04bd461127 Content-Type: text/plain; charset=ISO-8859-1 On Mon, Apr 9, 2012 at 2:33 PM, Kiall Mac Innes wrote: > On Mon, Apr 9, 2012 at 10:27 PM, Kris Craig wrote: >> >> What I'm referring to is the same kind of bugfixes/etc that go into new >> release candidates. I mean, we're still planning on having multiple >> release candidates before an actual release, right? If so, then obviously >> we'll need a way to commit those changes. If they're not made on the RC >> branch, then where were you thinking they should go, and how would we then >> apply those bugfixes to the 5.4 trunk if not through a merge? > > > Referring again to how openstack manages this (because I personally feel > they have nailed it).. > > Any commit that should be applied to the RC should also be applied to > master/trunk, right? So - Why not commit it to master/trunk and nominate it > for inclusion in the release. This allows a release manager to look at the > bug, the fix, and the implications of of the fix before the fix lands in > the RC. > > Once a commit has been made to master/trunk.. That fix can be > cherry-picked into the RC if it's deemed suitable. > That approach would also work, so long as the RM doesn't mind having to cherry-pick through different commits, making sure they're not based off of non-included commits that would cause conflicts, etc. Git merging essentially does the bulk of this grunt work for you; but the downside, as Stas pointed out, is that people would then wind-up posting unnecessary commits because there would be no manual filtering. Hmm so how about we consider a third option? It sounds like what we need is a bridge so that bugfixes can be quarantined yet still cherry-picked by the RM without the added burden of code conflicts being introduced from trunk. So how about this: 1. RM creates PHP-5.4.x branch from PHP-5.4. 2. Development continues on PHP-5.4 branch without any interaction with PHP-5.4.x branch. 3. RM is allowed to commit directly to PHP-5.4.x. 4. Anybody else who wants to propose a bugfix will create a new branch based off of PHP-5.4.x. - For example: git checkout -b Bugfix-Some_Bugfix_Title PHP-5.4.x. 5. Once commit(s) on Bugfix branch are made, developer merges the bugfix into PHP-5.4 trunk branch and asks the RM (i.e. "nominates" it, as you put it) to merge it into the PHP-5.4.x release branch as well. 6. RM can decide whether or not to merge it in. Because the branch was based off of the release branch as opposed to trunk, it's considerably less likely that any conflicts will emerge should the RM decide to merge it in. If s/he doesn't merge it in, the changes have already been merged into the trunk branch so at very least they'll be there for the next release. This approach should address everyone's concerns while taking advantage of Git's branching functionality, which was designed precisely with situations such as this in mind. The RM filter remains but the manual workload and potential for human error are both dramatically reduced. --Kris > Thanks, > Kiall > --f46d0442811e7e9a4f04bd461127--