For our Open Source work, the Wikimedia Foundation (and the community) received a number of licenses for the All Products Pack of JetBrains (in doing it, we're thanking JetBrains for the support of our projects). The licenses allows an attached user to use all JetBrains desktop products, as described on the JetBrains website (Get access to all desktop products including IntelliJ IDEA Ultimate, ReSharper Ultimate and other IDEs). If you use a JetBrains product (such as the IntelliJ IDEA Ultimate or PhpStorm) to contribute open source code for MediaWiki or MediaWiki extensions, please consider requesting a license key from one of the account administrators.
How do I get a license?Edit
For staff, see https://office.wikimedia.org/wiki/JetBrains.
To request a license, simply write an e-mail or contact one of the account administrators via IRC:
- Sam Reed (reedy in connect, sreed [AT] wikimedia [DOT] org)
- Florian Schmidt (FlorianSW in connect, florian.schmidt.stargatewissen [AT] gmail [DOT] com)
You'll get an e-mail with an invitation link for one of our licenses which, when clicked, will connect a license with your JetBrains account (if you don't have one yet, you'll need to create one). Please note that we have a limited number of licenses only, and even if we're sure that you can get a license, we want to make sure that the people who actively contribute code to one of our projects can benefit from the license. This means that we'll check if you're an active contributor to one of our projects before sending you an invitation link. There are no big things you need to accomplish (such as a specific amount of changes per day or something else, that would be ridiculous, as we're thankful for anything you do for our projects!). However, if you've never contributed code to our projects or your last change was a reasonable time ago (e.g. over a year or so), we may ask you some questions (e.g. "Why do you want a license?"). But don't hesitate and simply ask us if you can get a license :)
What product should I use?Edit
Like mentioned above, the MediaWiki open source project owns licenses for the All products pack of JetBrains, which includes all desktop products (like PhpStorm, IntelliJ IDEA Ultimate, Webstorm and so on). Some products share some functionality, so it can be difficult to choose the correct product. You probably heard from this page because someone suggested you to use PhpStorm. Even if this isn't false, and PhpStorm is a good product, we would like to encourage you to choose the IntelliJ IDEA Ultimate, which includes some more features and language support compared to PhpStorm. If you plan to contribute to projects other than the PHP-based ones in MediaWiki, it probably would be a benefit, that you already use the "non-plus-ultra" product. However, as all products are included anyway, you can choose the product you like the most, if you have one.
If you wish to test the bleeding edge features, as IntelliJ IDEA Ultimate and other standalone products have separate release rhythm, to install separately PhpStorm or WebStorm can have benefits.
MediaWiki code styleEdit
With this, you can auto-format your code to conform to the standards. To do this, select "Reformat Code" from the Code menu.
Code sniffer integrationEdit
You can also integrate PHP Codesniffer (PHPCS) into PhpStorm and similar products, so that phpcs errors will be shown in real-time. Assuming you're working within the root of the core MediaWiki project (from which you can also work on extensions):
- Go to Settings > Languages & Frameworks > PHP > Code Sniffer.
- Next to "Configuration" click on the "...", opening up the Code Sniffer panel.
- Click on "...", and browse to the vendor/bin directory and select phpcs. Click on "Validate" to ensure the binary loads properly.
- Go to Settings > Inspections and look for "PHP Code Sniffer validation" under PHP.
- Select "Custom" as the "Coding standard", then from "..." choose the ruleset.xml file that's located in vendor/mediawiki/mediawiki-codesniffer/MediaWiki.
MediaWiki-Vagrant users specificEdit
This replaces step 3 from the section above.
- Create a code sniffer configuration by clicking on "+" in the Code Sniffer panel.
- Select the Remote PHP interpreter as setup for MediaWiki-Vagrant, check Manual:How to debug/with MediaWiki-Vagrant and PHPStorm and MediaWiki-Vagrant/Advanced usage#PhpStorm if you haven't yet.
- Select /vagrant/mediawiki/vendor/bin/phpcs as the PHP Code Sniffer path.
Using PHPStorm with a test serverEdit
Connect with [WinScp]
There's a third-party plugin for downloading and reviewing Gerrit changes, https://plugins.jetbrains.com/plugin/7272-gerrit. To configure, go to Settings -> Version control -> Gerrit, and set:
- Web-URL: https://gerrit.wikimedia.org/r/
- Login: your Gerrit username, e.g. "awight"
- Password: your HTTPS password for Gerrit
- Be sure to check "List all Gerrit changes", otherwise you will encounter a 414 error when the plugin tries to download all available projects in one request.