You can skip this section if you are already used to free and open source software culture.
Wikimedia has hundreds of software projects in many different areas. Check these slides if you want to get an overview.
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. You could also contact specific mentors via "Email this user" on their user pages, but note that "questions asked in private don't help others".
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".
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:
An offline reader for Wikipedia web content
- Translation and language assets: Speak and write any non-English Language
- 后端开发： Python, Redis, Postgress
- Modeling: Python, Scikit-learn
- 扩展： PHP (mediawiki), MariaDB
- 取得联系： 电子邮件列表 / Chat in 连接 on irc.freenode.net
- 获取源代码： wiki-ai/ores, wiki-ai/revscoring, wiki-ai/wikilabels
- 检查建议执行的任务： Phabricator
- 导师： Aaron Halfaker & Adam Wight
- 所需技能： Python, Django
- 取得联系： 连接 on irc.freenode.net / wikipedialibrarywikimedia.org
- 获取源代码： GitHub
Are you a maintainer and want your project to be included in the list of software projects above? Find out more and join!
Apart from the recommended software projects above, there are more ways to choose a project or task to work on:
And if you are a high school student, you can participate in Google Code-in.
However, you are more on your own here: We cannot guarantee that mentors are available or that your proposed patches will receive fast reviews.
- How to become a MediaWiki hacker: For potential new developers who want to specifically work on MediaWiki core or MediaWiki extensions.
- Developer hub: Resources to more documentation and information for established Wikimedia developers.
- For real-time communication use 连接 on IRC (Internet Relay Chat)
- There are also several email lists for discussion of Wikimedia software.