Hello,
The DonationInterface as its own custom job. It is developed against the
master branch but is deployed using the "deployment" branch on a FORK of
MediaWiki 1.35 done under the fundraising/REL1_35 branch. To support
that unique workflow, Quibble (the MediaWiki test runner I wrote to
"simplify" CI) is given a branch override to have it checkout REL1_35 by
default instead of master and to use fundraising/REL1_35 for the project
having it. The job definition is at
https://gerrit.wikimedia.org/r/plugins/gitiles/integration/config/+/refs/heads/master/jjb/wm-fundraising.yaml#93
which when expanded would look something such as:
quibble --branch REL1_35
--project-branch
mediawiki/extensions/DonationInterface=master
--project-branch "mediawiki/core=fundraising/REL1_35"
--project-branch "mediawiki/vendor=fundraising/REL1_35"
mediawiki/vendor
mediawiki/extensions/DonationInterface
mediawiki/extensions/FundraisingEmailUnsubscribe
mediawiki/extensions/ParserFunctions
mediawiki/extensions/cldr
Thus if one sends a change to:
- mediawiki/core fundraising/REL1_35 we will checkout DonationInterface
master branch but cldr at REL1_35
- DonationInterface master, we checkout mediawiki/core
fundraising/REL1_35 but cldr at REL1_35
It is a bit complicated but luckily the jobs only need to be altered
when a new LTS is out, and usually it only implies bumping the version
of the REL branch and ensuring the fundraising/REL* branch has been
created on the repositories.
Antoine "hashar" Musso
Le 12/09/2022 à 16:54, Robert Vogel via Wikitech-l a écrit :
The "DonationInterface" has some "special handling" in the CI config:
https://github.com/wikimedia/integration-config/blob/d2ef596ea8f6972222c0920270939c1bf967e0be/zuul/layout.yaml#L4464-L4480
They apparently use some dedicated Quibble test runner:
https://github.com/wikimedia/integration-config/blob/d2ef596ea8f6972222c0920270939c1bf967e0be/jjb/wm-fundraising.yaml#L63-L76
I don't think this pattern can easily be re-used.
------------------------------------------------------------------------
*Von:* Ostrzyciel <ostrzycielnozyc...@gmail.com>
*Gesendet:* Montag, 12. September 2022 16:42
*An:* wikitech-l@lists.wikimedia.org <wikitech-l@lists.wikimedia.org>
*Betreff:* [Wikitech-l] Re: How to specify version of MW that Jenkins
should run?
Hi all,
I've been looking into a similar thing for a different extension,
where I wanted it to be compatible with MW 1.37+ (see task
<https://phabricator.wikimedia.org/T316479>). Basically, I want the
tests to run both on REL1_37 and master to make sure that whatever I
merge is compatible with 1.37. The cherry-picking approach is not a
valid solution, as it's tedious, error-prone, and I can never be sure
that the patch works with both branches.
I know of one extension that seemingly has something like this:
DonationInterface. For example, this master patch
<https://gerrit.wikimedia.org/r/c/mediawiki/extensions/DonationInterface/+/733965>
had its tests run against REL1_35.
Can something like this be replicated in other extensions? I think
it's a vital feature for extension developers, because compatibility
with only master is next to useless. To be honest, it boggles my mind
that this hasn't become common practice long ago.
--
The Slightly Mind-Boggled Ostrzyciel
On 12/09/2022 16:14, Robert Vogel via Wikitech-l wrote:
The continous integration testing currently uses the same branch fot
the "dependecies" as it tests. So if you create a change set on
branch `master`, it will use `master` for all the other repos (like
mw core, extensions, skins) it clones to build up the environment. I
am not aware of any way to influence this on a per repo level.
The only way I am currently aware of is to commit against a branch
called `REL1_35` of your extension and then cherry-pick the changes
up to `master`, once the tests have passed. This will make the CI
tests use the `REL1_35` branch of each dependency (including mw core).
--
Robert
_______________________________________________
Wikitech-l mailing list -- wikitech-l@lists.wikimedia.org
To unsubscribe send an email to wikitech-l-le...@lists.wikimedia.org
https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/