Add-ons/Contribute/Code: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
 
(29 intermediate revisions by 4 users not shown)
Line 1: Line 1:
We love contributions to the addons.mozilla.org (AMO) codebase! We have a formal onboarding process to ensure you are getting the most out of your experience, and to help you work well with other staff and volunteer developers.
We love code contributions to the add-ons ecosystem! Below you'll find ways to contribute code, and information on the onboarding process. Onboarding helps ensure you are getting the most out of your experience working with other staff and volunteer developers. Once you're familiar with the dev environments, please pick a "Good First Bug" to get started.


=Steps to Onboard=
=Step 1: Create some accounts=
 
==Step 1: Create some accounts==
Please create accounts on the following sites, if you haven't already:
Please create accounts on the following sites, if you haven't already:
*https://bugzilla.mozilla.org/
*https://bugzilla.mozilla.org/
**Be sure to set a [:nick] for your account, for example your IRC nick. Go to https://bugzilla.mozilla.org/userprefs.cgi?tab=account and in the "Your real name" field, add it next to your name. Example: Amy Tsay [:amyt]
**Be sure to set a [:nick] for your account, for example your nickname on Matrix. Go to https://bugzilla.mozilla.org/userprefs.cgi?tab=account and in the "Your real name" field, add it next to your name. Example: Andreas Wagner [:theone]
*http://github.com
*https://github.com


==Step 2: Tell us a little about yourself==
=Step 2: Tell us a little about yourself=
Please fill out a [https://docs.google.com/a/mozilla.com/forms/d/1u5D7kVzuu7FMi7WKk6xL_4D8EX1MJN_CHh_5gjKEKLY/viewform short survey] so we can better connect you to the right opportunities.
Please fill out a [https://docs.google.com/a/mozilla.com/forms/d/1u5D7kVzuu7FMi7WKk6xL_4D8EX1MJN_CHh_5gjKEKLY/viewform short survey] so we can better connect you to the right opportunities. We may reach out to you if there is a particular project that fits your skills, but in the meantime please move on to step #3.


==Step 3: Familiarize yourself with the on-boarding materials==
=Step 3: Decide how you'd like to help=


# [http://mozweb.readthedocs.org/en/latest/ Webdev Bootcamp]
==Improve add-ons in Firefox==
# [http://olympia.readthedocs.org/en/latest/ Setting up the development environment]
Add-ons make Firefox the most extensible browser available. Your contributions help support user freedom!
# [https://docs.google.com/document/d/1EFE6beSAxcR5SHhx6nrNMjQiLBeIrohyEZD5B1FMsl8/edit GitHub Best Practices]
# [https://docs.google.com/document/d/1s5PuZB-YkK6iP-e3u_QrUzAQUQbsWpvVnuHudA9E6BA/edit Working with AMO developers]


==Step 4: Set up a development environment on your local machine==
=====Contribute to WebExtensions APIs=====
If you run into any issues or have questions, please [https://discourse.mozilla-community.org/c/add-ons/contribute go here] for help. Or, jump into the #amo channel on irc.mozilla.org.
[https://developer.mozilla.org/Add-ons/WebExtensions WebExtensions APIs] are the standard for add-on development in Firefox. It seeks to unify the extension APIs and architecture with those of other browsers in the name of interoperability and modern architecture.<br />


==Step 5: Select a "goodfirstbug" to work on==
======''Good First Bugs''======
Once your dev environment is set up, go to [http://mzl.la/1Vc7bUQ this link] to see a list of bugs that are marked as good for first time contributors. Have a look at the "Assignee" field. If no one else is working on the bug, please leave a comment to let the mentor know you are going to work on it. If someone is working on it but there hasn't been activity for a while, feel free to ask permission by leaving a comment.
If you'd like to contribute to the WebExtensions API and are new to the Firefox code base, we recommend getting started with a good-first-bug.  


Alternatively, we may reach out to you to suggest a bug for you to work on, based on what you indicated in the contributor survey.
Visit our [[WebExtensions/Contribution_Onramp|WebExtensions Contribution Onramp]] to onboard to the code base and get started with a [https://mzl.la/2yq1XA8 good-first bug]. 
 
You may also want to read [https://blog.mozilla.org/addons/2018/08/14/building-extension-apis-oriol-brafau/ this blog post] for tips on how to contribute to the WebExtensions API.
 
====== ''Develop WebExtensions APIs'' ======
*If you're experienced with Mozilla infrastructure and would like to develop WebExtensions APIs directly for Firefox, here is a list of [https://mzl.la/2vrKSSy approved APIs] that you can start contributing to.
 
*If you want to tinker with WebExtensions APIs without having to build Firefox, [http://webextensions-experiments.readthedocs.io/en/latest/index.html WebExtensions Experiments] is for you!
 
*If you simply want to request a WebExtensions API, please [[WebExtensions/NewAPIs|read this information]] before filing a bug.
 
=====Contribute to the Add-on Manager=====
The add-on manager is an integral part of the end-user's experience with addons.mozilla.org
#Familiarize yourself with the on-boarding materials: [http://areweeveryoneyet.org/onramp/desktop.html Onboard to Firefox codebase]
#Pick a [http://mzl.la/1JlF0hm "Good First Bug"] to work on
 
== Improve addons.mozilla.org (AMO) ==
[https://addons.mozilla.org addons.mozilla.org], commonly known as "AMO," is Mozilla's official site for developers to list add-ons, and for users to discover them.
 
===== Contribute code to AMO =====
If you know JavaScript and/or Python, you can help make AMO better!
#Familiarize yourself with the on-boarding materials: [https://mozweb.readthedocs.org/en/latest/ Webdev Bootcamp]
#Set up a development environment on your local machine: Our [https://addons-server.readthedocs.io/en/latest/topics/install/index.html documentation] provides step-by-step instructions on how to set up your local development environment. Be sure to also review the README files in the repository you are working from for other instructions to set up your dev environment. If you run into any issues or have questions, please [https://discourse.mozilla-community.org/c/add-ons/contribute go here] for help. Or, jump into the [https://chat.mozilla.org/#/room/#amo:mozilla.org AMO room]  on [[Matrix]].
#Select a [https://addons-pm.herokuapp.com/contrib/good-first-bugs/?dir=desc&sort=updatedAt "Good First Bug"] to work on. These bugs are mentored and they are a great way to get a feel for things. Note: bugs marked `contrib: welcome` are slightly harder than issues marked `contrib: good first bug.` We're also not able to provide as much hands-on mentorship for issues labled `contrib: welcome.`


=What's Next?=
=What's Next?=
Line 34: Line 53:
==Pick another bug==
==Pick another bug==
Select another “good first bug” to get more practice, or move on to a “good second bug”!
Select another “good first bug” to get more practice, or move on to a “good second bug”!
You can also look for bugs with the label "[https://addons-pm.herokuapp.com/contrib/contrib-welcome/ contrib: welcome]" on Github.


==Need guidance?==
==Need guidance?==
Please feel free to reach out to one of our community mentors! The two best ways to reach out are:
Please feel free to reach out to one of our community mentors! The two best ways to reach out are:
* irc.mozilla.com - #amo channel; mentors are given "voice" in the channel, so should float to the top in most clients
* chat.mozilla.org- Add-ons room; staff members will either be marked as an admin or a moderator, plus there are lots of other friendly members in the community who can help answer your question
* Code contributor forum: https://discourse.mozilla-community.org/c/add-ons/contribute
* Code contributor forum: https://discourse.mozilla-community.org/c/add-ons/contribute
Volunteer code mentors
*TBD

Latest revision as of 11:01, 25 January 2021

We love code contributions to the add-ons ecosystem! Below you'll find ways to contribute code, and information on the onboarding process. Onboarding helps ensure you are getting the most out of your experience working with other staff and volunteer developers. Once you're familiar with the dev environments, please pick a "Good First Bug" to get started.

Step 1: Create some accounts

Please create accounts on the following sites, if you haven't already:

Step 2: Tell us a little about yourself

Please fill out a short survey so we can better connect you to the right opportunities. We may reach out to you if there is a particular project that fits your skills, but in the meantime please move on to step #3.

Step 3: Decide how you'd like to help

Improve add-ons in Firefox

Add-ons make Firefox the most extensible browser available. Your contributions help support user freedom!

Contribute to WebExtensions APIs

WebExtensions APIs are the standard for add-on development in Firefox. It seeks to unify the extension APIs and architecture with those of other browsers in the name of interoperability and modern architecture.

Good First Bugs

If you'd like to contribute to the WebExtensions API and are new to the Firefox code base, we recommend getting started with a good-first-bug.

Visit our WebExtensions Contribution Onramp to onboard to the code base and get started with a good-first bug.

You may also want to read this blog post for tips on how to contribute to the WebExtensions API.

Develop WebExtensions APIs
  • If you're experienced with Mozilla infrastructure and would like to develop WebExtensions APIs directly for Firefox, here is a list of approved APIs that you can start contributing to.
Contribute to the Add-on Manager

The add-on manager is an integral part of the end-user's experience with addons.mozilla.org

  1. Familiarize yourself with the on-boarding materials: Onboard to Firefox codebase
  2. Pick a "Good First Bug" to work on

Improve addons.mozilla.org (AMO)

addons.mozilla.org, commonly known as "AMO," is Mozilla's official site for developers to list add-ons, and for users to discover them.

Contribute code to AMO

If you know JavaScript and/or Python, you can help make AMO better!

  1. Familiarize yourself with the on-boarding materials: Webdev Bootcamp
  2. Set up a development environment on your local machine: Our documentation provides step-by-step instructions on how to set up your local development environment. Be sure to also review the README files in the repository you are working from for other instructions to set up your dev environment. If you run into any issues or have questions, please go here for help. Or, jump into the AMO room on Matrix.
  3. Select a "Good First Bug" to work on. These bugs are mentored and they are a great way to get a feel for things. Note: bugs marked `contrib: welcome` are slightly harder than issues marked `contrib: good first bug.` We're also not able to provide as much hands-on mentorship for issues labled `contrib: welcome.`

What's Next?

Get recognized

When your first pull request is merged, please report it here so we can properly celebrate your first contribution!

Pick another bug

Select another “good first bug” to get more practice, or move on to a “good second bug”!

You can also look for bugs with the label "contrib: welcome" on Github.

Need guidance?

Please feel free to reach out to one of our community mentors! The two best ways to reach out are: