After following all of the steps from DEVELOPERS.md
described in installing
MediaWiki-Docker, it is time
to install the extensions and skins that the Web team uses most often.
-
Install
git-review
https://www.mediawiki.org/wiki/Gerrit/Tutorial#Prepare_to_work_with_Gerrit. It can be helpful command line tool to interact with gerrit. When done installing, make sure you follow the steps to configure gerrit. -
From your
mediawiki
root folder run:
gerritUserName=$(git config gitreview.username)
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/skins/Vector" skins/Vector
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/skins/MinervaNeue" skins/MinervaNeue
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/extensions/Cite" extensions/Cite
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend" extensions/MobileFrontend
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/extensions/Echo" extensions/Echo
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/extensions/Popups" extensions/Popups
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/extensions/UniversalLanguageSelector" extensions/UniversalLanguageSelector
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/extensions/EventLogging" extensions/EventLogging
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/extensions/EventBus" extensions/EventBus
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/extensions/EventStreamConfig" extensions/EventStreamConfig
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/mediawiki/extensions/WikimediaEvents" extensions/WikimediaEvents
git clone "ssh://${gerritUserName}@gerrit.wikimedia.org:29418/schemas/event/secondary" extensions/secondary
-
Next, you'll find a LocalSettings.php file in this repo that you can put in your
mediawiki
root directory to configure these properly. This file also contains config that generally makes the development workflow easier while on the Web team. -
Run the update script to update the database:
docker-compose exec mediawiki php maintenance/update.php
- Populate your database with interwiki prefixes to make languages appear as they are in production.
docker-compose exec mediawiki php maintenance/populateInterwiki.php
If everything goes to plan, you should be on your way! π
Note: You will also find an update script in this repo which can be used
to update MediaWiki core and all of its extensions and skins which you might
find useful. Run it from the root of your mediawiki
folder. π
The EventLogging extension and the event logging platform in general are a bit more complicated to setup than the rest of the extensions.
https://www.mediawiki.org/wiki/Extension:EventLogging/Guide, https://wikitech.wikimedia.org/wiki/Event_Platform/Instrumentation_How_To, and https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/EventLogging/+/refs/heads/master/devserver/README.md will be your best source of general documentation on event logging.
To see events locally, follow these steps:
- In
extensions/EventLogging/devserver/eventgate.config.yaml
, replace the line where it sayshttps://schema.wikimedia.org/repositories/secondary/jsonschema
with../secondary/jsonschema
to make it point to your local schemas instead of the production schemas. That will eventually be necessary when you do development work involving schemas. - Per the docs, run
npm i
from the EventLogging extension root folder. If you get a404 phantomjs error
, you can try pinning phantomjs to a specific version by runningnpm install [email protected] --ignore-scripts
. After installing, runnpm run eventgate-devserver
to get the eventgate-devserver running. - The sdout from the eventgate-devserver lets you see the events it receives. To check if it is working, you can login to your local account. Once logged in to your local account, go to preferences -> Appearance -> Toggle the "Use Legacy Vector" checkbox. You should see events in the eventgate-devserver's output if it is working.