|This page is currently a draft.
More information and discussion about changes to this draft on the talk page.
This page is meant to be a simple and guided landing page for new developers. It is part of the Onboarding new developers initiative of the Technical Collaboration team and part of revising our documentation focusing new developers.
You want to work on Wikimedia code and need ideas where to start?
Wikimedia's technical community always welcomes new contributors to our projects.
Become part of a global community and help making access to free knowledge easier for everybody!
Contributing to Wikimedia is a four-step process:
- Choose a software project
- Set up your development environment
- Choose and solve a task (write and test your code)
- Submit your code changes
Some basics to know
You can skip this section if you are already used to free and open source software culture.
The maintainers of each software project are pretty free to choose the infrastructure they prefer. In general, basically all software projects have
- a task tracking tool where software bugs and enhancement requests are reported, managed and discussed. Examples are Wikimedia Phabricator, GitHub, or Sourceforge.
- a code repository where the source code can be "checked out" to everybody. Examples are Wikimedia Git/Gerrit, GitHub, or Sourceforge.
- a code review tool where proposed code changes (so-called patches) get discussed and improved. Examples are Wikimedia Git/Gerrit, GitHub, or Sourceforge. Once your proposed patch is good and is merged into the code repository, your code changes will become available to everybody. (You could read more about good practices for code review here.)
- general places for discussion of the software project and/or for receiving help and support. Those places can be mailing lists or IRC chat channels or wiki pages or other places. The exact places depend on each project.
At any point, if you run into problems or need help, please ask. If you want to ask good questions in the right places, we recommend you read the section "Feedback, questions and support".
Choose a software project
This is the recommended way to start. Choose one of the following projects and follow the project's documentation to set up your development environment, choose a task to work on, solve the task, and submit your code changes for review:
Are you a maintainer and want your project to be included in the list of software projects above? Find out more and join!
Outreach programs and single tasks
Apart from the recommended software projects above, there are more ways to choose a project or task to work on:
Looking for additional resources?
- How to become a MediaWiki hacker: A longer version with more information and many links for potential new developers
- Developer hub: Resources to more documentation and information for established Wikimedia developers
Want to contribute something else?
- How to contribute lists many more ways to contribute, also in non-technical areas.