--CblX+4bnyfN0pR09
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On 06/04, Nir Soffer wrote:
----- Original Message -----
> From: "Max Kovgan" <mkovgan(a)redhat.com>
> To: devel(a)ovirt.org
> Cc: infra(a)ovirt.org
> Sent: Wednesday, June 3, 2015 8:22:54 PM
> Subject: [ovirt-devel] gerrit+ci improvement proposal
>=20
> Hi everyone!
> We really want to have reliable and snappy CI: to allow short cycles and
> encourage developers to write tests.
>=20
> # Problem
>=20
> Many patches are neither ready for review nor for CI upon submission, w=
hich
> is OK.
> But running all the jobs on those patches with limited resources result=
s
in:
> overloaded resources, slow response time, unhappy developers.
>=20
> # Proposed Solution
>=20
> To run less jobs we know we don=E2=80=99t need to, thus making more res=
ources for the
> jobs we need to run.
> We have been experimenting to make our CI stabler and quicker to respon=
d by
> using gerrit flags. This has improved in both directions very
well
> internally.
> Now it seems a good time to let all the oVirt projects to use this.
> This solution indirectly promotes reviews and quick tests - =E2=80=9Cto=
fail
early=E2=80=9D,
> yet full blown static code analysis and long tests to run
=E2=80=9Cwhen=
ready=E2=80=9D.
>=20
> # How it works
>=20
> 2 new gerrit independent flags are added to gerrit.
>=20
> ## CI flag
>=20
> Will express patch CI status. Values:
> * +1 CI passed
> * 0 CI did not run yet
> * -1 CI failed
=20
-1
=20
You must have CI error state. Most of the errors I have seen, the CI fail=
to
run,
and the failure is not related to the tested patch.
You'll have to prove this, as the last time we discussed it less than 10% of
the failures from the previous 2 weeks were that case.
Also that's why maintainers can set +1 here and -1 is not a blocker.
=20
> Permissions for setting: project maintainers (for special cases) should=
be
> able to set/override (except Jenkins).
>=20
> ## Workflow flag
>=20
> Will express patch =E2=80=9Cworkflow=E2=80=9D state. Values:
> * 0 Work In Progress
> * +1 Ready For Review
> * +2 Ready For Merge
> Permissions for setting: Owner can set +1, Project Maintainers can set =
+2
>=20
> ## Review + CI Integration:
>=20
> Merging [=E2=80=9CSubmit=E2=80=9D button to appear] will require: Revie=
w+1,
CI+1, Workflow+2
> Patch lifecycle now is:
> ---------------------------------------------------------------
> patch state |owner |reviewer |maintainer |CI tests |pass
> ---------------------------------------------------------------
> added/updated |- |- |- |quick |CI+1
> review |Workflow+1|Review+1 |- |heavy |CI+1
> merge ready |- |- |Workflow+2 |gating |CI+1
> merge |- |- |merge |merge |CI+1
=20
-1
=20
Cannot require CI+1, the CI is not reliable enough yet.
=20
Even if the CI will be reliable, a failed test which is not related to th=
e
submitted
patch should not block unrelated changes.
This situation makes no sense, if it's reliable theres no error due to non
changed stuff (unless the issue that triggers the error is part of your pat=
ch
history, because it's merged or you are based on a broken patch, in this ca=
se
it should fail and block)
=20
> Changes from current workflow:
> Owner only adds reviewers, now owner needs to set "Workflow+1" for the =
patch
> to be reviewed, and heavily auto-tested.
> Maintainer now needs to set "Workflow+2" and wait for "Submit"
button to
> appear after CI has completed running gating tests.
=20
-1
=20
This means more work for developers.
=20
Instead, make workflow default to +1. If the want to disable the CI, she =
can
set it to 0.
=20
Developers need more power and less process overhead.
We have to make some stats, but from the small sample of patches that we
checked, most than half of them were not ready to pass any ci, it's a bit m=
ore
work, if you keep using drafts, if you don't it's the same. It's not ment t=
o be
used alongside drafts but instead of it.
So the only case where it increases the overhead is if you did not use draf=
ts,
in which case you should start using them, so no real downside there.
=20
Nir
_______________________________________________
Infra mailing list
Infra(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/infra
--=20
David Caro
Red Hat S.L.
Continuous Integration Engineer - EMEA ENG Virtualization R&D
Tel.: +420 532 294 605
Email: dcaro(a)redhat.com
Web:
www.redhat.com
RHT Global #: 82-62605
--CblX+4bnyfN0pR09
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAEBAgAGBQJVb/+wAAoJEEBxx+HSYmnDudoH/2jmZobGgBTcFvwhuhOnC02B
kblJcGOSUsjKlidbKmvJs/kp3fm3M+0CjmXpDq1lqKbdPECTTo+ZYx1uICE9YNPv
Xin4xJAgNhUaSRnQTcRTdy4m9iBKFTD+62fPerq+i9dWidpi2h0jhCIOEU9JONHj
cES3sQwNY6BZB3pMXHDXsWbyPkuVSpzrUQrQHbY/+a9w8f0q+1VP4l1f+wm9pRbg
uIxIHGj5IqRKR94fsY7HNbJ1b67DLAKlEfvifH0cJEBuD/uV2pgZn8+ovyQEBsRJ
PCc4HeiWRQE3siZfuXNeB7k0XgrEMCckQuzyoZAaA9+InRNVd7Fyy4wBn4ZyozA=
=M9LY
-----END PGP SIGNATURE-----
--CblX+4bnyfN0pR09--