Re: Please stop committing on a broken build! ([Testbot] Plone 5.0 - Python 2.7 - Build # 1925 - Regression! - 6 failure(s))

Jean Jordaan <[email protected]>
Newsgroups gmane.comp.web.zope.plone.devel
Message-ID <CAJqnznBp8jAA5ZwBo916x6Ov43BcQQHaaQJ6D9dh6npakcCFdw@mail.gmail.com>
On Tue, Mar 25, 2014 at 1:20 AM, David Glick (Plone)
<david.glick-z4DKO/[email protected]> wrote:
> On 3/24/14, 2:50 AM, Jean Jordaan wrote:
>> 1. Create a PLIPnnn-merged-branch from the trunk.
>> 2. Merge all those branches into this branch.
>
> No, it won't work. One PLIP may involved branches of 5 different packages
> for example. So either you have to merge those packages to their respective
> master branches in step 2, which could break the coredev buildout
> temporarily if the branches are interdependent; or you have to merge them in
> step 6, with the same problem.

Ah, of course, I was forgetting we're dealing with different packages.

There must be some way to establish a green build across packages,
before merging all the packages to their masters.
E.g. a plip-nnn.cfg buildout which specifies the branch for each
package that would be merged, such that this set of branches is
identical to the set of masters after merge.

I.e. once the buildout with
p1/plip-nnn-branch
p2/plip-nnn-branch
...
is green, you know that
p1/master
p2/master
...
will be green.

So my suggested process becomes:

1. Create a PLIPnnn-merged-branch from master for each package involved.
2. Merge master of each package into its respective PLIP branch.
3. Make sure the build is green for the buildout that specifies the
PLIP branch of these packages.
4. In case there have been any changes in master of any of these
packages in the meantime, merge master to the PLIP branch.
5. If red, go to 3.
6. If we're still green, merge all the PLIP branches to those packages' master.

The window for breaking the build would be if someone is pushing
unrelated stuff to master between 5 and 6.
If committing to master is via pull request this should be avoidable.
Step 6 is not atomic (i.e. we're merging one package at a time), but
should be quick since the hard work should already have been done in
steps 2 or 4.

-- 
jean                                              . .. .... //\\\oo///\\

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.