Confirmed users
2,197
edits
(Add "Accounts, Communication" section.) |
(Redirected page to Performance/Tools/Onboarding) |
||
| (5 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
#REDIRECT [[Performance/Tools/Onboarding]] | |||
{{DISPLAYTITLE:New Contributors to Perftest 🔥🦊⏱}} | {{DISPLAYTITLE:New Contributors to Perftest 🔥🦊⏱}} | ||
| Line 11: | Line 13: | ||
# 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 == | |||
=== Performance Testing === | |||
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. | |||
=== PerfDocs === | |||
Even though are primary focus is on performance testing harnesses, like Raptor, we have many other projects to work on too! If you come across bugs that talk about <tt>PerfDocs</tt>, then read on for more information on how to hack on it - it's a bit simpler. | |||
This project is for building up documentation about all of our tests dynamically, and you can find it in the [https://firefox-source-docs.mozilla.org/testing/perfdocs/raptor.html Firefox Source Tree Docs]. It has two stages, a verification stage, and a generation stage. The verification stage ensures that all tests are documented and that all documented tests exist. The generation stage, as you may have guessed, generates the documentation! The first stage can be run with: | |||
./mach lint -l perfdocs | |||
This should pass because we can't land patches unless perfdocs is passing. The generation stage is run by calling: | |||
./mach lint -l perfdocs --fix | |||
If no errors are found during the verification (which is always run before generation), then the documentation information is produced. The actual document that was linked above in the source tree docs is produced in continuous integration (you can also do it locally with <tt>./mach doc</tt> if you're interested. | |||
The whole system is relatively simple, and you can find the code for it in [https://searchfox.org/mozilla-central/source/tools/lint/perfdocs this folder]. | |||
== 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. You can find review instructions that are specific to the team [https://wiki.mozilla.org/TestEngineering/Performance/Onboarding#Review_policy here]. | |||
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. | |||
# You can find some more information on the team in this [https://wiki.mozilla.org/TestEngineering/Performance/Onboarding onboarding page]. | |||
# 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]. | |||
# A [https://wiki.mozilla.org/Firefox/Dev_Cheatsheet mercurial firefox cheat-sheet] with helpful commands that are used often. | |||
== 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. | |||