Wonderful, thank you, this should be very useful.

--
Amir Elisha Aharoni · אָמִיר אֱלִישָׁע אַהֲרוֹנִי
http://aharoni.wordpress.com
‪“We're living in pieces,
I want to live in peace.” – T. Moore‬

2015-11-19 15:19 GMT+02:00 Antoine Musso <[email protected]>:

> Hello,
>
> We often have the case of a change to an extension depending on a
> pending patch to MediaWiki core.  I have upgraded our CI scheduler -
> Zuul - a couple weeks ago and it now supports marking dependencies even
> in different repositories.
>
>
> Why does it matter?  To make sure the dependency is fulfilled one
> usually either:
>
> * CR-2 the patch until dependent change is merged
> * write a test that exercise the required patch in MediaWiki.
>
> With the first solution (lack of test), once both are merged, nothing
> prevent one from cherry picking a patch without its dependent patch.
> For example for MediaWiki minor releases or Wikimedia deployment branches.
>
> When a test covers the dependency, it will fail until the dependent one
> is merged which is rather annoying.
>
>
> Zuul now recognizes the header 'Depends-On' in git messages, similar to
> 'Change-Id' and 'Bug'.  'Depends-On' takes as parameter a change-id and
> multiple ones can be added.
>
> When a patch is proposed in Gerrit, Zuul looks for Gerrit changes
> matching the 'Depends-On' and verify whether any are still open. In such
> a case, it will craft references for the open patches so all the
> dependencies can be tested as if they got merged.
>
>
> Real world example
> ------------------
>
> The ContentTranslation extension is tested with the Wikidata one and was
> not passing the test.  Wikidata created a patch and we did not want to
> merge it until we confirm the ContentTranslation one is passing properly.
>
> The Wikidata patch is https://gerrit.wikimedia.org/r/#/c/252227/
> Change-Id: I0312c23628d706deb507b5534b868480945b6163
>
> On ContentTranslation we indicated the dependency:
> https://gerrit.wikimedia.org/r/#/c/252172/1..2//COMMIT_MSG
> + Depends-On: I0312c23628d706deb507b5534b868480945b6163
>
> Which is the Wikidata patch.
>
>
> Zuul:
> * received the patch for ContentTranslation
> * looked up the change-id and found the Wikidata
> * created git references in both repo to point to the proper patches
>
> Jenkins:
> * zuul-cloner cloned both repos and fetched the references created by
> the Zuul service
> * run tests
> * SUCCESS
>
> That confirmed us the Wikidata patch was actually fixing the issue for
> ContentTranslation. Hence we CR+2 both and all merged fine.
>
>
> Please take a moment to read upstream documentation:
>
>
> http://docs.openstack.org/infra/zuul/gating.html#cross-repository-dependencies
>
> Wikidata/ContentTranslation task:
> https://phabricator.wikimedia.org/T118263
>
>
> --
> Antoine "hashar" Musso
>
>
> _______________________________________________
> Wikitech-l mailing list
> [email protected]
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to