Welcome to Wikimedia Labs! Wikimedia Labs is a virtualization cluster and hosts various virtual machines (called instances) using OpenStack Compute. Each instance runs inside a physical machine called the host machine.
If you are unsure about what to do next after visiting this site, this page will walk you through getting you started on Wikimedia Labs and start your development work!
- 1 Create a User Account
- 2 Upload your SSH key
- 3 Projects
- 4 Project Instances
- 5 Log your actions
- 6 Read the documentation and rules
- 7 Git committers
- 8 Further help
Create a User Account
If you haven’t done so, create a user account on this wiki for yourself. This account allows you to :
Upload your SSH key
Wikimedia Labs and Wikimedia Code Review use an SSH key to authenticate you. If you already have an SSH key you can use that one, or generate a new one specifically for Wikimedia use; the default public key name generated by ssh-keygen is typically id_rsa.pub.
to Wikimedia Labs
Upload your SSH key to Wikimedia Labs. You can do so under the OpenStack tab in your Preferences.
to Wikimedia's Gerrit (Code Review)
Upload your public key to Gerrit (Wikimedia's code review tool).
- “Sign In” with your Wikimedia Developer Account
- Click “Settings” link in drop down menu under your username at page top right
- Click “SSH Public Keys” in left sidebar
- Paste your public key into the text field and click “Add” button. Thereafter, the form presents "Add key ..." button instead, for if you have more keys you want to add.
In order to work on Wikimedia Labs projects you need to be assigned to them. By default, you have access to the bastion project so that you can view all the other instances in Wikimedia Labs, however, you need to be assigned to a project in order to work with its instances.
- Find the project you wish to join. This is either Tool Labs or a specific project someone else you already know is working on, so they can tell you :)
- If you want to Join Tool Labs, fill out an access request.
- If you want to join another project, ask a project admin on that project. You can find the list of project admins by going to https://wikitech.wikimedia.org/wiki/Nova_Resource:<project-name> and looking at the sidebar.
- The project admin can go to Special:NovaProject and add people by clicking the 'add member' link.
If you need to create a new project for your development work, either drop by our IRC channel ( #wikimedia-labs channel on Freenode ) to ask for it, email the labs-l mailing list, or see the "New Labs project requests" phabricator task.
To create instances within a project, see Help:Instances
Access Project Instances
Using Agent Forwarding
from your local computer
eval `ssh-agent` ssh-add ~/.ssh/your_key_file_for_labs ssh -A <username>@bastion.wmflabs.org #once in bastion ssh <instancename>.eqiad.wmflabs #or ssh <instancename>
Generally, using the ProxyCommand ssh option would allow you to directly connect to your instance, skipping the portion about having to login to the bastion host and then logging in to your instance. If you have followed the steps given to set up the ProxyCommand ssh option, then this is the general command to use to login to your instance in the Terminal:
from your local computer
See Help:Putty for using PuTTY with Windows.
Create Project Instances
Configure Project Instances
Log your actions
Wikimedia Labs provides a Server Admin Log which all users can log their project server administration actions on. You can add a log entry in the #wikimedia-labs connect channel on Freenode by using the following command:
!log <projectname> <message>
It's best to log all changes to the instances in your project. Doing so makes it easier for others to follow your progress, and to more easily join your project and help out. See Tool:Stashbot for more information.
Read the documentation and rules
- Help:Contents - help table of contents
- Help:Access - contains information on how to access lab instances
- Help:Rules - rules you need to follow when using Wikimedia Labs
- MediaWiki SQL database schema
If you are just simply getting an account for committing into Gerrit, read some detailed documentation about it
- Help:Git - (somewhat) complete documentation of using Gerrit
- Git workflow - A lengthy page detailing all aspects of committing into Gerrit and using it.
- Help:Git rebase - Because the importance of using fetch and rebase (instead of pull or merge) can't be over-emphasized.