97
edits
(Add "Accounts, Communication" section.) |
(Added final sections of the guide.) |
||
| Line 11: | Line 11: | ||
# When you want to ask a question on Riot, just go ahead and ask it even if no one appears to be around/responding. Provide lots of detail so that we have a better chance of helping you. If you don’t get an answer right away, check again in a few hours – someone may have answered you in the meantime. | # When you want to ask a question on Riot, just go ahead and ask it even if no one appears to be around/responding. Provide lots of detail so that we have a better chance of helping you. If you don’t get an answer right away, check again in a few hours – someone may have answered you in the meantime. | ||
# If you’re having trouble reaching us over Riot, you are welcome to send an email to us instead. It’s a good idea to include your Riot nick in your email message. | # If you’re having trouble reaching us over Riot, you are welcome to send an email to us instead. It’s a good idea to include your Riot nick in your email message. | ||
== Getting the code, running tests == | |||
The first thing to do is to get your build environment set up. Follow the Getting Started instructions [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions#Getting_started here]. You can find more instructions [https://firefox-source-docs.mozilla.org/contributing/how_to_contribute_firefox.html here] as well. We suggest using an artifact build when you’re asked since speeds everything up a lot. After you have the build ready and ran `./mach run` successfully you should be good to go. If you hit any issues getting ready, we can help you in [https://chat.mozilla.org/#/room/#perftest:mozilla.org #perftest]. | |||
So you’ve run Firefox locally - now what? It’s time to test it! | |||
We do performance testing so you will be most interested in [https://wiki.mozilla.org/TestEngineering/Performance/Raptor Raptor-webext], and [https://wiki.mozilla.org/TestEngineering/Performance/Raptor/Browsertime Raptor-browsertime]. You can find more information about all of the projects we have [https://wiki.mozilla.org/TestEngineering/Performance#Projects here]. A simple test to start with would be this one which runs a google page load test with Raptor-webext: | |||
./mach raptor --test raptor-tp6-google-firefox | |||
To run Raptor-browsertime on the same page you only need to add the <tt>--browsertime</tt> argument. But first you have to install browsertime locally by running: | |||
./mach browsertime --setup | |||
If everything installed correctly you can now run the following: | |||
./mach raptor --test raptor-tp6-google-firefox --browsertime | |||
Note that Raptor-browsertime is under heavy development at the moment so it’s likely that you’ll hit issues there, but you can file bugs for those or let us know about them so we (or you) can fix them. | |||
The code for these tools resides in [https://dxr.mozilla.org/mozilla-central/source/testing/raptor this folder]. Browsertime code can also be found [https://dxr.mozilla.org/mozilla-central/source/tools/browsertime here] after it’s installed. | |||
== Work on bugs and get code review == | |||
Once you are familiar with the code of the test harnesses, and the tests you might want to start with your first contribution. You can follow [https://firefox-source-docs.mozilla.org/contributing/how_to_contribute_firefox.html#to-write-a-patch these instructions] on how to submit a patch. | |||
How you test a patch will change depending on what's being modified. Generally, you will be running Raptor-webext (with commands similar to those listed above) or it's unit-tests to test your changes, but you can ask us in [https://chat.mozilla.org/#/room/#perftest:mozilla.org #perftest] if you're not sure what you should run or if you need help getting a test command working. For the patch reviewer, you can use <tt>#perftest</tt> and someone from the team will review it (or you can put whoever helped you with the patch). | |||
You can find “good-first-bugs” by looking in codetribute in the [https://codetribute.mozilla.org/projects/automation Test Automation] section, projects from our team include [https://codetribute.mozilla.org/projects/automation?project%3DTalos Talos], [https://codetribute.mozilla.org/projects/automation?project%3DRaptor Raptor], and [https://codetribute.mozilla.org/projects/automation?project%3DPerformance Performance]. Many team members also work on [https://codetribute.mozilla.org/projects/reporting Dashboards and Reporting] so that would be another good place to look. If you’re not sure what you want to hack on, ask us in #perftest - we’d be happy to help find you something. :) | |||
== Resources == | |||
These resources might not be directly related to Performance Testing or the code we work on, but they may have useful information for you to make use of. | |||
# Search Mozilla’s code repositories with [https://searchfox.org/mozilla-central/source/testing/marionette/ searchfox] or [https://dxr.mozilla.org/mozilla-central/source/ DXR]. | |||
# Another [https://ateam-bootcamp.readthedocs.org/en/latest/guide/index.html#new-contributor-guide guide for new contributors]. It has not been updated in a long time but it’s a good general resource if you ever get stuck on something. The most relevant sections to you are about Bugzilla, Mercurial, Python and the Development Process. | |||
# [https://mozilla-version-control-tools.readthedocs.org/en/latest/hgmozilla/index.html Mercurial for Mozillians] | |||
# More general resources are available in this [https://gist.github.com/mjzffr/d2adef328a416081f543 little guide] :maja_zf wrote in 2015 to help a student get started with open source contributions. | |||
# Textbook about general open source practices: [https://quaid.fedorapeople.org/TOS/Practical_Open_Source_Software_Exploration/html/index.html Practical Open Source Software Exploration] | |||
# If you’d rather use git instead of hg, see [https://github.com/glandium/git-cinnabar/wiki/Mozilla:-A-git-workflow-for-Gecko-development git workflow for Gecko development] and/or [https://sny.no/2016/03/geckogit this blog post by :ato]. | |||
== Acknowledgements == | |||
Much of this new contributor guide was based on the [https://firefox-source-docs.mozilla.org/testing/marionette/NewContributors.html Marionette guide] and uses a good amount of information from there. | |||
edits