Skip to content

Monorepo containing all addwiki libraries, packages and applications


Notifications You must be signed in to change notification settings


Repository files navigation

addwiki - monorepo

Addwiki is a collection of PHP libraries, packages and applications created for interacting with MediaWiki, Wikibase, Wikimedia and more.

To dive in take a look at the docs site.

If you want to submit code patches to any of the repositories, then this is the place to look!


All packages exist in the /packages directory. Every package also exists in its own read only git repository, can be used separately and is installable via composer.

Most popular:

Behind the scenes:


Other WIP:

Using the monorepo


This mono repo uses

This provides convenience scripts for a few things...

Merge all composer.json files together with:

composer merge

Bump the cross package dependency with:

vendor/bin/monorepo-builder bump-interdependency "<version here>"

Validate your synchronization:

composer validate-monorepo

Keep your package aliases up to date (not yet working)

vendor/bin/monorepo-builder package-alias

Testing & CI

Github Actions exist to split out packages as well as run tests on them.

Commands exist in each of the packages to run individual tests.

You can also run all tests from the main monorepo.

Run lint on all packages:

composer lint

Run phpunit unit tests on a single package:

vendor/bin/phpunit packages/mediawiki-api-base/tests/unit

Integration tests are facilitated by docker-composer-ci.yml files which are currently kept in sync manually. The setup in the monorepo should work for all packages. Run it before running integration tests.

docker-compose -f docker-compose-ci.yml up -d --build

Wait for the wiki to be accessible, then run the tests:

composer phpunit-integration