Add-ons/Contribute/Code: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Update gfb waffle page)
No edit summary
 
(11 intermediate revisions by one other user not shown)
Line 4: Line 4:
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: Andreas Wagner [:theone]
**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]
*https://github.com
*https://github.com


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


=====Develop WebExtensions APIs=====
=====Contribute to WebExtensions APIs=====
[https://wiki.mozilla.org/WebExtensions WebExtensions] are becoming 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. We need your help extending the APIs to support the [https://wiki.mozilla.org/Add-ons/developer/communication needs] of add-on developers. You'll need to know some JavaScript.
[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 />


#Familiarize yourself with the on-boarding materials: [http://areweeveryoneyet.org/onramp/desktop.html Onboard to Firefox codebase]
======''Good First Bugs''======
#Pick a [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=component%3AWebExtensions%20keyword%3Agood-first-bug&list_id=13160623 "Good First Bug"] to work on
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.
#Not a first-timer? See a list of [https://mzl.la/2dVs5Ys approved APIs] and start contributing. And see more [https://wiki.mozilla.org/WebExtensions/Hacking ways to hack]
 
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=====
=====Contribute to the Add-on Manager=====
Line 33: Line 43:
If you know JavaScript and/or Python, you can help make AMO better!
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]
#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.org/en/latest/ documentation] provides step-by-step instructions on how to set up your local development 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 #amo channel on irc.mozilla.org.
#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://waffle.io/mozilla/addons?label=contrib:%20good%20first%20bug "Good First Bug"] to work on. These bugs are mentored and they are a great way to get a feel for things.
#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 43: 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.org - #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: