Confirmed users
2,197
edits
(Created page with "{{DISPLAYTITLE:Onboarding with Performance Tools}} This page is aimed at people who are new to Mozilla and want to contribute to Mozilla source code related to Performance Te...") |
No edit summary |
||
| Line 1: | Line 1: | ||
{{DISPLAYTITLE:Onboarding with Performance Tools}} | {{DISPLAYTITLE:Onboarding with Performance Tools}} | ||
This page is aimed at people who are new to Mozilla and want to contribute to | This page is aimed at people who are new to Mozilla and want to contribute to projects related to Performance Tools. If you run into issues or have doubts, check out the [[#Resources]] section below and don’t hesitate to ask questions. The goal of these steps is to make sure you have the basics of your development environment working. Once you do, we can get you started with working on an actual bug, yay! | ||
= Getting started = | |||
# Set up a [[#Bugzilla]] account. | |||
# Set up a [[#Phonebook]] account. | |||
# For direct communication with us it will be beneficial to setup [[#Matrix]], join our public channels, and introduce yourself. | |||
== | = Getting the code = | ||
== 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 {{matrix|perftest}}. | |||
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 | |||
So you’ve run Firefox locally - now what? It’s time to test it! | 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:// | We do performance testing so you will be most interested in [https://firefox-source-docs.mozilla.org/testing/perfdocs/]. A simple test to start with would be this one which runs a google page load test with Raptor: | ||
./mach raptor --test google-search | |||
./mach raptor --test | |||
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. | 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. | 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/ | 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/index.html Firefox Source 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 | ./mach lint -l perfdocs | ||
This should pass because we can't land patches unless perfdocs is passing. The generation stage is run by calling: | This should pass because we can't land patches unless perfdocs is passing. The generation stage is run by calling: | ||
| Line 40: | Line 31: | ||
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]. | 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 | 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 test projects at [[../Testing/Reviews]]. | ||
How you test a patch will change depending on what's being modified. Generally, you will be running Raptor (with commands similar to those listed above) or it's unittests to test your changes, but you can ask us in {{matrix|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 {{matrix|perftest}} - we’d be happy to help find you something. :) | |||
= Meetings = | = Meetings = | ||
| Line 73: | Line 47: | ||
* photo (of you!) | * photo (of you!) | ||
* username (this is included in your profile URL) | * username (this is included in your profile URL) | ||
* GitHub identity | * [[#GitHub]] identity | ||
* [[#Bugzilla]] identity | * [[#Bugzilla]] identity | ||
* Matrix nick | * [[#Matrix]] nick | ||
* Slack nick | * [[#Slack]] nick | ||
= Calendar = | = Calendar = | ||
| Line 95: | Line 69: | ||
== [[Matrix]] == | == [[Matrix]] == | ||
Join our public channels listed below and introduce yourself. See [[../#Who_we_are]] for who you can ping for help or to chat. We’re nice, I promise, but we might not answer right away due to different time zones, time off, etc. So please be patient. When you want to ask a question on Matrix, 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 Matrix, you are welcome to send an email to us instead. It’s a good idea to include your Matrix nick in your email message. | |||
* {{matrix|perf|General performance chat}} | * {{matrix|perf|General performance chat}} | ||
* {{matrix|perftest|Public | * {{matrix|perftest|Public channel for testing related projects}} | ||
* {{matrix|profiler|Public channel for the Firefox Profiler project}} | |||
* {{matrix|perfteam|Public performance team channel}} | * {{matrix|perfteam|Public performance team channel}} | ||
* {{matrix|perfsheriffs|Performance sheriffs channel}} | * {{matrix|perfsheriffs|Performance sheriffs channel}} | ||
| Line 122: | Line 98: | ||
== Products/Components == | == Products/Components == | ||
The relevant components for the team are: | The relevant components for the team are: | ||
* [https://bugzilla.mozilla.org/describecomponents.cgi?product=Core&component=Gecko%20Profiler#Gecko%20Profiler Core::Gecko Profiler] | |||
* [https://bugzilla.mozilla.org/describecomponents.cgi?product=Firefox%20Profiler Firefox Profiler] | |||
* [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=AWSY#AWSY Testing::AWSY] | * [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=AWSY#AWSY Testing::AWSY] | ||
* [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=Condprofile#Condprofile Testing::Condprofile] | |||
* [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=mozperftest#mozperftest Testing::mozperftest] | * [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=mozperftest#mozperftest Testing::mozperftest] | ||
* [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=Performance#Performance Testing::Performance] | * [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=Performance#Performance Testing::Performance] | ||
* [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=Raptor#Raptor Testing::Raptor] | * [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=Raptor#Raptor Testing::Raptor] | ||
* [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=Talos#Talos Testing::Talos] | * [https://bugzilla.mozilla.org/describecomponents.cgi?product=Testing&component=Talos#Talos Testing::Talos] | ||
* [https://bugzilla.mozilla.org/describecomponents.cgi?product=Tree%20Management&component=Perfherder#Perfherder Tree Management::Perfherder] | |||
== Whiteboard Entries == | == Whiteboard Entries == | ||
The following whiteboard entries are used by the team: | The following whiteboard entries are used by the team: | ||
* [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard=%5Bperftest%3Atriage%5D&resolution=---&status_whiteboard_type=allwordssubstr <nowiki>[perftest:triage]</nowiki>] - discussion required in [[TestEngineering/Performance/Triage_Process|triage]]. | * [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard=%5Bperftest%3Atriage%5D&resolution=---&status_whiteboard_type=allwordssubstr <nowiki>[perftest:triage]</nowiki>] - discussion required in [[TestEngineering/Performance/Triage_Process|triage]]. | ||
== Keywords == | == Keywords == | ||
| Line 193: | Line 171: | ||
== Bugzilla requests == | == Bugzilla requests == | ||
Visit the [https://bugzilla.mozilla.org/request.cgi request queue] in Bugzilla every day and filter by your account to see all requests that have been submitted for you. Requests for P1/P2 bugs should recieve a response within 1 working day. All other requests should receive a response within 5 working days. | Visit the [https://bugzilla.mozilla.org/request.cgi request queue] in Bugzilla every day and filter by your account to see all requests that have been submitted for you. Requests for P1/P2 bugs should recieve a response within 1 working day. All other requests should receive a response within 5 working days. | ||
= Resources = | |||
These resources might not be directly related to performance tools 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/ searchfox]. | |||
# [https://mozilla-version-control-tools.readthedocs.org/en/latest/hgmozilla/index.html Mercurial for Mozillians]. | |||
# 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 [[Firefox/Dev_Cheatsheet|mercurial firefox cheat-sheet]] with helpful commands that are used often. | |||