The first step for getting T117411 going is to create a well-structured
extension skeleton that can serve as a good foundation for the development
work.
This means:
- an extension.json file
- an i18n/ subdirectory with qqq.json / en.json
- .jscsrc / jsduck.json / .jshintrc
- a tests/ directory with at least:
- one dummy PHPUnit test
- one dummy QUnit test
- an appropriate license
- a stub page on mediawiki.org
- configure CI - https://gerrit.wikimedia.org/r/256199
- CI entry points
- npm test (banana i18n checker, jshint, jsonlint...)
- composer test (phplint)
- two ResourceLoader modules:
- one which draws an interface element that activates the interface by mw.loader.using()-ing the second module
- the main module itself.
For guidance, Manual:Developing extensions is a good place to start. If you need an example, have a look at the MassMessage extension.
A reference repo is BoilerPlate extension.
CI entry points are listed at https://www.mediawiki.org/wiki/Continuous_integration/Entry_points