Blocking and unblocking merges

Dimiter Naydenov dimiter.naydenov at canonical.com
Thu Dec 18 02:48:19 UTC 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 18.12.2014 04:20, John George wrote:
> On Wed, Dec 17, 2014 at 4:26 PM, Menno Smits
> <menno.smits at canonical.com <mailto:menno.smits at canonical.com>>
> wrote:
> 
> There seems to be some confusion as to how merges gets blocked and 
> unblocked. Specifically:
> 
> 1. How do merges get blocked?
> 
> Juju-core bugs with the following criteria will block merges: a.
> status: 'Triaged', 'In Progress' or 'Fix Committed' b. importance:
> 'Critical' c. tags: 'regression' and 'ci'
> 
> 2. Who/what decides to unblock merges? The Jenkins
> github-merge-juju job 
> (http://juju-ci.vapour.ws:8080/job/github-merge-juju) is configured
> to call the check_blockers.py script, maintained by the Juju-QA
> team. check_blockers.py queries Launchpad for bugs with the above
> criteria.
> 
> master example: 
> https://api.launchpad.net/devel/juju-core?ws.op=searchTasks&status%3Alist=Triaged&status%3Alist=In+Progress&status%3Alist=Fix+Committed&importance%3Alist=Critical&tags%3Alist=regression&tags%3Alist=ci&tags_combinator=All
>
>  1.20 example: 
> https://api.launchpad.net/devel/juju-core/1.20?ws.op=searchTasks&status%3Alist=Triaged&status%3Alist=In+Progress&status%3Alist=Fix+Committed&importance%3Alist=Critical&tags%3Alist=regression&tags%3Alist=ci&tags_combinator=All
>
>  Most often the Juju QA team will open these bugs and set the tags,
> when a test failure demonstrates a regression.
> 
> If the pull request body includes "fixes-<BUG NUMBER>, where BUG
> NUMBER is in the blocking list, the merge will go through.
> 
> 
> 
> 3. How do merges get unblocked?
> 
> Merges are unblocked when no bugs are returned with the above
> criteria. The bugs should be updated only after the committed fix
> has successfully passed the CI tests which discovered the
> regression. This will most often mean setting the status to 'Fix
> Released' when the solution involves code changes or removing the
> regression and/or CI tag, if the issue is discovered to be a test
> or CI issue.
> 
> 
> 4, If the unblock process involves manual steps, whose 
> responsibility is it to perform those steps?
> 
> The person or team that marked the bug as a regression is
> responsible for updating the bug, once they are satisfied with the
> fix. Most often this will be the Juju-QA team but if others
> discover a regression they too should have the power to block
> merges.

The problem often is nobody from QA is around to ask for help in
certain times during the day. So there should be at least a person in
each team knowing how (and having permissions as well, if needed) to
re-run jobs that are stuck, mark the bug as Fix Released once the CI
job passes after the fix lands. Another REALLY NEEDED feature is to
re-queue PRs set for merging but bounced due to a CI block. This
wastes days sometimes, or at the very least hours.

> 
> 
> Based on experience and observation, I think I know how at least 
> some of this works but could we please have some authoritative
> answers?
> 
> Thanks, Menno
> 
> 
> 
> -- Juju-dev mailing list Juju-dev at lists.ubuntu.com
> <mailto:Juju-dev at lists.ubuntu.com> Modify settings or unsubscribe
> at: https://lists.ubuntu.com/mailman/listinfo/juju-dev
> 
> 
> 


- -- 
Dimiter Naydenov <dimiter.naydenov at canonical.com>
juju-core team
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJUkkBzAAoJENzxV2TbLzHwflIH+wQM8s8oV2i7b1PzsDzh9Zyu
DhfkyIhxFQxTJGsV8RamcTDkjWeDhRZKB49UPzMdqNJr0XG/KvVy1SyqICxJ5qoz
uWnnrdumzUhF0k/hjsUEnOpNDBOnubUIoGHBVyyx6UEMRgW+G0pFTIhUQGqEPhhU
7YMqn/r3GpiSnkmnknB/U4yk9TEYViDBRuPzSmhJiSwBGqkpOW+ISkWstUgbqYO+
o9KzxREWcvEDQ0+v0RLpaF2HsUWwktn7HL2BuoemhU4hoS5/ohD0VR5AemXwUyky
ISEiqu4atjPcCxJts5UpPhhznBSVHFlOm4ROkH1ku+x671WZEZZXoUt4CjWbxvo=
=l5mJ
-----END PGP SIGNATURE-----



More information about the Juju-dev mailing list