While the previous ways to contribute were some that don't require technical expertise, the following do. If you know how to help out technically, you're more than welcome to!
- Help on GitHub
Miraheze hosts all of its configurations in a GitHub config repo (see this page for additional info). Whenever a change needs to be done, these configuration files are updated. When these configurations are updated in any of the repositories hosted on GitHub, the changes are automatically deployed to the servers hosting Miraheze. Historically, feature changes were done by sending a request on the Request features page or by adding a GitHub merge request. This is no longer the case, you can do most configuration changes on ManageWiki. That doesn't mean you can't help out on GitHub though, it's not rocket science!
Anyone with a GitHub account (available for free) is able to propose file changes.
- Guidelines & Tips
Most of this section (except for a little at the end) is easy to understand. It uses nested arrays to apply settings to all wikis by default, or some wikis as coded.
The basic nesting layout is as follows:
- Define namespace variables (close to the start, after includes)
- wgConf (largest array)
- Setting name (in the form of 'wgVariable' or 'wmgVariable')
- Wiki's affected (in the form of 'dbname' or 'default' where dbname is the site's subdomain with "wiki" added to the end)
- Setting value (the values to set. Can be a number, true/false, or an array, depending on the setting.)
Some of the easier things to do is enabling extensions that are already installed (See the section of wgConf called extensions, which follows the format above where "Setting name" will be something like 'wmgUseExtension' where Extension is the name of the extension to enable.
Note:Some extensions require additional setup to work. In that case, a system administrator will handle the change.
- Installing a new extension or skin
Anyone can propose changes to the Miraheze/mediawiki repo. To install a new extension or skin not already installed (not enable one on a wiki), please see Adding a new extension.
- Help out internally
Miraheze runs on Debian and uses a multitude of servers. Our server configuration is managed by Puppet, and we work with various kinds of technologies. We use MediaWiki with Apache, GDNSD, MariaDB, nginx and Varnish to power the web stack. If you are familiar with one or more of the software mentioned above, we would love to hear about your experience! Extra help is always welcome, and even the smallest improvements (fixed bugs/performance, etc.) for you, can be a big improvement for us. Please get in touch with the System administrators if you would like to contribute in this area or simply make a Phabricator task for it.