addwiki - monorepo
Addwiki is a collection of PHP libraries, packages and applications created for interacting with MediaWiki, Wikibase, Wikimedia and more., (*1)
To dive in take a look at the docs site., (*2)
If you want to submit code patches to any of the repositories, then this is the place to look!, (*3)
Packages
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., (*4)
Most popular:, (*5)
Behind the scenes:
- mediawiki-datamodel
- wikibase-datamodel, (*6)
Other WIP:, (*7)
Using the monorepo
monorepo-builder
This mono repo uses https://github.com/symplify/monorepo-builder, (*8)
This provides convenience scripts for a few things..., (*9)
Merge all composer.json files together with:, (*10)
composer merge
Bump the cross package dependency with:, (*11)
vendor/bin/monorepo-builder bump-interdependency "<version here>"
Validate your synchronization:, (*12)
composer validate-monorepo
Keep your package aliases up to date (not yet working), (*13)
vendor/bin/monorepo-builder package-alias
Testing & CI
Github Actions exist to split out packages as well as run tests on them., (*14)
Commands exist in each of the packages to run individual tests., (*15)
You can also run all tests from the main monorepo., (*16)
Run lint on all packages:, (*17)
composer lint
Run phpunit unit tests on a single package:, (*18)
vendor/bin/phpunit packages/mediawiki-api-base/tests/unit
Integration tests are facilitated by docker-compose-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., (*19)
docker compose -f docker-compose-ci.yml up -d --build
Wait for the wiki to be accessible, then run the tests:, (*20)
composer phpunit-integration