新开发者

From mediawiki.org
This page is a translated version of the page New Developers and the translation is 89% complete.
Outdated translations are marked like this.

本页介绍了如何开始作为想要为 Wikimedia 技术项目做出贡献的开发人员。

欢迎!

Wikimedia Hackathon 2019 的参与者

维基媒体技术社群总是欢迎新的贡献。

成为全域社群的一员,帮助每个人更轻松地获取免费知识!

How to start contributing

The following steps are a general outline of how to get started contributing:

  1. Learn the basics of how Wikimedia open source software projects work.
  2. Read the Communication guidelines.
  3. Set up accounts: Create a developer account. Depending on the type of contribution you want to make, you may also need to set up accounts in Phabricator, and set up Git and Gerrit.
  4. 选择一个软件项目
  5. 选择并解决任务(编写和测试代码)
  6. 提交您的代码更改以便校对 Follow the Guide to getting your code reviewed and submit a patch.

The rest of this guide provides additional details about the process.

Basics of how Wikimedia software projects work

维基媒体在 许多不同领域 有软件项目。

每个软件项目的维护者都可以很自由地选择他们喜欢的基础结构。通常,大多数软件项目都具有:

  • 一种任务追踪工具,用于报告、管理和讨论软件bug和改进请求。例如Wikimedia Phabricator、GitHub或Wikimedia GitLab
  • 一个源代码库,源代码可以复制到每个人的代码存储库。例如Wikimedia Git/Gerrit、GitHub或Wikimedia GitLab
  • 一个代码检查工具,用于讨论和改进建议的代码更改(patches)。例如Wikimedia Git/Gerrit、GitHub或GitLab。一旦你之后提出的patch很好,并被合并到代码库中,你的代码更改将对每个人都可用。
  • 讨论软件项目和/或接受帮助和支持的场所。这些地方可以是邮件列表,或IRC聊天频道,或wiki页面,或其他地方。具体的位置取决于每个项目。

在任何时候,如果你遇到问题或需要帮助,请提问。 如果你想在合适的地方提出好的问题,我们建议你阅读“反馈、问题和支持”部分。

选择软件项目

以下项目提供资源、指导,并正在寻找新的开发人员为他们做出贡献。 选择下列项目之一,并按照项目的帮助文档配置您的开发环境,选择一个任务,解决该任务,并提交您的代码更改以供检查。 您可以自由地为这些项目或您感兴趣的与维基媒体相关的任何其他项目做出贡献。 Most can be found by searching for them on Phabricator or online.

Kiwix

Screenshot

An offline reader for people without internet access

适用于安卓的维基共享资源应用程序

Screenshot

适用于安卓设备的应用程序,用于将您的图片上传到维基共享资源

Wiki 教育仪表板

Screenshot

一个用于维基百科教育作业的web应用程序,为教师和学生提供数据和课程管理

Logo Pywikibot

Terminal

MediaWiki 网站上自动化工作 Python库和脚本集合。

Scribe

Scribe features

Scribe provides Wikidata based keyboards for second language learners. Features include translation, verb conjugation and noun-gender annotation. This project is very open to those who want to learn the needed languages and how to work with Wikidata!

Logo VideoCutTool

VideoCutTool

A tool to edit the videos on Wikimedia Commons.

您作为一名维护者,希望您的项目包含在上面的软件项目列表中吗? 了解更多并加入!

外联项目和单一任务

除了上面推荐的软件项目之外,还有更多方法可以选择要从事的项目或任务:

Logo 外展计划

维基媒体提供 Google Summer of Code 和 Outreachy 等项目的实习机会。

Logo 好的第一个任务

有许多单项任务(跨多个软件项目)适合新手。
但是,这些任务可能没有导师,并且您提出的补丁可能不会得到快速审核。

交流

这些技巧能让你有效地与他人沟通,得到社区中其他成员的帮助。

高效使用Phabricator任务

当您准备着手处理一个Phabricator任务时:

  • 无需请求许可: 您无需请求任何人将任务分配给您即可开始进行任务。 There is no authority who assigns tasks or who needs to be asked first.
    • If a task already has a recent patch in Gerrit, choose a different task to work on instead.
    • If an existing patch in Gerrit has not been merged and has not seen any changes for a long time, you could improve that existing patch, based on the feedback in Gerrit and in the task.
  • 自行研究: 当您考虑进行某个任务时,在开始敲代码前先研究一番。读过代码,理解这些代码本该达到什么目的,然后尽量找到应该作出修改的地方。
    • In a Phabricator task, use the project tags in the side bar to find the code repository for the task.
    • 如果您对修复某个漏洞的办法毫无头绪,考虑先找个更简单的。
  • You do not need to announce your plans before you start working on a task, but you should communicate that you are working on the task.
    • When you start work, set yourself as task assignee by clicking Edit Task… in Phabricator, and set your Phabricator username in the Assigned To field. This communicates to others that you are working on it, so they don't duplicate work.
    • When your plans or interests change: If you are no longer working on a task, remove yourself as the assignee of the task. This tells others that they can work on the task, and they won't expect you to still work on it.
  • 遵守Phabricator礼仪.
    • In Phabricator tasks, discuss only specific questions about the topic of that task. Don't use Phabricator to ask general questions, like how to set up a development environment or how to fix problems with Gerrit.

提出好问题

  • Be specific and provide context: Instead of simply asking "Can you give me more info?", "Please guide me", or "Please tell me how to start", include the following information in your question:
    • What are you trying to achieve?
    • What have you already tried? Copy and paste your commands and their output (if not too long) instead of paraphrasing in your own words.
    • What have you found out already during your research? Include links to code, documentation, or other resources you already consulted.
  • Use specific titles and subject lines in your communication. "Proposal draft" or "Need help" is not specific.
  • Keep conversations readable: When you reply in Zulip, in Phabricator tasks, or on mailing lists, only quote sections of previous comments that are relevant to your response. If you quote a complete previous comment, it makes threads hard to read.

Follow communication policies and best practices

Before you send or post your question:

Ask in the right place

  • Ask in public: Do not send private messages if your conversation topic is not secret.

Private messages don't help others.

  • Ask and discuss in the best place:
    • In Phabricator tasks, discuss only specific questions about the topic of that task.
    • Ask general technical questions, like how to set up a development environment or how to fix problems with Gerrit, in the places listed on 聯繫交流 .
    • If you take part in an outreach program, then Zulip is for discussing questions about the outreach programs themselves.

Be patient

After you post your question:

  • Do not ask people for code review in a separate message. People receive Gerrit and Phabricator notifications and will respond when they can.
  • When seeking input and comments, especially during weekends and holidays, you may need to wait until business hours resume. On chat channels like IRC: if nobody answers, try again at a different time; don't just give up!
  • If you don't get an answer even after waiting and being patient, consider if other Communication channels might be a better place to ask your question.

附加提醒

  • 如何贡献列出了许多贡献方式,其中也包括非技术领域,包括了文档、测试等领域。
  • 如何成为 MediaWiki 黑客:适用于希望在 MediaWiki 核心或 MediaWiki 扩展上工作的开发人员。
  • 开发者中心:为已有的维基媒体开发者提供更多资源。
  • 要提出您的问题并加入一般性讨论,请查看 Communication 上列出的位置。
  • Wikimedia tutorials:教程索引,包含 Wikimedia 技术堆栈中的各种语言、API 和框架。