Gerrit/New repositories

This page is mainly about git repositories in general, but some of it is specific to Mediawiki Extensions as that is a very common use for a repository. All new extensions have Git repositories. If you want to be a Gerrit project owner (with +2 rights) of code that's already in Gerrit, use Gerrit/Project ownership. If you want to request an old SVN extension be moved to Git, ask here, and just mention the old repository in the comments.

Step 1: Get Git access
Access to Git is managed via Wikimedia Labs and integrated with Gerrit. You can get an account here.

There's information on Wikimedia Labs outlining how to access Wikimedia's Git installation once your account is setup.

Step 4: Request a Git repository
You'll be telling us your Wikimedia Labs username, what code review model you want, what paths in trunk/branches/tags you want, what you want the project name in gerrit to be (and by implication the path to the project in gerrit, e.g. mediawiki/extensions/MyAwesome), and (if this is an existing Subversion repository) giving us a link to your community consensus that you want to move to git. Click request, then fill in the fields on the page creation screen:

Step 5: Commit your files
Once you have some files, you can commit them and continue your work utilizing Git.

Step 6: Publish an extension page
To autocategorize and standardize the documentation of your existing extension, please see Template:Extension. To add your new extension to this Wiki:

(For libraries, see Manual:Developing libraries.)

Templates to use

 * Extension
 * WikimediaDownload
 * ExtensionInstall
 * Gitweb
 * MW file (used in the Manual)

Callsign
Your repository will also be browsable in Phabricator's diffusion tool. Diffusion uses a short "callsign" to refer to a repository, e.g. EMFR for the MobileFrontend extension at mediawiki/extensions/MobileFrontend.
 * While gerrit remains our git master, request that someone in create a diffusion callsign for your repo.
 * Until T110607 is addressed, someone must add a line to Module:Callsigns that maps your repo's project path in gerrit to its diffusion callsign.

Step 7: Continue development and enjoy!
You'll likely start to get reviews at this point for code style. You can get a jump on those by reading over coding conventions and security for developers, and making sure that your code follows these guidelines.

Find a couple of established MediaWiki hackers to look over your code and point out any flaws in it. For example, they may point you to another extension that is already in use whose functionality duplicates what you want, or could be easily extended to do what you want. In that case, you should work on the extension that is already available.

Getting notified of changes in your repository
Other people are probably going to want to submit patches to your repository, but it's not always easy to know when that happens. You can have new changes in your repository emailed to you by gerrit if you modify your Gerrit settings. If you want to be automatically added as a reviewer to each new patchset (or a subset by regex), add yourself to the Gerrit reviewer bot.