Hello Mobile!
Fairly recently, a code cleanup in Mantle caused a back compatibility issue with several other extensions such as MobileFrontend and ZeroPortal. It could have been caught if, when the Mantle patch has been proposed, we had Jenkins to run the tests of the other extensions.
Over the summer I wrote code that supports testing extensions together and I wrote an RFC which got approved [RFC] I am now looking for extensions to tests together and the mobile related ones seems to be good candidate.
If you agree, I will craft a Jenkins job that clones:
- Mediawiki core + Vendor - JsonConfig - Mantle - MobileApp - MobileFrontend - WikiGrok - ZeroBanner - ZeroPortal
And run the MediaWiki PHPUnit test suite. The new job, will be triggered for changes made on any of those repositories and be non voting while it is being refined. Once we are happy about it, I would remove the '-testextension' jobs and make it voting.
Next, we can reuse the same logic for -qunit and -qunit-mobile jobs and ends up with well integrated set of repositories.
The evil plan for next year, is to extend that to all extensions deployed on the Wikimedia cluster.
Crazy?
[RFC] tis a long read https://www.mediawiki.org/wiki/RFC/Extensions_continuous_integration
Epic! This would be great :-)
Just do it! :)
On Tue, Dec 9, 2014 at 10:13 AM, Federico Leva (Nemo) nemowiki@gmail.com wrote:
Antoine Musso, 09/12/2014 16:09:
The evil plan for next year, is to extend that to all extensions deployed on the Wikimedia cluster.
Crazy?
No, feasible!
Nemo
Mobile-l mailing list Mobile-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mobile-l
Adding Echo and Thanks is probably also a good idea.
On Tue, Dec 9, 2014 at 10:43 AM, Jon Robson jrobson@wikimedia.org wrote:
Epic! This would be great :-)
Just do it! :)
On Tue, Dec 9, 2014 at 10:13 AM, Federico Leva (Nemo) nemowiki@gmail.com wrote:
Antoine Musso, 09/12/2014 16:09:
The evil plan for next year, is to extend that to all extensions deployed on the Wikimedia cluster.
Crazy?
No, feasible!
Nemo
Mobile-l mailing list Mobile-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mobile-l
Hi,
This hasn't happened yet since I am working on adding hhvm based jobs for mediawiki extensions.
I will try to get a rough job by the end of the week to at least gather some feedback early on.
Antoine
Le 09/12/2014 16:09, Antoine Musso a écrit :
Hello Mobile!
Fairly recently, a code cleanup in Mantle caused a back compatibility issue with several other extensions such as MobileFrontend and ZeroPortal. It could have been caught if, when the Mantle patch has been proposed, we had Jenkins to run the tests of the other extensions.
Over the summer I wrote code that supports testing extensions together and I wrote an RFC which got approved [RFC] I am now looking for extensions to tests together and the mobile related ones seems to be good candidate.
If you agree, I will craft a Jenkins job that clones:
- Mediawiki core + Vendor
- JsonConfig
- Mantle
- MobileApp
- MobileFrontend
- WikiGrok
- ZeroBanner
- ZeroPortal
And run the MediaWiki PHPUnit test suite. The new job, will be triggered for changes made on any of those repositories and be non voting while it is being refined. Once we are happy about it, I would remove the '-testextension' jobs and make it voting.
Next, we can reuse the same logic for -qunit and -qunit-mobile jobs and ends up with well integrated set of repositories.
The evil plan for next year, is to extend that to all extensions deployed on the Wikimedia cluster.
Crazy?
[RFC] tis a long read https://www.mediawiki.org/wiki/RFC/Extensions_continuous_integration
Le 16/12/2014 18:18, Antoine Musso a écrit :
Hi,
This hasn't happened yet since I am working on adding hhvm based jobs for mediawiki extensions.
I will try to get a rough job by the end of the week to at least gather some feedback early on.
Antoine
So I gave it a try today and already found bugs. The job test results:
https://integration.wikimedia.org/ci/job/mediawiki-phpunit-integration-hhvm/...
The mwcore ResourcesTest fails because MobileFrontend resource loader definition apparently depends on VisualEditor. We have test for that in mwcore under the 'structure' test suite but it is not run for extensions. Filled a bug for it:
https://phabricator.wikimedia.org/T78798
There are some others tests failing pending investigation. Any help welcome :-]
Could you elaborate? The MobileFrontend extension should not depend on VisualEditor and if it does that's a bug...
On Wed, Dec 17, 2014 at 8:34 AM, Antoine Musso hashar+wmf@free.fr wrote:
Le 16/12/2014 18:18, Antoine Musso a écrit :
Hi,
This hasn't happened yet since I am working on adding hhvm based jobs for mediawiki extensions.
I will try to get a rough job by the end of the week to at least gather some feedback early on.
Antoine
So I gave it a try today and already found bugs. The job test results:
https://integration.wikimedia.org/ci/job/mediawiki-phpunit-integration-hhvm/...
The mwcore ResourcesTest fails because MobileFrontend resource loader definition apparently depends on VisualEditor. We have test for that in mwcore under the 'structure' test suite but it is not run for extensions. Filled a bug for it:
https://phabricator.wikimedia.org/T78798
There are some others tests failing pending investigation. Any help welcome :-]
-- Antoine "hashar" Musso
Mobile-l mailing list Mobile-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mobile-l
Le 19/12/2014 00:27, Jon Robson a écrit :
Could you elaborate? The MobileFrontend extension should not depend on VisualEditor and if it does that's a bug...
Hello,
I tried running the tests using the following extensions together:
- JsonConfig - Mantle - MobileApp - MobileFrontend - WikiGrok - ZeroBanner - ZeroPortal
Which yields two failures:
ResourcesTest::testMissingDependencies The module 'ext.visualEditor.mobileViewTarget' required by 'mobile.editor.ve' must exist Failed asserting that an array contains 'ext.visualEditor.mobileViewTarget'.
ResourcesTest::testUnsatisfiableDependencies Undefined index: ext.visualEditor.mobileViewTarget
https://integration.wikimedia.org/ci/job/mediawiki-phpunit-integration-hhvm/...
Both solved when adding VisualEditor to the loop. The RL dependency is indeed in MobileFrontend:
cd MobileFrontend $ git grep -n ext.visual includes/Resources.php:352: 'ext.visualEditor.mobileViewTarget',
Ahh I would say that's a bug. These should only be added conditionally. Task created, thanks for letting us know! https://phabricator.wikimedia.org/T85007?workflow=create
On Fri, Dec 19, 2014 at 1:54 AM, Antoine Musso hashar+wmf@free.fr wrote:
Le 19/12/2014 00:27, Jon Robson a écrit :
Could you elaborate? The MobileFrontend extension should not depend on VisualEditor and if it does that's a bug...
Hello,
I tried running the tests using the following extensions together:
- JsonConfig
- Mantle
- MobileApp
- MobileFrontend
- WikiGrok
- ZeroBanner
- ZeroPortal
Which yields two failures:
ResourcesTest::testMissingDependencies The module 'ext.visualEditor.mobileViewTarget' required by 'mobile.editor.ve' must exist Failed asserting that an array contains 'ext.visualEditor.mobileViewTarget'.
ResourcesTest::testUnsatisfiableDependencies Undefined index: ext.visualEditor.mobileViewTarget
https://integration.wikimedia.org/ci/job/mediawiki-phpunit-integration-hhvm/...
Both solved when adding VisualEditor to the loop. The RL dependency is indeed in MobileFrontend:
cd MobileFrontend $ git grep -n ext.visual includes/Resources.php:352: 'ext.visualEditor.mobileViewTarget',
-- Antoine "hashar" Musso
Mobile-l mailing list Mobile-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mobile-l
Hello,
A month after this announcement and after a year worth of work, the new jobs have been deployed!
I have crafted two new jobs:
* mediawiki-phpunit-hhvm * mediawiki-phpunit-zend
Which are triggered whenever a patch is proposed to the repos:
mediawiki/core mediawiki/vendor
Or the extensions:
Echo JsonConfig Mantle MobileApp MobileFrontend VisualEditor WikiGrok ZeroBanner ZeroPortal
The jobs clone all of those repositories and run the MediaWiki core extension test suite, ie:
cd tests/phpunit php phpunit.php --testsuite extensions
They are NOT run on old branches (REL1_19, REL1_22, REL1_23, REL1_24), the old jobs are.
They are run (and pass) on master and wmf branches and will on future REL branch (ie REL1_25).
Side effect: if one deprecate a function/method in mediawiki/core and it is used by one of the extensions above, the job will fail until the extensions have been updated adjusted.
I hope to add more extensions to that list and also craft a command that would let one verify whether an extension is a good candidate for inclusion.
Will announce on wikitech-l.