The Gatekeeper, or a project gating system
Go to file
James E. Blair fef7163d52 Fix NNFI bug with two failing changes at head
If A is the head in A <- B <- C, and B failed, then C would be
correctly reparented to A.  Then if A failed, B and C would be
restarted, but C would not be reparented back to B.  This is
because the check around moving a change short-circuited if
there was no change ahead (which is the case if C is behind A
and A reports).

The solution to this is to still perform the move check even if
there is no change currently ahead (so that if there is a NNFI
change ahead, the current change will be moved behind it).  This
effectively means we should remove the "not item ahead" part of
the conditional around the move.

This part of the conditional serves two additional purposes --
to make sure that we don't dereference an attribute on item_ahead
if it is None, and also to ensure that the NNFI algorithm is not
applied to independent queues.

So the fix moves that part of the conditional out so that we can
safely reference the needed attributes if there is a change ahead,
and also makes explicit that we ignore the situation if we are
working on an independent change queue.

This also adds a test that failed (at the indicated position) with
the previous code.

Change-Id: I4cf5e868af7cddb7e95ef378abb966613ac9701c
2013-09-23 11:15:47 -07:00
doc Use NNFI scheduler algorithm 2013-09-20 09:01:30 -05:00
etc Add support for emailing results via SMTP 2013-09-02 09:55:49 +10:00
tests Fix NNFI bug with two failing changes at head 2013-09-23 11:15:47 -07:00
tools Add manual job triggering script. 2013-07-08 22:16:11 +00:00
zuul Fix NNFI bug with two failing changes at head 2013-09-23 11:15:47 -07:00
.gitignore Migrate to testrepository. 2013-06-27 01:49:59 +00:00
.gitreview Updated .gitreview location 2012-12-16 20:34:13 +00:00
.mailmap Fix pep8 E127 violations 2012-09-26 14:23:10 +00:00
.testr.conf Add ability to skip log capture. 2013-07-02 17:47:23 +00:00
LICENSE Initial commit. 2012-05-29 14:49:32 -07:00
MANIFEST.in Migrate to pbr. 2013-06-25 19:04:30 +00:00
NEWS.rst Use NNFI scheduler algorithm 2013-09-20 09:01:30 -05:00
README.rst Drop Jenkins.getBestBuildURL() method 2013-05-05 21:58:29 +00:00
TESTING.rst Support multiple triggers 2013-08-01 11:56:52 -07:00
requirements.txt Use an OrderedDict for pipelines 2013-08-27 10:48:33 -07:00
setup.cfg Enable warnerrors for pbr to catch Sphinx warnings 2013-07-19 21:26:03 -04:00
setup.py Migrate to pbr. 2013-06-25 19:04:30 +00:00
test-requirements.txt Include discover in test requirements. 2013-07-18 14:19:20 -07:00
tox.ini remove --pre option from tox's pip install command 2013-09-18 16:41:37 -07:00

README.rst

Zuul

Zuul is a trunk gating system developed for the OpenStack Project.

Contributing

To get the latest code, see: https://github.com/openstack-infra/zuul

Bugs are handled at: https://launchpad.net/zuul

Code reviews are, as you might expect, handled by gerrit. The gerrit they use is http://review.openstack.org

Use git review to submit patches (after creating a gerrit account that links to your launchpad account). Example:

# Do your commits
$ git review
# Enter your username if prompted