这个页面将助你迈出向 Mozilla 贡献的第一步。欢迎你，我们很高兴见到你！:)
- 如果您精通C++, 那么您可以为Firefox的核心层、Firefox OS 或者其他的Mozilla产品贡献代码;
- 如果您精通Java, 那么我们推荐Firefox Mobile领域;
- 如果您熟悉 Python，您可以助力我们的 Web 服务，包括 Firefox 同步和 Persona。
- 如果您熟悉Make, shell, Perl或者Python, 请关注我们的编译系统;
- If you know C, you can contribute to a number of low-level and third-party libraries that we use as part of the Mozilla codebase.
- 当然，除了编程，还有其他多种途径可以为Morzilla做出贡献。如果您希望在设计，服务支持，语言翻译，测试，等其他方面做出贡献，请点击Volunteer Opportunities page.
步骤 1 - 构建 Firefox、Firefox OS、Thunderbird 或其它应用程序
步骤 2 - 找些事情做做
Fix your pet peeve
If there's something you'd like to fix about Firefox, Thunderbird, or your other favorite Mozilla application, this can be a good place to start. There are a number of ways to do this:
- Search bugzilla for relevant keywords.
- Figure out the bugzilla component in which your pet peeve is implemented, using the components list. Browse that component on bugzilla for related bugs.
- Ask in #introduction or #developers on irc.mozilla.org.
Find a bug we've identified as being good for newcomers
Mozilla developers label certain bugs as being an easy bug to get newcomers acquainted with our processes:
- Mentored bugs (or the alternative, less usable interface) have a mentor who commits to helping you every step of the way. Generally, there should be enough information in the bug to get started. Whenever you need help, contact the mentor over IRC, in the bug itself, or by email. When you've completed the bug, they will help you get your code into the tree.
- "Good" first bugs may be a little stale, but at some point in their lives we considered that they would be a good first step for newcomers to Mozilla. We are in the process of migrating these bugs to mentored bugs, but more recent "good first bugs" may be good starting points if there are no appropriate mentored bugs.
- Student Projects are larger projects, such as might be suitable for a university student for credit. Of course, if you are not a student, you should still feel free to fix one of these bugs. We maintain two lists, one for projects based on the existing codebase and one for implementing new applications.
步骤 3 - 修复 Bug
We leave this in your capable hands. We have some resources to help you here too:
- Ask for help in a comment on the bug, or in #introduction or #developers
- Check out https://developer.mozilla.org/En/Developer_Guide
步骤 4 - 审查您的代码
Once you fix the bug, attach a patch to the bug and ask for review. Do this by clicking the Details link on your attachment, then setting the review flag to ? and entering the reviewer's bugzilla ID in the text field that appears (either their email address or the :UniqueName they provide). It is very important to attach a bugzilla ID, or the request will be missed. So how do you figure out the right person to ask for a review?
- If you have a mentored bug, ask your mentor; they will know or can find out easily.
hg blameand look at the people who have touched the functions you've worked on - they will be a good candidate.
- The bug itself may contain a clear indication of the best person to ask for a review.
- Are there related bugs on similar topics? In that case, the reviewer in those bugs might be a good choice.
- We have an out of date list of modules which lists peers and owners for the module, some of whom will be a good reviewer. In the worst case, set the module owner as the reviewer, and ask them in the comment to pick someone better if they don't have time.
Step 4b - Follow it up
If you've asked for review, but the reviewer hasn't said anything for a few days, don't be afraid to ping them. Just add a comment to the bug saying 'review ping?', and another a few days later if they still haven't responded. If they don't respond after that, ask for help in #introduction or #developers.
步骤 5 - Respond to the review
Often, a reviewer will ask for changes, perhaps minor, perhaps major. In either case, fix what the reviewer asks for; if you're unsure how, be sure to ask! Attach the new patch to the bug again, and ask for review again from the same reviewer. If they give you an r+ that means that your bug is accepted into the tree!
步骤 6 - Actually get the code into the tree
Since you don't yet have the ability to push the code into the tree, you should ask somebody for help. If you have a mentor, ask them. If not, ask the reviewer. If the reviewer is too busy, mark that a commit is needed by adding the checkin-needed keyword. A friendly person should be along within a few days and push the code to the repository, and they will mark the bug as fixed.
步骤 7 - 重复以上的步骤
Congratulations, you've fixed your first bug. Now go back to step 3 and repeat. Now that you've got your first bug in, you should request level 1 access to the repository so that you can push to the tryserver and get automated feedback about your changes on multiple platforms. After fixing a nontrivial number of bugs, you should request level 3 access so that you can push your own code after it has been r+ed.
We're in the process of improving information on this page for newcomers to the project. We'll be integrating some information from these pages soon, but until then you may find them interesting in their current form: