https://wiki.mozilla.org/api.php?action=feedcontributions&user=Standard8&feedformat=atomMozillaWiki - User contributions [en]2024-03-28T23:54:12ZUser contributionsMediaWiki 1.27.4https://wiki.mozilla.org/index.php?title=Sheriffing/Job_Visibility_Policy&diff=1244658Sheriffing/Job Visibility Policy2022-11-21T08:32:17Z<p>Standard8: /* Has sufficient documentation */ Updated automated testing link to a Firefox source docs page</p>
<hr />
<div>This page exists to clarify the policy towards how jobs reporting to [https://treeherder.mozilla.org/ Treeherder] are managed. Common sense will apply in cases where some of the requirements are not applicable for a particular platform/build/test type.<br />
<br />
To propose changes to this policy, please speak to the sheriffs and/or send a message to the [https://groups.google.com/a/mozilla.org/g/sheriffs sheriffs group].<br />
<br />
== Overview of the Job Visibility Tiers ==<br />
Jobs reporting to Treeherder can fall into three tiers.<br />
* <b>Tier 1:</b> Jobs that run on a [https://firefox-source-docs.mozilla.org/build/buildsystem/supported-configurations.html Tier-1 platform], are shown by default on Treeherder, and are sheriff-managed. Bustage will cause a tree closure and is expected to result in a quick follow-up push or a backout (at the discretion of the sheriff on duty). Bugs will be filed for new intermittent test failures and are subject to the [https://wiki.mozilla.org/Sheriffing/Test_Disabling_Policy Test Disabling Policy] if not addressed in a timely fashion.<br />
* <b>Tier 2:</b> Jobs are shown by default on Treeherder and sheriffs will create bugs for new failures, even if those are permanent. New test failures/bustage will not result in a backout, but a tracking bug will be filed when observed. These new issues are expected to be fixed in 2 business days.<br />
* <b>Tier 3:</b> Jobs are not shown by default on Treeherder. All responsibilities for monitoring the results will fall upon the owner of the job.<br />
<br />
== Requirements for jobs shown in the default Treeherder view ==<br />
The below section applies to <b>both Tier 1 and Tier 2 jobs</b>. Owners of non-sheriff managed project/disposable repos do not need to meet these requirements. However, they must be satisfied prior to being enabled in production.<br />
<br />
==== Has an active owner ====<br />
* Who is committed to ensuring the other requirements are met not just initially, but over the long term.<br />
* Who will ensure the new job type is switched off to save resources should we stop finding it useful in the future.<br />
<br />
==== Usable job logs ====<br />
* Full logs should be available for both successful and failed runs in either raw or structured formats.<br />
* The crash reporter should be enabled, mini-dumps processed correctly (ie: with symbols available) & the resultant valid crash stack visible in the log (it is recommended to use mozcrash to avoid reinventing the wheel).<br />
* Failures must appear in the Treeherder failure summary in order to avoid having to open the full log for every failure.<br />
* Failure output must be in the format expected by the Treeherder's [https://github.com/mozilla/treeherder-service/blob/master/treeherder/model/error_summary.py bug suggestion generator] (otherwise sheriffs have to manually search Bugzilla when classifying/annotation intermittent failures):<br />
** For in-tree/product issues (eg: test failures, crashes):<br />
*** Delimeter: ' | '<br />
*** 1st token: One of {TEST-UNEXPECTED-FAIL, TEST-UNEXPECTED-PASS, PROCESS-CRASH}.<br />
*** 2nd token: A unique test name/filepath (not a generic test loader that runs 100s of other test files, since otherwise bug suggestions will return too many results).<br />
*** 3rd token: The specific failure message (eg: the test part that failed, the top frame of a crash or the leaked objects list for a leak).<br />
** For non test-specific issues (eg: infra/automation/harness):<br />
*** Treeherder falls back to searching Bugzilla for the entire failure line (excluding mozharness logging prefix), so it should be both unique to that failure type & repeatable (ie: no use of process IDs or timestamps, for which there will rarely be a repeat match against a bug summary).<br />
** Exceptions & timeouts must be handled with appropriate log output (eg: the failure line must state in which test the timeout occurred, not just that the entire run has timed out).<br />
** [documentation for mozlog library https://firefox-source-docs.mozilla.org/mozbase/mozlog.html]<br />
* The sheriffs will be happy to advise regarding the above.<br />
<br />
==== Has sufficient documentation ====<br />
* Has a wiki page with:<br />
** An overview of the test-suite.<br />
** Instructions for running locally.<br />
** How to disable an individual failing test.<br />
** The current owner/who to contact for help.<br />
** The Bugzilla product/component where bugs should be filed (Github issues is not discoverable enough and prevents the use of bug dependencies within the rest of the project).<br />
* That wiki page is linked to from https://firefox-source-docs.mozilla.org/testing/automated-testing/index.html<br />
<br />
== Additional requirements for Tier 1 jobs ==<br />
<br />
==== Breakage is expected to be followed by tree closure or backout ====<br />
* Failures visible in the default view (other than those that are known intermittents/transient), must have their cause backed out in a timely fashion or else the tree closed until diagnosed.<br />
* Sheriffs will generally ping in [https://chat.mozilla.org/#/room/#developers:mozilla.org #developers on chat.mozilla.org] when such a situation arises. If sufficient time passes without acknowledgement (typically ~5min), the regressing patch(es) will be backed out in order to minimize the length of the closure for other developers.<br />
* If acknowledged, sheriffs will decide in conjunction with the developer whether backing out or fixing in-place is the most reasonable resolution. The sheriff maintains the right to backout if necessary, however.<br />
<br />
==== Runs on mozilla-central and autoland ====<br />
* Necessary because job failures when autoland merges into mozilla-central will not be attributable to a single changeset, resulting in either tree closure or backout of the entire merge (see the previous requirement).<br />
<br />
==== Scheduled on every push ====<br />
* Otherwise job failures will not be attributable to a single changeset, resulting in either tree closure or backout of multiple pushes (see requirement #2).<br />
* An exception is made for nightly builds with a virtually equivalent non-nightly variant that is built on every push & for tests run on shippable builds (relatively speaking there are not too many shippable-only test failures). Periodic builds have also been granted an exception as they don't run tests and have sufficient coverage on other platforms such that the odds of unique bustage are small and relatively easy to diagnose.<br />
* Note also that scheduling optimization (may mean that not all scheduled jobs actually get run. Whilst such coalescing makes sheriffing harder, it's a necessary action to keep the automation infrastructure demand at reasonable levels.<br />
<br />
==== Must avoid patterns known to cause non deterministic failures ====<br />
* Must avoid pulling the tip of external repositories or their latest release as part of the build - since landings there can cause non-obvious failures. If an external repository/dependency is absolutely necessary, instead reference the desired changeset or version from a manifest in mozilla-central.<br />
* Must not rely on resources from sites whose content we do not control/have no SLA:<br />
** Since these will cause failures when the external site is unavailable, as well as impacting end to end times & adding noise to performance tests.<br />
** eg: Emulator/driver binaries direct from a vendor's site, package downloads from PyPi or page assets for unit/performance tests.<br />
** Ensure MOZ_DISABLE_NONLOCAL_CONNECTIONS is defined in the automation environment (see {{bug|995417}}) & use a list of automation prefs for switching off undesirable behavior (e.g. automatic updates, telemetry pings; see {{bug|1023483}} for where these are set).<br />
* Must not contain time bombs, e.g. tests that will fail after a certain date or when run at certain times (e.g., the day summer time starts or ends, or when the test starts before midnight and finishes after midnight).<br />
* See the [https://developer.mozilla.org/en-US/docs/Mozilla/QA/Avoiding_intermittent_oranges best practices for avoiding intermittent failures (oranges)].<br />
<br />
==== Low intermittent failure rate ====<br />
* A high failure rate:<br />
** Causes unnecessary sheriff workload.<br />
** Affects the ability to sheriff the trees as a whole, particularly during times of heavy coalescing.<br />
** Undermines confidence in the platform/test-suite - which permanently affects developers' willingness to believe any future failures, even once the intermittent-failure rate is lowered.<br />
* A mozilla-central push results in 4000-10000 jobs. The typical intermittent failure rate (OrangeFactor) across all trunk trees is normally 2-4%. <br />
* Therefore as a rough guide a new platform/test suite must have at most a 5% per job failure rate initially, and ideally <1% longer term.<br />
* However, sheriffs will make the final determination of whether a job type has too many intermittent failures. This will be a based on a combination of factors including failure rate, length of time the failures have been occurring, owner interest in fixing them & whether Treeherder is able to make bug suggestions.<br />
<br />
==== Easily run on try server ====<br />
* Needed so that developers who have had their landing backed out for breaking the job type are able to debug the failures/test the fix, particularly if they only reproduce on our infrastructure.<br />
* The job should be visible to |./mach try fuzzy| and |./mach try chooser| without having to use the --full option.<br />
<br />
== Optional, but helpful ==<br />
<br />
==== Easy for a dev to run locally ====<br />
* Supported by mach (if appropriate).<br />
* Ideally part of mozilla-central (legacy exceptions being Talos).<br />
<br />
==== Supports the disabling of individual tests ====<br />
* It must be possible for sheriffs to disable an individual test per platform or entirely, by either annotating the test or editing a manifest in the relevant gecko repository.<br />
<br />
== Requesting changes in visibility ==<br />
* Jobs that are marked as tier 3 will be hidden in Treeherder by default.<br />
* To adjust the tier for a Taskcluster job, use a bug either in the Firefox Build System :: Task Configuration component, or else a component related to the type of task being adjusted, then edit the in-tree task definition.<br />
* CC :sheriffs when adjusting a job's tier, so they are aware of the change and can confirm the criteria have been met.<br />
<br />
== Adding a new test task or a new test platform? ==<br />
* Be sure to demonstrate an acceptable intermittent failure rate for your new test tasks on try, and include the try links in the bug which adds the new tasks. Usually that means repeating each new test task at least 10 times (try: --rebuild 10). <br />
* For each known intermittent failure, check the expected frequency from recent comments in the bug, or by looking up the failure in Treeherder's Intermittent Failures view; if you see higher failure rates in your try push, consider fixing or disabling the test(s) before enabling your new task(s).<br />
<br />
== My platform/test-suite does not meet the base requirements, what now? ==<br />
* Your platform/test-suite will still be being run, just not shown on the default view. This model has worked well for many projects/build types (e.g. spidermonkey).<br />
* To see it, click the "3" button to the left of the quick filter input field in the second toolbar of the Treeherder UI.<br />
* To filter the jobs displayed, under the 'Filters' menu use the 'job name' field.<br />
* For Try specifically, you can request that the job type be made non-default (i.e. requires explicit opt-in when the tasks to run get selected), in order to be shown in the default view on Try - see <code >UNCOMMON_TRY_TASK_LABELS</code> in [taskcluster/taskgraph/target_tasks.py target_tasks.py].</div>Standard8https://wiki.mozilla.org/index.php?title=GitHub&diff=1232829GitHub2020-12-22T15:35:29Z<p>Standard8: /* Is "mozilla" the only github "organization" related to Mozilla? */ Add firefox-devtools</p>
<hr />
<div>This page is specifically about [https://github.com/mozilla the "mozilla" organization on github]. There are several other github organizations you may be interested in, cf. the incomplete list [[#other_github|below]].<br />
<div id="contact"><br />
{| class="wikitable"<br />
|-<br />
! [[File:Red_question_mark.png|72px|Question Mark]] Do you have a GitHub administration question for an org?<br > See [[#other_github|table]] for contact info for each organization.<br />
|}<br />
<br />
== News ==<br />
* 2019-02-19 - Mozilla's Code of Conduct is required to be included in every repository, following [[/Repository Requirements|this procedure]].<br />
* 2018-03-29 - new [[/Repository Security|Guidelines for securing sensitive repositories]] published. These are good practices for any repository that does "releases", and some groups my require adherence on their repositories.<br />
<br />
== Recommendations and FAQ ==<br />
<br />
The actions below are specifically for the 'mozilla' organization on GitHub. Other organizations may have different or additional procedure. Please refer to the [[#other_github|other organizations]] table below for the proper service request address and contact information.<br />
<br />
=== Where should I ask additional questions? ===<br />
* Please use the '''[[#other_github|contact list]]''' to find the best address.<br />
* If the issue relates to the [https://github.com/Mozilla Mozilla] org, then you can send an email to '''{{emailentry|github-owners|mozilla.org|at=is}}''' and one of the volunteers will respond. <br />
* For other orgs, the volunteers in the [https://chat.mozilla.org/#/room/#github-admin:mozilla.org #github-admin] room on Matrix may be able to point you in the correct direction.<br />
<br />
=== How do I hook up a new GitHub Actions or 3rd party application to a repository in the mozilla org? ===<br />
{{note|There are now multiple 3rd party application types. "GitHub Apps" (nee integrations) are the new approach and preferred.|gotcha}}<br />
{{note|Some 3rd party apps use GitHub as an OAuth identity provider for their website (e.g. for a dashboard). An ''OAuth Application'' will block the installation process if the app is not already approved. The "Request access" block is what this section describes.|gotcha}}<br />
<br />
Each type has it's own installation and approval process. Please follow the instructions in the correct section below.<br />
<br />
==== GitHub Actions ====<br />
[https://help.github.com/en/actions/getting-started-with-github-actions/about-github-actions GitHub Actions] allow automation to be initiated by various repository events. GitHub Actions are now available for all public repositories. Each organization makes a decision on whether or not they should be enabled. Check with your organization owners if you have questions. <br />
<br />
{{note|GitHub Actions have not yet been fully evaluated for use on "sensitive repositories". The current guidance is to only use actions authored by GitHub or your development team. Please work with your security team if you wish to utilize non-GitHub-authored GitHub Actions on a sensitive repository.|gotcha}}<br />
<br />
To request a non-GitHub-authored action to be used in the "mozilla" organization, follow the procedure for requesting approval for a new GitHub App, immediately below.<br />
<br />
==== GitHub Apps Installation & Approval Process ====<br />
<br />
GitHub Apps (formerly called "integrations") are "Installed" into either the entire organization, or into individual repositories. Each integration has a documented and granular access to repository resources. This is good.<br />
<br />
However, the GitHub App installation can only be done by an organization owner, who may have to do additional housekeeping. This is not so good, so please plan accordingly (you may need to coordinate with [[#contact|GitHub owners]]).<br />
<br />
* File a request using this [https://bugzilla.mozilla.org/enter_bug.cgi?comment=I%20want%20to%20use%20the%20NAME_HERE%20addon%20in%20ORG_NAME_HERE%20for%20the%20following%20reasons%3A%0D%0A%0D%0ABelow%20are%20my%20answers%20to%20your%20stock%20questions%3A%0D%0A%0D%0A%2A%2A%20Which%20repositories%20do%20you%20want%20to%20have%20access%3F%20%28all%20or%20list%29%0D%0A%0D%0A%2A%2A%20Are%20any%20of%20those%20repositories%20private%3F%0D%0A%0D%0A%2A%2A%20Provide%20link%20to%20vendor%27s%20description%20of%20permissions%20needed%20and%20why%0D%0A%0D%0A%2A%2A%20Provide%20the%20Install%20link%20for%20a%20GitHub%20app%0D%0A&component=Github%3A%20Administration&product=mozilla.org&short_desc=Assess%20use%20of%20external%20addon%20NAME_HERE%20in%20Mozilla%27s%20GitHub%20organization%20ORG_NAME_HERE bug template]<br />
* Include answers to the questions prompted for in the above template. Additional notes:<br />
** ''Which repositories do you want to have access? (all or list)'' -- "All" will rarely be granted - every repository should have control over anything that can access their repository.<br />
** ''Are any of those repositories private?'' -- In general, OAuth apps will not be granted access to private repositories, as that grants access to ''all'' private repositories.<br />
** ''Provide link to vendor's description of permissions needed and why'' -- Hopefully they have this documented, or at least provide a screenshot of the authorization screen which lists the permissions. If not, we may ask you (the requestor) to engage with the app's support team to obtain the answers.<br />
** ''Provide the Install link for a GitHub app'' -- mandatory, as we can't install the app without it.<br />
<br />
* If you are not an "admin" for the repository, an "admin" will have to approve the request. Please set a "Need Info" on the appropriate repository admin.<br />
<br />
===== Initial Installation =====<br />
If this is the first time this GitHub App is being installed in the organization, a few extra checks and coordination are needed. An organization owner will need to perform these steps:<br />
* Determine if the GitHub App previously had an OAUTH version in use in the same org. (The simplest way is to see if the app is listed under the "Third-party Application" section of the organization settings page. ''Any mention'' -- including "declined" -- counts as "in use" for this purpose.)<br />
** If the OAuth app was in use, check the app installation documentation to see if there are any caveats. (We've only seen one app transition where there was an impact, but better safe than sorry.)<br />
** If there are caveats that apply, ask the requestor to contact all current repositories using the classic OAUTH application to coordinate, cc'ing [[#contact|GitHub owners]]. This task is non-trivial, you usually need to access the OAuth app's dashboard, and have knowledge of how the app works. ('''Do NOT''' authenticate to any OAuth app with your owner account.)<br />
* Install the GitHub app for "specific repositories", and enable the ones in the request.<br />
<br />
'''Please do not install GitHub apps with organization wide scope without first discussing with [[#contact|GitHub owners]].'''<br />
<br />
===== Additional Installations or Removals =====<br />
If the GitHub App has already been installed in the organization, the new repository simply needs to be added or removed from the list. An organization owner has to make this change. Please still [https://bugzilla.mozilla.org/enter_bug.cgi?comment=I%20want%20to%20use%20the%20NAME_HERE%20addon%20in%20ORG_NAME_HERE%20for%20the%20following%20reasons%3A%0D%0A%0D%0ABelow%20are%20my%20answers%20to%20your%20stock%20questions%3A%0D%0A%0D%0A%2A%2A%20Which%20repositories%20do%20you%20want%20to%20have%20access%3F%20%28all%20or%20list%29%0D%0A%0D%0A%2A%2A%20Are%20any%20of%20those%20repositories%20private%3F%0D%0A%0D%0A%2A%2A%20Provide%20link%20to%20vendor%27s%20description%20of%20permissions%20needed%20and%20why%0D%0A%0D%0A%2A%2A%20Provide%20the%20Install%20link%20for%20a%20GitHub%20app%0D%0A&component=Github%3A%20Administration&product=mozilla.org&short_desc=Assess%20use%20of%20external%20addon%20NAME_HERE%20in%20Mozilla%27s%20GitHub%20organization%20ORG_NAME_HERE file a bug]. As before, a repository admin has to approve the request.<br />
<br />
If you're an org owner, you can [https://github.com/organizations/mozilla/settings/installations see what has already been installed].<br />
<br />
==== OAUTH (classic) Applications ====<br />
<br />
* Authorizing an application to work with GitHub utilizes the permissions your account has -- so, any repositories you have access to the application will have access to as well (including private ones). If you want to grant access to an application that no one else has used with the Mozilla organization yet you'll see a "Request access" button during the set up flow. You'll need to click that button to request approval. See below for an example:<br />
<br />
[[File:github_approval.png]]<br />
<br />
* In some cases, the application does not need to be "approved" to function correctly, as it has read only access to any public repository. (Some applications only want write access to help you configure the application first time.)<br />
<br />
* In other cases, the application does need write permission, and/or permission to read a private repository. In these cases, open a bug using [https://bugzilla.mozilla.org/enter_bug.cgi?cc=comment=I%20want%20to%20use%20the%20NAME_HERE%20addon%20in%20ORG_NAME_HERE%20for%20the%20following%20reasons%3A%0D%0A%0D%0ABelow%20are%20my%20answers%20to%20your%20stock%20questions%3A%0D%0A%0D%0A%2A%2A%20Which%20repositories%20do%20you%20want%20to%20have%20access%3F%20%28all%20or%20list%29%0D%0A%0D%0A%2A%2A%20Are%20any%20of%20those%20repositories%20private%3F%0D%0A%0D%0A%2A%2A%20Provide%20link%20to%20vendor%27s%20description%20of%20permissions%20needed%20and%20why%0D%0A%0D%0A%2A%2A%20Provide%20the%20Install%20link%20for%20a%20GitHub%20app%0D%0A&component=Github%3A%20Administration&product=mozilla.org&short_desc=Assess%20use%20of%20external%20addon%20NAME_HERE%20in%20Mozilla%27s%20GitHub%20organization%20ORG_NAME_HERE this template].<br />
** Please be sure to have clicked the "Request Approval" link before submitting bug.<br />
* Include answers to these questions:<br />
** Provide link to vendor's description of permissions needed and why<br />
** Provide installation instructions (both may be needed):<br />
<br />
=== Reviewing owners and permissions ===<br />
As an owner or repository admin you're responsible for maintaining the list of people with access to your projects. Please be active and prudent about maintaining this list.<br />
<br />
=== Can I be an Owner of the Mozilla Organization? ===<br />
The Owners group on GitHub has complete administrative power and will be limited to a minimal number of people and reviewed regularly. If a person is an owner, they are expected to actively participate in the group and assist others as requested. Owners will be added as a need arises (for example, support in another timezone) as determined by the current owners.<br />
<br />
<div id="join"> </div><br />
=== Can I be a Member of the Mozilla Organization? ===<br />
No one automatically becomes a member of any of our GitHub Organizations, even staff. We require everyone to be "sponsored" for membership by being invited to a specific team, as outlined below.<br />
<br />
{{Note|<br />
Good news! You do not need to be a member of the Mozilla organization on GitHub before you can contribute to Mozilla!!!! We have several sites which can help you find the best fit for contribution:<br />
* General [https://www.mozilla.org/en-US/contribute/ volunteering options],<br />
* Or pick from [http://whatcanidoformozilla.org/ these areas],<br />
* Or jump right into [http://www.joshmatthews.net/bugsahoy/ fixing a bug].<br />
* If you're already a contributor (THANK YOU!) looking for a place to have your work recognized (even if not coding related), please see the [https://www.mozilla.org/credits/FAQ Credits FAQ] for inclusion in the [https://www.mozilla.org/credits/ credits].|reminder}}<br />
<br />
Once you're working on a project, the project leaders and/or team maintainers can help you get access to anything you need. Instructions for them are directly following.<br />
<br />
==== Team Maintainers & Project Leads ====<br />
<br />
Project owners and team maintainers may find the following information helpful when asking for access for a new team member (staff or community):<br />
<br />
* We require the use of github teams when initially granting permissions to org members. (Collaborators have to be added individually.)<br />
* All members of the [https://github.com/mozilla/ Mozilla organization on github] agree to be bound by [https://www.mozilla.org/en-US/about/governance/policies/commit/requirements/ Mozilla's Commit Access Requirements], and should follow the intent of the [https://www.mozilla.org/en-US/about/governance/policies/commit/access-policy/ Mozilla's Commit Access Policy] as much as practical. Of course, anyone interacting with Mozilla repositories agrees to [https://www.mozilla.org/en-US/about/governance/policies/participation/ Mozilla Community Participation Guidelines]<br />
** "Outside Collaborator": repository admins can grant outside collaborator access to any GitHub login on a per repository basis. "Outside Collaborator" is roughly analogous to "Level 1a" access to Mozilla-hosted repositories.<br />
** "Team Member": team maintainers can add GitHub users to a team, if they are already a member of the organization. If they are not yet a member of the organization, the ''team maintainer'' should [https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_ignored=0&bug_severity=normal&bug_status=NEW&bug_type=task&cf_fx_iteration=---&cf_fx_points=---&comment=I%27ve%20read%20https%3A%2F%2Fwiki.mozilla.org%2FGitHub%23Team_Maintainers_.26_Project_Leads%2C%20and%20need%20help%20adding%20a%20contributor%20to%20the%20org%3A%0D%0A%0D%0AName%3A%20%0D%0AMozilla%20Email%3A%20%0D%0AGithub%20Profile%20link%3A%20%2AStaff%20%2A%2AMUST%2A%2A%20have%20their%20verified%20GitHub%20identity%20listed%20in%20their%20people.m.o%20entry%2A%0D%0AGithub%20Team%28s%29%20%2AREQUIRED%2A%3A%20%0D%0A%0D%0AIf%20this%20is%20not%20being%20requested%20by%20a%20team%20maintainer%2C%20please%20request%20their%20approval%20via%20need-info.&component=Github%3A%20Administration&contenttypemethod=list&contenttypeselection=text%2Fplain&defined_groups=1&filed_via=standard_form&flag_type-4=X&flag_type-607=X&flag_type-800=X&flag_type-803=X&flag_type-936=X&form_name=enter_bug&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=Unspecified&priority=--&product=mozilla.org&rep_platform=Unspecified&target_milestone=---&version=other file a bug using this link] to add you to their team, as a form of vouching. "Team Member" is roughly analogous to "Level 2" or "Level 3", with the distinction being the content of the repositories managed by the team.<br />
<br />
To get access for a new Contributor, please have the ''team maintainer'' or ''repository admin'' [https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_ignored=0&bug_severity=normal&bug_status=NEW&bug_type=task&cf_fx_iteration=---&cf_fx_points=---&comment=I%27ve%20read%20https%3A%2F%2Fwiki.mozilla.org%2FGitHub%23Team_Maintainers_.26_Project_Leads%2C%20and%20need%20help%20adding%20a%20contributor%20to%20the%20org%3A%0D%0A%0D%0AName%3A%20%0D%0AMozilla%20Email%3A%20%0D%0AGithub%20Profile%20link%3A%20%2AStaff%20%2A%2AMUST%2A%2A%20have%20their%20verified%20GitHub%20identity%20listed%20in%20their%20people.m.o%20entry%2A%0D%0AGithub%20Team%28s%29%20%2AREQUIRED%2A%3A%20%0D%0A%0D%0AIf%20this%20is%20not%20being%20requested%20by%20a%20team%20maintainer%2C%20please%20request%20their%20approval%20via%20need-info.&component=Github%3A%20Administration&contenttypemethod=list&contenttypeselection=text%2Fplain&defined_groups=1&filed_via=standard_form&flag_type-4=X&flag_type-607=X&flag_type-800=X&flag_type-803=X&flag_type-936=X&form_name=enter_bug&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=Unspecified&priority=--&product=mozilla.org&rep_platform=Unspecified&target_milestone=---&version=other file a bug using this link], and fill in the details.<br />
<br />
'''Please Note:'''<br />
* All staff (folks with an entry in people.mozilla.org) '''MUST''' have their verified GitHub identity entered there.<br />
* We will cancel any invitation to the organization which is not accepted within 2 weeks.<br />
* All members of the Mozilla organization on GitHub '''MUST''' have [https://help.github.com/articles/about-two-factor-authentication/ 2FA enabled].<br />
* Automation accounts are also required to have 2FA enabled. Scripts should use [https://help.github.com/articles/creating-an-access-token-for-command-line-use/ access tokens] with minimum permissions to accomplish the task.<br />
<br />
=== Should I make a separate github organization or just create a repository in an existing one? ===<br />
This is a personal preference, in general. (Some product lines may have policies about source code locations.) If you have a large enough project or organization feel free. We suggest you use the strategies and recommendations here as a model to manage the details. Additional resources on establishing an organization are:<br />
* [https://mana.mozilla.org/wiki/display/POLICIES/Standard%3A+GitHub+repositories+and+organizations Mozilla Standards] <small>''login required''</small><br />
* [[/Repository Security|Guidelines for securing sensitive repositories]]<br />
* If you need any paid services, contact github owners for access to [https://github.com/mozilla/admin_for_mozilla_private/wiki/Billing-Notes Billing Notes]<br />
<br />
=== Forking vs Transferring ===<br />
'''Do not "fork" a repository into a Mozilla organization.''' Doing so gives ''every team in the org'' rights to it. There are a number of limitations to just pushing your repo's content into a new repo under mozilla (you loose all GitHub metadata). Refer to [https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/transferring-a-repository GitHub's docs] for details.<br />
<br />
If you have created a repo on your own account (for example, myuser/myrepo) and it should live under the Mozilla organization, here are the steps:<br />
<br />
# If you're not a member of any team, talk to an [[#contact|org admin]].<br />
# Under the repo admin, transfer ownership to the Mozilla organization. If you don't see this option, return to step 1.<br />
# Choose which teams should be given access. All chosen teams will have only 'read' access at this point.<br />
# [https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_fx_iteration=---&cf_fx_points=---&comment=I%20just%20transferred%20the%20NAME_HERE%20repository%20to%20the%20ORG_NAME_HERE%20organization%2C%20and%20thus%20no%20longer%20have%20admin%20access.%0D%0A%0D%0APlease%20enable%20admin%20access%20for%3A%0D%0A-%20the%20TEAM_NAME%20team%20%28preferred%29%2C%20or%0D%0A-%20just%20me%20--%20I%27ll%20take%20care%20of%20the%20rest&component=Github%3A%20Administration&contenttypemethod=list&contenttypeselection=text%2Fplain&defined_groups=1&flag_type-4=X&flag_type-607=X&flag_type-800=X&flag_type-803=X&form_name=enter_bug&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=Unspecified&priority=--&product=mozilla.org&rep_platform=Unspecified&short_desc=Admin%20access%20needed%20to%20transferred%20repository&target_milestone=---&version=other File a bug] to grant admin permissions to a team or yourself. {{note|As soon as you transfer, your repository will be in "limbo" (only you will have write access) due to a GitHub "feature" (see [https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/transferring-a-repository docs]). Make arrangements in advance to have an owner available to process the bug.|gotcha}}<br />
# Fork the repo from Mozilla (mozilla/myrepo) back to your account (recreating myuser/myrepo). While the transferred repo becomes the root of the network on GitHub (e.g. all forks are now forks of mozilla/myrepo) other users may be pointing to your repo by URL. (Optional, github will redirect old URLs for transfers, but you probably want a local repo if you use the PR workflow.)<br />
<br />
=== Do I need to be an owner to create repositories? ===<br />
Not in the 'mozilla' organization. If you are a member, you can create a repository. Other organizations may restrict repository creation. However, it's preferred that you create repositories in the context of a team. Teams are created [https://github.com/orgs/mozilla/teams here], if necessary. Once you have created a repo, you can configure it to give rights to members of particular teams.<br />
<br />
{{note|Remember that all repositories must comply with the [[GitHub/Repository Requirements]].|reminder}}<br />
<br />
The 'mozilla' organziation does have a limited number of private repositories available. These are reserved for repositories containing [[Security/Data_Classification|non-public data]], or other business reason. Please request private repositories using this [https://bugzilla.mozilla.org/enter_bug.cgi?bug_type=task&comment=I%27ve%20read%20all%20of%20the%20%5Brepository%20creation%5D%5B1%5D%20section%2C%20and%20want%20to%20request%20a%20private%20repository.%20I%27ve%20filled%20in%20all%20the%20required%20fields.%0D%0A%0D%0AName%20of%20Repository%3A%20%20REQUIRED%0D%0ALink%20to%20your%20people.m.o%20entry%20with%20verified%20GitHub%20login%3A%20REQUIRED%0D%0A%0D%0A%5BData%20Classification%5D%5B2%5D%20of%20data%20in%20repo%3A%20REQUIRED%0D%0AOther%20business%20justification%20for%20private%20repo%3A%0D%0AWhen%20can%20the%20repository%20be%20made%20public%3F%20REQUIRED%0D%0A%0D%0A%5B1%5D%3A%20https%3A%2F%2Fwiki.mozilla.org%2FGitHub%23Do_I_need_to_be_an_owner_to_create_repositories.3F%0D%0A%5B2%5D%3A%20https%3A%2F%2Fwiki.mozilla.org%2FSecurity%2FData_Classification%0D%0A&component=Github%3A%20Administration&form_name=enter_bug&product=mozilla.org&short_desc=Request%20for%20a%20Private%20Repository%20in%20the%20mozilla%20GitHub%20organization&groups=mozilla-employee-confidential Bugzilla template]. Be sure to answer all questions marked 'REQUIRED' in the form.<br />
<br />
As the creator, you will automatically have "admin" permissions on the repository. Repository Admins are responsible for the security settings of the repository. This includes approving (or not) requests for GitHub Apps to be added to the app.<br />
<br />
Please review all the settings for your new repository, and disable features you will not be using. The default values can change, and new services added, so specific guidance can't be given. But do you really need that wiki? Or the project board? You can always enable them later if you decide you need them.<br />
<br />
=== We have sensitive code or data in this repository - any extra steps I should take? ===<br />
Yes. Even if your repository is private, there are steps you can take to ensure you know if something has changed. See the [[GitHub/Repository Security]] page for additional information and a checklist.<br />
<br />
=== We're done with this project - what should we do with the repository? ===<br />
<br />
That is really up to the team. However, if you have forks or other active user participation, it's a good idea to be clear about the status of Mozilla's commitment to the project. Your options include:<br />
* Delete the repo (obviously the worst alternative).<br />
* Add the [http://unmaintained.tech/ Unmaintained] badge to the readme<br />
* Archive the repository, using [https://help.github.com/articles/about-archiving-repositories/ GitHub's suggestions].<br />
<br />
'''PLEASE''' make sure the repository is clearly licensed before leaving it. Without a license, many other folks can not build upon your work.<br />
<br />
=== Are there requirements for when or how I should create a new team? ===<br />
No. When requirements were proposed they all seemed too rigid and time consuming. Instead we recommend staying flexible and using good naming and documentation for projects (similar to naming CSS classes or variables).<br />
<br />
On large teams we recommend you separate teams for read/write and repository administration.<br />
<br />
<div id="other_github"></div><br />
=== Is "mozilla" the only github "organization" related to Mozilla? ===<br />
No, there are plenty of Mozilla-related "organizations" on github. As a rule of thumb, initiatives that create a large number of sub-repositories will create their own "organization". Here is a (probably incomplete) list of them:<br />
<div style="display: flex; flex-flow: row wrap; width: 100%;"><br />
<div style="order: 1; flex-grow: 3; margin: 0.5em; border: 0.1em solid darkgreen; padding: 0.5em; background-color: palegreen; min-width: auto; text-align: center;"><br />
<big>'''NOTE:''' All GitHub Organizations in this section are subject to the [[GitHub/Repository_Requirements|Repository Requirements]].</big><br />
</div><br />
</div><br />
{| class="wikitable sortable" <br />
|-<br />
! Organization !! Description !! Contact Owner !! Service Requests<br />
|-<br />
| [https://github.com/mozilla mozilla] || Mozilla main organization || Matrix [https://chat.mozilla.org/#/room/#github-admin:mozilla.org #github-admin:mozilla.org]; Email {{emailentry|github-owners|mozilla.org|at=is}} || Please check above for a more specific link, otherwise use [https://bugzilla.mozilla.org/enter_bug.cgi?comment=I%27ve%20read%20https%3A%2F%2Fwiki.mozilla.org%2FGithub%2C%20and%20need%20help%20with%20the%20following.%0D%0A%0D%0A&component=Github%3A%20Administration&form_name=enter_bug&product=mozilla.org& mozilla.org :: Github: Administration]<br />
|-<br />
| [https://github.com/mozilla-it mozilla-it] || Mozilla IT's repositories || Slack/🔒it-all||<br />
|-<br />
|[https://github.com/mozillabrasil mozillabrasil] || Mozilla Brazil|| ?<br />
|-<br />
| [https://github.com/bugzilla bugzilla] || Bugzilla (the product, not bugzilla.mozilla.org) || #bugzilla||<br />
|- <br />
| [https://github.com/drumbeat-badge-sprint drumbeat-badge-sprint] || Drumbeat Badge Lab || ?||<br />
|-<br />
| [https://github.com/hackasaurus hackasaurus] || Hackasaurus || ?||<br />
|-<br />
| [https://github.com/jetpack-labs jetpack-labs] || Jetpack Labs || ?||<br />
|-<br />
| [https://github.com/mdn mdn] || Mozilla Developer Network || [https://github.com/jwhitlock John Whitlock]||<br />
|-<br />
| [https://github.com/mozbrick mozbrick] || Mozilla Brick (web components library) || ?||<br />
|-<br />
| [https://github.com/mozilla-applied-ml mozilla-applied-ml] || MAML - Mozilla Applied Machine Learning || maml-github@mozilla.com ||<br />
|-<br />
| [https://github.com/mozilla-appmaker mozilla-appmaker] || Mozilla Appmaker || ?||<br />
|-<br />
| [https://github.com/mozilla-b2g mozilla-b2g] || Mozilla Boot2Gecko / Firefox OS || ?||<br />
|-<br />
| [https://github.com/mozilla-bteam mozilla-bteam] || Bugzilla.Mozilla.org || #bteam||<br />
|-<br />
| [https://github.com/mozilla-cit mozilla-cit] || Mozilla Community Ops || {{Mozillians|tanner|Tanner Filip}} or {{Mozillians|yalam96|Yousef Alam}}||<br />
|-<br />
| [https://github.com/mozilla-comm mozilla-comm] || Calendaring and Messaging related projects || ?||<br />
|-<br />
| [https://github.com/mozilla-cordova mozilla-cordova] || Firefox OS Support for Apache Cordova || ?||<br />
|-<br />
| [https://github.com/mozilla-iam mozilla-iam] || Mozilla's identity and access management || kang||<br />
|-<br />
| [https://github.com/mozilla-iot mozilla-iot] || Mozilla's Internet of Things program || {{Mozillian|dbryant|David Bryant}}, {{Mozillian|bfrancis|Ben Francis}}|| No longer active. Has transitioned to community ownership using new organization [https://github.com/WebThingsIO/ WebThingsIO].<br />
|-<br />
| [https://github.com/mozilla-lockbox mozilla-lockbox] || Mozilla Lockbox iOS, Android, desktop extension || [https://github.com/orgs/mozilla-lockbox/people?utf8=%E2%9C%93&query=role%3Aowner mozilla-lockbox owners]||<br />
|-<br />
| [https://github.com/mozilla-metrics mozilla-metrics] || Mozilla Metrics || ?||<br />
|-<br />
| [https://github.com/mozilla-platform-ops mozilla-platform-ops] || Mozilla Platform Operations || [[Platform_Operations]]||<br />
|-<br />
| [https://github.com/mozilla-raptor mozilla-raptor] || Mozilla Raptor / Firefox OS Performance || {{Mozillian|eliperelman|Eli Perelman}}, {{Mozillian|rwood|Rob Wood}}||<br />
|-<br />
| [https://github.com/mozilla-releng mozilla-releng] || Mozilla Release Engineering || #releng||<br />
|-<br />
| [https://github.com/mozilla-services mozilla-services] || Mozilla Services || [https://github.com/orgs/mozilla-services/people?utf8=%E2%9C%93&query=role%3Aowner mozilla-services owners]|| [https://github.com/mozilla-services/github-management/issues Open Issue]<br />
|-<br />
| [https://github.com/mozilla-mobile/ mozilla-mobile] || Mobile: Android Product Team & Firefox iOS teams || [https://github.com/orgs/mozilla-mobile/people?utf8=%E2%9C%93&query=role%3Aowner mozilla-mobile owners]||<br />
|-<br />
| [https://github.com/mozilla-spidermonkey mozilla-spidermonkey] || Mozilla SpiderMonkey Team tools and embedding info || #jsapi||<br />
|-<br />
| [https://github.com/mozilla-standards mozilla-standards] || Mozilla Standards (for IPR Contributions) || [https://mozillians.org/u/dbaron/ dbaron], [https://mozillians.org/u/annevk/ annevk]||<br />
|-<br />
| [https://github.com/mozilla-svcops mozilla-svcops] || Mozilla Cloud Services Ops || {{Mozillian|relud|Daniel Thornton}}||<br />
|-<br />
| [https://github.com/Mozilla-TWQA Mozilla-TWQA] || Mozilla Taiwan QA || ?||<br />
|-<br />
| [https://github.com/mozillahispano mozillahispano] || Mozilla Hispano || ?||<br />
|-<br />
| [https://github.com/MozillaReality MozillaReality] || Mozilla Mixed Reality program || {{Mozillian|larsberg|Lars Bergstrom}}, {{Mozillian|plamb|Philip Lamb}}||<br />
|-<br />
| [https://github.com/MozillaResearch MozillaResearch ] || Mozilla Research space|| {{Mozillian|larsberg|Lars Bergstrom}}||<br />
|-<br />
| [https://github.com/MozillaScience MozillaScience] || Mozilla Science Lab || ?||<br />
|-<br />
| [https://github.com/MozillaSecurity MozillaSecurity] || Mozilla Platform Fuzzing Team master repo with many fuzzing tools under it. || ?||<br />
|-<br />
| [https://github.com/MozillaWiki MozillaWiki] || MozillaWiki (wiki.mozilla.org) || {{Mozillian|ckoehler|Christie Koehler}}, {{Mozillian|gphemsley|Gordon P. Hemsley}}||<br />
|-<br />
| [https://github.com/mozillayvr mozillayvr] || Mozilla Vancouver @MozillaYVR || {{Mozillian|bclark|Brian Clark}}, {{Mozillian|shobson|Stephanie Hobson}}||<br />
|-<br />
| [https://github.com/mozfr mozfr] || Mozilla Francophone ||||<br />
|-<br />
| [https://github.com/opennews opennews] || Knight-Mozilla OpenNews || ?||<br />
|-<br />
| [https://github.com/rust-lang rust-lang] || The Rust Programming Language || {{Mozillian|aturon|Aaron Turon}}||<br />
|-<br />
| [https://github.com/servo servo] || Servo (browser engine written in Rust) || {{Mozillian|larsberg|Lars Bergstrom}}, {{Mozillian|jdm|Josh Matthews}}||<br />
|-<br />
| [https://github.com/mozilla-l10n mozilla-l10n] || Mozilla l10n-drivers team || Francesco Lodolo https://mozillians.org/u/flod/||<br />
|-<br />
| [https://github.com/taskcluster taskcluster] || [[TaskCluster]] Team || [https://github.com/gregarndt Greg Arndt]||<br />
|-<br />
| [https://github.com/MozillaCH MozillaCH] || Mozilla [[Switzerland]] || {{Mozillian|mkohler|Michael Kohler}}, {{Mozillian|freaktechnik|freaktechnik}}||<br />
|-<br />
| [https://github.com/mozmeao MozMEAO] || Mozilla [[Marketing]] || {{Mozillian|bensternthal|Benjamin Sternthal}}, {{Mozillian|pmac|Paul McLanahan}}||<br />
|-<br />
| [https://github.com/mozilla-payments mozilla-payments] || Implementation of Web Payment APIs || {{Mozillian|Marcos Caceres}}||<br />
|-<br />
| [https://github.com/mozilla-jetpack mozilla-jetpack] || Resources for Mozilla's Add-on SDK || ?||<br />
|-<br />
| [https://github.com/web-ext-experiments web-ext-experiments] || WebExtension API Experiments || {{Mozillian|andym|Andy McKay}}||<br />
|-<br />
| [https://github.com/mozilla-conduit mozilla-conduit] || Mozilla Conduit work || {{Mozillian|glob|glob}}||<br />
|-<br />
| [https://github.com/mozsearch mozsearch] || The code that runs Searchfox.org || {{Mozillian|kats|Kartikaya Gupta}}||<br />
|-<br />
| [https://github.com/MozillaCZ/ MozillaCZ] || [https://www.mozilla.cz/ Mozilla.cz] || {{Mozillian|mstanke|Michal Stanke}}, {{Mozillian|MekliCZ|Michal Vašíček}}, {{Mozillian|zelitomas|Tomáš Zelina}}||<br />
|-<br />
| [https://github.com/MozillaSK/ MozillaSK] || [https://www.mozilla.sk/ Mozilla.sk] || {{Mozillian|mstanke|Michal Stanke}}, {{Mozillian|kusavica|Juraj Cigáň}}||<br />
|-<br />
| [https://github.com/MozillaDataScience MozillaDataScience] || Ad-hoc analyses by data scientists. || Matrix: #data-science:mozilla.org ||<br />
|-<br />
| [https://github.com/mozilla-extensions mozilla-extensions] || CI- and release-enabled privileged webextensions and system addons. || Slack: #addon-pipeline ||<br />
|-<br />
| [https://github.com/mozilla-frontend-infra Mozilla-Frontend-Infra] || Frontend Testing support || || [https://bugzilla.mozilla.org/enter_bug.cgi?comment=I%27ve%20read%20https%3A%2F%2Fwiki.mozilla.org%2FGithub%2C%20and%20need%20help%20with%20the%20following.%0D%0A%0D%0A&component=Github%3A%20Administration&form_name=enter_bug&product=mozilla.org&short_desc=%5bMozilla-Frontend-Infra%5d Mozilla Frontend Infra request]<br />
|-<br />
| [https://github.com/mozilla-rally mozilla-rally] || ION (former Pioneer) platform. || Slack: #ion ||<br />
|-<br />
| [https://github.com/firefox-devtools firefox-devtools] || Firefox Developer Tools || ? ||<br />
|}<br />
<br />
=== Are there other unofficial or Mozilla-related repositories hosted on Github? ===<br />
Why, yes! In no particular order:<br />
<br />
* [https://github.com/kinetiknz/cubeb/ https://github.com/kinetiknz/cubeb/] : Cubeb cross platform audio library.<br />
* [https://github.com/djg/cubeb-rs/ https://github.com/djg/cubeb-rs/] : Rust bindings for cubeb.<br />
* [https://github.com/kinetiknz/nestegg/ https://github.com/kinetiknz/nestegg/] : WebM demuxer.<br />
* [https://github.com/xiph/opus/ https://github.com/xiph/opus/] : Modern audio compression for the internet.<br />
* [https://github.com/webmproject/libvpx https://github.com/webmproject/libvpx] : Mirror only. Please do not send pull requests.<br />
* [https://github.com/campd/fxdt-adapters https://github.com/campd/fxdt-adapters] : Firefox Developer Tools protocol adapters<br />
* [https://github.com/kripken/emscripten https://github.com/kripken/emscripten] : Emscripten: An LLVM-to-JavaScript Compiler<br />
* [https://github.com/bbondy/codefirefox https://github.com/bbondy/codefirefox] : Video and exercise based tutorial site for coding Firefox and other Mozilla related technology<br />
* [https://github.com/nickdesaulniers/where-is-firefox-os https://github.com/nickdesaulniers/where-is-firefox-os] : A map showing where in the world Firefox OS phones are being sold.<br />
* [https://github.com/jdm/bugsahoy https://github.com/jdm/bugsahoy] : A landing page to make finding relevant bugs easier for new Mozilla contributors.<br />
* [https://github.com/w3c/web-platform-tests https://github.com/w3c/web-platform-tests] : Test Suites for Web Platform specifications<br />
* [https://github.com/w3c/wptserve https://github.com/w3c/wptserve] : Web server designed for use with web-platform-tests<br />
* [https://github.com/w3c/wptrunner https://github.com/w3c/wptrunner] : Cross-browser and multi-platform test runner for web-platform-tests. Used in mozilla-central and servo.<br />
* [https://github.com/w3c/testharness.js https://github.com/w3c/testharness.js] : (no description)<br />
* [https://github.com/jdm/asknot https://github.com/jdm/asknot] : Ask not what Mozilla can do for you but what you can do for Mozilla.<br />
* [https://github.com/jeffbryner/MozDef https://github.com/jeffbryner/MozDef]: Mozilla Defense Platform.<br />
* [https://github.com/jgraham/webdriver-rust https://github.com/jgraham/webdriver-rust]: WebDriver library for Rust.<br />
* [https://github.com/ehsan/mozilla-cvs-history https://github.com/ehsan/mozilla-cvs-history]: A git conversion of the full Mozilla CVS history, useful for code archaeology.<br />
* [https://github.com/djg/audioipc-2 https://github.com/djg/audioipc-2]: Audio IPC for Gecko.<br />
* [https://github.com/hsivonen/encoding_rs https://github.com/hsivonen/encoding_rs]: encoding_rs (character encoding converters for Gecko)<br />
* [https://github.com/choller/firefox-asan-reporter https://github.com/choller/firefox-asan-reporter] : Internal addon used in conjunction with special ASan builds of Firefox.<br />
* [https://github.com/jrmuizel/qcms https://github.com/jrmuizel/qcms] : Fork of 'quick color management' for Firefox<br />
* https://github.com/webcompat : Web Compatibility Team (Industry wide) -- {{Mozillian|miketaylr|Mike Taylor}}</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Meeting&diff=1225974Firefox/Meeting2020-04-07T09:01:23Z<p>Standard8: Fix meeting date</p>
<hr />
<div>We meet biweekly to discuss development status of [[Firefox]] desktop. Please use [https://matrix.to/#/!mbruiMqkXiqZMMNqXa:mozilla.org?via=mozilla.org&via=matrix.org&via=archlinux.org #fx-desktop-dev] or [https://mail.mozilla.org/listinfo/firefox-dev firefox-dev@mozilla.org] for communication.<br />
<br />
== Meeting Details == <br />
<br />
* Every second Tuesday @ 8:00AM Pacific<br />
* [https://matrix.to/#/!mbruiMqkXiqZMMNqXa:mozilla.org?via=mozilla.org&via=matrix.org&via=archlinux.org #fx-desktop-dev] for backchannel<br />
<br />
{{Zoom|563004683}}<br />
<br />
Download Zoom client: https://zoom.us/support/download<br />
<br />
== Meeting Notes ==<br />
[[Firefox/Meeting/Template|Template]]<br />
<br />
{| class="wikitable mw-collapsible" style="width: 100%"<br />
! 2020<br />
|-<br />
|<br />
* [https://docs.google.com/document/d/1hM9bmIdIe0PeQEB4SbU7NG3m7MmjgLJjUB7Fzr7fGEU/edit Apr 7, 2020] ([https://docs.google.com/document/d/e/2PACX-1vTYzdbkKSi9f-uGIwfxL5KKBXEQG6S283Dre_cZ4_gC0XBbjFFVGB2P1GrU67li1R1iGhV93BCdFO3o/pub public version])<br />
* [[/24-Mar-2020|Mar 24, 2020]]<br />
* [[/10-Mar-2020|Mar 10, 2020]]<br />
* [[/25-Feb-2020|Feb 25, 2020]]<br />
* [[/11-Feb-2020|Feb 11, 2020]]<br />
* Feb 6th 2020 - 73 RC2 Talk <br />
* Feb 4th 2020 - 73 RC1 Talk<br />
* Jan 28, 2020 - Cancelled due to All Hands<br />
* [[/14-Jan-2020|Jan 14, 2020]]<br />
<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2019<br />
|-<br />
|<br />
* Dec 31, 2019 - Cancelled due to it being New Years Eve <br />
* [[/17-Dec-2019|Dec 17, 2019]]<br />
* [[/3-Dec-2019|Dec 3, 2019]]<br />
* Nov 19, 2019 - Cancelled due to meeting conflict<br />
* [[/5-Nov-2019|Nov 5, 2019]]<br />
* [[/22-Oct-2019|Oct 22, 2019]]<br />
* [[/8-Oct-2019|Oct 8, 2019]]<br />
* [[/24-Sep-2019|Sep 24, 2019]]<br />
* [[/10-Sep-2019|Sep 10, 2019]]<br />
* [[/27-Aug-2019|Aug 27, 2019]]<br />
* [[/13-Aug-2019|Aug 13, 2019]]<br />
* [[/30-Jul-2019|Jul 30, 2019]]<br />
* [[/16-Jul-2019|Jul 16, 2019]]<br />
* [[/2-Jul-2019|Jul 2, 2019]]<br />
* Jun 18, 2019 - Cancelled due to All Hands<br />
* [[/4-Jun-2019|Jun 4, 2019]]<br />
* [[/21-May-2019|May 21, 2019]]<br />
* [[/7-May-2019|May 7, 2019]]<br />
* [[/23-Apr-2019|Apr 23, 2019]]<br />
* [[/9-Apr-2019|Apr 9, 2019]]<br />
* [[/26-Mar-2019|Mar 26, 2019]]<br />
* [[/12-Mar-2019|Mar 12, 2019]]<br />
* [[/26-Feb-2019|Feb 26, 2019]]<br />
* [[/12-Feb-2019|Feb 12, 2019]]<br />
* [[/29-Jan-2019|Jan 29, 2019]]<br />
* [[/15-Jan-2019|Jan 15, 2019]]<br />
* Jan 1, 2019 - Cancelled due to New Years Eve<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[/18-Dec-2018|Dec 18, 2018]]<br />
* Dec 4, 2018 - Cancelled due to all-hands<br />
* [[/20-Nov-2018|Nov 20, 2018]]<br />
* [[/06-Nov-2018|Nov 6, 2018]]<br />
* [[/23-Oct-2018|Oct 23, 2018]]<br />
* [[/09-Oct-2018|Oct 09, 2018]]<br />
* [[/25-Sep-2018|Sep 25, 2018]]<br />
* [[/11-Sep-2018|Sep 11, 2018]]<br />
* [[/28-Aug-2018|Aug 28, 2018]]<br />
* [[/14-Aug-2018|Aug 14, 2018]]<br />
* Jul 31, 2018 - Missing. :(<br />
* [[/17-Jul-2018|Jul 17, 2018]]<br />
* [[/03-Jul-2018|Jul 3, 2018]]<br />
* Jun 19, 2018 - Cancelled due to all-hands the prior week<br />
* [[/05-Jun-2018|Jun 5, 2018]]<br />
* [[/22-May-2018|May 22, 2018]]<br />
* [[/08-May-2018|May 8, 2018]]<br />
* [[/24-Apr-2018|Apr 24, 2018]]<br />
* [[/10-Apr-2018|Apr 10, 2018]]<br />
* [[/27-Mar-2018|Mar 27, 2018]]<br />
* [[/13-Mar-2018|Mar 13, 2018]]<br />
* [[/27-Feb-2018|Feb 27, 2018]]<br />
* [[/13-Feb-2018|Feb 13, 2018]]<br />
* [[/30-Jan-2018|Jan 30, 2018]]<br />
* [[/16-Jan-2018|Jan 16, 2018]]<br />
* Jan 2, 2018 - Cancelled due to holidays<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* Dec 19, 2017 - Cancelled due to Austin All-Hands the prior week<br />
* [[/05-Dec-2017|Dec 05, 2017]]<br />
* [[/21-Nov-2017|Nov 21, 2017]]<br />
* [[/07-Nov-2017|Nov 07, 2017]]<br />
* [[/24-Oct-2017|Oct 24, 2017]]<br />
* [[/10-Oct-2017|Oct 10, 2017]]<br />
* [[/26-Sep-2017|Sep 26, 2017]]<br />
* [[/12-Sep-2017|Sep 12, 2017]]<br />
* [[/29-Aug-2017|Aug 29, 2017]]<br />
* [[/15-Aug-2017|Aug 15, 2017]]<br />
* [[/01-Aug-2017|Aug 01, 2017]]<br />
* [[/18-Jul-2017|Jul 18, 2017]]<br />
* [[/20-Jun-2017|Jun 20, 2017]]<br />
* [[/06-Jun-2017|Jun 06, 2017]]<br />
* [[/23-May-2017|May 23, 2017]]<br />
* [[/09-May-2017|May 09, 2017]]<br />
* [[/25-Apr-2017|Apr 25, 2017]]<br />
* [[/11-Apr-2017|Apr 11, 2017]]<br />
* [[/28-Mar-2017|Mar 28, 2017]]<br />
* [[/14-Mar-2017|Mar 14, 2017]]<br />
* [[/28-Feb-2017|Feb 28, 2017]]<br />
* [[/14-Feb-2017|Feb 14, 2017]]<br />
* [[/31-Jan-2017|Jan 31, 2017]]<br />
* [[/17-Jan-2017|Jan 17, 2017]]<br />
* Jan 3, 2017 - Cancelled due to holidays<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2016<br />
|-<br />
|<br />
* [[/20-Dec-2016|Dec 20, 2016]] <br />
* Dec 6, 2016 - Cancelled due to meeting in Hawaii<br />
* [[/22-Nov-2016|Nov 22, 2016]]<br />
* [[/08-Nov-2016|Nov 08, 2016]]<br />
* [[/25-Oct-2016|Oct 25, 2016]]<br />
* [[/11-Oct-2016|Oct 11, 2016]]<br />
* [[/27-Sep-2016|Sep 27, 2016]]<br />
* [[/13-Sep-2016|Sep 13, 2016]]<br />
* [[/30-Aug-2016|Aug 30, 2016]]<br />
* [[/16-Aug-2016|Aug 16, 2016]]<br />
* [[/02-Aug-2016|Aug 02, 2016]]<br />
* [[/19-Jul-2016|Jul 19, 2016]]<br />
* [[/05-Jul-2016|Jul 05, 2016]]<br />
* Jun 21, 2016 - Cancelled due to meeting in London the week before<br />
* [[/07-Jun-2016|Jun 07, 2016]]<br />
* [[/24-May-2016|May 24, 2016]]<br />
* [[/10-May-2016|May 10, 2016]]<br />
* [[/26-Apr-2016|Apr 26, 2016]]<br />
* [[/12-Apr-2016|Apr 12, 2016]]<br />
* [[/29-Mar-2016|Mar 29, 2016]]<br />
* [[/15-Mar-2016|Mar 15, 2016]]<br />
* [[/01-Mar-2016|Mar 01, 2016]]<br />
* [[/16-Feb-2016|Feb 16, 2016]]<br />
* [[/02-Feb-2016|Feb 02, 2016]]<br />
* [[/19-Jan-2016|Jan 19, 2016]]<br />
* Jan 05, 2016 - Cancelled due to holiday recovery<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2015<br />
|-<br />
|<br />
* Dec 22, 2015 - Cancelled due to holidays<br />
* Dec 8, 2015 - Cancelled due to in-person meetings<br />
* [[/24-Nov-2015|Nov 24, 2015]]<br />
* [[/10-Nov-2015|Nov 10, 2015]]<br />
* [[/27-Oct-2015|Oct 27, 2015]]<br />
* [[/13-Oct-2015|Oct 13, 2015]]<br />
* [[/29-Sep-2015|Sep 29, 2015]]<br />
* [[/15-Sep-2015|Sep 15, 2015]]<br />
* [[/01-Sep-2015|Sep 01, 2015]]<br />
* [[/18-Aug-2015|Aug 18, 2015]]<br />
* [[/04-Aug-2015|Aug 04, 2015]]<br />
* [[/21-Jul-2015|Jul 21, 2015]]<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2014 <br />
|-<br />
|<br />
* [[/4-Feb-2014|Feb 04, 2014]]<br />
* [[/28-Jan-2014|Jan 28, 2014]]<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
* [[/17-Dec-2013|December 17, 2013]]<br />
* [[/10-Dec-2013|December 10, 2013]]<br />
* [[/3-Dec-2013|December 3, 2013]]<br />
* [[/19-Nov-2013|November 19, 2013]]<br />
* [[/12-Nov-2013|November 12, 2013]]<br />
* [[/5-Nov-2013|November 5, 2013]]<br />
* [[/29-Oct-2013|October 29, 2013]]<br />
* [[/22-Oct-2013|October 22, 2013]]<br />
* [[/15-Oct-2013|October 15, 2013]]<br />
* [[/1-Oct-2013|October 1, 2013]]<br />
* [[/24-Sep-2013|September 24, 2013]]<br />
* [[/17-Sep-2013|September 17, 2013]]<br />
* [[/10-Sep-2013|September 10, 2013]]<br />
* [[/03-Sep-2013|September 3, 2013]]<br />
* [[/27-Aug-2013|August 27, 2013]]<br />
* [[/20-Aug-2013|August 20, 2013]]<br />
* [[/13-Aug-2013|August 13, 2013]]<br />
* [[/6-Aug-2013|August 6, 2013]]<br />
* [[/30-Jul-2013|July 30, 2013]]<br />
* [[/23-Jul-2013|July 23, 2013]]<br />
* [[/16-Jul-2013|July 16, 2013]]<br />
* [[/9-Jul-2013|July 9, 2013]]<br />
* [[/2-Jul-2013|July 2, 2013]]<br />
* [[/18-Jun-2013|June 18, 2013]]<br />
* [[/11-Jun-2013|June 11, 2013]]<br />
* [[/4-Jun-2013|June 4, 2013]]<br />
* [[/28-May-2013|May 28, 2013]]<br />
* [[/21-May-2013|May 21, 2013]]<br />
* [[/14-May-2013|May 14, 2013]]<br />
* [[/7-May-2013|May 7, 2013]]<br />
* [[/30-Apr-2013|Apr 30, 2013]]<br />
* [[/23-Apr-2013|Apr 23, 2013]]<br />
* [[/16-Apr-2013|Apr 16, 2013]]<br />
* [[/9-Apr-2013|Apr 9, 2013]]<br />
* [[/2-Apr-2013|Apr 2, 2013]]<br />
* [[/26-Mar-2013|Mar 26, 2013]]<br />
* [[/19-Mar-2013|Mar 19, 2013]]<br />
* [[/12-Mar-2013|Mar 12, 2013]]<br />
* [[/5-Mar-2013|Mar 5, 2013]]<br />
* [[/26-Feb-2013|Feb 26, 2013]]<br />
* [[/19-Feb-2013|Feb 19, 2013]]<br />
* [[/12-Feb-2013|Feb 12, 2013]]<br />
* [[/5-Feb-2013|Feb 5, 2013]]<br />
* [[/22-Jan-2013|Jan 22, 2013]]<br />
* [[/15-Jan-2013|Jan 15, 2013]]<br />
* [[/8-Jan-2013|Jan 8, 2013]]<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
* [[/8-Jan-2013|Jan 8, 2013]]<br />
* [[/18-Dec-2012|Dec 18, 2012]]<br />
* [[/11-Dec-2012|Dec 11, 2012]]<br />
* [[/4-Dec-2012|Dec 4, 2012]]<br />
* [[/27-Nov-2012|Nov 27, 2012]]<br />
* [[/20-Nov-2012|Nov 20, 2012]]<br />
|}</div>Standard8https://wiki.mozilla.org/index.php?title=TestEngineering/Performance/Talos/Tests&diff=1224010TestEngineering/Performance/Talos/Tests2020-02-20T09:59:01Z<p>Standard8: /* xperf */ Add some notes about current xperf issues.</p>
<hr />
<div>= At a glance =<br />
* Tests are defined in [https://searchfox.org/mozilla-central/source/testing/talos/talos/test.py testing/talos/talos/test.py]<br />
* Treeherder abbreviations are defined in [https://searchfox.org/mozilla-central/source/taskcluster/ci/test/talos.yml taskcluster/ci/test/talos.yml]<br />
* Suites are defined for production in [https://searchfox.org/mozilla-central/source/testing/talos/talos.json testing/talos/talos.json]<br />
<br />
= Test lifecycle =<br />
* Taskcluster schedules [https://searchfox.org/mozilla-central/source/taskcluster/ci/test/talos.yml talos jobs]<br />
* Taskcluster runs a Talos job on a hardware machine when one is available - this is bootstrapped by [https://searchfox.org/mozilla-central/source/testing/mozharness/mozharness/mozilla/testing/talos.py mozharness]<br />
** [https://searchfox.org/mozilla-central/source/testing/mozharness/mozharness/mozilla/testing/talos.py mozharness downloads the build, talos.zip (found in [http://hg.mozilla.org/mozilla-central/tip/testing/talos/talos.json talos.json]), and creates a virtualenv for running the test.<br />
** mozharness [[../Running#How_Talos_is_Run_in_Production|configures the test and runs it]]<br />
** After the test is completed the data is uploaded to [https://treeherder.mozilla.org/perf.html#/graphs Perfherder]<br />
* Treeherder displays a green (all OK) status and has a link to [https://treeherder.mozilla.org/perf.html#/graphs Perfherder]<br />
* 13 pushes later, [http://hg.mozilla.org/graphs/file/tip/server/analysis/analyze_talos.py analyze_talos.py] is ran which compares your push to the previous 12 pushes and next 12 pushes to look for a [[../Data#Regressions|regression]]<br />
** If a regression is found, it will be posted on [https://treeherder.mozilla.org/perf.html#/alerts Perfherder Alerts]<br />
<br />
= Test types =<br />
<br />
There are two different species of Talos tests:<br />
<br />
* [[#Startup]]: Start up the browser and wait for either the load event or the paint event and exit, measuring the time<br />
* [[#Page load]]: Load a manifest of pages<br />
<br />
In addition we have some variations on existing tests:<br />
* [[#Heavy]]: Run tests with the heavy user profile instead of a blank one<br />
* [[#Web extension]]: Run tests with a web extension to see the perf impact extension have<br />
<br />
Some tests measure different things:<br />
* [[#Paint]]: These measure events from the browser like moz_after_paint, etc.<br />
* [[#ASAP]]: These tests go really fast and typically measure how many frames we can render in a time window<br />
* [[#Benchmarks]]: These are benchmarks that measure specific items and report a summarized score<br />
<br />
== Startup ==<br />
[https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/startup_test Startup tests] launch Firefox and measure the time to the onload or paint events. We run this in a series of cycles (default to 20) to generate a full set of data. Tests that currently are startup tests are:<br />
* [[#ts_paint]]<br />
* [[#tpaint]]<br />
* [[#tresize]]<br />
* [[#sessionrestore]]<br />
* [[#sessionrestore_no_auto_restore]]<br />
* [[#sessionrestore_many_windows]]<br />
<br />
== Page load ==<br />
Many of the talos tests use the page loader to load a manifest of pages.<br />
These are tests that load a specific page and measure the time it takes to load the page, scroll the page, draw the page etc. In order to run a page load test, you need a manifest of pages to run. The manifest is simply a list of URLs of pages to load, separated by carriage returns, e.g.:<br />
<pre><br />
https://www.mozilla.org<br />
https://www.mozilla.com<br />
</pre><br />
Example: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/svgx/svgx.manifest svgx.manifest]<br />
<br />
Manifests may also specify that a test computes its own data by prepending a <tt>%</tt> in front of the line:<br />
<pre><br />
% https://www.mozilla.org<br />
% https://www.mozilla.com<br />
</pre><br />
Example: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/v8_7/v8.manifest v8.manifest]<br />
<br />
The file you created should be referenced in your test config inside of [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l607 test.py]. For example, open test.py, and look for the line referring to the test you want to run:<br />
<pre><br />
tpmanifest = '${talos}/page_load_test/svgx/svgx.manifest'<br />
tpcycles = 1 # run a single cycle<br />
tppagecycles = 25 # load each page 25 times before moving onto the next page<br />
</pre><br />
<br />
== Heavy ==<br />
All our testing is done with empty blank profiles, this is not ideal for finding issues for end users. We recently undertook a task to create a daily update to a profile so it is modern and relevant. It browses a variety of web pages, and have history and cache to give us a more realistic scenario.<br />
<br />
The toolchain is documented on [https://github.com/tarekziade/heavy-profile github] and was added to Talos in {{bug|1407398}}.<br />
<br />
Currently we have issues with this on windows (takes too long to unpack the files from the profile), so we have turned this off there. Our goal is to run this on basic pageload and startup tests.<br />
<br />
== Web extension ==<br />
Web Extensions are what Firefox has switched to and there are different code paths and APIs used vs addons. Historically we don't test with addons (other than our test addons) and are missing out on common slowdowns. In 2017 we started running some startup and basic pageload tests with a web extension in the profile ({{bug|1398974}}). We have updated the Extension to be more real world and will continue to do that.<br />
<br />
== Paint ==<br />
Paint tests are measuring the time to receive both the [https://developer.mozilla.org/en-US/docs/Web/Events/MozAfterPaint MozAfterPaint] and OnLoad event instead of just the OnLoad event. Most tests now look for this unless they are an ASAP test, or an internal benchmark<br />
<br />
== ASAP ==<br />
We have a variety of tests which we now run in ASAP mode where we render as fast as possible (disabling vsync and letting the rendering iterate as fast as it can using `requestAnimationFrame`). In fact we have replaced some original tests with the 'x' versions to make them measure. We do this with RequestAnimationFrame().<br />
<br />
ASAP tests are:<br />
* [[#basic_compositor_video]]<br />
* [[#displaylist_mutate]]<br />
* [[#glterrain]]<br />
* [[#rasterflood_svg]]<br />
* [[#rasterflood_gradient]]<br />
* [[#tsvgx]]<br />
* [[#tscrollx]]<br />
* [[#tp5o_scroll]]<br />
* [[#tabswitch]]<br />
* [[#TART]]<br />
<br />
== Benchmarks ==<br />
Many tests have internal benchmarks which we report as accurately as possible. These are the exceptions to the general rule of calculating the suite score as a geometric mean of the subtest values (which are median values of the raw data from the subtests).<br />
<br />
Tests which are imported benchmarks are:<br />
* [[#ares6]]<br />
* [[#Dromaeo]]<br />
* [[#jetstream]]<br />
* [[#kraken]]<br />
* [[#motionmark]]<br />
* [[#stylebench]]<br />
<br />
== Row major vs. column major ==<br />
To get more stable numbers, tests are run multiple times. There are two ways that we do this: row major and column major. Row major means each test is run multiple times and then we move to the next test (and run it multiple times). Column major means that each test is run once one after the other and then the whole sequence of tests is run again.<br />
<br />
More background information about these approaches can be found in Joel Maher's [https://elvis314.wordpress.com/2012/03/12/reducing-the-noise-in-talos/ Reducing the Noise in Talos] blog post.<br />
<br />
= Page sets =<br />
We run our tests 100% offline, but serve pages via a webserver. Knowing this we need to store and make available the offline pages we use for testing.<br />
<br />
== tp5pages ==<br />
Some tests make use of a set of 50 "real world" pages, known as the tp5n set. These pages are not part of the talos repository, but without them the tests which use them won't run.<br />
* To add these pages to your local setup, download the latest tp5n zip from [https://mozilla-releng.net/tooltool/ tooltool], and extract it such that `'''tp5n'''` ends up as `testing/talos/talos/tests/'''tp5n'''`. You can also obtain it by running a talos test locally to get the zip into `testing/talos/talos/tests/`, i.e <tt>./mach talos-test --suite damp</tt><br />
* see also [[#tp5|tp5 test]].<br />
<br />
= Test definitions =<br />
<br />
'''Please keep these in alphabetical order'''<br />
<br />
== a11y ==<br />
* contact: :surkov<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/a11y a11y.manifest]<br />
* type: PageLoader<br />
* measuring: ???<br />
* data: we load 2 pages 25 times each, collect 2 sets of 25 data points<br />
* summarization<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 24; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l627 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 2 subtest results.<br />
<br />
* reporting: test time in ms (lower is better)<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|a11yr<br />
|[[#Row_Major_vs._Column_Major|Row Major]] testing with 25 cycles per page<br />
|}<br />
<br />
This test ensures basic a11y tables and permutations do not cause performance regressions.<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;dhtml.html;1584;1637;1643;1665;1741;1529;1647;1645;1692;1647;1542;1750;1654;1649;1541;1656;1674;1645;1645;1740;1558;1652;1654;1656;1654<br />
1;tablemutation.html;398;385;389;391;387;387;385;387;388;385;384;31746;386;387;384;387;389;387;387;387;388;391;386;387;388<br />
</pre><br />
|}<br />
<br />
== about-preferences ==<br />
* contact: :jaws<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/about-preferences/about_preferences_basic.manifest]<br />
* type: PageLoader<br />
* measuring: first-non-blank-paint<br />
* data: We load 5 urls 1 time each, and repeat for 25 cycles; collecting 25 sets of 5 data points<br />
* summarization<br />
** subtest: [[../Data#ignore_first|ignore first]] five data points, then take the [[../Data#median|median]] of the rest; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l627 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the the subtest results.<br />
<br />
* reporting: test time in ms (lower is better)<br />
<br />
This test measures the performance of the Firefox about:preferences page. This test is a little different than other pageload tests in that we are loading one page (about:preferences) but also testing the loading of that same page's subcategories/panels (i.e. about:preferences#home).<br />
<br />
When simply changing the page's panel/category, that doesn't cause a new onload event as expected; therefore we had to introduce loading the 'about:blank' page in between each page category; that forces the entire page to reload with the specified category panel activated.<br />
<br />
For that reason, when new panels/categories are added to the 'about:preferences' page, it can be expected that a performance regression may be introduced, even if a subtest hasn't been added for that new page category yet.<br />
<br />
This test should only ever have 1 pagecycle consisting of the main about-preferences page and each category separated by an about:blank between. Then repeats are achieved by using 25 cycles (instead of pagecycles).<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;preferences;346;141;143;150;136;143;153;140;154;156;143;154;146;147;151;166;140;146;140;144;144;156;154;150;140<br />
2;preferences#search;164;142;133;141;141;141;142;140;131;146;131;140;131;131;139;142;140;144;146;143;143;142;142;137;143<br />
3;preferences#privacy;179;159;166;177;173;153;148;154;168;155;164;155;152;157;149;155;156;186;149;156;160;151;158;168;157<br />
4;preferences#sync;148;156;140;137;159;139;143;145;138;130;145;142;141;133;146;141;147;143;146;146;139;144;142;151;156<br />
5;preferences#home;141;111;130;131;138;128;133;122;138;138;131;139;139;132;133;141;143;139;138;135;136;128;134;140;135<br />
</pre><br />
|}<br />
<br />
== ARES-6 ==<br />
* contact: :jandem<br />
* source: [https://searchfox.org/mozilla-central/source/third_party/webkit/PerformanceTests/ARES-6 ARES-6]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* data: 6 cycles of the entire benchmark<br />
** [https://searchfox.org/mozilla-central/source/testing/talos/talos/output.py#259 geometric mean] self reported from the benchmark<br />
* '''Lower is better'''<br />
* unit: geometric mean / benchmark score<br />
<br />
== Basic compositor video ==<br />
* contact: :davidb<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/video video]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* data: 12 cycles of the entire benchmark, each subtest will have 12 data points (see below)<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 11; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l522 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 24 subtest results.<br />
* '''Lower is better'''<br />
* unit: ms/frame<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|basic_compositor_video<br />
|<br />
|}<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
;0;240p.120fps.mp4_scale_fullscreen_startup;11.112;11.071;11.196;11.157;11.195;11.240;11.196;11.155;11.237;11.074;11.154;11.282<br />
;1;240p.120fps.mp4_scale_fullscreen_inclip;10.995;11.114;11.052;10.991;10.876;11.115;10.995;10.991;10.997;10.994;10.992;10.993<br />
;2;240p.120fps.mp4_scale_1_startup;1.686;1.690;1.694;1.683;1.689;1.692;1.686;1.692;1.689;1.704;1.684;1.686<br />
;3;240p.120fps.mp4_scale_1_inclip;1.666;1.666;1.666;1.668;1.667;1.669;1.667;1.668;1.668;1.667;1.667;1.669<br />
;4;240p.120fps.mp4_scale_1.1_startup;1.677;1.672;1.673;1.677;1.673;1.677;1.672;1.677;1.677;1.671;1.676;1.679<br />
;5;240p.120fps.mp4_scale_1.1_inclip;1.667;1.668;1.666;1.667;1.667;1.668;1.667;1.667;1.667;1.667;1.668;1.668<br />
;6;240p.120fps.mp4_scale_2_startup;1.927;1.908;1.947;1.946;1.902;1.932;1.916;1.936;1.921;1.896;1.908;1.894<br />
;7;240p.120fps.mp4_scale_2_inclip;1.911;1.901;1.896;1.917;1.897;1.921;1.907;1.944;1.904;1.912;1.936;1.913<br />
;8;480p.60fps.webm_scale_fullscreen_startup;11.675;11.587;11.539;11.454;11.723;11.410;11.629;11.410;11.454;11.498;11.540;11.540<br />
;9;480p.60fps.webm_scale_fullscreen_inclip;11.304;11.238;11.370;11.300;11.364;11.368;11.237;11.238;11.434;11.238;11.304;11.368<br />
;10;480p.60fps.webm_scale_1_startup;3.386;3.360;3.391;3.376;3.387;3.402;3.371;3.371;3.356;3.383;3.376;3.356<br />
;11;480p.60fps.webm_scale_1_inclip;3.334;3.334;3.329;3.334;3.334;3.334;3.334;3.334;3.334;3.335;3.334;3.334<br />
;12;480p.60fps.webm_scale_1.1_startup;3.363;3.363;3.368;3.356;3.356;3.379;3.364;3.360;3.360;3.356;3.363;3.356<br />
;13;480p.60fps.webm_scale_1.1_inclip;3.329;3.334;3.329;3.334;3.333;3.334;3.334;3.334;3.340;3.335;3.329;3.335<br />
;14;480p.60fps.webm_scale_2_startup;4.960;4.880;4.847;4.959;4.802;4.863;4.824;4.926;4.847;4.785;4.870;4.855<br />
;15;480p.60fps.webm_scale_2_inclip;4.903;4.786;4.892;4.903;4.822;4.832;4.798;4.857;4.808;4.856;4.926;4.741<br />
;16;1080p.60fps.mp4_scale_fullscreen_startup;14.638;14.495;14.496;14.710;14.781;14.853;14.639;14.637;14.707;14.637;14.711;14.636<br />
;17;1080p.60fps.mp4_scale_fullscreen_inclip;13.795;13.798;13.893;13.702;13.799;13.607;13.798;13.705;13.896;13.896;13.896;14.088<br />
;18;1080p.60fps.mp4_scale_1_startup;6.995;6.851;6.930;6.820;6.915;6.805;6.898;6.866;6.852;6.850;6.803;6.851<br />
;19;1080p.60fps.mp4_scale_1_inclip;6.560;6.625;6.713;6.601;6.645;6.496;6.624;6.538;6.539;6.497;6.580;6.558<br />
;20;1080p.60fps.mp4_scale_1.1_startup;7.354;7.230;7.195;7.300;7.266;7.283;7.196;7.249;7.230;7.230;7.212;7.264<br />
;21;1080p.60fps.mp4_scale_1.1_inclip;6.969;7.222;7.018;6.993;7.045;6.970;6.970;6.807;7.118;6.969;6.997;6.972<br />
;22;1080p.60fps.mp4_scale_2_startup;6.963;6.947;6.914;6.929;6.979;7.010;7.010245327102808;6.914;6.961;7.028;7.012;6.914<br />
;23;1080p.60fps.mp4_scale_2_inclip;6.757;6.694;6.672;6.669;6.737;6.831;6.716;6.715;6.832;6.670;6.672;6.759<br />
</pre><br />
|}<br />
<br />
== perf-reftest ==<br />
* contact: :bholley<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/perf-reftest perf-reftest]<br />
* type: [[#Page_Load_Tests|PageLoader]]<br />
* reporting: intervals in ms (lower is better)<br />
* data: each test loads 25 times<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] 5 data points, then take the [[../Data#median|median]] of the remaining 20 data points; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l734 source: test.py]<br />
** suite: identical to subtest<br />
<br />
'''Important note:''' This test now requires an 'opt' build. If the perf-reftest is ran on a non-opt build, it will time out (more specifically on innertext-1.html, and possibly others in the future).<br />
<br />
Style system performance test suite. The perf-reftest suite is a unique talos suite where each subtest loads two different test pages: a 'base' page (i.e. bloom_basic) and a 'reference' page (i.e. bloom_basic_ref), and then compares each of the page load times against eachother to determine the variance.<br />
<br />
Talos runs each of the two pages as if they are stand-alone tests, and then calculates and reports the variance; the test output 'replicates' reported from bloom_basic are actually the comparisons between the 'base' and 'reference' pages for each page load cycle. The suite contains multiple subtests, each of which contains a base page and a reference page.<br />
<br />
If you wish to see the individual 'base' and 'reference' page results instead of just the reported difference, the 'base_replicates' and 'ref_replicates' can be found in the PERFHERDER_DATA log file output, and in the 'local.json' talos output file when running talos locally. In production, both of the page replicates are also archived in the perfherder-data.json file. The perfherder-data.json file is archived after each run in production, and can be found on the Treeherder Job Details tab when the perf-reftest job symbol is selected.<br />
<br />
This test suite was ported over from the style-perf-tests (https://github.com/heycam/style-perf-tests).<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
"replicates": [1.185, 1.69, 1.22, 0.36, 11.26, 3.835, 3.315, 1.355, 3.185, 2.485, 2.2, 1.01, 0.9, 1.22, 1.9,<br />
0.285, 1.52, 0.31, 2.58, 0.725, 2.31, 2.67, 3.295, 1.57, 0.3], "value": 1.7349999999999999, "unit": "ms",<br />
<br />
"base_replicates": [166.94000000000003, 165.16, 165.64000000000001, 165.04000000000002, 167.355, 165.175,<br />
165.325, 165.11, 164.175, 164.78, 165.555, 165.885, 166.83499999999998, 165.76500000000001, 164.375, 166.825,<br />
167.13, 166.425, 169.22500000000002, 164.955, 165.335, 164.45000000000002, 164.85500000000002, 165.005, 166.035]}],<br />
<br />
"ref_replicates": [165.755, 166.85000000000002, 166.85999999999999, 165.4, 178.615, 169.01, 168.64, 166.465,<br />
167.36, 167.265, 167.75500000000002, 166.895, 167.735, 166.985, 166.275, 166.54000000000002, 165.61, 166.115,<br />
166.64499999999998, 165.68, 167.64499999999998, 167.12, 168.15, 166.575, 166.335], <br />
</pre><br />
|}<br />
<br />
== perf-reftest-singletons ==<br />
* contact: :heycam<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/perf-reftest-singletons perf-reftest-singletons]<br />
* type: [[#Page_Load_Tests|PageLoader]]<br />
* reporting: intervals in ms (lower is better)<br />
* data: each test loads 25 times<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] 5 data points, then take the [[../Data#median|median]] of the remaining 20 data points; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l734 source: test.py]<br />
** suite: identical to subtest<br />
<br />
Individual style system performance tests. The perf-reftest-singletons suite runs the perf-reftest 'base' pages (i.e. bloom_basic) test individually, and reports the values for that single test page alone, NOT the comparison of two different pages. There are multiple subtests in this suite, each just containing the base page on its own.<br />
<br />
This test suite was ported over from the style-perf-tests (https://github.com/heycam/style-perf-tests).<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
bloombasic.html;88.34000000000003;88.66499999999999;94.815;92.60500000000002;95.30000000000001;<br />
98.80000000000001;91.975;87.73500000000001;86.925;86.965;93.00500000000001;98.93;87.45000000000002;<br />
87.14500000000001;92.78500000000001;86.96499999999999;98.32000000000001;97.485;90.67000000000002;<br />
86.72500000000001;95.665;100.67;101.095;94.32;91.87<br />
</pre><br />
|}<br />
<br />
== cpstartup ==<br />
* contact: :mconley<br />
* measuring: Time from opening a new tab (which creates a new content process) to having that new content process be ready to load URLs.<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/cpstartup cpstartup]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* bug: {{bug|1336389}}<br />
* data: 20 cycles of the entire benchmark<br />
* '''Lower is better'''<br />
* unit: ms<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;content-process-startup;877;737;687;688;802;697;794;685;694;688;794;669;699;684;690;849;687;873;694;689<br />
</pre><br />
|}<br />
<br />
== DAMP ==<br />
* contact: :ochameau<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/devtools damp]<br />
* type: PageLoader<br />
* measuring: Developer Tools toolbox startup, shutdown, and reload performance<br />
* reporting: intervals in ms (lower is better) - see below for details<br />
* data: there are 36 reported subtests from DAMP which we load 25 times, resulting in 36 sets of 25 data points.<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 24 data points; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l356 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 36 subtest results.<br />
<br />
To run this locally, you'll need to pull down the [[#Page_sets|tp5 page set]] and run it in a local web server. See the [[#tp5|tp5 section]].<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;simple.webconsole.open.DAMP;1198.86;354.38;314.44;337.32;344.73;339.05;345.55;358.37;314.89;353.73;324.02;339.45;304.63;335.50;316.69;341.05;353.45;353.73;342.28;344.63;357.62;375.18;326.08;363.10;357.30<br />
1;simple.webconsole.reload.DAMP;44.60;41.21;25.62;29.85;38.10;42.29;38.25;40.14;26.95;39.24;40.32;34.67;34.64;44.88;32.51;42.09;28.04;43.05;40.62;36.56;42.44;44.11;38.69;29.10;42.00<br />
2;simple.webconsole.close.DAMP;27.26;26.97;25.45;27.82;25.98;26.05;38.00;26.89;24.90;26.61;24.90;27.22;26.95;25.18;24.24;25.60;28.91;26.90;25.57;26.04;26.79;27.33;25.76;26.47;27.43<br />
3;simple.inspector.open.DAMP;507.80;442.03;424.93;444.62;412.94;451.18;441.39;435.83;441.27;460.69;440.93;413.13;418.73;443.41;413.93;447.34;434.69;459.24;453.60;412.58;445.41;466.34;441.89;417.59;428.82<br />
4;simple.inspector.reload.DAMP;169.45;165.11;163.93;181.12;167.86;164.67;170.34;173.12;165.24;180.59;176.72;187.42;170.14;190.35;176.59;155.00;151.66;174.40;169.46;163.85;190.93;217.00;186.25;181.31;161.13<br />
5;simple.inspector.close.DAMP;44.40;42.28;42.71;47.21;41.74;41.24;42.94;43.73;48.24;43.04;48.61;42.49;45.93;41.36;43.83;42.43;41.81;43.93;41.38;40.98;49.76;50.86;43.49;48.99;44.02<br />
6;simple.jsdebugger.open.DAMP;642.59;464.02;540.62;445.46;471.09;466.57;466.70;511.91;424.12;480.70;448.37;477.51;488.99;437.97;442.32;459.03;421.54;467.99;472.78;440.27;431.47;454.76;436.86;453.61;485.59<br />
7;simple.jsdebugger.reload.DAMP;51.65;55.46;225.46;53.32;58.78;53.23;54.39;51.59;55.46;48.03;50.70;46.34;230.94;53.71;54.23;53.01;61.03;51.23;51.45;293.01;56.93;51.44;59.85;63.35;57.44<br />
8;simple.jsdebugger.close.DAMP;29.12;30.76;40.34;32.09;31.26;32.30;33.95;31.89;29.68;31.39;32.09;30.36;44.63;32.33;30.16;32.43;30.89;30.85;31.99;49.86;30.94;44.63;32.54;29.79;33.15<br />
9;simple.styleeditor.open.DAMP;758.54;896.93;821.17;1026.24;887.14;867.39;927.86;962.80;740.40;919.39;741.01;925.21;807.39;1051.47;729.04;1095.78;755.03;888.70;900.52;810.30;1090.09;869.72;737.44;893.16;927.72<br />
10;simple.styleeditor.reload.DAMP;57.32;178.13;59.23;60.82;71.45;78.86;74.35;60.11;66.43;77.41;61.96;69.22;65.97;45.53;67.88;74.76;124.61;60.01;36.66;59.24;65.01;165.68;34.61;69.02;71.42<br />
11;simple.styleeditor.close.DAMP;28.28;56.50;36.18;30.00;36.32;34.85;35.33;36.24;25.45;36.72;26.53;36.90;28.88;30.94;26.56;31.34;47.79;30.90;30.52;27.95;30.75;56.28;26.76;30.25;37.42<br />
12;simple.performance.open.DAMP;444.28;357.87;331.17;335.16;585.71;402.99;504.58;466.95;272.98;427.54;345.60;441.53;319.99;327.91;312.94;349.79;399.51;465.60;418.42;295.14;362.06;363.11;445.71;634.96;500.83<br />
13;simple.performance.reload.DAMP;38.07;33.44;35.99;70.57;64.04;106.47;148.31;29.60;68.47;28.95;148.46;75.92;32.15;93.72;36.17;44.13;75.11;154.76;98.28;75.16;29.39;36.68;113.16;64.05;135.60<br />
14;simple.performance.close.DAMP;23.98;25.49;24.19;24.61;27.56;40.33;33.85;25.13;22.62;25.28;41.84;25.09;26.39;25.20;23.76;25.44;25.92;30.40;40.77;25.41;24.57;26.15;43.65;28.54;30.16<br />
15;simple.netmonitor.open.DAMP;438.85;350.64;318.04;329.12;341.91;352.33;344.05;334.15;514.57;327.95;471.50;334.55;344.94;364.39;727.56;374.48;339.45;344.31;345.61;329.78;325.74;334.74;350.36;342.85;344.64<br />
16;simple.netmonitor.reload.DAMP;59.68;47.50;69.37;61.18;76.89;83.22;68.11;81.24;56.15;68.20;32.41;81.22;81.62;44.30;39.52;29.60;86.07;71.18;76.32;79.93;79.63;82.15;83.58;87.04;82.97<br />
17;simple.netmonitor.close.DAMP;38.42;39.32;52.56;43.37;48.08;40.62;51.12;41.11;59.54;43.29;41.72;40.85;51.61;49.61;51.39;44.91;40.36;41.10;45.43;42.15;42.63;40.69;41.21;44.04;41.95<br />
18;complicated.webconsole.open.DAMP;589.97;505.93;480.71;530.93;460.60;479.63;485.33;489.08;605.28;457.12;463.95;493.28;680.05;478.72;504.47;578.69;488.66;485.34;504.94;460.67;548.38;474.98;470.33;471.34;464.58<br />
19;complicated.webconsole.reload.DAMP;2707.20;2700.17;2596.02;2728.09;2905.51;2716.65;2657.68;2707.74;2567.86;2726.36;2650.92;2839.14;2620.34;2718.36;2595.22;2686.28;2703.48;2609.75;2686.41;2577.93;2634.47;2745.56;2655.89;2540.09;2649.18<br />
20;complicated.webconsole.close.DAMP;623.56;570.80;636.63;502.49;565.83;537.93;525.46;565.78;532.90;562.66;525.42;490.88;611.99;486.45;528.60;505.35;480.55;500.75;532.75;480.91;488.69;548.77;535.31;477.92;519.84<br />
21;complicated.inspector.open.DAMP;1233.26;753.57;742.74;953.11;653.29;692.66;653.75;767.02;840.68;707.56;713.95;685.79;690.21;1020.47;685.67;721.69;1063.72;695.55;702.15;760.91;853.14;660.12;729.16;1044.86;724.34<br />
22;complicated.inspector.reload.DAMP;2384.90;2436.35;2356.11;2436.58;2372.96;2558.86;2543.76;2351.03;2411.95;2358.04;2413.27;2339.85;2373.11;2338.94;2418.88;2360.87;2349.09;2498.96;2577.73;2445.07;2354.88;2424.90;2696.10;2362.39;2493.29<br />
23;complicated.inspector.close.DAMP;541.96;509.38;476.91;456.48;545.48;634.04;603.10;488.09;599.20;480.45;617.93;420.39;514.92;439.99;727.41;469.04;458.59;539.74;611.55;725.03;473.36;484.60;481.46;458.93;554.76<br />
24;complicated.jsdebugger.open.DAMP;644.97;578.41;542.23;595.94;704.80;603.08;689.18;552.99;597.23;584.17;682.14;758.16;791.71;738.43;640.30;809.26;704.85;601.32;696.10;683.44;796.34;657.25;631.89;739.96;641.82<br />
25;complicated.jsdebugger.reload.DAMP;2676.82;2650.84;2687.78;2401.23;3421.32;2450.91;2464.13;2286.40;2399.40;2415.97;2481.48;2827.69;2652.03;2554.63;2631.36;2443.83;2564.73;2466.22;2597.57;2552.73;2539.42;2481.21;2319.50;2539.00;2576.43<br />
26;complicated.jsdebugger.close.DAMP;795.68;616.48;598.88;536.77;435.02;635.61;558.67;841.64;613.48;886.60;581.38;580.96;571.40;605.34;671.00;882.02;619.01;579.63;643.05;656.78;699.64;928.99;549.76;560.96;676.32<br />
27;complicated.styleeditor.open.DAMP;2327.30;2494.19;2190.29;2205.60;2198.11;2509.01;2189.79;2532.05;2178.03;2207.75;2224.96;2665.84;2294.40;2645.44;2661.41;2364.60;2395.36;2582.72;2872.03;2679.29;2561.24;2330.11;2580.16;2510.36;2860.83<br />
28;complicated.styleeditor.reload.DAMP;2218.46;2335.18;2284.20;2345.05;2286.98;2453.47;2506.97;2661.19;2529.51;2289.78;2564.15;2608.24;2270.77;2362.17;2287.31;2300.19;2331.56;2300.86;2239.27;2231.33;2476.14;2286.28;2583.24;2540.29;2259.67<br />
29;complicated.styleeditor.close.DAMP;302.67;343.10;313.15;305.60;317.92;328.44;350.70;370.12;339.77;308.72;312.71;320.63;305.52;316.69;324.92;306.60;313.65;312.17;326.26;321.45;334.56;307.38;312.95;350.94;339.36<br />
30;complicated.performance.open.DAMP;477.99;537.96;564.85;515.05;502.03;515.58;492.80;689.06;448.76;588.91;509.76;485.39;548.17;479.14;638.67;535.86;541.61;611.52;554.72;665.37;694.04;470.60;746.16;547.85;700.02<br />
31;complicated.performance.reload.DAMP;2258.31;2345.74;2509.24;2579.71;2367.94;2365.94;2260.86;2324.23;2579.01;2412.63;2540.38;2069.80;2534.91;2443.48;2193.01;2442.99;2422.42;2475.35;2076.48;2092.95;2444.53;2353.86;2154.28;2354.61;2104.82<br />
32;complicated.performance.close.DAMP;334.44;516.66;432.49;341.29;309.30;365.20;332.16;311.42;370.81;301.81;381.13;299.39;317.60;314.10;372.44;314.76;306.24;349.85;382.08;352.53;309.40;298.44;314.10;315.44;405.22<br />
33;complicated.netmonitor.open.DAMP;469.70;597.87;468.36;823.09;696.39;477.19;487.78;495.92;587.89;471.48;555.02;507.45;883.33;522.15;756.86;713.64;593.82;715.13;477.15;717.85;586.79;556.97;631.43;629.55;581.16<br />
34;complicated.netmonitor.reload.DAMP;4033.55;3577.36;3655.61;3721.24;3874.29;3977.92;3778.62;3825.60;3984.65;3707.91;3985.24;3565.21;3702.40;3956.70;3627.14;3916.11;3929.11;3934.06;3590.60;3628.39;3618.84;3579.52;3953.04;3781.01;3682.69<br />
35;complicated.netmonitor.close.DAMP;1042.98;920.21;928.19;940.38;950.25;1043.61;1078.16;1077.38;1132.91;1095.05;1176.31;1256.83;1143.14;1234.61;1248.97;1242.29;1378.63;1312.74;1371.48;1373.15;1544.55;1422.51;1549.48;1616.55;1506.58<br />
</pre><br />
|}<br />
<br />
== displaylist_mutate ==<br />
* contact: :mattwoodrow<br />
* source: [[https://searchfox.org/mozilla-central/source/testing/talos/talos/tests/layout/benchmarks/displaylist_mutate.html displaylist_mutate.html]]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* data: we load the displaylist_mutate.html page five times, measuring pageload each time, generating 5 data points.<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 4; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l986 source: test.py]<br />
<br />
This measures the amount of time it takes to render a page after changing its display list. The page has a large number of display list items (10,000), and mutates one every frame. The goal of the test is to make displaylist construction a bottleneck, rather than painting or other factors, and thus improvements or regressions to displaylist construction will be visible. The test runs in ASAP mode to maximize framerate, and the result is how quickly the test was able to mutate and re-paint 600 items, one during each frame.<br />
<br />
== Dromaeo ==<br />
Dromaeo suite of tests for JavaScript performance testing. See the [[Dromaeo|Dromaeo wiki]] for more information.<br />
<br />
This suite is divided into several sub-suites. <br />
<br />
Each sub-suite is divided into tests, and each test is divided into sub-tests. Each sub-test takes some (in theory) fixed piece of work and measures how many times that piece of work can be performed in one second. The score for a test is then the geometric mean of the runs/second numbers for its sub-tests. The score for a sub-suite is the geometric mean of the scores for its tests.<br />
<br />
=== Dromaeo CSS ===<br />
* contact: :bz<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/dromaeo css.manifest]<br />
* type: PageLoader<br />
* reporting: speed in test runs per second (higher is better)<br />
* data: Dromaeo has 6 subtests which run internal benchmarks, each benchmark reports about 180 raw data points each<br />
summarization:<br />
* subtest: Dromaeo is a custom benchmark which has a lot of micro tests inside each subtest, because of this we use a custom [[../Data#dromaeo|dromaeo filter]] to summarize the subtest. Each micro test produces 5 data points and for each 5 data points we take the mean, leaving 36 data points to represent the subtest (assuming 180 points). These 36 micro test means, are then run through a geometric_mean to produce a single number for the dromaeo subtest. [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l527 source: filter.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 6 subtest results.<br />
<br />
Each page in the manifest is part of the dromaeo css benchmark. Each page measures the performance of searching the DOM for nodes matching various CSS selectors, using different libraries for the selector implementation (jQuery, Dojo, Mootools, ExtJS, Prototype, and Yahoo UI).<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;dojo.html;2209.83;2269.68;2275.47;2278.83;2279.81;4224.43;4344.96;4346.74;4428.69;4459.82;4392.80;4396.38;4412.54;4414.34;4415.62;3909.94;4027.96;4069.08;4099.63;4099.94;4017.70;4018.96;4054.25;4068.74;4081.31;3825.10;3984.20;4053.23;4074.59;4106.63;3893.88;3971.80;4031.15;4046.68;4048.31;3978.24;4010.16;4046.66;4051.68;4056.37;4189.50;4287.98;4390.98;4449.89;4450.20;4536.23;4557.82;4588.40;4662.58;4664.42;4675.51;4693.13;4743.72;4758.12;4764.67;4138.00;4251.60;4346.22;4410.12;4417.23;4677.53;4702.48;4714.62;4802.59;4805.33;4445.07;4539.91;4598.93;4605.45;4618.79;4434.40;4543.09;4618.56;4683.98;4689.51;4485.26;4496.75;4511.23;4600.86;4602.08;4567.52;4608.33;4615.56;4619.31;4622.79;3469.44;3544.11;3605.80;3647.74;3658.56;3101.88;3126.41;3147.73;3159.92;3170.73;3672.28;3686.40;3730.74;3748.89;3753.59;4411.71;4521.50;4633.98;4702.72;4708.76;3626.62;3646.71;3713.07;3713.13;3718.91;3846.17;3846.25;3913.61;3914.63;3916.22;3982.88;4112.98;4132.26;4194.92;4201.54;4472.64;4575.22;4644.74;4645.42;4665.51;4120.13;4142.88;4171.29;4208.43;4211.03;4405.36;4517.89;4537.50;4637.77;4644.28;4548.25;4581.20;4614.54;4658.42;4671.09;4452.78;4460.09;4494.06;4521.30;4522.37;4252.81;4350.72;4364.93;4441.40;4492.78;4251.34;4346.70;4355.00;4358.89;4365.72;4494.64;4511.03;4582.11;4591.79;4592.36;4207.54;4308.94;4309.14;4406.71;4474.46<br />
1;ext.html;479.65;486.21;489.61;492.94;495.81;24454.14;33580.33;34089.15;34182.83;34186.15;34690.83;35050.30;35051.30;35071.65;35099.82;5758.22;5872.32;6389.62;6525.38;6555.57;8303.96;8532.96;8540.91;8544.00;8571.49;8360.79;8408.79;8432.96;8447.28;8447.83;5817.71;5932.67;8371.83;8389.20;8643.44;7983.80;8073.27;8073.84;8076.48;8078.15;24596.00;32518.84;32787.34;32830.51;32861.00;2220.87;2853.84;3333.53;3345.17;3445.47;24785.75;24971.75;25044.25;25707.61;25799.00;2464.69;2481.89;2527.57;2534.65;2534.92;217793.00;219347.90;219495.00;220059.00;297168.00;40556.19;53062.47;54275.73;54276.00;54440.37;50636.75;50833.49;50983.49;51028.49;51032.74;10746.36;10972.45;11450.37;11692.18;11797.76;8402.58;8415.79;8418.66;8426.75;8428.16;16768.75;16896.00;16925.24;16945.58;17018.15;7047.68;7263.13;7313.16;7337.38;7383.22;713.88;723.72;751.47;861.35;931.00;25454.36;25644.90;25801.87;25992.61;25995.00;819.89;851.23;852.00;886.59;909.89;14325.79;15064.92;15240.39;15431.23;15510.61;452382.00;458194.00;458707.00;459226.00;459601.00;45699.54;46244.54;46270.54;46271.54;46319.00;1073.94;1080.66;1083.35;1085.84;1087.74;26622.33;27807.58;27856.72;28040.58;28217.86;37229.81;37683.81;37710.81;37746.62;37749.81;220386.00;222903.00;240808.00;247394.00;247578.00;25567.00;25568.49;25610.74;25650.74;25710.23;26466.21;28718.71;36175.64;36529.27;36556.00;26676.00;30757.69;31965.84;34521.83;34622.65;32791.18;32884.00;33194.83;33720.16;34192.66;32150.36;32520.02;32851.18;32947.18;33128.01;29472.85;30214.09;30708.54;30999.23;32879.51;23822.88;23978.28;24358.88;24470.88;24515.51<br />
2;jquery.html;285.42;288.57;292.66;293.75;294.14;10313.00;10688.20;13659.11;13968.65;14003.93;13488.39;13967.51;13980.79;14545.13;15059.77;4361.37;4488.35;4489.44;4492.24;4496.69;3314.32;3445.07;4412.51;5020.75;5216.66;5113.49;5136.56;5141.31;5143.87;5156.28;5055.95;5135.02;5138.64;5215.82;5226.48;4550.98;4551.59;4553.07;4557.77;4559.16;18339.63;18731.53;18738.63;18741.16;18806.15;1474.99;1538.31;1557.52;1703.67;1772.16;12209.94;12335.44;12358.32;12516.50;12651.94;1520.94;1522.62;1541.37;1584.71;1642.50;57533.00;59169.41;59436.11;59758.70;59872.40;8669.13;8789.34;8994.37;9016.05;9064.95;11047.39;11058.39;11063.78;11077.89;11082.78;6401.81;6426.26;6504.35;6518.25;6529.61;6250.22;6280.65;6304.59;6318.91;6328.72;5144.28;5228.40;5236.21;5271.26;5273.79;1398.91;1450.05;1456.39;1494.66;1519.42;727.85;766.62;844.35;858.49;904.87;9912.55;10249.54;14936.71;16566.50;16685.00;378.04;381.34;381.44;385.67;387.23;5362.60;5392.78;5397.14;5497.12;5514.83;213309.00;318297.00;320682.00;322681.00;322707.00;56357.44;67892.66;68329.66;68463.32;69506.00;418.91;424.49;425.19;425.28;426.40;9363.39;9559.95;9644.00;9737.07;9752.80;33170.83;33677.33;34950.83;35607.47;35765.82;44079.34;44588.55;45396.00;46309.00;46427.30;6302.87;6586.51;6607.08;6637.44;6642.17;9776.17;9790.46;9931.90;10391.79;10392.43;8739.26;8838.38;8870.20;8911.50;8955.15;8422.83;8786.21;8914.00;9135.82;9145.36;8945.28;9028.37;9035.23;9116.64;9137.86;6433.90;6688.73;6822.11;6830.08;6833.90;8575.23;8599.87;8610.91;8655.65;9123.91<br />
3;mootools.html;1161.69;1333.31;1425.89;1500.37;1557.37;6706.93;7648.46;8020.04;8031.36;8049.64;7861.80;7972.40;7978.12;7993.32;7993.88;1838.83;1862.93;1864.11;1866.28;1866.71;1909.93;1921.83;1928.53;1954.07;1969.98;1808.68;1820.01;1821.30;1825.92;1826.91;1849.07;1904.99;1908.26;1911.24;1912.50;1856.86;1871.78;1873.72;1878.54;1929.57;6506.67;6752.73;7799.22;7830.41;7855.18;4117.18;4262.42;4267.30;4268.27;4269.62;2720.56;2795.36;2840.08;2840.79;2842.62;699.12;703.75;774.36;791.73;798.18;11096.22;11126.39;11132.72;11147.16;11157.44;3934.33;4067.37;4140.94;4149.75;4150.38;9042.82;9077.46;9083.55;9084.41;9086.41;4431.47;4432.84;4437.33;4438.40;4440.44;3935.67;3937.31;3937.43;3940.53;3976.68;3247.17;3307.90;3319.90;3323.32;3330.60;1001.90;1016.87;1021.12;1021.67;1022.05;1016.34;1019.09;1036.62;1056.81;1057.76;7345.56;7348.56;7391.89;7393.85;7406.30;374.27;392.53;394.73;397.28;398.26;5588.58;5653.21;5655.07;5659.15;5660.66;9775.41;9860.51;9938.40;9959.85;9968.45;9733.42;9904.31;9953.05;9960.55;9967.20;6399.26;6580.11;7245.93;7336.96;7386.78;7162.00;7245.49;7249.38;7250.75;7304.63;8458.24;8583.40;8651.57;8717.39;8742.39;8896.42;8904.60;8927.96;8960.73;8961.82;7483.48;7747.77;7763.46;7766.34;7773.07;7784.00;7821.41;7827.18;7849.18;7855.49;7012.16;7141.57;7250.09;7253.13;7335.89;6977.97;7015.51;7042.40;7204.35;7237.20;7160.46;7293.23;7321.27;7321.82;7331.16;6268.69;6324.11;6325.78;6328.56;6342.40;6554.54;6625.30;6646.00;6650.30;6674.90<br />
4;prototype.html;237.05;251.94;256.61;259.65;263.52;4488.53;4676.88;4745.24;4745.50;4748.81;4648.47;4660.21;4666.58;4671.88;4677.32;3602.84;3611.40;3613.69;3615.69;3619.15;3604.41;3619.44;3623.24;3627.66;3628.11;3526.59;3589.35;3615.93;3616.35;3622.80;3624.69;3626.84;3628.47;3631.22;3632.15;3184.76;3186.11;3187.16;3187.78;3189.35;4353.43;4466.46;4482.57;4616.72;4617.88;4012.18;4034.84;4047.07;4047.82;4055.29;4815.11;4815.21;4816.11;4817.08;4820.40;3300.31;3345.18;3369.55;3420.98;3447.97;5026.99;5033.82;5034.50;5034.95;5038.97;3516.72;3520.79;3520.95;3521.81;3523.47;3565.29;3574.23;3574.37;3575.82;3578.37;4045.19;4053.51;4056.76;4058.76;4059.00;4714.67;4868.66;4869.66;4873.54;4878.29;1278.20;1300.92;1301.13;1301.17;1302.47;868.94;871.16;878.50;883.40;884.85;3874.71;3878.44;3881.61;3882.67;3886.92;4959.83;4968.45;4969.50;4971.38;4972.30;3862.69;3870.15;3871.79;3873.83;3878.07;2690.15;2711.66;2714.42;2715.39;2715.89;4349.04;4349.63;4351.33;4353.59;4355.46;4950.95;5101.08;5107.69;5120.21;5120.39;4336.63;4360.76;4361.96;4362.28;4365.43;4928.75;4939.41;4939.56;4943.95;4966.78;4869.03;4886.24;4888.85;4889.14;4895.76;4362.39;4362.78;4363.96;4365.00;4365.08;3408.00;3470.03;3476.37;3546.65;3547.34;4905.73;4926.21;4926.70;4926.93;4929.43;4682.88;4694.91;4696.30;4697.06;4699.69;4688.86;4691.25;4691.46;4698.37;4699.41;4628.07;4631.31;4633.42;4634.00;4636.00;4699.44;4796.02;4808.83;4809.95;4813.52;4719.10;4720.41;4722.95;4723.03;4723.53<br />
5;yui.html;569.72;602.22;627.02;647.49;692.84;9978.30;10117.54;10121.70;10129.75;10137.24;9278.68;9291.44;9349.00;9370.53;9375.86;475.79;481.92;606.51;607.42;618.73;617.68;618.89;623.30;626.58;631.85;501.81;649.76;653.22;655.69;656.71;510.62;645.56;657.42;657.88;658.39;475.53;476.77;476.80;476.92;476.96;9895.16;9976.15;9988.25;9989.85;9996.40;9483.15;9545.75;9676.37;9808.51;10360.22;8331.29;8397.87;8538.06;8714.69;8803.78;2748.93;2800.93;2802.59;2857.33;2864.46;33757.16;33804.83;33859.32;33931.00;33991.32;7818.65;7846.92;7892.09;8170.55;8217.75;13691.38;13692.86;13693.25;13698.73;13706.66;5378.70;5517.83;5615.86;5616.16;5624.00;2985.63;3002.97;3003.07;3037.73;3038.87;2459.10;2502.52;2504.91;2507.07;2507.26;396.62;405.78;411.43;412.03;412.56;543.45;550.75;568.50;578.59;592.25;6762.21;6901.72;6984.27;7064.22;7122.29;454.78;519.40;539.29;543.96;566.16;3235.39;3266.13;3453.26;3498.79;3518.54;39079.22;39722.80;41350.59;41422.38;41540.17;34435.14;34606.31;34623.31;34661.00;34672.48;29449.12;29530.11;30507.24;31938.52;31961.52;7449.33;7524.62;7629.73;7712.96;7796.42;22917.43;23319.00;23441.41;23582.88;23583.53;29780.40;30272.55;31761.00;31765.84;31839.36;6112.45;6218.35;6476.68;6603.54;6793.66;10385.79;10471.69;10518.53;10552.74;10644.95;9563.52;9571.33;9617.09;9946.35;9976.80;9406.11;9518.48;9806.46;10102.44;10173.19;9482.43;9550.28;9878.21;9902.90;9951.45;8343.17;8511.00;8606.00;8750.21;8869.29;8234.96;8462.70;8473.49;8499.58;8808.91<br />
</pre><br />
|}<br />
<br />
=== Dromaeo DOM (Linux64 only) ===<br />
* contact: :bz<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/dromaeo dom.manifest]<br />
* type: PageLoader<br />
* data: see Dromaeo DOM<br />
* reporting: speed in test runs per second (higher is better)<br />
<br />
Each page in the manifest is part of the dromaeo dom benchmark. These are the specific areas that Dromaeo DOM covers:<br />
<br />
==== DOM Attributes ====<br />
Measures performance of getting and setting a DOM attribute, both via <code>getAttribute</code> and via a reflecting DOM property. Also throws in some expando getting/setting for good measure.<br />
<br />
==== DOM Modification ====<br />
Measures performance of various things that modify the DOM tree: creating element and text nodes and inserting them into the DOM.<br />
<br />
==== DOM Query ====<br />
Measures performance of various methods of looking for nodes in the DOM: <code>getElementById</code>, <code>getElementsByTagName</code>, and so forth.<br />
<br />
==== DOM Traversal ====<br />
Measures performance of various accessors (<code>childNodes</code>, <code>firstChild</code>, etc) that would be used when doing a walk over the DOM tree.<br />
<br />
Please see [[#Dromaeo CSS]] for examples of data.<br />
<br />
== glterrain ==<br />
* contact: :jgilbert<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/webgl/benchmarks/terrain glterrain]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* data: we load the perftest.html page (which generates 4 metrics to track) 25 times, resulting in 4 sets of 25 data points<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 24; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l381 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 4 subtest results.<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|glterrain<br />
|Measures average frames interval while animating a simple WebGL scene<br />
|}<br />
<br />
This tests animates a simple WebGL scene (static textured landscape, one moving light source, rotating viewport) and measure the frames throughput (expressed as average interval) over 100 frames. It runs in ASAP mode (vsync off) and measures the same scene 4 times - for all combination of antialiasing and alpha. It reports the results as 4 values - one for each combination. Lower results are better.<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;0.WebGL-terrain-alpha-no-AA-no;19.8189;20.57185;20.5069;21.09645;20.40045;20.89025;20.34285;20.8525;20.45845;20.6499;19.94505;20.05285;20.316049;19.46745;19.46135;20.63865;20.4789;19.97015;19.9546;20.40365;20.74385;20.828649;20.78295;20.51685;20.97069<br />
1;1.WebGL-terrain-alpha-no-AA-yes;23.0464;23.5234;23.34595;23.40609;22.54349;22.0554;22.7933;23.00685;23.023649;22.51255;23.25975;23.65819;22.572249;22.9195;22.44325;22.95015;23.3567;23.02089;22.1459;23.04545;23.09235;23.40855;23.3296;23.18849;23.273249<br />
2;2.WebGL-terrain-alpha-yes-AA-no;24.01795;23.889449;24.2683;24.34649;23.0562;24.02275;23.54819;24.1874;23.93545;23.53629;23.305149;23.62459;24.01589;24.06405;24.143449;23.998549;24.08205;24.26989;24.0736;24.2346;24.01145;23.7817;23.90785;24.7118;24.2834<br />
3;3.WebGL-terrain-alpha-yes-AA-yes;25.91375;25.87005;25.64875;25.15615;25.5475;24.497449;24.56385;25.57529;25.54889;26.31559;24.143949;25.09895;24.75049;25.2087;25.52385;25.9017;25.4439;24.3495;25.9269;25.734449;26.4126;25.547449;25.667249;25.679349;25.9565<br />
</pre><br />
|}<br />
<br />
== glvideo ==<br />
* contact: :jgilbert<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/webgl/benchmarks/video glvideo]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* data: 5 cycles of the entire benchmark, each subtest will have 5 data points (see below)<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 4; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l522 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 4 subtest results.<br />
<br />
* '''Lower is better'''<br />
* unit: ms/100 ticks<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|glvideo<br />
|WebGL video texture update with 1080p video. Measures mean tick time across 100 ticks.<br />
|}<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;Mean tick time across 100 ticks: ;54.6916;49.0534;51.21645;51.239650000000005;52.44295<br />
</pre><br />
|}<br />
<br />
This test playbacks a video file and ask WebGL to draw video frames as WebGL textures for 100 ticks. It collects the mean tick time across 100 ticks to measure how much time it will spend for a video texture upload to be a WebGL texture (gl.texImage2D). We run it for 5 times and ignore the first found. Lower results are better.<br />
<br />
== jetstream ==<br />
* contact: :jandem<br />
* source: [[https://searchfox.org/mozilla-central/source/testing/talos/talos/tests/jetstream/jetstream.manifest jetstream.manifest]] and jetstream.zip from tooltool<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* measuring: JavaScript performance<br />
* reporting: geometric mean from the benchmark<br />
* data: internal benchmark<br />
** suite: [https://searchfox.org/mozilla-central/source/testing/talos/talos/output.py#259 geometric mean] provided by the benchmark<br />
<br />
This is the [http://browserbench.org/JetStream/in-depth.html JetStream] javascript benchmark taken verbatim and slightly modified to fit into our pageloader extension and talos harness.<br />
<br />
== kraken ==<br />
* contact: :sdetar<br />
* source: [[https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/kraken kraken.manifest]]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* measuring: JavaScript performance<br />
* reporting: Total time for all tests, in ms (lower is better)<br />
* data: there are 14 subtests in kraken, each subtest is an internal benchmark and generates 10 data points, or 14 sets of 10 data points.<br />
* summarization:<br />
** subtest: For all of the 10 data points, we take the [[../Data#mean|mean]] to report a single number.<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 14 subtest results.<br />
<br />
This is the [[Kraken]] javascript benchmark taken verbatim and slightly modified to fit into our pageloader extension and talos harness.<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;ai-astar;100;95;98;102;101;99;97;98;98;102<br />
1;audio-beat-detection;147;147;191;173;145;139;186;143;183;140<br />
2;audio-dft;161;156;158;157;160;158;160;160;159;158<br />
3;audio-fft;82;83;83;154;83;83;82;83;160;82<br />
4;audio-oscillator;96;96;141;95;95;95;129;96;95;134<br />
5;imaging-gaussian-blur;116;115;116;115;115;115;115;115;117;116<br />
6;imaging-darkroom;166;164;166;165;166;166;165;165;165;166<br />
7;imaging-desaturate;87;87;87;87;88;87;88;87;87;87<br />
8;json-parse-financial;75;77;77;76;77;76;77;76;77;77<br />
9;json-stringify-tinderbox;79;79;80;79;78;79;79;78;79;79<br />
10;stanford-crypto-aes;98;97;96;98;98;98;98;98;113;95<br />
11;stanford-crypto-ccm;130;138;130;127;137;134;134;132;147;129<br />
12;stanford-crypto-pbkdf2;176;187;183;183;176;174;181;187;175;173<br />
13;stanford-crypto-sha256-iterative;86;85;83;84;86;85;85;86;83;83<br />
</pre><br />
|}<br />
<br />
== motionmark ==<br />
* contact: :davidb<br />
* source: [[https://searchfox.org/mozilla-central/source/third_party/webkit/PerformanceTests/MotionMark source]] [[https://searchfox.org/mozilla-central/source/testing/talos/talos/tests/motionmark manifests]]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* measuring: benchmark measuring the time to animate complex scenes<br />
* summarization:<br />
** subtest: FPS from the subtest, each subtest is run for 15 seconds, repeat this 5 times and report the median value<br />
** suite: we take a geometric mean of all the subtests (9 for animometer, 11 for html suite)<br />
<br />
== motionmark_webgl ==<br />
* contact: :jgilbert<br />
* source: [[https://searchfox.org/mozilla-central/source/third_party/webkit/PerformanceTests/MotionMark source]] [[https://searchfox.org/mozilla-central/source/testing/talos/talos/tests/motionmark/webgl.manifest manifest]]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* measuring: Draw call performance in WebGL<br />
* summarization:<br />
** subtest: FPS from the subtest, each subtest is run once for 15 seconds, report the average FPS over that time.<br />
** suite: identical to subtest<br />
<br />
== pdfpaint ==<br />
* contact: :bdahl<br />
* source: <br />
* type: PageLoader<br />
* reporting: time from ''performance.timing.navigationStart'' to ''pagerendered'' event in ms (lower is better)<br />
* data: load a PDF 20 times<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|pdfpaint<br />
| <br />
|}<br />
<br />
== rasterflood_svg ==<br />
* contact: :rhunt<br />
* source: [https://searchfox.org/mozilla-central/source/testing/talos/talos/tests/gfx/benchmarks/rasterflood_svg.html rasterflood_svg.html]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* data: we load the rasterflood_svg.html page ten times, measuring pageload each time, generating 10 data points.<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 9; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l986 source: test.py]<br />
<br />
This page animates some complex SVG patterns in a requestAnimationFrame callback. However, it also churns the CPU during each callback, spinning an empty loop for 14ms each frame. The intent is that, if we consider the rasterization costs to be 0, then the animation should run close to 60fps. Otherwise it will lag. Since rasterization costs are not 0, the lower we can get them, the faster the test will run. The test runs in ASAP mode to maximize framerate. The result is how quickly the browser is able to render 600 frames of the animation.<br />
<br />
Improvements (or regressions) to general painting performance or SVG are likely to affect this benchmark.<br />
<br />
== rasterflood_gradient ==<br />
* contact: :rhunt<br />
* source: [https://searchfox.org/mozilla-central/source/testing/talos/talos/tests/gfx/benchmarks/rasterflood_gradient.html rasterflood_gradient.html]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* data: we load the rasterflood_gradient.html page ten times, computing a score each time, generating 10 data points.<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 9; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l986 source: test.py]<br />
<br />
This page animates some complex gradient patterns in a requestAnimationFrame callback. However, it also churns the CPU during each callback, spinning an empty loop for 14ms each frame. The intent is that, if we consider the rasterization costs to be 0, then the animation should run close to 60fps. Otherwise it will lag. Since rasterization costs are not 0, the lower we can get them, the faster the test will run. The test runs in ASAP mode to maximize framerate.<br />
<br />
The test runs for 10 seconds, and the resulting score is how many frames we were able to render during that time. Higher is better. Improvements (or regressions) to general painting performance or gradient rendering will affect this benchmark.<br />
<br />
== sessionrestore ==<br />
* contact: :mikedeboer, :mconley, :felipe<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/startup_test/sessionrestore talos/sessionrestore]<br />
* bug: {{bug|936630}}, {{bug|1331937}}, {{bug|1531520}}<br />
* type: Startup<br />
* measuring: time spent reading and restoring the session.<br />
* reporting: interval in ms (lower is better).<br />
* data: we load the session restore index page 10 times to collect 1 set of 10 data points.<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 9 data points; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l305 source: test.py]<br />
** suite: identical to subtest<br />
<br />
Three tests measure the time spent reading and restoring the session from a valid sessionstore.js. Time is counted from the ''process start'' until the ''sessionRestored'' event.<br />
<br />
In ''sessionrestore'', this is tested with a configuration that requires the session to be restored. In ''sessionrestore_no_auto_restore'', this is tested with a configuration that requires the session to not be restored. Both of the above tests use a sessionstore.js file that contains one window and roughly 89 tabs. In ''sessionrestore_many_windows'', this is tested with a sessionstore.js that contains 3 windows and 130 tabs. The first window contains 50 tabs, 80 remaning tabs are divided equally between the second and the third window.<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
[2362.0, 2147.0, 2171.0, 2134.0, 2116.0, 2145.0, 2141.0, 2141.0, 2136.0, 2080.0]<br />
</pre><br />
|}<br />
<br />
== sessionrestore_no_auto_restore ==<br />
See [[#sessionrestore]].<br />
<br />
== sessionrestore_many_windows ==<br />
See [[#sessionrestore]].<br />
<br />
== stylebench ==<br />
* contact: :emilio<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/stylebench/stylebench.manifest stylebench.manifest]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* measuring: speed of dynamic style recalculation<br />
* reporting: runs/minute score<br />
<br />
== startup_about_home_paint ==<br />
* contact: :mconley<br />
* source: [[https://hg.mozilla.org/mozilla-central/file/tip/testing/talos/talos/startup_test/startup_about_home_paint/addon/]]<br />
* type: Startup<br />
* measuring: The time from process start to the point where the about:home page reports that it has painted the Top Sites.<br />
* data: we load restart the browser 20 times, and collect a timestamp for each run.<br />
* reporting: test time in ms (lower is better)<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
[1503.0, 1497.0, 1523.0, 1536.0, 1511.0, 1485.0, 1594.0, 1580.0, 1531.0, 1471.0, 1502.0, 1520.0, 1488.0, 1533.0, 1531.0, 1502.0, 1486.0, 1489.0, 1487.0, 1475.0]<br />
</pre><br />
|}<br />
<br />
== tabpaint ==<br />
* contact: :mconley<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/tabpaint tabpaint]<br />
* bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1253382<br />
* type: Pageloader<br />
* measuring: <br />
** The time it takes to paint the content of a newly opened tab when the tab is opened from the parent (ex: by hitting Ctrl-T)<br />
** The time it takes to paint the content of a newly opened tab when the tab is opened from content (ex: by clicking on a target="_blank" link)<br />
* '''NOT''' measuring:<br />
** The time it takes to animate the tabs. That's the responsibility of the TART test. tabpaint is strictly concerned with the painting of the web content.<br />
* data: we load the tabpaint trigger page 20 times, each run produces two values (the time it takes to paint content when opened from the parent, and the time it takes to paint content when opened from content), resulting in 2 sets of 20 data points.<br />
** Example:<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;tabpaint-from-parent;105;76;66;64;64;69;65;63;70;68;64;60;65;63;54;61;64;67;61;64<br />
1; tabpaint-from-content;129;68;72;72;70;78;86;85;82;79;120;92;76;80;74;82;76;89;77;85<br />
</pre><br />
|}<br />
<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 19 data points<br />
** suite: geometric_mean(subtests)<br />
<br />
== tart ==<br />
* contact: :mconley<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/tart tart]<br />
* type: PageLoader<br />
* measuring: Desktop Firefox UI animation speed and smoothness<br />
* reporting: intervals in ms (lower is better) - see below for details<br />
* data: there are 30 reported subtests from TART which we load 25 times, resulting in 30 sets of 25 data points.<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 24 data points; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l305 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 30 subtest results.<br />
<br />
TART is the '''Tab Animation Regression Test'''.<br />
<br />
TART tests tab animation on these cases:<br />
* Simple: single new tab of about:blank open/close without affecting (shrinking/expanding) other tabs.<br />
* icon: same as above with favicons and long title instead of about:blank.<br />
* Newtab: newtab open with thumbnails preview - without affecting other tabs, with and without preload.<br />
* Fade: opens a tab, then measures fadeout/fadein (tab animation without the overhead of opening/closing a tab).<br />
** Case 1 is tested with DPI scaling of 1.<br />
** Case 2 is tested with DPI scaling of 1.0 and 2.0.<br />
** Case 3 is tested with the default scaling of the test system.<br />
** Case 4 is tested with DPI scaling of 2.0 with the "icon" tab (favicon and long title).<br />
** Each animation produces 3 test results:<br />
*** error: difference between the designated duration and the actual completion duration from the trigger.<br />
*** half: average frame interval over the 2nd half of the animation.<br />
*** all: average frame interval over all recorded intervals.<br />
*** And the run logs also include the explicit intervals from which these 3 values were derived.<br />
<br />
TART can be used as a stand-alone addon:<br />
* Set the browser to ASAP mode (preferences layout.frame_rate=0, docshell.event_starvation_delay_hint=1). This makes the browser refresh the screen as fast as possible instead of limiting it to 60hz, thus allows higher resolution measurements. Requires restart to take effect.<br />
* [https://hg.mozilla.org/mozilla-central/raw-file/tip/testing/talos/talos/generate-tart-xpi.html Install the latest addon xpi], or zip the addon dir of the source code, rename the extension to xpi and install.<br />
* Visit chrome://tart/content/tart.html<br />
* Select subtests to run. By default the selected tests are all the TART tests.<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;simple-open-DPI1.half.TART;2.35;2.42;2.63;2.47;2.71;2.38;2.37;2.41;2.48;2.70;2.44;2.41;2.51;2.43;2.41;2.56;2.76;2.49;2.36;2.40;2.70;2.53;2.35;2.46;2.47<br />
1;simple-open-DPI1.all.TART;2.80;2.95;3.12;2.92;3.46;2.87;2.92;2.99;2.89;3.24;2.94;2.95;3.25;2.92;3.02;3.00;3.21;3.31;2.84;2.87;3.10;3.13;3.10;2.94;2.95<br />
2;simple-open-DPI1.error.TART;33.60;36.33;35.93;35.97;38.17;34.77;36.00;35.01;36.25;36.22;35.24;35.76;36.64;36.31;34.74;34.40;34.34;41.48;35.04;34.83;34.27;34.04;34.37;35.22;36.52<br />
3;simple-close-DPI1.half.TART;1.95;1.88;1.91;1.94;2.00;1.97;1.88;1.76;1.84;2.18;1.99;1.83;2.04;1.93;1.81;1.77;1.79;1.90;1.82;1.84;1.78;1.75;1.76;1.89;1.81<br />
4;simple-close-DPI1.all.TART;2.19;2.08;2.07;2.32;2.65;2.32;2.26;1.96;2.02;2.26;2.05;2.16;2.19;2.11;2.04;1.98;2.05;2.02;2.01;2.11;1.97;1.97;2.05;2.01;2.12<br />
5;simple-close-DPI1.error.TART;21.35;23.87;22.60;22.02;22.97;22.35;22.15;22.79;21.81;21.90;22.26;22.58;23.15;22.43;22.76;23.36;21.86;22.70;22.96;22.70;22.28;22.03;21.78;22.33;22.23<br />
6;icon-open-DPI1.half.TART;2.42;2.33;2.50;2.58;2.36;2.51;2.60;2.35;2.52;2.51;2.59;2.34;3.29;2.63;2.46;2.57;2.53;2.50;2.39;2.51;2.44;2.66;2.72;2.36;2.52<br />
7;icon-open-DPI1.all.TART;3.12;2.94;3.42;3.23;3.10;3.21;3.33;3.14;3.24;3.32;3.46;2.90;3.65;3.19;3.27;3.47;3.32;3.13;2.95;3.23;3.21;3.33;3.47;3.15;3.32<br />
8;icon-open-DPI1.error.TART;38.39;37.96;37.03;38.85;37.03;37.17;37.19;37.56;36.67;36.33;36.89;36.85;37.54;38.46;35.38;37.52;36.68;36.48;36.03;35.71;37.12;37.08;37.74;38.09;35.85<br />
9;icon-close-DPI1.half.TART;1.94;1.93;1.79;1.89;1.83;1.83;1.90;1.89;1.75;1.76;1.77;1.74;1.81;1.86;1.95;1.99;1.73;1.83;1.97;1.80;1.94;1.84;2.01;1.88;2.03<br />
10;icon-close-DPI1.all.TART;2.14;2.14;1.98;2.03;2.02;2.25;2.29;2.13;1.97;2.01;1.94;2.01;1.99;2.05;2.11;2.09;2.02;2.02;2.12;2.02;2.20;2.11;2.19;2.07;2.27<br />
11;icon-close-DPI1.error.TART;24.51;25.03;25.17;24.54;23.86;23.70;24.02;23.61;24.10;24.53;23.92;23.75;23.73;23.78;23.42;25.40;24.21;24.55;23.96;24.96;24.41;24.96;24.16;24.20;23.65<br />
12;icon-open-DPI2.half.TART;2.60;2.60;2.60;2.53;2.51;2.53;2.59;2.43;2.66;2.60;2.47;2.61;2.64;2.43;2.49;2.63;2.61;2.60;2.52;3.06;2.65;2.74;2.69;2.44;2.43<br />
13;icon-open-DPI2.all.TART;3.45;3.22;3.38;3.47;3.10;3.31;3.47;3.13;3.37;3.14;3.28;3.20;3.40;3.15;3.14;3.23;3.41;3.16;3.26;3.55;3.29;3.49;3.44;3.11;3.22<br />
14;icon-open-DPI2.error.TART;40.20;37.86;37.53;41.46;37.03;38.77;37.48;36.97;37.28;37.72;36.09;36.71;38.89;38.21;37.37;38.91;36.79;36.10;37.60;36.99;37.56;35.76;38.92;37.46;37.52<br />
15;icon-close-DPI2.half.TART;2.27;1.97;1.83;1.86;2.08;1.88;1.80;1.90;1.77;1.89;2.06;1.89;1.89;1.86;2.01;1.79;1.78;1.83;1.89;1.85;1.74;1.82;1.84;1.81;1.79<br />
16;icon-close-DPI2.all.TART;2.33;2.13;2.18;2.03;2.33;2.03;1.95;2.06;1.96;2.13;2.25;2.10;2.13;2.03;2.18;2.00;2.05;2.01;2.08;2.05;1.96;2.04;2.10;2.04;2.08<br />
17;icon-close-DPI2.error.TART;22.99;23.02;24.32;23.58;23.05;23.34;22.92;23.22;22.90;23.33;23.33;23.05;22.80;23.45;24.05;22.39;22.14;22.97;22.85;22.13;22.89;22.98;23.69;22.99;23.08<br />
18;iconFade-close-DPI2.half.TART;2.14;1.84;1.78;1.84;1.66;2.07;1.81;3.82;1.68;1.85;1.62;2.54;2.06;1.85;2.17;1.80;1.71;1.67;2.11;1.73;2.94;2.14;1.93;1.72;2.05<br />
19;iconFade-close-DPI2.all.TART;2.17;1.76;1.80;1.89;1.70;1.93;1.80;3.38;1.78;1.90;1.70;2.50;1.94;1.81;2.29;1.82;1.79;1.76;2.23;1.80;2.85;2.06;1.84;1.83;2.09<br />
20;iconFade-close-DPI2.error.TART;4.67;4.11;3.69;4.51;4.46;3.88;4.54;3.68;4.56;3.82;4.32;4.87;4.42;3.72;3.72;4.54;4.93;4.46;4.64;3.39;4.09;3.28;3.58;4.11;3.80<br />
21;iconFade-open-DPI2.half.TART;2.37;2.61;2.37;2.62;2.54;2.84;2.57;2.44;4.33;2.57;2.59;2.67;2.58;2.48;2.38;2.39;2.50;2.39;2.50;2.57;2.52;2.55;2.47;2.69;2.41<br />
22;iconFade-open-DPI2.all.TART;2.45;2.64;2.39;2.60;2.57;2.60;2.61;2.59;3.14;2.55;2.54;2.66;2.57;2.48;2.47;2.46;2.55;2.45;2.51;2.61;2.54;2.58;2.50;2.54;2.40<br />
23;iconFade-open-DPI2.error.TART;3.64;4.67;4.31;5.79;6.43;3.64;4.82;8.68;5.78;4.38;3.80;3.98;4.64;653.63;4.63;3.76;4.23;5.01;5.48;4.99;3.48;5.10;5.02;6.14;5.58<br />
24;newtab-open-preload-no.half.TART;5.02;2.90;3.06;3.03;2.94;2.94;3.08;3.12;3.60;3.19;2.82;2.96;3.67;7.85;2.79;3.12;3.18;2.92;2.86;2.96;2.96;3.00;2.90;2.97;2.94<br />
25;newtab-open-preload-no.all.TART;7.11;4.66;5.03;4.68;4.50;4.58;4.76;4.76;5.67;4.96;4.36;4.51;5.21;11.16;4.38;4.69;4.77;4.45;4.45;4.70;4.51;4.61;4.54;4.69;4.60<br />
26;newtab-open-preload-no.error.TART;40.82;40.85;37.38;37.40;36.30;36.47;36.89;37.63;37.12;38.65;36.73;36.95;36.11;38.59;37.39;37.77;37.93;37.54;37.46;38.29;36.58;38.25;38.32;37.92;36.93<br />
27;newtab-open-preload-yes.half.TART;3.14;2.96;2.97;8.37;2.98;3.00;2.96;3.05;3.12;3.48;3.07;3.23;3.05;2.88;2.92;3.06;2.90;3.01;3.19;2.90;3.18;3.11;3.04;3.16;3.21<br />
28;newtab-open-preload-yes.all.TART;5.10;4.60;4.63;8.94;5.01;4.69;4.63;4.67;4.93;5.43;4.78;5.12;4.77;4.65;4.50;4.78;4.75;4.63;4.76;4.45;4.86;4.88;4.69;4.86;4.92<br />
29;newtab-open-preload-yes.error.TART;35.90;37.24;38.57;40.60;36.04;38.12;38.78;36.73;36.91;36.69;38.12;36.69;37.79;35.80;36.11;38.01;36.59;38.85;37.14;37.30;38.02;38.95;37.64;37.86;36.43<br />
</pre><br />
|}<br />
<br />
== tp5 ==<br />
Note that the tp5 test no longer exists (only talos-tp5o) though many tests still make use of this pageset. Here, we provide an overview of the tp5 pageset and some information about how data using the tp5 pageset might be used in various suites.<br />
<br />
* contact: :davehunt<br />
* source: [[#Page_sets|tp5n.zip]]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* data: we load each of the 51 tp5o pages 25 times, resulting in 51 sets of 25 data points.<br />
* '''To run it locally''', you'd need [[#Page_sets|tp5n.zip]].<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] '''5''' data points, then take the [[../Data#median|median]] of the remaining 20; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l449 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 51 subtest results.<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|tp5o<br />
|tp5 with limited pageset (48 pages as others have too much noise)<br />
|}<br />
<br />
Tests the time it takes Firefox to load the [[#Page_sets|tp5 web page test set]]. The web set was culled from the Alexa top 500 April 8th, 2011 and consists of 100 pages in tp5n and 51 in tp5o. Some suites use a subset of these, i.e. 48/51 tests to reduce noise - check with the owner of the test suite which uses the pageset to check if this difference exists there.<br />
<br />
Here are the broad steps we use to create the test set:<br />
# Take the Alexa top 500 sites list<br />
# Remove all sites with questionable or explicit content<br />
# Remove duplicate site (for ex. many Google search front pages)<br />
# Manually select to keep interesting pages (such as pages in different locales)<br />
# Select a more representative page from any site presenting a simple search/login/etc. page<br />
# Deal with Windows 255 char limit for cached pages<br />
# Limit test set to top 100 pages<br />
<br />
Note that the above steps did not eliminate all outside network access so we had to take further action to scrub all the pages so that there are 0 outside network accesses (this is done so that the tp test is as deterministic measurement of our rendering/layout/paint process as possible).<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;163.com/www.163.com/index.html;1035;512;542;519;505;514;551;513;554;793;487;528;528;498;503;530;527;490;521;535;521;496;498;564;520<br />
1;56.com/www.56.com/index.html;1081;583;580;577;597;580;623;558;572;592;598;580;564;583;596;600;579;580;566;573;566;581;571;600;586<br />
2;aljazeera.net/aljazeera.net/portal.html;688;347;401;382;346;362;347;372;337;345;365;337;380;338;355;360;356;366;367;352;350;366;346;375;382<br />
3;amazon.com/www.amazon.com/Kindle-Wireless-Reader-Wifi-Graphite/dp/B002Y27P3M/507846.html;1392;878;901;852;886;867;877;864;862;877;866;888;3308;870;863;869;873;850;851;850;857;873;869;860;855<br />
4;bbc.co.uk/www.bbc.co.uk/news/index.html;455;271;272;271;279;289;276;285;277;291;281;286;278;286;274;285;276;285;287;286;276;288;279;272;278<br />
5;beatonna.livejournal.com/beatonna.livejournal.com/index.html;290;123;123;129;120;121;124;125;119;125;120;150;121;147;121;121;113;121;119;122;117;112;127;117;139<br />
6;bild.de/www.bild.de/index.html;1314;937;946;931;922;918;920;937;934;930;947;928;936;933;933;928;930;941;951;946;947;938;925;939;938<br />
7;cgi.ebay.com/cgi.ebay.com/ALL-NEW-KINDLE-3-eBOOK-WIRELESS-READING-DEVICE-W-WIFI-/130496077314@pt=LH_DefaultDomain_0&hash=item1e622c1e02.html;495;324;330;328;321;308;315;308;321;313;327;330;317;339;333;322;312;370;336;327;310;312;312;355;330<br />
8;chemistry.about.com/chemistry.about.com/index.html;238;156;156;154;158;161;152;151;152;167;179;152;154;156;161;161;157;167;151;167;154;149;178;153;160<br />
9;chinaz.com/chinaz.com/index.html;347;223;255;234;245;233;264;234;244;228;260;224;258;223;280;220;243;225;251;226;258;232;258;232;247<br />
10;cnn.com/www.cnn.com/index.html;551;384;436;394;391;375;371;407;371;374;398;372;368;388;376;380;386;377;363;383;384;370;388;381;374<br />
11;dailymail.co.uk/www.dailymail.co.uk/ushome/index.html;984;606;551;561;545;542;576;564;543;560;566;557;561;544;545;576;548;539;568;567;557;560;545;544;578<br />
12;dailymotion.com/www.dailymotion.com/us.html;473;271;286;272;285;288;290;290;280;268;286;269;287;275;289;282;293;287;304;261;289;284;281;277;286<br />
13;digg.com/digg.com/news/story/New_logo_for_Mozilla_Firefox_browser.html;410;321;304;303;322;300;319;321;320;306;323;313;312;305;312;338;317;338;301;325;297;302;309;305;300<br />
14;ezinearticles.com/ezinearticles.com/index.html@Migraine-Ocular---The-Eye-Migraines&id=4684133.html;234;177;163;163;186;176;185;175;167;156;162;199;163;190;173;181;175;178;165;159;182;170;183;169;158<br />
15;globo.com/www.globo.com/index.html;684;468;466;485;482;445;433;467;467;450;487;466;440;484;444;451;511;443;429;469;468;430;485;459;447<br />
16;google.com/www.google.com/search@q=mozilla.html;150;100;102;101;97;104;99;116;107;100;98;137;102;102;99;106;98;112;100;102;105;104;107;96;100<br />
17;goo.ne.jp/goo.ne.jp/index.html;328;125;132;132;143;121;122;120;132;145;166;139;144;125;128;152;128;145;130;132;154;126;142;133;139<br />
18;guardian.co.uk/www.guardian.co.uk/index.html;462;311;296;322;309;305;303;288;301;308;301;304;319;309;295;305;294;308;304;322;310;314;302;303;292<br />
19;homeway.com.cn/www.hexun.com/index.html;584;456;396;357;417;374;376;406;363;392;400;378;378;402;390;373;398;393;366;385;383;361;418;386;351<br />
20;huffingtonpost.com/www.huffingtonpost.com/index.html;811;609;575;596;568;585;589;571;568;600;571;588;585;570;574;616;576;564;598;594;589;590;572;572;612<br />
21;ifeng.com/ifeng.com/index.html;829;438;478;462;448;465;469;470;429;463;465;432;482;444;476;453;460;476;461;484;467;510;447;477;443<br />
22;imdb.com/www.imdb.com/title/tt1099212/index.html;476;337;358;332;414;379;344;420;354;363;387;345;358;371;341;385;359;379;353;349;392;349;358;378;347<br />
23;imgur.com/imgur.com/gallery/index.html;419;205;224;231;207;222;206;231;204;219;209;210;210;208;202;215;203;210;203;212;218;219;202;224;230<br />
24;indiatimes.com/www.indiatimes.com/index.html;530;339;348;384;376;381;353;350;403;333;356;393;350;328;393;329;389;346;394;349;382;332;409;327;354<br />
25;mail.ru/mail.ru/index.html;500;256;308;251;271;270;270;246;273;252;279;249;301;252;251;256;271;246;267;254;265;248;277;247;275<br />
26;mashable.com/mashable.com/index.html;699;497;439;508;440;448;512;446;431;500;445;427;495;455;458;499;440;432;522;443;447;488;445;461;489<br />
27;media.photobucket.com/media.photobucket.com/image/funny%20gif/findstuff22/Best%20Images/Funny/funny-gif1.jpg@o=1.html;294;203;195;189;213;186;195;186;204;188;190;220;204;202;195;204;192;204;191;187;204;199;191;192;211<br />
28;myspace.com/www.myspace.com/albumart.html;595;446;455;420;433;425;416;429;452;411;435;439;389;434;418;402;422;426;396;438;423;391;434;438;395<br />
29;naver.com/www.naver.com/index.html;626;368;338;386;342;377;371;352;379;348;362;357;359;354;386;338;394;330;326;372;345;392;336;336;368<br />
30;noimpactman.typepad.com/noimpactman.typepad.com/index.html;431;333;288;292;285;313;277;289;282;292;276;293;270;294;289;281;275;302;285;290;280;285;278;284;283<br />
31;page.renren.com/page.renren.com/index.html;373;232;228;228;213;227;224;227;226;216;234;226;230;212;213;221;224;230;212;218;217;221;212;222;230<br />
32;people.com.cn/people.com.cn/index.html;579;318;305;339;307;341;325;326;307;309;315;314;318;317;321;309;307;299;312;313;305;326;318;384;310<br />
33;rakuten.co.jp/www.rakuten.co.jp/index.html;717;385;371;388;381;348;394;358;396;368;343;386;348;388;393;388;360;339;398;357;392;378;395;386;367<br />
34;reddit.com/www.reddit.com/index.html;340;254;248;255;241;241;248;275;251;250;250;252;243;274;240;269;254;249;242;257;271;253;243;278;252<br />
35;reuters.com/www.reuters.com/index.html;513;404;355;358;379;343;354;385;379;354;418;363;342;412;355;351;402;375;354;400;362;355;380;373;336<br />
36;slideshare.net/www.slideshare.net/jameswillamor/lolcats-in-popular-culture-a-historical-perspective.html;397;279;270;283;285;283;291;286;289;284;275;281;288;284;280;279;290;301;290;270;292;282;289;267;278<br />
37;sohu.com/www.sohu.com/index.html;727;414;479;414;431;485;418;440;488;431;432;464;442;407;488;435;416;465;445;414;480;416;403;463;429<br />
38;spiegel.de/www.spiegel.de/index.html;543;430;391;380;440;387;375;430;380;397;415;383;434;420;384;399;421;392;384;418;388;380;427;403;392<br />
39;stackoverflow.com/stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered.html;503;377;356;438;370;388;409;367;366;407;375;363;393;360;363;396;376;391;426;363;378;408;400;359;408<br />
40;store.apple.com/store.apple.com/us@mco=Nzc1MjMwNA.html;488;327;344;343;333;329;328;348;361;342;362;332;389;333;382;331;382;343;405;343;326;325;329;323;340<br />
41;thepiratebay.org/thepiratebay.org/top/201.html;412;274;317;260;256;269;266;261;258;289;245;284;256;277;251;302;276;307;268;268;247;285;260;271;257<br />
42;tudou.com/www.tudou.com/index.html;522;304;281;283;287;285;288;307;279;288;282;303;292;288;290;287;311;271;279;274;294;272;290;269;290<br />
43;uol.com.br/www.uol.com.br/index.html;668;387;450;411;395;452;386;431;452;394;385;436;413;414;440;401;412;439;408;430;426;415;382;433;387<br />
44;w3.org/www.w3.org/standards/webdesign/htmlcss.html;225;143;129;151;181;141;147;137;159;179;142;153;136;139;191;140;151;143;141;181;140;154;142;143;183<br />
45;wsj.com/online.wsj.com/home-page.html;634;466;512;463;467;507;461;432;492;494;491;507;466;477;495;455;451;495;461;463;494;468;444;497;442<br />
46;xinhuanet.com/xinhuanet.com/index.html;991;663;727;659;647;639;644;656;666;658;670;648;676;653;652;654;641;636;664;668;655;657;646;674;633<br />
47;xunlei.com/xunlei.com/index.html;802;625;624;636;641;652;659;642;623;635;628;606;667;688;683;694;672;640;628;620;653;626;633;654;643<br />
48;yelp.com/www.yelp.com/biz/alexanders-steakhouse-cupertino.html;752;475;502;472;477;512;489;478;501;472;454;517;487;474;521;467;450;513;491;464;536;507;455;511;481<br />
49;youku.com/www.youku.com/index.html;844;448;498;441;417;497;478;439;467;436;447;465;438;461;466;446;452;496;457;446;486;449;467;499;442<br />
50;youtube.com/www.youtube.com/music.html;443;338;253;289;238;296;254;290;242;302;237;290;253;305;253;293;251;311;244;293;255;291;246;316;249<br />
</pre><br />
|}<br />
<br />
==== File IO ====<br />
<br />
File IO is tested using the tp5 test set in the [[#xperf]] test.<br />
<br />
===== Possible regression causes =====<br />
* '''nonmain_startup_fileio opt (with or without e10s) windows7-32''' – {{bug|1274018}} This test seems to consistently report a higher result for mozilla-central compared to Try even for an identical revision due to extension signing checks. In other words, if you are comparing Try and Mozilla-Central you may see a false-positive regression on perfherder. Graphs: [https://treeherder.mozilla.org/perf.html#/graphs?timerange=604800&series=%5Bmozilla-central,e5f5eaa174ef22fdd6b6e150e8c450aa827c2ff6,1,1%5D&series=%5Btry,e5f5eaa174ef22fdd6b6e150e8c450aa827c2ff6,1,1%5D non-e10s] [https://treeherder.mozilla.org/perf.html#/graphs?series=%5B%22mozilla-central%22,%222f3af3833d55ff371ecf01c41aeee1939ef3a782%22,1,1%5D&series=%5B%22try%22,%222f3af3833d55ff371ecf01c41aeee1939ef3a782%22,1,1%5D&timerange=604800 e10s]<br />
<br />
==== Xres (X Resource Monitoring) ====<br />
A memory metric tracked during tp5 test runs. This metric is sampled every 20 seconds. This metric is collected on linux only.<br />
<br />
[https://linux.die.net/man/3/xres xres man page].<br />
<br />
==== % CPU ====<br />
Cpu usage tracked during tp5 test runs. This metric is sampled every 20 seconds. This metric is collected on windows only.<br />
<br />
==== Responsiveness ====<br />
contact: :jimm, :overholt<br />
<br />
Measures the delay for the event loop to process a [[Performance/Snappy#Current Infrastructure|tracer event]]. For more details, see {{bug|631571}}.<br />
<br />
The score on this benchmark is proportional to the sum of squares of all event delays that exceed a 20ms threshold. Lower is better.<br />
<br />
We collect 8000+ data points from the browser during the test and apply [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/output.py#l95 this formula] to the results:<br />
<pre><br />
return sum([float(x)*float(x) / 1000000.0 for x in val_list])<br />
</pre><br />
<br />
== tp5o_scroll ==<br />
* contact: :kats<br />
* source: [[#Page_sets|tp5n.zip]]<br />
* type: [[TestEngineering/Performance/Talos#Page_Load_Tests|PageLoader]]<br />
* data: we load each of the 51 tp5o pages 12 times, resulting in 51 sets of 12 data points.<br />
* '''To run it locally''', you'd need [[#Page_sets|tp5n.zip]].<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 11; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l470 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 51 subtest results.<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|tp5o_scroll<br />
|Measures average frames interval while scrolling the pages of the tp5o set<br />
|}<br />
<br />
This test is identical to tscrollx, but it scrolls the 50 pages of the tp5o set (rather than 6 synthetic pages which tscrollx scrolls). For each page, the test waits 500ms after the page load event fires, then iterates 100 scroll steps of 10px each (or until the bottom of the page is reached - whichever comes first), then reports the average frame interval.<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;163.com/www.163.com/index.html;9.73;8.61;7.37;8.17;7.58;7.29;6.88;7.45;6.91;6.61;8.47;7.12<br />
1;56.com/www.56.com/index.html;10.85;10.24;10.75;10.30;10.23;10.10;10.31;10.06;11.10;10.06;9.56;10.30<br />
2;aljazeera.net/aljazeera.net/portal.html;9.23;7.15;7.50;7.26;7.73;7.05;7.14;7.66;7.23;7.93;7.26;7.18<br />
3;amazon.com/www.amazon.com/Kindle-Wireless-Reader-Wifi-Graphite/dp/B002Y27P3M/507846.html;7.14;6.87;7.18;6.31;6.93;6.71;6.37;7.00;6.59;5.37;7.31;6.13<br />
4;bbc.co.uk/www.bbc.co.uk/news/index.html;7.39;6.33;6.22;7.66;6.67;7.77;6.91;7.74;7.08;6.36;6.03;7.12<br />
5;beatonna.livejournal.com/beatonna.livejournal.com/index.html;5.79;5.79;5.68;5.46;5.55;5.48;5.69;5.83;5.88;5.97;5.93;5.88<br />
6;bild.de/www.bild.de/index.html;8.65;7.63;7.17;6.36;7.44;7.68;8.63;6.71;8.34;7.15;7.82;7.70<br />
7;cgi.ebay.com/cgi.ebay.com/ALL-NEW-KINDLE-3-eBOOK-WIRELESS-READING-DEVICE-W-WIFI-/130496077314@pt=LH_DefaultDomain_0&hash=item1e622c1e02.html;7.12;6.81;7.22;6.98;7.05;5.68;7.15;6.54;7.31;7.18;7.82;7.77<br />
8;chemistry.about.com/chemistry.about.com/index.html;6.76;6.17;6.41;6.88;5.67;5.47;6.83;6.28;6.16;6.81;6.21;6.75<br />
9;chinaz.com/chinaz.com/index.html;10.72;7.99;7.33;7.10;7.85;8.62;8.39;6.72;6.26;6.65;8.14;7.78<br />
10;cnn.com/www.cnn.com/index.html;7.73;6.80;6.08;8.27;9.24;7.81;7.69;7.05;8.17;7.70;7.90;6.81<br />
11;dailymail.co.uk/www.dailymail.co.uk/ushome/index.html;6.37;8.28;7.19;8.00;8.09;7.43;6.90;7.24;7.77;7.29;7.38;6.14<br />
12;dailymotion.com/www.dailymotion.com/us.html;9.53;9.80;9.29;9.03;9.10;8.64;8.62;8.71;8.77;9.81;9.64;8.96<br />
13;digg.com/digg.com/news/story/New_logo_for_Mozilla_Firefox_browser.html;7.72;7.06;7.60;5.67;6.85;7.32;7.80;5.98;8.27;6.68;7.52;8.39<br />
14;ezinearticles.com/ezinearticles.com/index.html@Migraine-Ocular---The-Eye-Migraines&id=4684133.html;7.14;7.11;8.09;7.17;6.87;7.12;7.65;7.74;7.26;7.36;6.91;6.95<br />
15;globo.com/www.globo.com/index.html;6.71;7.91;5.83;7.34;7.75;8.00;7.73;7.85;7.03;6.42;8.43;8.11<br />
16;google.com/www.google.com/search@q=mozilla.html;6.49;6.23;7.96;6.39;7.23;8.19;7.35;7.39;6.94;7.24;7.55;7.62<br />
17;goo.ne.jp/goo.ne.jp/index.html;8.56;7.18;7.15;7.03;6.85;7.62;7.66;6.99;7.84;7.51;7.23;7.18<br />
18;guardian.co.uk/www.guardian.co.uk/index.html;7.32;7.62;8.18;7.62;7.83;8.08;7.60;8.17;8.47;7.54;7.92;8.09<br />
19;homeway.com.cn/www.hexun.com/index.html;10.18;8.75;8.83;8.64;8.98;8.07;7.76;9.29;8.05;7.55;8.91;7.78<br />
20;huffingtonpost.com/www.huffingtonpost.com/index.html;8.38;7.17;7.03;6.83;6.49;6.47;6.69;7.08;6.81;7.29;7.13;7.70<br />
21;ifeng.com/ifeng.com/index.html;12.45;8.65;8.75;7.56;8.26;7.71;8.04;7.45;7.83;7.14;8.38;7.68<br />
22;imdb.com/www.imdb.com/title/tt1099212/index.html;8.53;5.65;6.94;7.18;6.10;7.57;6.26;8.34;8.16;7.29;7.62;8.51<br />
23;imgur.com/imgur.com/gallery/index.html;8.10;7.20;7.50;7.88;7.27;6.97;8.13;7.14;7.59;7.39;8.01;8.82<br />
24;indiatimes.com/www.indiatimes.com/index.html;8.00;6.74;7.37;8.52;7.03;8.45;7.08;8.47;9.26;7.89;7.17;6.74<br />
25;mail.ru/mail.ru/index.html;7.64;9.50;9.47;7.03;6.45;6.24;8.03;6.72;7.18;6.39;6.25;6.25<br />
26;mashable.com/mashable.com/index.html;7.97;8.03;6.10;7.80;7.91;7.26;7.49;7.45;7.60;7.08;7.63;7.36<br />
27;media.photobucket.com/media.photobucket.com/image/funny%20gif/findstuff22/Best%20Images/Funny/funny-gif1.jpg@o=1.html;290.00;195.00;217.00;199.00;204.00;196.00;198.00;206.00;209.00;208.00;192.00;196.00<br />
28;myspace.com/www.myspace.com/albumart.html;14.40;13.45;13.29;13.62;13.42;14.15;13.86;14.34;14.69;14.10;13.82;14.13<br />
29;naver.com/www.naver.com/index.html;9.15;8.31;9.40;9.89;7.29;8.43;8.87;8.77;8.96;8.24;8.16;8.21<br />
30;noimpactman.typepad.com/noimpactman.typepad.com/index.html;7.27;7.14;7.70;7.86;7.43;6.95;7.30;7.58;7.51;7.95;7.43;7.05<br />
31;page.renren.com/page.renren.com/index.html;7.94;8.13;6.76;7.77;6.93;6.60;7.62;7.61;6.88;7.56;7.55;7.48<br />
32;people.com.cn/people.com.cn/index.html;11.92;9.22;8.49;8.55;8.34;8.49;6.91;9.92;8.69;8.63;7.69;9.34<br />
33;rakuten.co.jp/www.rakuten.co.jp/index.html;11.10;7.13;8.68;7.85;8.37;7.91;6.74;8.27;8.55;8.93;7.15;9.02<br />
34;reddit.com/www.reddit.com/index.html;6.38;7.95;6.84;7.04;6.96;7.15;8.05;7.71;8.13;7.13;6.60;7.53<br />
35;reuters.com/www.reuters.com/index.html;7.51;7.25;6.60;6.98;7.41;6.45;7.61;7.46;6.11;7.15;7.05;6.94<br />
36;slideshare.net/www.slideshare.net/jameswillamor/lolcats-in-popular-culture-a-historical-perspective.html;7.20;6.32;6.80;6.87;6.29;6.45;7.18;6.92;6.57;7.41;7.08;6.51<br />
37;sohu.com/www.sohu.com/index.html;11.72;9.64;8.85;7.12;7.96;9.14;7.76;8.19;7.14;7.68;8.08;7.24<br />
38;spiegel.de/www.spiegel.de/index.html;7.24;7.30;6.64;7.01;6.74;6.70;6.36;6.84;7.86;7.08;7.12;7.40<br />
39;stackoverflow.com/stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered.html;7.39;5.88;7.22;6.51;7.12;6.51;6.46;6.53;6.63;6.54;6.48;6.80<br />
40;store.apple.com/store.apple.com/us@mco=Nzc1MjMwNA.html;6.23;7.17;7.39;8.98;7.99;8.03;9.12;8.37;8.56;7.61;8.06;7.55<br />
41;thepiratebay.org/thepiratebay.org/top/201.html;9.08;8.93;8.09;7.49;7.30;7.80;7.54;7.65;7.91;7.53;8.37;8.04<br />
42;tudou.com/www.tudou.com/index.html;10.06;9.38;8.68;7.37;8.57;9.11;8.20;7.91;8.78;9.64;8.11;8.47<br />
43;uol.com.br/www.uol.com.br/index.html;9.04;9.49;9.48;9.31;8.68;8.41;9.16;8.91;9.49;8.37;9.77;8.73<br />
44;w3.org/www.w3.org/standards/webdesign/htmlcss.html;6.62;5.98;6.87;6.47;7.22;6.05;6.42;6.50;7.47;7.18;5.82;7.11<br />
45;wsj.com/online.wsj.com/home-page.html;7.49;8.57;6.84;8.12;7.60;7.24;8.16;8.22;6.81;8.28;8.11;8.58<br />
46;xinhuanet.com/xinhuanet.com/index.html;13.66;9.21;10.09;9.56;8.99;10.29;10.24;8.91;11.23;10.82;9.64;10.11<br />
47;xunlei.com/xunlei.com/index.html;8.99;8.16;8.82;8.37;7.01;8.48;7.98;8.69;8.10;8.10;7.10;6.41<br />
48;yelp.com/www.yelp.com/biz/alexanders-steakhouse-cupertino.html;8.18;7.45;7.01;8.14;7.12;7.82;8.24;7.13;7.00;6.41;6.85;7.31<br />
49;youku.com/www.youku.com/index.html;12.21;10.29;10.37;10.34;8.40;9.82;9.23;9.91;9.64;9.91;8.90;10.23<br />
50;youtube.com/www.youtube.com/music.html;9.90;9.06;9.29;9.17;8.85;8.77;9.83;9.21;9.29;10.09;9.69;8.64<br />
</pre><br />
|}<br />
<br />
=== Possible regression causes ===<br />
Some examples of things that cause regressions in this test are:<br />
* Increased displayport size (which causes a larger display list to be built)<br />
* Slowdown in the building of display list<br />
* Slowdown in rasterization of content<br />
<br />
== tpaint ==<br />
* contact: :davidb<br />
* source: [[https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/startup_test/tpaint.html tpaint-window.html]]<br />
* type: Startup<br />
* data: we load the tpaint test window 20 times, resulting in 1 set of 20 data points.<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] '''5''' data points, then take the [[../Data#median|median]] of the remaining 15; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l190 source: test.py]<br />
** suite: identical to subtest<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
|Talos test name<br />
|Description<br />
|-<br />
|tpaint<br />
|twinopen but measuring the time after we receive the [[Buildbot/Talos/Tests#Paint_Tests|MozAfterPaint and OnLoad event]].<br />
|}<br />
<br />
Tests the amount of time it takes the open a new window. This test does not include startup time. Multiple test windows are opened in succession, results reported are the average amount of time required to create and display a window in the running instance of the browser. (Measures ctrl-n performance.)<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
[209.219, 222.180, 225.299, 225.970, 228.090, 229.450, 230.625, 236.315, 239.804, 242.795, 244.5, 244.770, 250.524, 251.785, 253.074, 255.349, 264.729, 266.014, 269.399, 326.190]<br />
</pre><br />
|}<br />
<br />
=== Possible regression causes ===<br />
* None listed yet. If you fix a regression for this test and have some tips to share, this is a good place for them.<br />
<br />
== twinopen (twinopen ext+twinopen:twinopen.html) ==<br />
* contact: :bdahl, :jimm<br />
* source: [[https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/twinopen twinopen]]<br />
* type: Startup<br />
* data: we open a new browser window 20 times, resulting in 1 set of 20 data points.<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] '''5''' data points, then take the [[../Data#median|median]] of the remaining 15; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l190 source: test.py]<br />
** suite: identical to subtest<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
|Talos test name<br />
|Description<br />
|-<br />
|twinopen ext+twinopen:twinopen.html<br />
|Time from calling OpenBrowserWindow until the chrome of the new window has [https://developer.mozilla.org/en-US/docs/Web/Events#MozAfterPaint painted].<br />
|}<br />
<br />
Tests the amount of time it takes the open a new window from a currently open browser. This test does not include startup time. Multiple test windows are opened in succession, results reported are the average amount of time required to create and display a window in the running instance of the browser. (Measures ctrl-n performance.)<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
[209.219, 222.180, 225.299, 225.970, 228.090, 229.450, 230.625, 236.315, 239.804, 242.795, 244.5, 244.770, 250.524, 251.785, 253.074, 255.349, 264.729, 266.014, 269.399, 326.190]<br />
</pre><br />
|}<br />
<br />
== tabswitch ==<br />
* contact: :mconley<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/tabswitch tabswitch]<br />
* bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1166132<br />
* type: Pageloader<br />
* measuring: <br />
** The time between switching a tab and the first paint to the content area<br />
* reporting:<br />
* data: we load 50 web pages 5 times each, resulting in 50 sets of 5 data points.<br />
* '''To run it locally''', you'd need [[#Page_sets|tp5n.zip]].<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 4 data points; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l305 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 50 subtest results.<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;amazon.com/www.amazon.com/Kindle-Wireless-Reader-Wifi-Graphite/dp/B002Y27P3M/507846.html;66.34;54.15;53.08;55.79;49.12<br />
1;cgi.ebay.com/cgi.ebay.com/ALL-NEW-KINDLE-3-eBOOK-WIRELESS-READING-DEVICE-W-WIFI-/130496077314@pt=LH_DefaultDomain_0&hash=item1e622c1e02.html;50.85;46.57;39.51;36.71;36.47<br />
2;163.com/www.163.com/index.html;95.05;80.80;76.09;69.29;68.96<br />
3;mail.ru/mail.ru/index.html;66.21;52.04;56.33;55.11;45.61<br />
4;bbc.co.uk/www.bbc.co.uk/news/index.html;35.80;44.59;48.02;45.71;42.58<br />
5;store.apple.com/store.apple.com/us@mco=Nzc1MjMwNA.html;52.98;49.45;58.47;56.79;61.29<br />
6;imdb.com/www.imdb.com/title/tt1099212/index.html;46.51;55.12;46.22;50.60;47.63<br />
7;cnn.com/www.cnn.com/index.html;43.02;50.77;43.88;49.70;50.02<br />
8;sohu.com/www.sohu.com/index.html;74.03;62.89;63.30;67.71;89.35<br />
9;youku.com/www.youku.com/index.html;43.98;52.69;45.80;63.00;57.02<br />
10;ifeng.com/ifeng.com/index.html;88.01;87.54;104.47;94.93;113.91<br />
11;tudou.com/www.tudou.com/index.html;45.32;48.10;46.03;39.26;58.38<br />
12;chemistry.about.com/chemistry.about.com/index.html;38.24;37.07;39.59;39.48;39.60<br />
13;beatonna.livejournal.com/beatonna.livejournal.com/index.html;35.59;50.75;36.17;48.49;52.61<br />
14;rakuten.co.jp/www.rakuten.co.jp/index.html;90.28;71.95;62.66;60.33;67.76<br />
15;uol.com.br/www.uol.com.br/index.html;42.89;48.05;53.77;40.02;42.41<br />
16;thepiratebay.org/thepiratebay.org/top/201.html;40.46;42.46;47.63;57.66;45.49<br />
17;page.renren.com/page.renren.com/index.html;47.61;66.78;47.91;62.78;47.19<br />
18;chinaz.com/chinaz.com/index.html;50.34;58.17;118.43;55.47;63.80<br />
19;globo.com/www.globo.com/index.html;41.34;38.52;42.82;53.14;45.20<br />
20;spiegel.de/www.spiegel.de/index.html;33.60;34.34;36.25;36.18;47.04<br />
21;dailymotion.com/www.dailymotion.com/us.html;37.68;36.13;39.52;37.15;42.79<br />
22;goo.ne.jp/goo.ne.jp/index.html;50.74;47.30;63.04;58.41;58.96<br />
23;stackoverflow.com/stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered.html;44.66;44.40;43.39;47.38;57.65<br />
24;ezinearticles.com/ezinearticles.com/index.html@Migraine-Ocular---The-Eye-Migraines&id=4684133.html;37.38;45.01;40.29;36.26;39.28<br />
25;huffingtonpost.com/www.huffingtonpost.com/index.html;39.57;43.35;55.01;44.13;58.28<br />
26;media.photobucket.com/media.photobucket.com/image/funny%20gif/findstuff22/Best%20Images/Funny/funny-gif1.jpg@o=1.html;39.77;42.46;75.54;42.38;47.72<br />
27;imgur.com/imgur.com/gallery/index.html;34.72;37.37;46.74;40.93;37.08<br />
28;reddit.com/www.reddit.com/index.html;42.47;39.89;51.54;51.51;41.68<br />
29;noimpactman.typepad.com/noimpactman.typepad.com/index.html;54.28;47.40;52.38;52.15;50.97<br />
30;myspace.com/www.myspace.com/albumart.html;48.97;64.12;61.66;48.32;68.53<br />
31;mashable.com/mashable.com/index.html;36.76;40.95;35.30;53.86;42.76<br />
32;dailymail.co.uk/www.dailymail.co.uk/ushome/index.html;42.06;40.64;44.24;37.32;61.35<br />
33;whois.domaintools.com/whois.domaintools.com/mozilla.com.html;34.73;35.23;39.25;48.24;35.72<br />
34;indiatimes.com/www.indiatimes.com/index.html;52.67;55.51;46.29;52.69;58.82<br />
35;reuters.com/www.reuters.com/index.html;32.92;33.08;36.95;39.23;39.27<br />
36;xinhuanet.com/xinhuanet.com/index.html;125.85;102.56;138.89;130.34;147.45<br />
37;56.com/www.56.com/index.html;63.89;75.00;61.45;62.20;58.67<br />
38;bild.de/www.bild.de/index.html;35.61;43.74;34.79;33.45;31.83<br />
39;guardian.co.uk/www.guardian.co.uk/index.html;38.91;55.93;62.34;42.63;45.99<br />
40;naver.com/www.naver.com/index.html;78.10;89.07;127.67;75.18;109.32<br />
41;yelp.com/www.yelp.com/biz/alexanders-steakhouse-cupertino.html;42.54;46.92;39.19;49.82;50.43<br />
42;wsj.com/online.wsj.com/home-page.html;46.43;55.51;44.16;81.79;48.78<br />
43;google.com/www.google.com/search@q=mozilla.html;35.62;36.71;44.47;45.00;40.22<br />
44;xunlei.com/xunlei.com/index.html;67.57;60.69;83.83;85.53;85.08<br />
45;aljazeera.net/aljazeera.net/portal.html;65.03;51.84;73.29;64.77;69.70<br />
46;w3.org/www.w3.org/standards/webdesign/htmlcss.html;53.57;58.50;72.98;66.95;55.62<br />
47;homeway.com.cn/www.hexun.com/index.html;105.59;117.32;108.95;116.10;70.32<br />
48;youtube.com/www.youtube.com/music.html;40.53;41.48;59.67;40.81;40.07<br />
49;people.com.cn/people.com.cn/index.html;96.49;103.64;115.12;66.05;117.84<br />
</pre><br />
|}<br />
<br />
== tresize ==<br />
* contact: :jimm<br />
* source: [[https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/startup_test/tresize/addon/content/tresize-test.html tresize-test.html]]<br />
* type: StartupTest<br />
* measuring: Time to do XUL resize, in ms (lower is better).<br />
* data: we run the tresize test page 20 times, resulting in 1 set of 20 data points.<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] '''5''' data points, then take the [[../Data#median|median]] of the remaining 15 data points; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l205 source: test.py]<br />
** suite: same as subtest result<br />
<br />
A purer form of paint measurement than tpaint. This test opens a single window positioned at 10,10 and sized to 300,300, then resizes the window outward |max| times measuring the amount of time it takes to repaint each resize. Dumps the resulting dataset and average to stdout or logfile.<br />
<br />
In {{bug|1102479}} tresize was rewritten to work in e10s mode which involved a full rewrite of the test.<br />
<br />
To run resize locally without talos, please [https://hg.mozilla.org/mozilla-central/raw-file/tip/testing/talos/talos/generate-tresize-xpi.html install the addon] to run the test locally.<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
[23.2565333333333, 23.763383333333362, 22.58369999999999, 22.802766666666653, 22.304050000000025, 23.010383333333326, 22.865466666666677, 24.233716666666705, 24.110983333333365, 22.21390000000004, 23.910333333333316, 23.409816666666647, 19.873049999999992, 21.103966666666686, 20.389749999999978, 20.777349999999984, 20.326283333333365, 22.341616666666667, 20.29813333333336, 20.769600000000104]<br />
</pre><br />
|}<br />
<br />
=== Possible regression causes ===<br />
* slowdown in the paint pipeline<br />
* resizes also trigger a rendering flush so bugs in the flushing code can manifest as regressions<br />
* introduction of more spurious MozAfterPaint events - see {{bug|1471961}}<br />
<br />
== ts_paint ==<br />
* contact: :davidb<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/startup_test/tspaint_test.html tspaint_test.html]<br />
* Perfomatic: "Ts, Paint"<br />
* type: Startup<br />
* data: 20 times we start the browser and time how long it takes to paint the startup test page, resulting in 1 set of 20 data points.<br />
* summarization:<br />
** subtest: identical to suite<br />
** suite: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 19 data points; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l135 source: test.py]<br />
<br />
Starts the browser to display tspaint_test.html with the start time in the url, waits for [[Buildbot/Talos/Tests#Paint_Tests|MozAfterPaint and onLoad]] to fire, then records the end time and calculates the time to startup.<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
[1666.0, 1195.0, 1139.0, 1198.0, 1248.0, 1224.0, 1213.0, 1194.0, 1229.0, 1196.0, 1191.0, 1230.0, 1247.0, 1169.0, 1217.0, 1184.0, 1196.0, 1192.0, 1224.0, 1192.0]<br />
</pre><br />
|}<br />
<br />
=== Possible regression causes ===<br />
* (and/or maybe tpaint?) will regress if a new <panel> element is added to the browser window (e.g. browser.xul) and it's frame gets created. Fix this by ensuring it's display:none by default.<br />
<br />
== tscrollx ==<br />
* contact: :jrmuizel<br />
* source: [[https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/scroll scroll.manifest]]<br />
* type: PageLoader<br />
* measuring: Scroll performance<br />
* reporting: Average frame interval (1 ÷ fps). Lower is better.<br />
* data: we load 6 pages 25 times each, collecting 6 sets of 25 data points<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] data point, then take the [[../Data#median|median]] of the remaining 24; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l623 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 6 subtest results.<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|tscrollx<br />
|[https://groups.google.com/d/topic/mozilla.dev.platform/RICw5SJhNMo/discussion Replacing tscroll,tsvg with tscrollx,tsvgx]<br />
|}<br />
<br />
This test scrolls several pages where each represent a different known "hard" case to scroll (* needinfo), and measures the average frames interval (1/FPS) on each. The ASAP test (tscrollx) iterates in unlimited frame-rate mode thus reflecting the maximum scroll throughput per page. To turn on ASAP mode, we set these preferences:<br />
preferences = {'layout.frame_rate': 0, 'docshell.event_starvation_delay_hint': 1}<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;tiled.html;5.41;5.57;5.34;5.64;5.53;5.48;5.44;5.49;5.50;5.50;5.49;5.66;5.50;5.37;5.57;5.54;5.46;5.31;5.41;5.57;5.50;5.52;5.71;5.31;5.44<br />
fixed.html;10.404609053497941;10.47;10.66;10.45;10.73;10.79;10.64;10.64;10.82;10.43;10.92;10.47;10.47;10.64;10.74;10.67;10.40;10.83;10.77;10.54;10.38;10.70;10.44;10.38;10.56<br />
downscale.html;5.493209876543211;5.27;5.50;5.50;5.51;5.46;5.58;5.58;5.51;5.49;5.49;5.47;9.09;5.56;5.61;5.50;5.47;5.59;5.47;5.49;5.60;5.61;5.58;5.40;5.43<br />
downscale.html;10.676522633744854;10.82;10.79;10.41;10.75;10.91;10.52;10.61;10.50;10.55;10.80;10.17;10.68;10.41;10.42;10.41;10.58;10.28;10.56;10.66;10.68;10.47;10.60;10.61;10.26<br />
4;iframe.svg;13.82;14.87;14.78;14.35;14.73;14.50;14.15;14.46;14.80;14.48;15.10;14.93;14.77;14.52;14.08;15.01;14.58;14.52;15.23;14.35;14.72;14.28;14.30;14.27;14.96<br />
5;reader.htm;10.72;10.62;10.23;10.48;10.42;10.64;10.40;10.40;10.14;10.60;10.51;10.36;10.57;10.41;10.52;10.75;10.19;10.72;10.44;9.75;10.49;10.07;10.54;10.46;10.44<br />
</pre><br />
|}<br />
<br />
== tsvgr_opacity ==<br />
* contact: :jwatt, :dholbert<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/svg_opacity/svg_opacity.manifest]<br />
* type: PageLoader<br />
* data: we load the 2 svg opacity pages 25 times, resulting in 2 sets of 25 data points<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] '''5''' data points, then take the [[../Data#median|median]] of the remaining 20; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l623 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 2 subtest results.<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|tsvgr_opacity<br />
|[[#Row_Major_vs._Column_Major|Row Major]] and 25 cycles/page.<br />
|}<br />
<br />
Renders many semi-transparent, partially overlapping SVG rectangles, and measures time to completion of this rendering.<br />
<br />
Note that this test also tends to reflect changes in network efficiency and navigation bar rendering issues:<br />
<br />
* Most of the page load tests measure from before the location is changed, until onload + mozafterpaint, therefore any changes in chrome performance from the location change, or network performance (the pages load from a local web server) would affect page load times. SVG opacity is rather quick by itself, so any such chrome/network/etc performance changes would affect this test more than other page load tests (relatively, in percentages).<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;big-optimizable-group-opacity-2500.svg;170;171;205;249;249;244;192;252;192;431;182;250;189;249;151;168;209;194;247;250;193;250;255;247;247<br />
1;small-group-opacity-2500.svg;585;436;387;441;512;438;440;380;443;391;450;386;459;383;445;388;450;436;485;443;383;438;528;444;441<br />
</pre><br />
|}<br />
<br />
== tsvg_static ==<br />
* contact: :jwatt, :dholbert, :neerja<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/svg_static/ svg_static]<br />
* type: PageLoader<br />
* data: we load the 5 svg pages 25 times, resulting in 5 sets of 25 data points<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] '''5''' data points, then take the [[../Data#median|median]] of the remaining 20; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l623 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 5 subtest results.<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|tsvg_static<br />
|An svg-only number that measures SVG rendering performance of some complex (but static) SVG content.<br />
|}<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;gearflowers.svg;262;184;184;198;197;187;181;186;177;192;196;194;194;186;195;190;237;193;188;182;188;196;191;194;184<br />
1;composite-scale.svg;69;52;48;49;57;51;52;87;52;49;49;51;58;53;64;57;49;65;67;58;53;59;56;68;50<br />
2;composite-scale-opacity.svg;72;53;91;54;51;58;60;46;51;57;59;58;66;70;57;61;47;51;76;65;52;65;64;64;63<br />
3;composite-scale-rotate.svg;70;76;89;62;62;78;57;77;79;82;74;56;61;79;73;64;75;74;81;82;76;58;77;61;62<br />
4;composite-scale-rotate-opacity.svg;91;60;67;84;62;66;78;69;65;68;62;73;68;63;64;71;79;77;63;80;85;65;82;76;81<br />
</pre><br />
|}<br />
<br />
== tsvgx ==<br />
* contact: :jwatt, :dholbert<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/tests/svgx svgx]<br />
* type: PageLoader<br />
* data: we load the 7 svg pages 25 times, resulting in 7 sets of 25 data points<br />
* summarization:<br />
** subtest: [[../Data#ignore_first|ignore first]] '''5''' data points, then take the [[../Data#median|median]] of the remaining 20; [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/test.py#l623 source: test.py]<br />
** suite: [[../Data#geometric_mean|geometric mean]] of the 7 subtest results.<br />
<br />
{| cellspacing="1" cellpadding="1" border="1"<br />
|-<br />
| Talos test name<br />
| Description<br />
|-<br />
|tsvgx<br />
|SVG-ASAP<br />
|[https://groups.google.com/d/topic/mozilla.dev.platform/RICw5SJhNMo/discussion Replacing tscroll,tsvg with tscrollx,tsvgx]<br />
|}<br />
<br />
An svg-only number that measures SVG rendering performance, with animations or iterations of rendering. This is an ASAP test -- i.e. it iterates in unlimited frame-rate mode thus reflecting the maximum rendering throughput of each test. The reported value is the overall duration the sequence/animation took to complete. To turn on ASAP mode, we set these preferences:<br />
preferences = {'layout.frame_rate': 0, 'docshell.event_starvation_delay_hint': 1}<br />
<br />
{| class="mw-collapsible mw-collapsed wikitable"<br />
! Example data<br />
|-<br />
| <pre><br />
0;hixie-001.xml;562;555;508;521;522;520;499;510;492;514;502;504;500;521;510;506;511;505;495;517;520;512;503;504;502<br />
1;hixie-002.xml;510;613;536;530;536;522;498;505;500;504;498;529;498;509;493;512;501;506;504;499;496;505;508;511;503<br />
2;hixie-003.xml;339;248;242;261;250;241;240;248;258;244;235;240;247;248;239;247;241;245;242;245;251;239;241;240;237<br />
3;hixie-004.xml;709;540;538;536;540;536;552;539;535;535;543;533;536;535;545;537;537;537;537;539;538;535;536;538;536<br />
4;hixie-005.xml;3096;3086;3003;3809;3213;3323;3143;3313;3192;3203;3225;3048;3069;3101;3189;3251;3172;3122;3266;3183;3159;3076;3014;3237;3100<br />
5;hixie-006.xml;5586;5668;5565;5666;5668;5728;5886;5534;5484;5607;5678;5577;5745;5753;5532;5585;5506;5516;5648;5778;5894;5994;5794;5852;5810<br />
6;hixie-007.xml;1823;1743;1739;1743;1744;1787;1802;1788;1782;1766;1787;1750;1748;1788;1766;1779;1767;1794;1758;1768;1781;1773;1765;1798;1805<br />
</pre><br />
|}<br />
<br />
=== Possible regression causes ===<br />
* Did you change the dimensions of the content area? Even a little? The tsvgx test seems to be sensitive to changes like this. See {{bug|1375479}}, for example. Usually, these sorts of "regressions" aren't real regressions - they just mean that we need to re-baseline our expectations from the test.<br />
<br />
== xperf (tp5n) ==<br />
* contact: :aklotz<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/xtalos xperf instrumentation]<br />
* type: Pageloader (tp5n) / Startup<br />
* measuring: IO counters from windows (currently, only startup IO is in scope)<br />
* reporting: Summary of read/write counters for disk, network (lower is better)<br />
<br />
These tests only run on windows builds. See [https://activedata.allizom.org/tools/query.html#query_id=zqlX+2Jn this active-data query] for an updated set of platforms that xperf can be found on. If the query is not found, use the following on the query page:<br />
<pre><br />
{<br />
"from":"task",<br />
"groupby":["run.name","build.platform"],<br />
"limit":2000,<br />
"where":{"regex":{"run.name":".*xperf.*"}}<br />
}<br />
</pre><br />
<br />
Talos will turn orange for 'x' jobs on windows 7 if your changeset accesses files which are not predefined in the [[https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/xtalos/xperf_whitelist.json whitelist]] during startup; specifically, before the "[https://hg.mozilla.org/mozilla-central/file/0eebc33d8593/toolkit/components/startup/nsAppStartup.cpp#l631 sessionstore-windows-restored]" Firefox event. If your job turns orange, you will see a list of files in Treeherder (or in the log file) which have been accessed unexpectedly (similar to this):<br />
* TEST-UNEXPECTED-FAIL : xperf: File '{profile}\secmod.db' was accessed and we were not expecting it. DiskReadCount: 6, DiskWriteCount: 0, DiskReadBytes: 16904, DiskWriteBytes: 0<br />
* TEST-UNEXPECTED-FAIL : xperf: File '{profile}\cert8.db' was accessed and we were not expecting it. DiskReadCount: 4, DiskWriteCount: 0, DiskReadBytes: 33288, DiskWriteBytes: 0<br />
* TEST-UNEXPECTED-FAIL : xperf: File 'c:\$logfile' was accessed and we were not expecting it. DiskReadCount: 0, DiskWriteCount: 2, DiskReadBytes: 0, DiskWriteBytes: 32768 TEST-UNEXPECTED-FAIL : xperf: File '{profile}\secmod.db' was accessed and we were not expecting it. DiskReadCount: 6, DiskWriteCount: 0, DiskReadBytes: 16904, DiskWriteBytes: 0<br />
* TEST-UNEXPECTED-FAIL : xperf: File '{profile}\cert8.db' was accessed and we were not expecting it. DiskReadCount: 4, DiskWriteCount: 0, DiskReadBytes: 33288, DiskWriteBytes: 0<br />
* TEST-UNEXPECTED-FAIL : xperf: File 'c:\$logfile' was accessed and we were not expecting it. DiskReadCount: 0, DiskWriteCount: 2, DiskReadBytes: 0, DiskWriteBytes: 32768 <br />
<br />
In the case that these files are expected to be accessed during startup by your changeset, then we can add them to the {{enterbug|Testing|Talos|whitelist}}.<br />
<br />
Xperf runs tp5 while collecting xperf metrics for disk IO and network IO. The providers we listen for are:<br />
* [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/xperf.config#l10 'PROC_THREAD', 'LOADER', 'HARD_FAULTS', 'FILENAME', 'FILE_IO', 'FILE_IO_INIT']<br />
<br />
The values we collect during stackwalk are:<br />
* [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/xperf.config#l11 'FileRead', 'FileWrite', 'FileFlush']<br />
<br />
Notes:<br />
<br />
* Currently some runs may [https://bugzilla.mozilla.org/show_bug.cgi?id=1614805 return all-zeros and skew the results]<br />
* Additionally, these runs don't have dedicated hardware and have a large variability. At least 30 runs are likely to be needed to get stable statistics (xref [https://bugzilla.mozilla.org/show_bug.cgi?id=1616236 bug 1616236])<br />
<br />
= Build metrics =<br />
These are not part of the Talos code, but like Talos they are benchmarks that record data using the graphserver and are analyzed by the same scripts for regressions.<br />
<br />
== Number of constructors (num_ctors) ==<br />
This test runs at build time and measures the number of static initializers in the compiled code. Reducing this number is helpful for [https://blog.mozilla.org/tglek/2010/05/27/startup-backward-constructors/ startup optimizations].<br />
<br />
* https://hg.mozilla.org/build/tools/file/348853aee492/buildfarm/utils/count_ctors.py<br />
** these are run for linux 32+64 opt and pgo builds.<br />
<br />
= Platform microbenchmark =<br />
<br />
== IsASCII and IsUTF8 gtest microbenchmarks ==<br />
* contact: :hsivonen<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/xpcom/tests/gtest/TestStrings.cpp]<br />
* type: [[#Microbench|Microbench]]<br />
* reporting: intervals in ms (lower is better)<br />
* data: each test is run and measured 5 times<br />
* summarization: take the [[../Data#median|median]] of the 5 data points; [https://dxr.mozilla.org/mozilla-central/source/testing/gtest/mozilla/MozGTestBench.cpp#43-46 source: MozGTestBench.cpp]<br />
<br />
Test whose name starts with PerfIsASCII test the performance of the XPCOM string IsASCII function with ASCII inputs if different lengths.<br />
<br />
Test whose name starts with PerfIsUTF8 test the performance of the XPCOM string IsUTF8 function with ASCII inputs if different lengths.<br />
<br />
=== Possible regression causes ===<br />
* The --enable-rust-simd accidentally getting turned off in automation.<br />
* Changes to encoding_rs internals.<br />
* LLVM optimizations regressing between updates to the copy of LLVM included in the Rust compiler.<br />
<br />
== Microbench ==<br />
* contact: :bholley<br />
* source: [[https://dxr.mozilla.org/mozilla-central/source/testing/gtest/mozilla/MozGTestBench.cpp MozGTestBench.cpp]]<br />
* type: Custom GTest micro-benchmarking<br />
* data: Time taken for a GTest function to execute<br />
* summarization: Not a Talos test. This suite is provides a way to add low level platform performance regression tests for things that are not suited to be tested by Talos. See the [[[../Sheriffing#Microbench_Policy|Microbench Sheriffing Policy]]] for some notes on how to treat regressions.<br />
<br />
== PerfStrip Tests ==<br />
* contact: :davidb<br />
* source: https://dxr.mozilla.org/mozilla-central/source/xpcom/tests/gtest/TestStrings.cpp<br />
* type: Microbench<br />
* reporting: execution time in ms (lower is better) for 100k function calls<br />
* data: each test run and measured 5 times<br />
* summarization:<br />
<br />
PerfStripWhitespace - call StripWhitespace() on 5 different test cases 20k times (each)<br />
<br />
PerfStripCharsWhitespace - call StripChars("\f\t\r\n") on 5 different test cases 20k times (each)<br />
<br />
PerfStripCRLF - call StripCRLF() on 5 different test cases 20k times (each)<br />
<br />
PerfStripCharsCRLF() - call StripChars("\r\n") on 5 different test cases 20k times (each)<br />
<br />
== Stylo gtest microbenchmarks ==<br />
* contact: :bholley, :SimonSapin<br />
* source: [https://dxr.mozilla.org/mozilla-central/source/layout/style/test/gtest]<br />
* type: [[#Microbench|Microbench]]<br />
* reporting: intervals in ms (lower is better)<br />
* data: each test is run and measured 5 times<br />
* summarization: take the [[../Data#median|median]] of the 5 data points; [https://dxr.mozilla.org/mozilla-central/source/testing/gtest/mozilla/MozGTestBench.cpp#43-46 source: MozGTestBench.cpp]<br />
<br />
Servo_StyleSheet_FromUTF8Bytes_Bench parses a sample stylesheet 20 times with Stylo’s CSS parser that is written in Rust. It starts from an in-memory UTF-8 string, so that I/O or UTF-16-to-UTF-8 conversion is not measured.<br />
<br />
Gecko_nsCSSParser_ParseSheet_Bench does the same with Gecko’s previous CSS parser that is written in C++, for comparison.<br />
<br />
Servo_DeclarationBlock_SetPropertyById_Bench parses the string "10px" with Stylo’s CSS parser and sets it as the value of a property in a declaration block, a million times. This is similar to animations that are based on JavaScript code modifying Element.style instead of using CSS @keyframes.<br />
<br />
Servo_DeclarationBlock_SetPropertyById_WithInitialSpace_Bench is the same, but with the string " 10px" with an initial space. That initial space is less typical of JS animations, but is almost always there in stylesheets or full declarations like "width: 10px". This microbenchmark was used to test the effect of some specific code changes. Regressions here may be acceptable if Servo_StyleSheet_FromUTF8Bytes_Bench is not affected.<br />
<br />
= History of tp tests =<br />
<br />
== tp ==<br />
The original tp test created by Mozilla to test browser page load time. Cycled through 40 pages. The pages were copied from the live web during November, 2000. Pages were cycled by loading them within the main browser window from a script that lived in content. <br />
<br />
== tp2/tp_js ==<br />
The same tp test but loading the individual pages into a frame instead of the main browser window. Still used the old 40 page, year 2000 web page test set. <br />
<br />
== tp3 ==<br />
An update to both the page set and the method by which pages are cycled. The page set is now 393 pages from December, 2006. The pageloader is re-built as an extension that is pre-loaded into the browser chrome/components directories. <br />
<br />
== tp4 ==<br />
Updated web page test set to 100 pages from February 2009.<br />
<br />
== tp4m ==<br />
This is a smaller pageset (21 pages) designed for mobile Firefox. This is a blend of regular and mobile friendly pages.<br />
<br />
We landed on this on April 18th, 2011 in {{bug|648307}}. This runs for Android and Maemo mobile builds only.<br />
<br />
== tp5 ==<br />
Updated web page test set to 100 pages from April 8th, 2011. Effort was made for the pages to no longer be splash screens/login pages/home pages but to be pages that better reflect the actual content of the site in question. There are two test page data sets for tp5 which are used in multiple tests (i.e. awsy, xperf, etc.): (i) an optimized data set called tp5o, and (ii) the standard data set called tp5n.<br />
<br />
== tp6 ==<br />
Created June 2017 with recorded pages via mitmproxy using modern google, amazon, youtube, and facebook. Ideally this will contain more realistic user accounts that have full content, in addition we would have more than 4 sites- up to top 10 or maybe top 20. <br />
<br />
These were migrated to Raptor between 2018 and 2019.</div>Standard8https://wiki.mozilla.org/index.php?title=AWSY/Tests&diff=1221623AWSY/Tests2019-12-23T17:34:00Z<p>Standard8: /* General */ Tell people where to find the tests on treeherder!</p>
<hr />
<div>== General ==<br />
Are We Slim Yet project (commonly known as AWSY) tracks memory usage across builds.<br />
<br />
On treeherder, the AWSY builds are listed in subgroups of `SY`.<br />
<br />
== Test Descriptions ==<br />
<br />
=== Base Content JS ===<br />
<br />
* An updated test focused on supporting fission. This measures the base overhead of an empty content process. It tracks resident unique, heap unclassified, JS, and explicit memory metrics as well as storing full memory reports as artifacts. The median value for each metric is used from across all content processes. It has much lower thresholds for alerting and is recorded in [https://wiki.mozilla.org/EngineeringProductivity/Projects/Perfherder Perfherder].<br />
<br />
==== Possible regression causes ====<br />
A change has caused more JavaScript to load at startup or into blank pages<br />
* '''Common solution:''' lazily load any new modules you rely on<br />
* '''Common solution:''' Split your code out to only load what is minimally needed initially<br />
You modified the JS engine and it's using more memory<br />
* '''Common solution:''' Attempt to reduce your object size for the common case, these tend to add up!<br />
You implemented a new feature in JavaScript<br />
* '''Common solution:''' Write the majority (or all of it) in compiled code (C++/Rust). This will reduce overhead and generally improve performance.<br />
<br />
=== Explicit Memory summary ===<br />
<br />
* This is memory explicitly reported by a memory reporter. It includes all the memory allocated via explicit calls to heap allocation functions (such as malloc and new) and to non-heap allocations functions (such as mmap and VirtualAlloc).<br />
<br />
==== Possible regression causes ====<br />
* A regression in this usually means a new feature is using or retaining more memory and should be looked at. These are easier to diagnose as we can compare memory reports.<br />
<br />
See the about:memory [https://developer.mozilla.org/docs/Mozilla/Performance/about:memory#Explicit_Allocations mdn page] for more details.<br />
<br />
=== Heap Unclassified summary ===<br />
<br />
* The "heap-unclassified" value represents heap-allocated memory that is not measured by any memory reporter. This is typically 10--20% of "explicit".<br />
<br />
==== Possible regression causes ====<br />
* A regression in this can indicate that we're leaking memory or that additional memory reporters should be added.<br />
* An improvement can indicate that leaks have been fixed or that we added new memory reporters.<br />
<br />
See the about:memory [https://developer.mozilla.org/docs/Mozilla/Performance/about:memory#Explicit_Allocations mdn page] for more details.<br />
<br />
=== Images summary ===<br />
<br />
* This is a subset of the "explicit" measurement that focuses on memory used to render images.<br />
<br />
==== Possible regression causes ====<br />
* A regressions in this can indicate leaks or poor memory usage in the image subsystem. In the past this was persistent problem.<br />
<br />
=== JS summary ===<br />
<br />
* This is the "js-main-runtime/" value in about:memory which is all the memory attributed to the javascript engine.<br />
<br />
==== Possible regression causes ====<br />
* A regression in this number can indicate leaks in the JS engine, optimizations that take performance into consideration at the expense of more memory, or problems with the garbage collector.<br />
<br />
=== Resident Memory summary ===<br />
<br />
* This is a higher level measurement provided by the operating system. We sum the "resident" memory ([https://en.wikipedia.org/wiki/Resident_set_size RSS]) with the [https://en.wikipedia.org/wiki/Unique_set_size resident-unique] memory of the content processes. It's pretty noisy and large so it's not very useful in detecting smaller regressions.<br />
<br />
==== Possible regression causes ====<br />
* Regressions in this often track regressions in explicit and heap unclassified. If we see a regression in resident, but not in other reports this can indicate we are leaking untracked memory (perhaps through shared memory, graphics allocations, file handles, etc).<br />
<br />
=== Other references ===<br />
[https://developer.mozilla.org/en-US/docs/Mozilla/Performance/AWSY Are We Slim Yet MDN web docs]</div>Standard8https://wiki.mozilla.org/index.php?title=User:Mossop:NewModule&diff=1215932User:Mossop:NewModule2019-08-05T13:23:21Z<p>Standard8: Fix typo</p>
<hr />
<div>{{Module<br />
|name=Desktop Firefox<br />
|description=Standalone Web Browser<br />
|owner=[mailto:dtownsend@mozilla.com Dave Townsend]<br />
|peers=[mailto:jwein@mozilla.com Jared Wein], [mailto:mbonardo@mozilla.com Marco Bonardo], [mailto:gkruitbosch@mozilla.com Gijs Kruitbosch], [mailto:mnoorenberghe@mozilla.com Matthew Noorenberghe]<br />
|ownersemeritus=<br />
|peersemeritus=<br />
|group=firefox-dev<br />
|source_dirs=browser/, toolkit/<br />
|url=[[Firefox/Code_Review|Code Review Guidelines]]<br />
|components=Firefox, Toolkit<br />
}}<br />
<br />
{{Module<br />
|name=Add-ons Manager<br />
|description=Extension management back-end.<br />
|owner=[mailto:aswan@mozilla.com Andrew Swan], [mailto:kmaglione@mozilla.com Kris Maglione]<br />
|peers=[mailto:scaraveo@mozilla.com Shane Caraveo], [mailto:lgreco@mozilla.com Luca Greco], [mailto:tjovanovic@mozilla.com Tomislav Jovanovic], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:rwu@mozilla.com Rob Wu]<br />
|source_dirs=toolkit/mozapps/extensions/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Add-ons Manager UI<br />
|description=about:addons.<br />
|owner=[mailto:aswan@mozilla.com Andrew Swan], [mailto:mstriemer@mozilla.com Mark Striemer]<br />
|peers=[mailto:scaraveo@mozilla.com Shane Caraveo], [mailto:lgreco@mozilla.com Luca Greco], [mailto:tjovanovic@mozilla.com Tomislav Jovanovic], [mailto:rwu@mozilla.com Rob Wu]<br />
|source_dirs=toolkit/mozapps/extensions/content/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Application Startup<br />
|description=The profile system and startup process before the front-end launches.<br />
|owner=[mailto:dtownsend@mozilla.com Dave Townsend]<br />
|peers=<br />
|source_dirs=toolkit/profile, toolkit/components/remote, toolkit/xre<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Application Update<br />
|description=The application update services.<br />
|owner=[mailto:rstrong@mozilla.com Robert Strong]<br />
|peers=[mailto:ksteuber@mozilla.com Kirk Steuber]<br />
|source_dirs=toolkit/mozapps/update/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Bookmarks & History<br />
|description=The bookmarks and history services (Places).<br />
|owner=[mailto:mbonardo@mozilla.com Marco Bonardo]<br />
|peers=<br />
|source_dirs=browser/components/places/, toolkit/components/places/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Desktop Theme<br />
|description=The style rules used in the desktop UI.<br />
|owner=[mailto:dgottwald@mozilla.com Dão Gottwald]<br />
|peers=<br />
|source_dirs=browser/themes/, toolkit/themes/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Desktop UI<br />
|description=The main browser UI except where covered by more specific submodules.<br />
|owner=[mailto:jwein@mozilla.com Jared Wein]<br />
|peers=<br />
|source_dirs=browser/base/content/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Download Manager<br />
|description=The downloads UI and service.<br />
|owner=[mailto:mbonardo@mozilla.com Marco Bonardo]<br />
|peers=<br />
|source_dirs=browser/components/downloads/, toolkit/mozapps/downloads/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Enterprise Policies<br />
|description=System policies for controlling Firefox.<br />
|owner=[mailto:mkaply@mozilla.com Michael Kaply]<br />
|peers=<br />
|source_dirs=browser/components/enterprisepolicies/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Form Autofill<br />
|description=Form detection and autocomplete.<br />
|owner=[mailto:mnoorenberghe@mozilla.com Matthew Noorenberghe]<br />
|peers=<br />
|source_dirs=browser/extensions/formautofill/, toolkit/components/satchel/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=In-product Messaging<br />
|description=The system for delivering in-product messaging.<br />
|owner=[mailto:khudson@mozilla.com Kate Hudson]<br />
|peers=<br />
|source_dirs=<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=New Tab Page<br />
|description=The new tab/home page.<br />
|owner=[mailto:elee@mozilla.com Ed Lee]<br />
|peers=<br />
|source_dirs=browser/components/newtab/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Normandy<br />
|description=The experiments system.<br />
|owner=[mailto:mcooper@mozilla.com Michael Cooper]<br />
|peers=<br />
|source_dirs=toolkit/components/normandy/<br />
|url=<br />
|components=Firefox::Normandy<br />
}}<br />
<br />
{{Module<br />
|name=Onboarding<br />
|description=The onboarding experience including UI tours.<br />
|owner=[mailto:elee@mozilla.com Ed Lee]<br />
|peers=<br />
|source_dirs=browser/components/uitour/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Password Manager<br />
|description=Managing and filling passwords.<br />
|owner=[mailto:mnoorenberghe@mozilla.com Matthew Noorenberghe]<br />
|peers=<br />
|source_dirs=toolkit/components/passwordmgr/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=The front-end preferences system.<br />
|owner=[mailto:jwein@mozilla.com Jared Wein]<br />
|peers=<br />
|source_dirs=browser/components/preferences/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Profile Migration<br />
|description=Migrating data from other browsers.<br />
|owner=[mailto:gkruitbosch@mozilla.com Gijs Kruitbosch]<br />
|peers=<br />
|source_dirs=browser/components/migration/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Search and Address Bar<br />
|description=The search service, address bar and address bar autocomplete.<br />
|owner=[mailto:standard8@mozilla.com Mark Banner], [mailto:dwillcoxon@mozilla.com Drew Willcoxon]<br />
|peers=[mailto:dharvey@mozilla.com Dale Harvey], [mailto:mbonardo@mozilla.com Marco Bonardo], [mailto:dao@mozilla.com Dão Gottwald], [mailto:mdeboer@mozilla.com Mike de Boer]<br />
|source_dirs=browser/components/search/, browser/components/urlbar/, toolkit/components/search/<br />
|url=<br />
|components=Firefox::Address Bar, Firefox::Search<br />
}}<br />
<br />
{{Module<br />
|name=Session Restore<br />
|description=Restoring a user's session after starting Firefox.<br />
|owner=[mailto:mdeboer@mozilla.com Michael de Boer]<br />
|peers=<br />
|source_dirs=browser/components/sessionstore/, toolkit/components/sessionstore/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=UI Widgets<br />
|description=The base widgets used throughout the UI.<br />
|owner=<br />
|peers=[mailto:neil@mozilla.com Neil Deakin], [mailto:aswan@mozilla.com Andrew Swan]<br />
|source_dirs=toolkit/content/widgets/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Webextensions<br />
|description=Webextension APIs and integration.<br />
|owner=[mailto:scaraveo@mozilla.com Shane Caraveo], [mailto:tjovanovic@mozilla.com Tomislav Jovanovic]<br />
|peers=[mailto:lgreco@mozilla.com Luca Greco], [mailto:kmaglione@mozilla.com Kris Maglione], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:aswan@mozilla.com Andrew Swan], [mailto:rwu@mozilla.com Rob Wu]<br />
|source_dirs=browser/components/extensions/, toolkit/components/extensions/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Windows Installer<br />
|description=The installer for Windows.<br />
|owner=[mailto:mhowell@mozilla.com Matt Howell]<br />
|peers=[mailto:agashlin@mozilla.com Adam Gashlin]<br />
|source_dirs=browser/installer/, toolkit/mozapps/installer/<br />
|url=<br />
|components=Firefox::Installer<br />
}}</div>Standard8https://wiki.mozilla.org/index.php?title=User:Mossop:NewModule&diff=1215931User:Mossop:NewModule2019-08-05T13:22:21Z<p>Standard8: Add more info to Search & Address Bar</p>
<hr />
<div>{{Module<br />
|name=Desktop Firefox<br />
|description=Standalone Web Browser<br />
|owner=[mailto:dtownsend@mozilla.com Dave Townsend]<br />
|peers=[mailto:jwein@mozilla.com Jared Wein], [mailto:mbonardo@mozilla.com Marco Bonardo], [mailto:gkruitbosch@mozilla.com Gijs Kruitbosch], [mailto:mnoorenberghe@mozilla.com Matthew Noorenberghe]<br />
|ownersemeritus=<br />
|peersemeritus=<br />
|group=firefox-dev<br />
|source_dirs=browser/, toolkit/<br />
|url=[[Firefox/Code_Review|Code Review Guidelines]]<br />
|components=Firefox, Toolkit<br />
}}<br />
<br />
{{Module<br />
|name=Add-ons Manager<br />
|description=Extension management back-end.<br />
|owner=[mailto:aswan@mozilla.com Andrew Swan], [mailto:kmaglione@mozilla.com Kris Maglione]<br />
|peers=[mailto:scaraveo@mozilla.com Shane Caraveo], [mailto:lgreco@mozilla.com Luca Greco], [mailto:tjovanovic@mozilla.com Tomislav Jovanovic], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:rwu@mozilla.com Rob Wu]<br />
|source_dirs=toolkit/mozapps/extensions/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Add-ons Manager UI<br />
|description=about:addons.<br />
|owner=[mailto:aswan@mozilla.com Andrew Swan], [mailto:mstriemer@mozilla.com Mark Striemer]<br />
|peers=[mailto:scaraveo@mozilla.com Shane Caraveo], [mailto:lgreco@mozilla.com Luca Greco], [mailto:tjovanovic@mozilla.com Tomislav Jovanovic], [mailto:rwu@mozilla.com Rob Wu]<br />
|source_dirs=toolkit/mozapps/extensions/content/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Application Startup<br />
|description=The profile system and startup process before the front-end launches.<br />
|owner=[mailto:dtownsend@mozilla.com Dave Townsend]<br />
|peers=<br />
|source_dirs=toolkit/profile, toolkit/components/remote, toolkit/xre<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Application Update<br />
|description=The application update services.<br />
|owner=[mailto:rstrong@mozilla.com Robert Strong]<br />
|peers=[mailto:ksteuber@mozilla.com Kirk Steuber]<br />
|source_dirs=toolkit/mozapps/update/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Bookmarks & History<br />
|description=The bookmarks and history services (Places).<br />
|owner=[mailto:mbonardo@mozilla.com Marco Bonardo]<br />
|peers=<br />
|source_dirs=browser/components/places/, toolkit/components/places/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Desktop Theme<br />
|description=The style rules used in the desktop UI.<br />
|owner=[mailto:dgottwald@mozilla.com Dão Gottwald]<br />
|peers=<br />
|source_dirs=browser/themes/, toolkit/themes/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Desktop UI<br />
|description=The main browser UI except where covered by more specific submodules.<br />
|owner=[mailto:jwein@mozilla.com Jared Wein]<br />
|peers=<br />
|source_dirs=browser/base/content/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Download Manager<br />
|description=The downloads UI and service.<br />
|owner=[mailto:mbonardo@mozilla.com Marco Bonardo]<br />
|peers=<br />
|source_dirs=browser/components/downloads/, toolkit/mozapps/downloads/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Enterprise Policies<br />
|description=System policies for controlling Firefox.<br />
|owner=[mailto:mkaply@mozilla.com Michael Kaply]<br />
|peers=<br />
|source_dirs=browser/components/enterprisepolicies/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Form Autofill<br />
|description=Form detection and autocomplete.<br />
|owner=[mailto:mnoorenberghe@mozilla.com Matthew Noorenberghe]<br />
|peers=<br />
|source_dirs=browser/extensions/formautofill/, toolkit/components/satchel/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=In-product Messaging<br />
|description=The system for delivering in-product messaging.<br />
|owner=[mailto:khudson@mozilla.com Kate Hudson]<br />
|peers=<br />
|source_dirs=<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=New Tab Page<br />
|description=The new tab/home page.<br />
|owner=[mailto:elee@mozilla.com Ed Lee]<br />
|peers=<br />
|source_dirs=browser/components/newtab/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Normandy<br />
|description=The experiments system.<br />
|owner=[mailto:mcooper@mozilla.com Michael Cooper]<br />
|peers=<br />
|source_dirs=toolkit/components/normandy/<br />
|url=<br />
|components=Firefox::Normandy<br />
}}<br />
<br />
{{Module<br />
|name=Onboarding<br />
|description=The onboarding experience including UI tours.<br />
|owner=[mailto:elee@mozilla.com Ed Lee]<br />
|peers=<br />
|source_dirs=browser/components/uitour/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Password Manager<br />
|description=Managing and filling passwords.<br />
|owner=[mailto:mnoorenberghe@mozilla.com Matthew Noorenberghe]<br />
|peers=<br />
|source_dirs=toolkit/components/passwordmgr/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=The front-end preferences system.<br />
|owner=[mailto:jwein@mozilla.com Jared Wein]<br />
|peers=<br />
|source_dirs=browser/components/preferences/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Profile Migration<br />
|description=Migrating data from other browsers.<br />
|owner=[mailto:gkruitbosch@mozilla.com Gijs Kruitbosch]<br />
|peers=<br />
|source_dirs=browser/components/migration/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Search and Address Bar<br />
|description=The search service, address bar and address bar autocomplete.<br />
|owner=[mailto:standard8@mozilla.com Mark Banner], [mailto:dwillcoxon@mozilla.com Drew Willcoxon]<br />
|peers=[mailto:dharvey@mozilla.com Dale Harvey], [mailto:mbonardo@mozilla.com Marco Bonardo], mailto:dao@mozilla.com Dão Gottwald], [mailto:mdeboer@mozilla.com Mike de Boer]<br />
|source_dirs=browser/components/search/, browser/components/urlbar/, toolkit/components/search/<br />
|url=<br />
|components=Firefox::Address Bar, Firefox::Search<br />
}}<br />
<br />
{{Module<br />
|name=Session Restore<br />
|description=Restoring a user's session after starting Firefox.<br />
|owner=[mailto:mdeboer@mozilla.com Michael de Boer]<br />
|peers=<br />
|source_dirs=browser/components/sessionstore/, toolkit/components/sessionstore/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=UI Widgets<br />
|description=The base widgets used throughout the UI.<br />
|owner=<br />
|peers=[mailto:neil@mozilla.com Neil Deakin], [mailto:aswan@mozilla.com Andrew Swan]<br />
|source_dirs=toolkit/content/widgets/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Webextensions<br />
|description=Webextension APIs and integration.<br />
|owner=[mailto:scaraveo@mozilla.com Shane Caraveo], [mailto:tjovanovic@mozilla.com Tomislav Jovanovic]<br />
|peers=[mailto:lgreco@mozilla.com Luca Greco], [mailto:kmaglione@mozilla.com Kris Maglione], [mailto:jmathies@mozilla.com Jim Mathies], [mailto:aswan@mozilla.com Andrew Swan], [mailto:rwu@mozilla.com Rob Wu]<br />
|source_dirs=browser/components/extensions/, toolkit/components/extensions/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Windows Installer<br />
|description=The installer for Windows.<br />
|owner=[mailto:mhowell@mozilla.com Matt Howell]<br />
|peers=[mailto:agashlin@mozilla.com Adam Gashlin]<br />
|source_dirs=browser/installer/, toolkit/mozapps/installer/<br />
|url=<br />
|components=Firefox::Installer<br />
}}</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Meeting&diff=1211209Firefox/Meeting2019-04-25T19:25:47Z<p>Standard8: Fix extension numbers by switching to the Vidyo template</p>
<hr />
<div>We meet biweekly to discuss development status of [[Firefox]] desktop. Please use [irc://irc.mozilla.org/%23fx-team #fx-team] or [https://mail.mozilla.org/listinfo/firefox-dev firefox-dev@mozilla.org] for communication.<br />
<br />
== Meeting Details == <br />
<br />
* Every second Tuesday @ 8:00AM Pacific <br />
{{VidyoConf|91337}}<br />
* "Firefox" Vidyo room. Guest link: https://v.mozilla.com/flex.html?roomdirect.html&key=oZj3CpyOlv<br />
*[irc://irc.mozilla.org/%23fx-team #fx-team] for backchannel<br />
<br />
== Meeting Notes ==<br />
[[Firefox/Meeting/Template|Template]]<br />
<br />
{| class="wikitable mw-collapsible" style="width: 100%"<br />
! 2019<br />
|-<br />
|<br />
* [https://docs.google.com/document/d/1hM9bmIdIe0PeQEB4SbU7NG3m7MmjgLJjUB7Fzr7fGEU/edit Apr 23, 2019] ([https://docs.google.com/document/d/e/2PACX-1vTYzdbkKSi9f-uGIwfxL5KKBXEQG6S283Dre_cZ4_gC0XBbjFFVGB2P1GrU67li1R1iGhV93BCdFO3o/pub public version])<br />
* [[/9-Apr-2019|Apr 9, 2019]]<br />
* [[/26-Mar-2019|Mar 26, 2019]]<br />
* [[/12-Mar-2019|Mar 12, 2019]]<br />
* [[/26-Feb-2019|Feb 26, 2019]]<br />
* [[/12-Feb-2019|Feb 12, 2019]]<br />
* [[/29-Jan-2019|Jan 29, 2019]]<br />
* [[/15-Jan-2019|Jan 15, 2019]]<br />
* Jan 1, 2019 - Cancelled due to New Years Eve<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2018<br />
|-<br />
|<br />
* [[/18-Dec-2018|Dec 18, 2018]]<br />
* Dec 4, 2018 - Cancelled due to all-hands<br />
* [[/20-Nov-2018|Nov 20, 2018]]<br />
* [[/06-Nov-2018|Nov 6, 2018]]<br />
* [[/23-Oct-2018|Oct 23, 2018]]<br />
* [[/09-Oct-2018|Oct 09, 2018]]<br />
* [[/25-Sep-2018|Sep 25, 2018]]<br />
* [[/11-Sep-2018|Sep 11, 2018]]<br />
* [[/28-Aug-2018|Aug 28, 2018]]<br />
* [[/14-Aug-2018|Aug 14, 2018]]<br />
* Jul 31, 2018 - Missing. :(<br />
* [[/17-Jul-2018|Jul 17, 2018]]<br />
* [[/03-Jul-2018|Jul 3, 2018]]<br />
* Jun 19, 2018 - Cancelled due to all-hands the prior week<br />
* [[/05-Jun-2018|Jun 5, 2018]]<br />
* [[/22-May-2018|May 22, 2018]]<br />
* [[/08-May-2018|May 8, 2018]]<br />
* [[/24-Apr-2018|Apr 24, 2018]]<br />
* [[/10-Apr-2018|Apr 10, 2018]]<br />
* [[/27-Mar-2018|Mar 27, 2018]]<br />
* [[/13-Mar-2018|Mar 13, 2018]]<br />
* [[/27-Feb-2018|Feb 27, 2018]]<br />
* [[/13-Feb-2018|Feb 13, 2018]]<br />
* [[/30-Jan-2018|Jan 30, 2018]]<br />
* [[/16-Jan-2018|Jan 16, 2018]]<br />
* Jan 2, 2018 - Cancelled due to holidays<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2017<br />
|-<br />
|<br />
* Dec 19, 2017 - Cancelled due to Austin All-Hands the prior week<br />
* [[/05-Dec-2017|Dec 05, 2017]]<br />
* [[/21-Nov-2017|Nov 21, 2017]]<br />
* [[/07-Nov-2017|Nov 07, 2017]]<br />
* [[/24-Oct-2017|Oct 24, 2017]]<br />
* [[/10-Oct-2017|Oct 10, 2017]]<br />
* [[/26-Sep-2017|Sep 26, 2017]]<br />
* [[/12-Sep-2017|Sep 12, 2017]]<br />
* [[/29-Aug-2017|Aug 29, 2017]]<br />
* [[/15-Aug-2017|Aug 15, 2017]]<br />
* [[/01-Aug-2017|Aug 01, 2017]]<br />
* [[/18-Jul-2017|Jul 18, 2017]]<br />
* [[/20-Jun-2017|Jun 20, 2017]]<br />
* [[/06-Jun-2017|Jun 06, 2017]]<br />
* [[/23-May-2017|May 23, 2017]]<br />
* [[/09-May-2017|May 09, 2017]]<br />
* [[/25-Apr-2017|Apr 25, 2017]]<br />
* [[/11-Apr-2017|Apr 11, 2017]]<br />
* [[/28-Mar-2017|Mar 28, 2017]]<br />
* [[/14-Mar-2017|Mar 14, 2017]]<br />
* [[/28-Feb-2017|Feb 28, 2017]]<br />
* [[/14-Feb-2017|Feb 14, 2017]]<br />
* [[/31-Jan-2017|Jan 31, 2017]]<br />
* [[/17-Jan-2017|Jan 17, 2017]]<br />
* Jan 3, 2017 - Cancelled due to holidays<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2016<br />
|-<br />
|<br />
* [[/20-Dec-2016|Dec 20, 2016]] <br />
* Dec 6, 2016 - Cancelled due to meeting in Hawaii<br />
* [[/22-Nov-2016|Nov 22, 2016]]<br />
* [[/08-Nov-2016|Nov 08, 2016]]<br />
* [[/25-Oct-2016|Oct 25, 2016]]<br />
* [[/11-Oct-2016|Oct 11, 2016]]<br />
* [[/27-Sep-2016|Sep 27, 2016]]<br />
* [[/13-Sep-2016|Sep 13, 2016]]<br />
* [[/30-Aug-2016|Aug 30, 2016]]<br />
* [[/16-Aug-2016|Aug 16, 2016]]<br />
* [[/02-Aug-2016|Aug 02, 2016]]<br />
* [[/19-Jul-2016|Jul 19, 2016]]<br />
* [[/05-Jul-2016|Jul 05, 2016]]<br />
* Jun 21, 2016 - Cancelled due to meeting in London the week before<br />
* [[/07-Jun-2016|Jun 07, 2016]]<br />
* [[/24-May-2016|May 24, 2016]]<br />
* [[/10-May-2016|May 10, 2016]]<br />
* [[/26-Apr-2016|Apr 26, 2016]]<br />
* [[/12-Apr-2016|Apr 12, 2016]]<br />
* [[/29-Mar-2016|Mar 29, 2016]]<br />
* [[/15-Mar-2016|Mar 15, 2016]]<br />
* [[/01-Mar-2016|Mar 01, 2016]]<br />
* [[/16-Feb-2016|Feb 16, 2016]]<br />
* [[/02-Feb-2016|Feb 02, 2016]]<br />
* [[/19-Jan-2016|Jan 19, 2016]]<br />
* Jan 05, 2016 - Cancelled due to holiday recovery<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2015<br />
|-<br />
|<br />
* Dec 22, 2015 - Cancelled due to holidays<br />
* Dec 8, 2015 - Cancelled due to in-person meetings<br />
* [[/24-Nov-2015|Nov 24, 2015]]<br />
* [[/10-Nov-2015|Nov 10, 2015]]<br />
* [[/27-Oct-2015|Oct 27, 2015]]<br />
* [[/13-Oct-2015|Oct 13, 2015]]<br />
* [[/29-Sep-2015|Sep 29, 2015]]<br />
* [[/15-Sep-2015|Sep 15, 2015]]<br />
* [[/01-Sep-2015|Sep 01, 2015]]<br />
* [[/18-Aug-2015|Aug 18, 2015]]<br />
* [[/04-Aug-2015|Aug 04, 2015]]<br />
* [[/21-Jul-2015|Jul 21, 2015]]<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2014 <br />
|-<br />
|<br />
* [[/4-Feb-2014|Feb 04, 2014]]<br />
* [[/28-Jan-2014|Jan 28, 2014]]<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
* [[/17-Dec-2013|December 17, 2013]]<br />
* [[/10-Dec-2013|December 10, 2013]]<br />
* [[/3-Dec-2013|December 3, 2013]]<br />
* [[/19-Nov-2013|November 19, 2013]]<br />
* [[/12-Nov-2013|November 12, 2013]]<br />
* [[/5-Nov-2013|November 5, 2013]]<br />
* [[/29-Oct-2013|October 29, 2013]]<br />
* [[/22-Oct-2013|October 22, 2013]]<br />
* [[/15-Oct-2013|October 15, 2013]]<br />
* [[/1-Oct-2013|October 1, 2013]]<br />
* [[/24-Sep-2013|September 24, 2013]]<br />
* [[/17-Sep-2013|September 17, 2013]]<br />
* [[/10-Sep-2013|September 10, 2013]]<br />
* [[/03-Sep-2013|September 3, 2013]]<br />
* [[/27-Aug-2013|August 27, 2013]]<br />
* [[/20-Aug-2013|August 20, 2013]]<br />
* [[/13-Aug-2013|August 13, 2013]]<br />
* [[/6-Aug-2013|August 6, 2013]]<br />
* [[/30-Jul-2013|July 30, 2013]]<br />
* [[/23-Jul-2013|July 23, 2013]]<br />
* [[/16-Jul-2013|July 16, 2013]]<br />
* [[/9-Jul-2013|July 9, 2013]]<br />
* [[/2-Jul-2013|July 2, 2013]]<br />
* [[/18-Jun-2013|June 18, 2013]]<br />
* [[/11-Jun-2013|June 11, 2013]]<br />
* [[/4-Jun-2013|June 4, 2013]]<br />
* [[/28-May-2013|May 28, 2013]]<br />
* [[/21-May-2013|May 21, 2013]]<br />
* [[/14-May-2013|May 14, 2013]]<br />
* [[/7-May-2013|May 7, 2013]]<br />
* [[/30-Apr-2013|Apr 30, 2013]]<br />
* [[/23-Apr-2013|Apr 23, 2013]]<br />
* [[/16-Apr-2013|Apr 16, 2013]]<br />
* [[/9-Apr-2013|Apr 9, 2013]]<br />
* [[/2-Apr-2013|Apr 2, 2013]]<br />
* [[/26-Mar-2013|Mar 26, 2013]]<br />
* [[/19-Mar-2013|Mar 19, 2013]]<br />
* [[/12-Mar-2013|Mar 12, 2013]]<br />
* [[/5-Mar-2013|Mar 5, 2013]]<br />
* [[/26-Feb-2013|Feb 26, 2013]]<br />
* [[/19-Feb-2013|Feb 19, 2013]]<br />
* [[/12-Feb-2013|Feb 12, 2013]]<br />
* [[/5-Feb-2013|Feb 5, 2013]]<br />
* [[/22-Jan-2013|Jan 22, 2013]]<br />
* [[/15-Jan-2013|Jan 15, 2013]]<br />
* [[/8-Jan-2013|Jan 8, 2013]]<br />
|}<br />
<br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
* [[/8-Jan-2013|Jan 8, 2013]]<br />
* [[/18-Dec-2012|Dec 18, 2012]]<br />
* [[/11-Dec-2012|Dec 11, 2012]]<br />
* [[/4-Dec-2012|Dec 4, 2012]]<br />
* [[/27-Nov-2012|Nov 27, 2012]]<br />
* [[/20-Nov-2012|Nov 20, 2012]]<br />
|}</div>Standard8https://wiki.mozilla.org/index.php?title=Template:Conf&diff=1211195Template:Conf2019-04-25T15:57:53Z<p>Standard8: Update extension number as per https://wiki.mozilla.org/Teleconferencing</p>
<hr />
<div><!-- This template is ONLY for Auido-only conferences. Use Template:VidyoConf for Vidyo conferences --><br />
* [[Teleconferencing|Dial-in]]: Audio-only conference# {{{1}}}<br />
** People with Mozilla phones or [https://intranet.mozilla.org/Softphone softphones] please dial x2000 Conf# {{{1}}}<br />
** US/Toll-free: +1 800 707 2533, (pin 2000) Conf# {{{1}}}<br />
** US/California/Mountain View: +1 650 903 0800, x2000 Conf# {{{1}}}<br />
** US/California/San Francisco: +1 415 762 5700, x2000 Conf# {{{1}}}<br />
** US/Oregon/Portland: +1 971 544 8000, x2000 Conf# {{{1}}}<br />
** CA/British Columbia/Vancouver: +1 778 785 1540, x2000 Conf# {{{1}}}<br />
** CA/Ontario/Toronto: +1 416 848 3114, x2000 Conf# {{{1}}}<br />
** UK/London: +44 (0)207 855 3000, x2000 Conf# {{{1}}}<br />
** FR/Paris: +33 1 84 88 37 37, x2000 Conf# {{{1}}}<br />
** Gmail Chat (requires Flash and the [http://www.google.com/talk/ Google Talk plugin]): paste +1 650 903 0800 into the Gmail Chat box that doesn't look like it accepts phone numbers<br />
** SkypeOut is free if you use the 800 number</div>Standard8https://wiki.mozilla.org/index.php?title=WeeklyUpdates/2018-12-17&diff=1205232WeeklyUpdates/2018-12-172018-12-17T19:03:43Z<p>Standard8: Fix air mozilla link</p>
<hr />
<div><br />
{{WeeklyUpdateNav}}<br />
* Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
* Watch anonymously at https://air.mozilla.org (all public webcasts)<br />
* AirMozilla live stream: https://mzl.la/project-meeting-2018-12-17 Issues? Please see the FAQ at https://mana.mozilla.org/wiki/display/AVSE/INXPO+SaaS+Webcasting+Application+FAQ.<br />
* Live streaming on Mozilla YouTube Channel: https://www.youtube.com/watch?v=LmBEFZ6OczY<br />
* join on Slack at #airmozilla for backchannel discussion<br />
* Presenters only: Vidyo room "Brownbags". Do '''not''' use this room if you're not planning to speak. <br />
{{conf|8600}}<br />
** If you plan on presenting, please join the Vidyo BrownBags 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.<br />
<br />
__TOC__<br />
<br />
= All-hands Status Meeting Agenda =<br />
<br />
Items in this section will be shared during the live all-hand status meeting.<br />
<br />
== Friends of Mozilla [[Image:Tree.gif|Friends of Mozilla]] ==<br />
<br />
* Thank you to [https://twitter.com/humphd David Humphrey] and his students (Alex Kong, Adam Pucciano, Deepanjali Gerangal, Julia McGeoghan, Adam Kolodko, Jagmeet Bhamber, Volodymyr Klymenko, Huda Al Dallal, Shreena Athian, Muchtar Salimov, Ruihui Yan, Vincent Wong, Maya Filipp) at Seneca College (Toronto) for their work over the last month towards enabling [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=%5Bseneca-eslint%5D&list_id=14476295 ESLint on more directories] (mainly our core DOM code). This helps towards reducing possible errors in code, consistency of code styles, and reducing work for reviewers.<br />
* Thanks to Adbul Rauf (irc nick: haseeb) for his continued triage of mobile incoming webcompat.com issues. <3<br />
* Thank you to add-on reviewers BJ, erosman, and Trishul for their continued contributions to AMO!<br />
* Thank you to all our Outreachy mentors for this next cohort!<br />
* Thank you Potch for hosting the Weekly Meetings all these years! +1111<br />
<br />
== Upcoming Events ==<br />
<br />
=== This Week ===<br />
*All week, join SUMO Week to answer user questions in the forums and on twitter. Get involved today or sign up for a team on the event page for this week! [https://events.mozilla.org/firefox64sumoweeksprint Sign up today!]<br />
<br />
=== Monday, {{#time:d F|{{SUBPAGENAME}}}} ===<br />
<br />
=== Tuesday, {{#time:d F|{{SUBPAGENAME}} +1 day}} ===<br />
<br />
=== Wednesday, {{#time:d F|{{SUBPAGENAME}} +2 days}} ===<br />
* [[Add-ons/Community/Meetings|Add-ons Community Meeting]]<br />
** 16:30 UTC | 8:30am PST <br />
** ACE Vidyo Room<br />
*[https://wiki.mozilla.org/Support/Weekly_Meetings/Agenda_2018-12-19 SUMO Community Meetings]<br />
** 17:00 UTC | 9:00am PST <br />
** SUMO Vidyo Room<br />
<br />
=== Thursday, {{#time:d F|{{SUBPAGENAME}} +3 days}} ===<br />
<br />
=== Friday, {{#time:d F|{{SUBPAGENAME}} +4 days}} ===<br />
<br />
=== Saturday, {{#time:d F|{{SUBPAGENAME}} +5 days}} ===<br />
<br />
=== Sunday, {{#time:d F|{{SUBPAGENAME}} +6 days}} ===<br />
<br />
=== Next Week ===<br />
<br />
== Speakers ==<br />
<br />
The limit is '''3 minutes per topic'''. It's like a lightning talk, but don't feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 "widescreen" format, please indicate in the "Sharing" column below.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! [https://mozillians.org/u/USERNAME Presenter]<br />
! Title<br />
! Topic<br />
! Location<br />
! Sharing<br />
! Media<br />
! More Details<br />
|-<br />
| Who Are You?<br />
| What Do You Do?<br />
| What are you going to talk about?<br />
| Where are you presenting from? (Moz Space, your house, space)<br />
| Will you be sharing your screen? (yes/no, 4:3 or 16:9)<br />
| Links to slides or images you want displayed on screen<br />
| Link to where audience can find out more information<br />
|-<br />
| Asa Dotzler<br />
| Team Firefox<br />
| Firefox Weekly Update<br />
| MTV<br />
| no<br />
| n/a<br />
| [https://wiki.mozilla.org/Firefox/Roadmap/Updates#2018-12-17 2018-12-17]<br />
|-<br />
| David Bryant<br />
| Head of Developer Outreach<br />
| Emerging Technologies Weekly Update<br />
| MTV<br />
| no<br />
| n/a<br />
| [https://wiki.mozilla.org/WeeklyUpdates/EmergingTechnology#December_17th.2C_2018 ET Headlines]<br />
|-<br />
| Michael Van Kleeck<br />
| Enterprise Solutions Architect<br />
| The Weekly MinIT! <br />
| MozPDX<br />
| No<br />
| https://wiki.mozilla.org/IT/WeeklyMinIT<br />
| https://wiki.mozilla.org/IT/WeeklyMinIT<br />
|-<br />
| Emma Humphries<br />
| Bugmaster<br />
| Bugzilla Dupe Finder<br />
| MTV<br />
| Yes<br />
| https://bmo-find-dupes.glitch.me/<br />
| https://bmo-find-dupes.glitch.me/<br />
|-<br />
|}<br />
<br />
= Welcome! =<br />
<br />
Let's say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! ''Who is being introduced?''<br />
! ''Who are you? (the introducer)''<br />
! ''Where are you doing the introduction?''<br />
! ''Where are they from?''<br />
! ''How will they be part of Mozilla?''<br />
|-<br />
<!-- Insert new rows here --><br />
|-<br />
| Wolasi Konu<br />
| Peter Cho<br />
| San Francisco<br />
| Los Angeles, California<br />
| Senior Product Designer<br />
|-<br />
| Tyler Miller<br />
| Peter Cho<br />
| San Francisco<br />
| San Francisco (Pocket HQ)<br />
| Senior Product Designer<br />
|-<br />
| Brian O'Neill<br />
| Chris More<br />
| Remote via vidyo<br />
| Austin, TX<br />
| Senior Product Manager, Premium Subscription Services<br />
|-<br />
|}<br />
<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Standard8https://wiki.mozilla.org/index.php?title=WeeklyUpdates/2018-12-17&diff=1205214WeeklyUpdates/2018-12-172018-12-17T17:21:32Z<p>Standard8: /* Friends of Mozilla Friends of Mozilla */ Add FOM for ESLint</p>
<hr />
<div><br />
{{WeeklyUpdateNav}}<br />
* Every Monday @ 11:00am Pacific Time (19:00 UTC) <br />
* Watch anonymously at https://air.mozila.org (all public webcasts)<br />
* AirMozilla live stream: https://mzl.la/project-meeting-2018-12-17 Issues? Please see the FAQ at https://mana.mozilla.org/wiki/display/AVSE/INXPO+SaaS+Webcasting+Application+FAQ.<br />
* Live streaming on Mozilla YouTube Channel: https://www.youtube.com/watch?v=LmBEFZ6OczY<br />
* join on Slack at #airmozilla for backchannel discussion<br />
* Presenters only: Vidyo room "Brownbags". Do '''not''' use this room if you're not planning to speak. <br />
{{conf|8600}}<br />
** If you plan on presenting, please join the Vidyo BrownBags 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.<br />
<br />
__TOC__<br />
<br />
= All-hands Status Meeting Agenda =<br />
<br />
Items in this section will be shared during the live all-hand status meeting.<br />
<br />
== Friends of Mozilla [[Image:Tree.gif|Friends of Mozilla]] ==<br />
<br />
* Thank you to [https://twitter.com/humphd David Humphrey] and his students (Alex Kong, Adam Pucciano, Deepanjali Gerangal, Julia McGeoghan, Adam Kolodko, Jagmeet Bhamber, Volodymyr Klymenko, Huda Al Dallal, Shreena Athian, Muchtar Salimov, Ruihui Yan, Vincent Wong, Maya Filipp) at Seneca College (Toronto) for their work over the last month towards enabling [https://bugzilla.mozilla.org/buglist.cgi?status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=%5Bseneca-eslint%5D&list_id=14476295 ESLint on more directories] (mainly our core DOM code). This helps towards reducing possible errors in code, consistency of code styles, and reducing work for reviewers.<br />
<br />
== Upcoming Events ==<br />
<br />
=== This Week ===<br />
<br />
=== Monday, {{#time:d F|{{SUBPAGENAME}}}} ===<br />
<br />
=== Tuesday, {{#time:d F|{{SUBPAGENAME}} +1 day}} ===<br />
<br />
=== Wednesday, {{#time:d F|{{SUBPAGENAME}} +2 days}} ===<br />
* [[Add-ons/Community/Meetings|Add-ons Community Meeting]]<br />
** 16:30 UTC | 8:30am PST <br />
** ACE Vidyo Room<br />
<br />
=== Thursday, {{#time:d F|{{SUBPAGENAME}} +3 days}} ===<br />
<br />
=== Friday, {{#time:d F|{{SUBPAGENAME}} +4 days}} ===<br />
<br />
=== Saturday, {{#time:d F|{{SUBPAGENAME}} +5 days}} ===<br />
<br />
=== Sunday, {{#time:d F|{{SUBPAGENAME}} +6 days}} ===<br />
<br />
=== Next Week ===<br />
<br />
== Speakers ==<br />
<br />
The limit is '''3 minutes per topic'''. It's like a lightning talk, but don't feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 "widescreen" format, please indicate in the "Sharing" column below.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! [https://mozillians.org/u/USERNAME Presenter]<br />
! Title<br />
! Topic<br />
! Location<br />
! Sharing<br />
! Media<br />
! More Details<br />
|-<br />
| Who Are You?<br />
| What Do You Do?<br />
| What are you going to talk about?<br />
| Where are you presenting from? (Moz Space, your house, space)<br />
| Will you be sharing your screen? (yes/no, 4:3 or 16:9)<br />
| Links to slides or images you want displayed on screen<br />
| Link to where audience can find out more information<br />
|-<br />
| Asa Dotzler<br />
| Team Firefox<br />
| Firefox Weekly Update<br />
| MTV<br />
| no<br />
| n/a<br />
| [https://wiki.mozilla.org/Firefox/Roadmap/Updates#2018-12-17 2018-12-17]<br />
|-<br />
| David Bryant<br />
| Head of Developer Outreach<br />
| Emerging Technologies Weekly Update<br />
| MTV<br />
| no<br />
| n/a<br />
| [https://wiki.mozilla.org/WeeklyUpdates/EmergingTechnology#December_17th.2C_2018 ET Headlines]<br />
|-<br />
| Michael Van Kleeck<br />
| Enterprise Solutions Architect<br />
| The Weekly MinIT! <br />
| MozPDX<br />
| No<br />
| https://wiki.mozilla.org/IT/WeeklyMinIT<br />
| https://wiki.mozilla.org/IT/WeeklyMinIT<br />
|-<br />
|}<br />
<br />
= Welcome! =<br />
<br />
Let's say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.<br />
<br />
{| class="fullwidth-table wikitable"<br />
|-<br />
! ''Who is being introduced?''<br />
! ''Who are you? (the introducer)''<br />
! ''Where are you doing the introduction?''<br />
! ''Where are they from?''<br />
! ''How will they be part of Mozilla?''<br />
|-<br />
<!-- Insert new rows here --><br />
|-<br />
| Wolasi Konu<br />
| Peter Cho<br />
| San Francisco<br />
| Los Angeles, California<br />
| Senior Product Designer<br />
|-<br />
| Tyler Miller<br />
| Peter Cho<br />
| San Francisco<br />
| San Francisco (Pocket HQ)<br />
| Senior Product Designer<br />
|-<br />
| Brian O'Neill<br />
| Chris More<br />
| Remote via vidyo<br />
| Austin, TX<br />
| Senior Product Manager, Premium Subscription Services<br />
|-<br />
|}<br />
<br />
<br />
[[Category:Weekly Updates]]<br />
[[Category:Meeting Notes]]</div>Standard8https://wiki.mozilla.org/index.php?title=Thunderbird/Add-ons_Guide_57&diff=1191432Thunderbird/Add-ons Guide 572018-03-28T16:13:48Z<p>Standard8: /* Removed and changed in mozilla60 */ Expression closures have been removed around FF 60 ish</p>
<hr />
<div><big>'''Add-ons Guide for Thunderbird 57 and beyond'''</big><br />
<br />
'''Legacy add-ons''': Despite Mozilla core interface removals, Thunderbird 57-60 and Seamonkey will '''<u>still support</u> legacy add-ons <u>if</u> appropriate modifications are done to the add-on to adapt to the changed interfaces'''. Core interface changes and removals have come because Firefox platform have disabled "legacy" add-ons (add-ons which are not based purely on WebExtensions) in Firefox 57. Beyond version 60 is less certain, given the extreme rate of change in Firefox platform code. We will work with add-on authors in the coming months to determine a viable post-60 add-on strategy.<br />
<br />
'''WebExtension''': WebExtension does not exist yet in Thunderbird. Thunderbird will be adding WebExtension support ({{bug|1396172}}) while maintaining "legacy" add-ons and hybrid add-ons. <br />
<br />
'''Questions and Help''': Add-on developers can get help in the mozilla.dev.apps.thunderbird newsgroup (the traditional venue) or in maildev mailing list. (see [[Thunderbird/CommunicationChannels#If_you.27re_a_developer]] These forums have more people available to help you than bugzilla and other locations, so please ask in a forum before filing a bug report in bugzilla. And also test and fix your add-on using the latest [http://www.mozilla.org/thunderbird/channel/ beta version] of Thunderbird.<br />
<br><p><br />
<br />
__TOC__<br />
<br />
== Removed interfaces in mozilla57 ==<br />
* nsILocalFile -- replacement: nsIFile<br />
* extIApplication, nsIEntityConverter<br />
* nsIProgrammingLanguage<br />
* nsILocaleService and friends<br />
* nsIScriptableDateFormat -- replacement: [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat Intl.DateTimeFormat] and mozIntl.DateTimeFormat (use: |Services.intl.createDateTimeFormat(...)| in Thunderbird 57 and 58, changed to |new Services.intl.DateTimeFormat(...)| from Thunderbird 59).<br />
* nsIFilePicker.show() -- replacement: nsIFilePicker.open() (async), example: [https://hg.mozilla.org/comm-central/rev/d960dcde18c4#l6.12 Changeset where Thunderbird implemented that change]. There's also a "lazy" replacement:<br />
<pre>function PickerShow(fp) {<br />
let done = false;<br />
let rv, result;<br />
fp.open(result => {<br />
rv = result;<br />
done = true;<br />
});<br />
let thread = Components.classes["@mozilla.org/thread-manager;1"]<br />
.getService().currentThread;<br />
while (!done) {<br />
thread.processNextEvent(true);<br />
}<br />
return rv;<br />
}<br />
</pre><br />
* nsIDownloadManager<br />
* Promise.jsm -- replacement: PromiseUtils.jsm<br />
* nsIPrefBranch2 and nsIPrefBranchInternal -- replacement: nsIPrefBranch<br />
* nsIExternalProtocolService.loadUrl -- replacement: nsIExternalProtocolService.loadURI<br />
* nsIInputStreamPump.init: Change of arguments<br />
* nsIAtomService - see {{bug|1393692}} for removal from Thunderbird<br />
<br />
== Changes to JS and XUL in mozilla57 == <br />
[https://www.fxsitecompat.com/en-CA/versions/57/] <br />
* `for each ()` construct [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for_each...in] -- replacement: 'for (x of object)' or 'for (x of Object.values())'<br />
* `with` construct [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with]<br />
* catch (ex if ex instanceof ExceptionType) (removed in mozilla47 already)<br />
* versioned Javascript support -- replacement: In XUL files, links to JS files using <script type="application/x-javascript" ... > or <script type="application/x-javascript;version=1.7" ... >, change to <script type="application/javascript" ... ><br />
* __iterator__ and Iterator()<br />
* "legacy" generators, now need to use `function*` syntax (removed in mozilla? already)<br />
* imports must be 100% correct now: Components.utils.import("resource://gre/modules/...") for Mozilla central imports, Components.utils.import("resource:///modules/...") for Thunderbird imports.<br />
<br />
== Changes in thunderbird57 ==<br />
* steelIApplication (removed due to removal of extIApplication) -- replacement: Services, AppConstants<br />
* for (x in fixIterator(obj)) (removed due to removal of __iterator__) -- replacement: for (x of fixIterator(obj))<br />
<br />
== Removed in mozilla58 ==<br />
* Date.prototype.toLocaleFormat<br />
* {get,set}ComplexValue use of nsISupportsString -- replacement: {get,set}StringPref(), example: [https://hg.mozilla.org/comm-central/rev/3a0c2f6597ef#l1.12 Changeset where Thunderbird implemented that change]<br />
* Mechanism to store add-on preferences in defaults/preferences/xx.js. '''Thunderbird 58 Beta not affected (beta 1+2: backout of this core change, beta 3 has fix from TB 59). A fix has landed on Daily 59 as of 2017-12-12, see {{bug|1414398}}.'''<br />
<br />
== Changes to JS in mozilla58 == <br />
[https://www.fxsitecompat.com/en-CA/versions/58/]<br />
* StopIteration [https://developer.mozilla.org/en-US/docs/Archive/Web/StopIteration]<br />
<br />
== Removed and changed in mozilla59 ==<br />
* Dialog (optionsType=1) and Inline (2) options were removed in {{bug|1414406}}. Thunderbird will not support that feature any more, only options in tabs (3) work now. Replacements:<br />
# If add-on's install.rdf contains no <em:optionsType> declaration, the add-on's preferences page (<em:optionsURL>) will only be accessible via a new submenu in Tools menu (implemented in {{Bug|1419145}}, landed on Daily 59 as of 2017-12-22). The preferences will open in a dialog, as was the case in older versions. [[File:Add-on Options.png|none|Screenshot showing Add-on Options in TB 59]]<br />
# If add-on's install.rdf contains <em:optionsType>3</em:optionsType>, the Preferences button will appear in the Add-on Manager tab besides the add-on, as was the case in older versions. Clicking the button will open the preferences page in a new tab. The preferences page (optionsURL) is also accessible via the new submenu in Tools menu and will open in a tab. No other value of <em:optionsType> is supported and TB will even refuse to install such add-ons (decision from {{bug|1414406}}).<br />
# Alternatively, add-ons may embed a WebExtension to display inline options [https://developer.mozilla.org/Add-ons/WebExtensions/Embedded_WebExtensions][https://developer.mozilla.org/Add-ons/WebExtensions/manifest.json/options_ui]. This should be working now that {{bug|1418914}} has been fixed.<br />
* The statusbarpanel-iconic and statusbarpanel-iconic-text was removed, use toolbarbutton instead. See {{bug|1417198}} for [https://hg.mozilla.org/comm-central/rev/d342491c066b an example].<br />
* nsIURI.spec is read-only, use url.mutate().setSpec(aSpec).finalize();<br />
<br />
== Changes to JS in mozilla59 == <br />
[https://www.fxsitecompat.com/en-CA/versions/59/]<br />
* catch (ex if ...)<br />
* |Services.intl.createDateTimeFormat(...)| in Thunderbird 57 and 58 changed to |new Services.intl.DateTimeFormat(...)|<br />
* Components.classes['@mozilla.org/xmlextras/xmlhttprequest;1'] changed to new XMLHttpRequest(). Potentially you need to add Components.utils.importGlobalProperties(["XMLHttpRequest"]), which might not be necessary from version 61.<br />
<br />
== Changes in thunderbird59 ==<br />
* The id of the tab container of the 3pane has changed from "tabcontainer" to "tabmail-tabs". This was done to align the naming with the corresponding Firefox tab container. Add-ons need to replace document.getElementById("tabcontainer") with document.getElementById("tabmail-tabs").<br />
* The bindings for the toolbar customization have moved from "global" to "messenger". If your add-on has customizable icons, please modify your chrome.manifest as shown below:<br />
<pre><br />
style chrome://global/content/customizeToolbar.xul chrome://.../skin/... .css appversion<59.0a1<br />
style chrome://messenger/content/customizeToolbar.xul chrome://.../skin/... .css appversion>=59.0a1<br />
</pre><br />
* CSS for the preference dialogs has moved from Mozilla core to Thunderbird. Add-ons that have an options/preferences dialog using <prefwindow> that requires this CSS need to add<br />
<pre><br />
<?xml-stylesheet type="text/css" href="chrome://messenger/skin/preferences/preferences.css"?><br />
</pre> to the XUL file that defines that dialog.<br />
* Many bindings have moved from Mozilla core to Thunderbird. If you use any of the following<br />
<pre><br />
toolbar.xml#toolbox<br />
toolbar.xml#toolbar<br />
toolbar.xml#toolbar-drag<br />
toolbar.xml#toolbar-menubar-autohide<br />
mailWidgets.xml#menulist-description<br />
mailWidgets.xml#menuitem-iconic-desc-noaccel<br />
datetimepicker.xml#datepicker-popup<br />
datetimepicker.xml#datepicker-grid<br />
datetimepicker.xml#timepicker<br />
spinbuttons.xml#spinbuttons<br />
generalBindings.xml#statusbar<br />
generalBindings.xml#statusbar<br />
generalBindings.xml#statusbarpanel<br />
generalBindings.xml#statusbarpanel<br />
</pre><br />
you need to include<br />
<pre><br />
<?xml-stylesheet href="chrome://messenger/content/bindings.css" type="text/css"?><br />
</pre><br />
in the respective XUL file of your add-on.<br />
<br />
== Removed and changed in mozilla60 ==<br />
* Removed interfaces: nsIDOMXPathResult, nsIDOMNodeFilter, many methods of nsIDOMNode, nsIDOMElement::{Get|Set}Attribute(), nsIDOMHTMLElement, nsIDOMHTMLDocument, nsIDOMHTMLMediaElement, nsIDOMFormData. Some of the removed interfaces only affect C++ in Thunderbird internally but are listed here for completeness.<br />
* All attributes of nsIURI.spec are read-only, use for example url.mutate().setQuery(aQuery).finalize(); More examples in {{bug|1440693}}.<br />
* Components.utils.import() has changed to ChromeUtils.import(). The old form still works (but is slower)<br />
* Expression Closures have been dropped: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Expression_closures (use arrow functions).<br />
<br />
== Outlook and Suggestion ==<br />
'''Suggestion for add-on authors wishing to be compatible with Thunderbird 59: Go, go, go!''' The fix for {{bug|1414398}} (default preferences) and {{Bug|1419145}} (menu to access add-on options, tab options (3) work) has arrived (2017-12-12 and 2017-12-22). {{Bug|1418914}} has been fixed and then inline options can be achieved via an embedded WebExtension.<br />
<br />
All add-ons compatible with TB 58 beta need further changes as mentioned above to be compatible with TB 59 Beta and TB 60 Daily.<br />
<br />
== Also Note ==<br />
The list above only contains selected changes relevant to add-ons. The full list of changes can be seen at [https://developer.mozilla.org/en-US/Firefox/Releases Firefox developer release notes] where all the details, bugzilla bug reports and patches implementing those changes can be found.</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Search&diff=1191195Firefox/Search2018-03-26T14:21:10Z<p>Standard8: Update bugzilla tool parameters so that whiteboard search works correctly when using the Full Query link.</p>
<hr />
<div>=Firefox Desktop Search and Navigation Team=<br />
<p>The purpose of this team is to maintain, improve and innovate on the functions of the Firefox frontend around search and navigation. Firefox surface areas that the team often works with are the location bar, the search bar, the library and related preference panes.</p><br />
<br />
=Members=<br />
* Mark Banner (Standard8)<br />
* Michael de Boer (:mikedeboer)<br />
* Marco Bonardo (:mak)<br />
* Shilpi Gupta (:shilpi)<br />
* Javaun Moradi (:javaun)<br />
* Drew Wilcoxon (:adw)<br />
<br />
=Contact=<br />
<p>'''Team Meeting''' </p><br />
{| class="wikitable"<br />
|-<br />
! Day of week !! Pacific Time !! Eastern Time !! UTC !! Central European Time<br />
|-<br />
| Mondays || 10:00AM - 10:30AM || 1:00PM - 1:30PM || 6:00PM - 6:30PM || 7:00PM - 7:30PM<br />
|-<br />
|}<br />
* '''Frequency:''' One meeting per week on Monday.<br />
* '''Duration:''' 30 min<br />
* '''Vidyo Room:''' [https://v.mozilla.com/flex.html?roomdirect.html&key=TPrbZ6yZU7nc6JL0D5fo4Fulmoo searchmeeting]<br />
* '''IRC:''' #fx-search, #fx-team<br />
* '''Mailing list:''' fx-search, firefox-dev<br />
<p> </p><br />
<br />
=Bugzilla=<br />
<p>Bugzilla components don't tend to align properly with project boundaries, so this team is monitoring bugs across a number of components that contain the whiteboard tag [fxsearch]. Common components of interest are Firefox:Location bar, Firefox:Search, Toolkit:Places and more.</p><br />
<br />
==Selecting a New Bug for the Current Release==<br />
# Select any 'P1' bug which is currently ''unassigned'' and ''not blocked'' on a dependency. If no 'P1' bugs are available then select from the available 'P2' bugs, and so on.<br />
# Add the following if not already present:<br />
* [fxsearch] whiteboard tag.<br />
* QE verification flag.<br />
<p> </p><br />
<br />
==Adding a New Bug to the Backlog==<br />
# Add the [fxsearch] whiteboard tag.<br />
# Set the bug as a dependency of a user story bug or a meta bug if applicable.<br />
# The bug priority will be set during the Weekly Meeting:<br />
* 'P1': Must Have - development occurring in the current release.<br />
* 'P2': Should Have - targeted for next release.<br />
* 'P3': Could Have - planned for development in an upcoming release.<br />
* 'P5': Will Have - not scheduled for any particular release, patches accepted.<br />
<p> </p><br />
<br />
==Submitting a Bug for Triage==<br />
# Add the [fxsearch] whiteboard tag.<br />
# Leave the priority field empty (--).<br />
<p> </p><br />
<br />
{| class="wikitable mw-collapsible" style="width: 100%"<br />
! Triage<br />
|-<br />
|<br />
Collection of work waiting for the team to review and determine if it should be included in the Product Backlog<br />
<p> </p><br />
<bugzilla><br />
{<br />
"status_whiteboard": "[fxsearch]",<br />
"status_whiteboard_type": "allwordssubstr",<br />
"include_fields": ["id", "summary", "status", "whiteboard", "keywords", "assigned_to"],<br />
"priority": "--", <br />
"resolution": "---"<br />
}<br />
</bugzilla><br />
|}<br />
<br />
=Releases=<br />
<p> </p><br />
{| class="wikitable mw-collapsible" style="width: 100%"<br />
! Current Release<br />
|-<br />
|<br />
<p>'''P1''': ''Must Have'' - development occurring in the current release</p><br />
'''Duration:''' Tuesday March 13 - Monday May 7<br />
<p> </p><br />
<bugzilla><br />
{<br />
"status_whiteboard": "[fxsearch]",<br />
"status_whiteboard_type": "allwordssubstr",<br />
"include_fields": ["id", "summary", "status", "whiteboard", "keywords", "assigned_to"],<br />
"priority": "P1", <br />
"resolution": "---"<br />
}<br />
</bugzilla><br />
|}<br />
<p> </p><br />
{| class="wikitable mw-collapsible" style="width: 100%"<br />
! Current Release: Completed<br />
|-<br />
|<br />
<bugzilla><br />
{<br />
"include_fields": ["id", "summary", "status", "whiteboard", "keywords", "assigned_to", "priority"],<br />
"o5": "substring",<br />
"f1": "status_whiteboard",<br />
"o3": "notsubstring",<br />
"v6": "firefox 61",<br />
"o1": "substring",<br />
"o6": "substring",<br />
"f4": "OP",<br />
"v5": "mozilla61",<br />
"j4": "OR",<br />
"f5": "target_milestone",<br />
"v1": "[fxsearch]",<br />
"f6": "target_milestone"<br />
}<br />
</bugzilla><br />
|}<br />
<p> </p><br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! Next Release<br />
|-<br />
|<br />
<p>'''P2''': ''Should Have'' - targeted for the current release if production capacity exists</p><br />
<bugzilla><br />
{<br />
"status_whiteboard": "[fxsearch]",<br />
"status_whiteboard_type": "allwordssubstr",<br />
"include_fields": ["id", "summary", "status", "whiteboard", "keywords", "assigned_to"],<br />
"priority": "P2", <br />
"resolution": "---"<br />
}<br />
</bugzilla><br />
|}<br />
<p> </p><br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! Backlog<br />
|-<br />
|<br />
<p>'''P3''': ''Could Have'' - planned for development in an upcoming release</p><br />
<bugzilla><br />
{<br />
"status_whiteboard": "[fxsearch]",<br />
"status_whiteboard_type": "allwordssubstr",<br />
"include_fields": ["id", "summary", "status", "whiteboard", "keywords", "assigned_to"],<br />
"priority": "P3", <br />
"resolution": "---"<br />
}<br />
</bugzilla><br />
|}<br />
<p> </p><br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! Patches Accepted<br />
|-<br />
|<br />
<p>'''P5''': ''Will Have'' - not scheduled for any particular release, patches accepted</p><br />
<bugzilla><br />
{<br />
"status_whiteboard": "[fxsearch]",<br />
"status_whiteboard_type": "allwordssubstr",<br />
"include_fields": ["id", "summary", "status", "whiteboard", "keywords", "assigned_to"],<br />
"priority": "P5", <br />
"resolution": "---"<br />
}<br />
</bugzilla><br />
|}<br />
<p> </p><br />
{| class="wikitable mw-collapsible mw-collapsed" style="width: 100%"<br />
! ¯\_(ツ)_/¯<br />
|-<br />
|<br />
<p>'''P4''': (should be reprioritized to P3 or P5)</p><br />
<bugzilla><br />
{<br />
"status_whiteboard": "[fxsearch]",<br />
"status_whiteboard_type": "allwordssubstr",<br />
"include_fields": ["id", "summary", "status", "whiteboard", "keywords", "assigned_to"],<br />
"priority": "P4", <br />
"resolution": "---"<br />
}<br />
</bugzilla><br />
|}<br />
<p> </p><br />
<br />
==Completed Releases==<br />
<p> </p><br />
[[Firefox/Search/archive|View Performance Archive]]<br />
<p> </p></div>Standard8https://wiki.mozilla.org/index.php?title=GitHub&diff=1189592GitHub2018-03-01T16:36:07Z<p>Standard8: /* Team Maintainers & Project Leads */ Better bug form</p>
<hr />
<div>This page is specifically about [https://github.com/mozilla the "mozilla" organization on github]. There are several other github organizations you may be interested in, cf. the incomplete list [[#other_github|below]].<br />
<div id="contact"><br />
{| class="wikitable"<br />
|-<br />
! [[File:Red_question_mark.png|144px|Send us an email!|link=]] Got a question?<br />
|-<br />
| Email {{emailentry|github-owners|mozilla.org|at=is}} <br /><br />
Bugzilla [https://bugzilla.mozilla.org/enter_bug.cgi?comment=I%27ve%20read%20https%3A%2F%2Fwiki.mozilla.org%2FGithub%2C%20and%20need%20help%20with%20the%20following.%0D%0A%0D%0A&component=Github%3A%20Administration&form_name=enter_bug&product=mozilla.org& mozilla.org :: Github: Administration] <br /><br />
irc #github on [[IRC|moznet]]<br />
|}<br />
<br />
== News ==<br />
* As of June 20, 2016, all members [https://groups.google.com/forum/#!topic/mozilla.dev.platform/UmHOOh3qtiM must have 2FA enabled]. You have been notified if this impacts you.<br />
<br />
== Recommendations and FAQ ==<br />
<br />
=== Where should I ask additional questions? ===<br />
* Send an email to '''{{emailentry|github-owners|mozilla.org|at=is}}''' and we'll respond right away! We're also available on #github on irc.<br />
<br />
=== How do I hook up a new 3rd party application to a repository in the mozilla org? ===<br />
{{note|There are now multiple 3rd pary application types. "GitHub Apps" (nee integrations) are the new approach and preferred.|gotcha}}<br />
{{note|Some 3rd party apps use GitHub as an OAuth identity provider for their website (e.g. for a dashboard). An ''OAuth Application'' will block the installation process if the app is not already approved. The "Request access" block is what this section describes.|gotcha}}<br />
<br />
Each type has it's own installation and approval process. Please follow the instructions in the correct section below.<br />
<br />
==== GitHub Apps Installation & Approval Process ====<br />
<br />
GitHub Apps (formerly called "integrations") are "Installed" into either the entire organization, or into individual repositories. Each integration has a documented and granular access to repository resources. This is good.<br />
<br />
However, the GitHub App installation can only be done by an organization owner, who may have to do additional housekeeping. This is not so good, so please plan accordingly (you may need to coordinate with [[#contact|GitHub owners]]).<br />
<br />
* File a request using this [https://bugzilla.mozilla.org/enter_bug.cgi?cc=gene%40mozilla.com&comment=I%20want%20to%20use%20the%20NAME_HERE%20addon%20in%20ORG_NAME_HERE%20for%20the%20following%20reasons%3A%0D%0A%0D%0ABelow%20are%20my%20answers%20to%20your%20stock%20questions%3A%0D%0A%0D%0A%2A%2A%20Which%20repositories%20do%20you%20want%20to%20have%20access%3F%20%28all%20or%20list%29%0D%0A%0D%0A%2A%2A%20Are%20any%20of%20those%20repositories%20private%3F%0D%0A%0D%0A%2A%2A%20Provide%20link%20to%20vendor%27s%20description%20of%20permissions%20needed%20and%20why%0D%0A%0D%0A%2A%2A%20Provide%20the%20Install%20link%20for%20a%20GitHub%20app%0D%0A&component=Github%3A%20Administration&product=mozilla.org&short_desc=Assess%20use%20of%20external%20addon%20NAME_HERE%20in%20Mozilla%27s%20GitHub%20organization%20ORG_NAME_HERE bug template]<br />
* Include answers to these questions:<br />
** Which repositories do you want to have access? (all or list)<br />
** Do any of those repositories contain "sensitive" data? (e.g. private repos or ones where unauthorized code changes could have significant impact to Mozilla)<br />
** Provide link to vendor's description of permissions needed and why<br />
** Provide installation instructions:<br />
*** Please include the GitHub App's "install" link<br />
<br />
===== Initial Installation =====<br />
If this is the first time this GitHub App is being installed in the organization, a few extra checks and coordination are needed. An organization owner will need to perform these steps:<br />
* Determine if the GitHub App previously had an OAUTH version.<br />
** If so, it is likely that installing the integration will disable all repositories in the organization using the OAUTH version of the application.<br />
** Find all current repositories using the classic OAUTH application (this is non-trivial, scripts exist to help)<br />
** Install the Integration for all current repositories, and the new one (organization owner permissions needed.)<br />
<br />
'''Please do not install GitHub apps with organization wide scope without first discussing with [[#contact|GitHub owners]].'''<br />
<br />
===== Additional Installations or Removals =====<br />
If the GitHub App has already been installed in the organization, the new repository simply needs to be added or removed from the list. An organization owner has to make this change. Please still [https://bugzilla.mozilla.org/enter_bug.cgi?cc=gene%40mozilla.com&comment=I%20want%20to%20use%20the%20NAME_HERE%20addon%20in%20ORG_NAME_HERE%20for%20the%20following%20reasons%3A%0D%0A%0D%0ABelow%20are%20my%20answers%20to%20your%20stock%20questions%3A%0D%0A%0D%0A%2A%2A%20Which%20repositories%20do%20you%20want%20to%20have%20access%3F%20%28all%20or%20list%29%0D%0A%0D%0A%2A%2A%20Are%20any%20of%20those%20repositories%20private%3F%0D%0A%0D%0A%2A%2A%20Provide%20link%20to%20vendor%27s%20description%20of%20permissions%20needed%20and%20why%0D%0A%0D%0A%2A%2A%20Provide%20the%20Install%20link%20for%20a%20GitHub%20app%0D%0A&component=Github%3A%20Administration&product=mozilla.org&short_desc=Assess%20use%20of%20external%20addon%20NAME_HERE%20in%20Mozilla%27s%20GitHub%20organization%20ORG_NAME_HERE file a bug].<br />
<br />
==== OAUTH (classic) Applications ====<br />
<br />
* Authorizing an application to work with GitHub utilizes the permissions your account has -- so, any repositories you have access to the application will have access to as well (including private ones). If you want to grant access to an application that no one else has used with the Mozilla organization yet you'll see a "Request access" button during the set up flow. You'll need to click that button to request approval. See below for an example:<br />
<br />
[[File:github_approval.png]]<br />
<br />
* In some cases, the application does not need to be "approved" to function correctly, as it has read only access to any public repository. (Some applications only want write access to help you configure the application first time.)<br />
<br />
* In other cases, the application does need write permission, and/or permission to read a private repository. In these cases, open a bug using [https://bugzilla.mozilla.org/enter_bug.cgi?cc=gene%40mozilla.com&comment=I%20want%20to%20use%20the%20NAME_HERE%20addon%20in%20ORG_NAME_HERE%20for%20the%20following%20reasons%3A%0D%0A%0D%0ABelow%20are%20my%20answers%20to%20your%20stock%20questions%3A%0D%0A%0D%0A%2A%2A%20Which%20repositories%20do%20you%20want%20to%20have%20access%3F%20%28all%20or%20list%29%0D%0A%0D%0A%2A%2A%20Are%20any%20of%20those%20repositories%20private%3F%0D%0A%0D%0A%2A%2A%20Provide%20link%20to%20vendor%27s%20description%20of%20permissions%20needed%20and%20why%0D%0A%0D%0A%2A%2A%20Provide%20the%20Install%20link%20for%20a%20GitHub%20app%0D%0A&component=Github%3A%20Administration&product=mozilla.org&short_desc=Assess%20use%20of%20external%20addon%20NAME_HERE%20in%20Mozilla%27s%20GitHub%20organization%20ORG_NAME_HERE this template].<br />
** Please be sure to have clicked the "Request Approval" link before submitting bug.<br />
* Include answers to these questions:<br />
** Provide link to vendor's description of permissions needed and why<br />
** Provide installation instructions (both may be needed):<br />
<br />
=== Reviewing owners and permissions ===<br />
As an owner or repository admin you're responsible for maintaining the list of people with access to your projects. Please be active and prudent about maintaining this list.<br />
<br />
=== Can I be an Owner of the Mozilla Organization? ===<br />
The Owners group on GitHub has complete administrative power and will be limited to a minimal number of people and reviewed regularly. If a person is an owner, they are expected to actively participate in the group and assist others as requested. Owners will be added as a need arises (for example, support in another timezone) as determined by the current owners.<br />
<br />
=== Can I be a Member of the Mozilla Organization? ===<br />
<div id="join"> </div><br />
==== Contributor Information ====<br />
Good news! You do not need to be a member of the Mozilla organization on GitHub before you can contribute to Mozilla!!!! We have several sites which can help you find the best fit for contribution:<br />
* General [https://www.mozilla.org/en-US/contribute/ volunteering options],<br />
* Or pick from [http://whatcanidoformozilla.org/ these areas],<br />
* Or jump right into [http://www.joshmatthews.net/bugsahoy/ fixing a bug].<br />
* If you're already a contributor (THANK YOU!) looking for a place to have your work recognized (even if not coding related), please see the [https://www.mozilla.org/credits/FAQ Credits FAQ] for inclusion in the [https://www.mozilla.org/credits/ credits].<br />
<br />
Once you're working on a project, the project leaders can help you get access to anything you need.<br />
<br />
==== Team Maintainers & Project Leads ====<br />
<br />
Project owners and team maintainers may find the following information helpful when asking for access for a new team member:<br />
<br />
* We prefer the use of github teams.<br />
* All members of the [https://github.com/mozilla/ Mozilla organization on github] agree to be bound by [https://www.mozilla.org/en-US/about/governance/policies/commit/requirements/ Mozilla's Commit Access Requirements], and should follow the intent of the [https://www.mozilla.org/en-US/about/governance/policies/commit/access-policy/ Mozilla's Commit Access Policy] as much as practical.<br />
** "Outside Collaborator": repository admins can grant outside collaborator to any GitHub account. "Outside Collaborator" is roughly analogous to "Level 1a" access to Mozilla-hosted repositories.<br />
** "Team Member": team maintainers can add GitHub users to a team, if they are already a member of the organization. If you are not yet a member of the organization, the team maintainer should [[#contact|request your addition]] to their team, as a form of vouching. "Team Member" is roughly analogous to "Level 2" or "Level 3", with the distinction being the content of the repositories managed by the team.<br />
<br />
To get access for a new Contributor, please [https://bugzilla.mozilla.org/enter_bug.cgi?comment=I%27ve%20read%20https%3A%2F%2Fwiki.mozilla.org%2FGithub%23Team_Maintainers_.26_Project_Leads%2C%20and%20need%20help%20adding%20a%20contributor%20to%20the%20org%3A%0D%0A%0D%0AName%3A%20%0D%0AMozilla%20Email%3A%20%0D%0AGithub%20Profile%20link%3A%20%0D%0AGithub%20Team%28s%29%3A%20%0D%0A%0D%0AIf%20this%20is%20not%20being%20requested%20by%20a%20team%20maintainer%2C%20please%20request%20their%20approval%20via%20need-info.&component=Github%3A%20Administration&form_name=enter_bug&product=mozilla.org file a bug using this link], and fill in the details.<br />
<br />
'''Please Note:'''<br />
* We will cancel any invitation to the organization which is not accepted within 2 weeks.<br />
* All members of the Mozilla organization on GitHub '''MUST''' have [https://help.github.com/articles/about-two-factor-authentication/ 2FA enabled].<br />
* Automation accounts are also required to have 2FA enabled. Scripts should use [https://help.github.com/articles/creating-an-access-token-for-command-line-use/ access tokens] with minimum permissions to accomplish the task.<br />
<br />
=== Should I make a separate github organization or just create a repository in an existing one? ===<br />
This is a personal preference. If you have a large enough project or organization feel free. We suggest you use the strategies and recommendations here as a model to manage the details.<br />
<br />
=== Forking vs Transferring ===<br />
'''Do not "fork" a repository into a Mozilla organization.''' Doing so gives ''every team in the org'' rights to it.<br />
<br />
If you have created a repo on your own account (for example, myuser/myrepo) and it should live under the Mozilla organization, here are the steps:<br />
<br />
{{note|As soon as you transfer, your repository will be in "limbo" (only you will have write access). An automated process should grant you "admin" access within a few minutes. If that does not happen, please [[#contact|org admin]] who can make that change. Please plan in advance if timing is critical.}}<br />
<br />
# If you're not a member of any team, talk to an [[#contact|org admin]].<br />
# Under the repo admin, transfer ownership to the Mozilla organization. If you don't see this option, return to step 1.<br />
# Choose which teams should be given access. All chosen teams will have only 'read' access at this point.<br />
# Ask an [[#contact|org admin]] to grant team permissions higher than read ('write' and 'admin' are the other choices). (Team maintainers do not have the ability to change a repositories status.)<br />
# Fork the repo from Mozilla (mozilla/myrepo) back to your account (recreating myuser/myrepo). While the transferred repo becomes the root of the network on GitHub (e.g. all forks are now forks of mozilla/myrepo) other users may be pointing to your repo by URL. (Optional, github will redirect old URLs for transfers, but you probably want a local repo if you use the PR workflow.)<br />
<br />
=== Do I need to be an owner to create repositories? ===<br />
No. If a person has read/write access to another repository in that organization they can make more repositories in that organization. However, it's preferred that you create repositories in the context of a team. Teams are created [https://github.com/orgs/mozilla/teams here], if necessary. Once you have created a repo, you can configure it to give rights to members of particular teams.<br />
<br />
=== Are there requirements for when or how I should create a new team? ===<br />
No. When requirements were proposed they all seemed too rigid and time consuming. Instead we recommend staying flexible and using good naming and documentation for projects (similar to naming CSS classes or variables).<br />
<br />
On large teams we recommend you separate teams for read/write and repository administration.<br />
<br />
<div id="other_github"></div><br />
=== Is "mozilla" the only github "organization" related to Mozilla? ===<br />
No, there are plenty of Mozilla-related "organizations" on github. As a rule of thumb, initiatives that create a large number of sub-repositories will create their own "organization". Here is a (probably incomplete) list of them:<br />
{| class="wikitable sortable"<br />
|-<br />
! Organization !! Description !! Contact Owner<br />
|-<br />
| [https://github.com/mozilla-it mozilla-it] || Mozilla IT's repositories || ?<br />
|-<br />
|[https://github.com/mozillabrasil mozillabrasil] || Mozilla Brazil|| ?<br />
|-<br />
| [https://github.com/bugzilla bugzilla] || Bugzilla (the product, not bugzilla.mozilla.org) || #bugzilla<br />
|- <br />
| [https://github.com/drumbeat-badge-sprint drumbeat-badge-sprint] || Drumbeat Badge Lab || ?<br />
|-<br />
| [https://github.com/hackasaurus hackasaurus] || Hackasaurus || ?<br />
|-<br />
| [https://github.com/jetpack-labs jetpack-labs] || Jetpack Labs || ?<br />
|-<br />
| [https://github.com/mdn mdn] || Mozilla Developer Network || [https://github.com/jwhitlock John Whitlock]<br />
|-<br />
| [https://github.com/mozbrick mozbrick] || Mozilla Brick (web components library) || ?<br />
|-<br />
| [https://github.com/mozilla-appmaker mozilla-appmaker] || Mozilla Appmaker || ?<br />
|-<br />
| [https://github.com/mozilla-b2g mozilla-b2g] || Mozilla Boot2Gecko / Firefox OS || ?<br />
|-<br />
| [https://github.com/mozilla-bteam mozilla-bteam] || Bugzilla.Mozilla.org || #bteam<br />
|-<br />
| [https://github.com/mozilla-cit mozilla-cit] || Mozilla Community Ops || {{Mozillians|tanner|Tanner Filip}} or {{Mozillians|yalam96|Yousef Alam}}<br />
|-<br />
| [https://github.com/mozilla-comm mozilla-comm] || Calendaring and Messaging related projects || ?<br />
|-<br />
| [https://github.com/mozilla-cordova mozilla-cordova] || Firefox OS Support for Apache Cordova || ?<br />
|-<br />
| [https://github.com/mozilla-iam mozilla-iam] || Mozilla's identity and access management || kang<br />
|-<br />
| [https://github.com/mozilla-platform-ops mozilla-platform-ops] || Mozilla Platform Operations || [[Platform_Operations]]<br />
|-<br />
| [https://github.com/mozilla-metrics mozilla-metrics] || Mozilla Metrics || ?<br />
|-<br />
| [https://github.com/mozilla-raptor mozilla-raptor] || Mozilla Raptor / Firefox OS Performance || {{Mozillian|eliperelman|Eli Perelman}}, {{Mozillian|rwood|Rob Wood}}<br />
|-<br />
| [https://github.com/mozilla-releng mozilla-releng] || Mozilla Release Engineering || #releng<br />
|-<br />
| [https://github.com/mozilla-services mozilla-services] || Mozilla Services || [https://github.com/orgs/mozilla-services/people?utf8=%E2%9C%93&query=role%3Aowner mozilla-services owners]<br />
|-<br />
| [https://github.com/mozilla-standards mozilla-standards] || Mozilla Standards (for IPR Contributions) || [https://mozillians.org/u/dbaron/ dbaron], [https://mozillians.org/u/annevk/ annevk]<br />
|-<br />
| [https://github.com/mozilla-svcops mozilla-svcops] || Mozilla Cloud Services Ops || {{Mozillian|relud|Daniel Thornton}}<br />
|-<br />
| [https://github.com/Mozilla-TWQA Mozilla-TWQA] || Mozilla Taiwan QA || ?<br />
|-<br />
| [https://github.com/mozillahispano mozillahispano] || Mozilla Hispano || ?<br />
|-<br />
| [https://github.com/MozillaScience MozillaScience] || Mozilla Science Lab || ?<br />
|-<br />
| [https://github.com/MozillaSecurity MozillaSecurity] || Mozilla Platform Fuzzing Team master repo with many fuzzing tools under it. || ?<br />
|-<br />
| [https://github.com/MozillaWiki MozillaWiki] || MozillaWiki (wiki.mozilla.org) || {{Mozillian|ckoehler|Christie Koehler}}, {{Mozillian|gphemsley|Gordon P. Hemsley}}<br />
|-<br />
| [https://github.com/mozillayvr mozillayvr] || Mozilla Vancouver @MozillaYVR || {{Mozillian|bclark|Brian Clark}}, {{Mozillian|shobson|Stephanie Hobson}}<br />
|-<br />
| [https://github.com/mozfr mozfr] || Mozilla Francophone || Pascal Chevrel https://mozillians.org/fr/u/pascalc/<br />
|-<br />
| [https://github.com/opennews opennews] || Knight-Mozilla OpenNews || ?<br />
|-<br />
| [https://github.com/rust-lang rust-lang] || The Rust Programming Language || {{Mozillian|aturon|Aaron Turon}}<br />
|-<br />
| [https://github.com/servo servo] || Servo (browser engine written in Rust) || {{Mozillian|larsberg|Lars Bergstrom}}, Jack Moffitt<br />
|-<br />
| [https://github.com/tabulapdf tabulapdf] || Tabula project (extract data from PDF files) || ?<br />
|-<br />
| [https://github.com/webcompat webcompat] || Web Compatibility Team || {{Mozillian|miketaylr|Mike Taylor}}<br />
|-<br />
| [https://github.com/mozilla-l10n mozilla-l10n] || Mozilla l10n-drivers team || Pascal Chevrel https://mozillians.org/fr/u/pascalc/<br />
|-<br />
| [https://github.com/taskcluster taskcluster] || [[TaskCluster]] Team || [https://github.com/gregarndt Greg Arndt]<br />
|-<br />
| [https://github.com/MozillaCH MozillaCH] || Mozilla [[Switzerland]] || {{Mozillian|mkohler|Michael Kohler}}, {{Mozillian|freaktechnik|freaktechnik}}<br />
|-<br />
| [https://github.com/mozmar mozmar] || Mozilla [[Marketing]] || {{Mozillian|bensternthal|Benjamin Sternthal}}, {{Mozillian|pmac|Paul McLanahan}}<br />
|-<br />
| [https://github.com/mozilla-payments mozilla-payments] || Implementation of Web Payment APIs || {{Mozillian|Marcos Caceres}}<br />
|-<br />
| [https://github.com/mozilla-jetpack mozilla-jetpack] || Resources for Mozilla's Add-on SDK || ?<br />
|-<br />
| [https://github.com/web-ext-experiments web-ext-experiments] || WebExtension API Experiments || {{Mozillian|andym|Andy McKay}}<br />
|-<br />
| [https://github.com/mozilla-conduit mozilla-conduit] || Mozilla Conduit work || {{Mozillian|mcote|Mark Côté}}<br />
|-<br />
| [https://github.com/mozsearch mozsearch] || The code that runs Searchfox.org || {{Mozillian|kats|Kartikaya Gupta}}<br />
|-<br />
| [https://github.com/MozillaCZ/ MozillaCZ] || [https://www.mozilla.cz/ Mozilla.cz] || {{Mozillian|mstanke|Michal Stanke}}, {{Mozillian|MekliCZ|Michal Vašíček}}, {{Mozillian|zelitomas|Tomáš Zelina}}<br />
|-<br />
| [https://github.com/MozillaSK/ MozillaSK] || [https://www.mozilla.sk/ Mozilla.sk] || {{Mozillian|mstanke|Michal Stanke}}, {{Mozillian|kusavica|Juraj Cigáň}}<br />
|}<br />
<br />
=== Are there other unofficial or Mozilla-related repositories hosted on Github? ===<br />
Why, yes! In no particular order:<br />
<br />
* [https://github.com/kinetiknz/nestegg/ https://github.com/kinetiknz/nestegg/] : WebM demuxer<br />
* [https://github.com/xiph/opus/ https://github.com/xiph/opus/] : Modern audio compression for the internet.<br />
* [https://github.com/webmproject/libvpx https://github.com/webmproject/libvpx] : Mirror only. Please do not send pull requests.<br />
* [https://github.com/campd/fxdt-adapters https://github.com/campd/fxdt-adapters] : Firefox Developer Tools protocol adapters<br />
* [https://github.com/kripken/emscripten https://github.com/kripken/emscripten] : Emscripten: An LLVM-to-JavaScript Compiler<br />
* [https://github.com/bbondy/codefirefox https://github.com/bbondy/codefirefox] : Video and exercise based tutorial site for coding Firefox and other Mozilla related technology<br />
* [https://github.com/nickdesaulniers/where-is-firefox-os https://github.com/nickdesaulniers/where-is-firefox-os] : A map showing where in the world Firefox OS phones are being sold.<br />
* [https://github.com/jdm/bugsahoy https://github.com/jdm/bugsahoy] : A landing page to make finding relevant bugs easier for new Mozilla contributors.<br />
* [https://github.com/w3c/web-platform-tests https://github.com/w3c/web-platform-tests] : Test Suites for Web Platform specifications<br />
* [https://github.com/w3c/wptserve https://github.com/w3c/wptserve] : Web server designed for use with web-platform-tests<br />
* [https://github.com/w3c/wptrunner https://github.com/w3c/wptrunner] : Cross-browser and multi-platform test runner for web-platform-tests. Used in mozilla-central and servo.<br />
* [https://github.com/w3c/testharness.js https://github.com/w3c/testharness.js] : (no description)<br />
* [https://github.com/jdm/asknot https://github.com/jdm/asknot] : Ask not what Mozilla can do for you but what you can do for Mozilla.<br />
* [https://github.com/jeffbryner/MozDef https://github.com/jeffbryner/MozDef]: Mozilla Defense Platform.<br />
* [https://github.com/jgraham/webdriver-rust https://github.com/jgraham/webdriver-rust]: WebDriver library for Rust.<br />
* [https://github.com/ehsan/mozilla-cvs-history https://github.com/ehsan/mozilla-cvs-history]: A git conversion of the full Mozilla CVS history, useful for code archaeology.</div>Standard8https://wiki.mozilla.org/index.php?title=GitHub&diff=1189586GitHub2018-03-01T14:47:10Z<p>Standard8: /* Team Maintainers & Project Leads */ Reduce the text & clarify it.</p>
<hr />
<div>This page is specifically about [https://github.com/mozilla the "mozilla" organization on github]. There are several other github organizations you may be interested in, cf. the incomplete list [[#other_github|below]].<br />
<div id="contact"><br />
{| class="wikitable"<br />
|-<br />
! [[File:Red_question_mark.png|144px|Send us an email!|link=]] Got a question?<br />
|-<br />
| Email {{emailentry|github-owners|mozilla.org|at=is}} <br /><br />
Bugzilla [https://bugzilla.mozilla.org/enter_bug.cgi?comment=I%27ve%20read%20https%3A%2F%2Fwiki.mozilla.org%2FGithub%2C%20and%20need%20help%20with%20the%20following.%0D%0A%0D%0A&component=Github%3A%20Administration&form_name=enter_bug&product=mozilla.org& mozilla.org :: Github: Administration] <br /><br />
irc #github on [[IRC|moznet]]<br />
|}<br />
<br />
== News ==<br />
* As of June 20, 2016, all members [https://groups.google.com/forum/#!topic/mozilla.dev.platform/UmHOOh3qtiM must have 2FA enabled]. You have been notified if this impacts you.<br />
<br />
== Recommendations and FAQ ==<br />
<br />
=== Where should I ask additional questions? ===<br />
* Send an email to '''{{emailentry|github-owners|mozilla.org|at=is}}''' and we'll respond right away! We're also available on #github on irc.<br />
<br />
=== How do I hook up a new 3rd party application to a repository in the mozilla org? ===<br />
{{note|There are now multiple 3rd pary application types. "GitHub Apps" (nee integrations) are the new approach and preferred.|gotcha}}<br />
{{note|Some 3rd party apps use GitHub as an OAuth identity provider for their website (e.g. for a dashboard). An ''OAuth Application'' will block the installation process if the app is not already approved. The "Request access" block is what this section describes.|gotcha}}<br />
<br />
Each type has it's own installation and approval process. Please follow the instructions in the correct section below.<br />
<br />
==== GitHub Apps Installation & Approval Process ====<br />
<br />
GitHub Apps (formerly called "integrations") are "Installed" into either the entire organization, or into individual repositories. Each integration has a documented and granular access to repository resources. This is good.<br />
<br />
However, the GitHub App installation can only be done by an organization owner, who may have to do additional housekeeping. This is not so good, so please plan accordingly (you may need to coordinate with [[#contact|GitHub owners]]).<br />
<br />
* File a request using this [https://bugzilla.mozilla.org/enter_bug.cgi?cc=gene%40mozilla.com&comment=I%20want%20to%20use%20the%20NAME_HERE%20addon%20in%20ORG_NAME_HERE%20for%20the%20following%20reasons%3A%0D%0A%0D%0ABelow%20are%20my%20answers%20to%20your%20stock%20questions%3A%0D%0A%0D%0A%2A%2A%20Which%20repositories%20do%20you%20want%20to%20have%20access%3F%20%28all%20or%20list%29%0D%0A%0D%0A%2A%2A%20Are%20any%20of%20those%20repositories%20private%3F%0D%0A%0D%0A%2A%2A%20Provide%20link%20to%20vendor%27s%20description%20of%20permissions%20needed%20and%20why%0D%0A%0D%0A%2A%2A%20Provide%20the%20Install%20link%20for%20a%20GitHub%20app%0D%0A&component=Github%3A%20Administration&product=mozilla.org&short_desc=Assess%20use%20of%20external%20addon%20NAME_HERE%20in%20Mozilla%27s%20GitHub%20organization%20ORG_NAME_HERE bug template]<br />
* Include answers to these questions:<br />
** Which repositories do you want to have access? (all or list)<br />
** Do any of those repositories contain "sensitive" data? (e.g. private repos or ones where unauthorized code changes could have significant impact to Mozilla)<br />
** Provide link to vendor's description of permissions needed and why<br />
** Provide installation instructions:<br />
*** Please include the GitHub App's "install" link<br />
<br />
===== Initial Installation =====<br />
If this is the first time this GitHub App is being installed in the organization, a few extra checks and coordination are needed. An organization owner will need to perform these steps:<br />
* Determine if the GitHub App previously had an OAUTH version.<br />
** If so, it is likely that installing the integration will disable all repositories in the organization using the OAUTH version of the application.<br />
** Find all current repositories using the classic OAUTH application (this is non-trivial, scripts exist to help)<br />
** Install the Integration for all current repositories, and the new one (organization owner permissions needed.)<br />
<br />
'''Please do not install GitHub apps with organization wide scope without first discussing with [[#contact|GitHub owners]].'''<br />
<br />
===== Additional Installations or Removals =====<br />
If the GitHub App has already been installed in the organization, the new repository simply needs to be added or removed from the list. An organization owner has to make this change. Please still [https://bugzilla.mozilla.org/enter_bug.cgi?cc=gene%40mozilla.com&comment=I%20want%20to%20use%20the%20NAME_HERE%20addon%20in%20ORG_NAME_HERE%20for%20the%20following%20reasons%3A%0D%0A%0D%0ABelow%20are%20my%20answers%20to%20your%20stock%20questions%3A%0D%0A%0D%0A%2A%2A%20Which%20repositories%20do%20you%20want%20to%20have%20access%3F%20%28all%20or%20list%29%0D%0A%0D%0A%2A%2A%20Are%20any%20of%20those%20repositories%20private%3F%0D%0A%0D%0A%2A%2A%20Provide%20link%20to%20vendor%27s%20description%20of%20permissions%20needed%20and%20why%0D%0A%0D%0A%2A%2A%20Provide%20the%20Install%20link%20for%20a%20GitHub%20app%0D%0A&component=Github%3A%20Administration&product=mozilla.org&short_desc=Assess%20use%20of%20external%20addon%20NAME_HERE%20in%20Mozilla%27s%20GitHub%20organization%20ORG_NAME_HERE file a bug].<br />
<br />
==== OAUTH (classic) Applications ====<br />
<br />
* Authorizing an application to work with GitHub utilizes the permissions your account has -- so, any repositories you have access to the application will have access to as well (including private ones). If you want to grant access to an application that no one else has used with the Mozilla organization yet you'll see a "Request access" button during the set up flow. You'll need to click that button to request approval. See below for an example:<br />
<br />
[[File:github_approval.png]]<br />
<br />
* In some cases, the application does not need to be "approved" to function correctly, as it has read only access to any public repository. (Some applications only want write access to help you configure the application first time.)<br />
<br />
* In other cases, the application does need write permission, and/or permission to read a private repository. In these cases, open a bug using [https://bugzilla.mozilla.org/enter_bug.cgi?cc=gene%40mozilla.com&comment=I%20want%20to%20use%20the%20NAME_HERE%20addon%20in%20ORG_NAME_HERE%20for%20the%20following%20reasons%3A%0D%0A%0D%0ABelow%20are%20my%20answers%20to%20your%20stock%20questions%3A%0D%0A%0D%0A%2A%2A%20Which%20repositories%20do%20you%20want%20to%20have%20access%3F%20%28all%20or%20list%29%0D%0A%0D%0A%2A%2A%20Are%20any%20of%20those%20repositories%20private%3F%0D%0A%0D%0A%2A%2A%20Provide%20link%20to%20vendor%27s%20description%20of%20permissions%20needed%20and%20why%0D%0A%0D%0A%2A%2A%20Provide%20the%20Install%20link%20for%20a%20GitHub%20app%0D%0A&component=Github%3A%20Administration&product=mozilla.org&short_desc=Assess%20use%20of%20external%20addon%20NAME_HERE%20in%20Mozilla%27s%20GitHub%20organization%20ORG_NAME_HERE this template].<br />
** Please be sure to have clicked the "Request Approval" link before submitting bug.<br />
* Include answers to these questions:<br />
** Provide link to vendor's description of permissions needed and why<br />
** Provide installation instructions (both may be needed):<br />
<br />
=== Reviewing owners and permissions ===<br />
As an owner or repository admin you're responsible for maintaining the list of people with access to your projects. Please be active and prudent about maintaining this list.<br />
<br />
=== Can I be an Owner of the Mozilla Organization? ===<br />
The Owners group on GitHub has complete administrative power and will be limited to a minimal number of people and reviewed regularly. If a person is an owner, they are expected to actively participate in the group and assist others as requested. Owners will be added as a need arises (for example, support in another timezone) as determined by the current owners.<br />
<br />
=== Can I be a Member of the Mozilla Organization? ===<br />
<div id="join"> </div><br />
==== Contributor Information ====<br />
Good news! You do not need to be a member of the Mozilla organization on GitHub before you can contribute to Mozilla!!!! We have several sites which can help you find the best fit for contribution:<br />
* General [https://www.mozilla.org/en-US/contribute/ volunteering options],<br />
* Or pick from [http://whatcanidoformozilla.org/ these areas],<br />
* Or jump right into [http://www.joshmatthews.net/bugsahoy/ fixing a bug].<br />
* If you're already a contributor (THANK YOU!) looking for a place to have your work recognized (even if not coding related), please see the [https://www.mozilla.org/credits/FAQ Credits FAQ] for inclusion in the [https://www.mozilla.org/credits/ credits].<br />
<br />
Once you're working on a project, the project leaders can help you get access to anything you need.<br />
<br />
==== Team Maintainers & Project Leads ====<br />
<br />
Project owners and team maintainers may find the following information helpful when asking for access for a new team member:<br />
<br />
* We prefer the use of github teams.<br />
* All members of the [https://github.com/mozilla/ Mozilla organization on github] agree to be bound by [https://www.mozilla.org/en-US/about/governance/policies/commit/requirements/ Mozilla's Commit Access Requirements], and should follow the intent of the [https://www.mozilla.org/en-US/about/governance/policies/commit/access-policy/ Mozilla's Commit Access Policy] as much as practical.<br />
** "Outside Collaborator": repository admins can grant outside collaborator to any GitHub account. "Outside Collaborator" is roughly analogous to "Level 1a" access to Mozilla-hosted repositories.<br />
** "Team Member": team maintainers can add GitHub users to a team, if they are already a member of the organization. If you are not yet a member of the organization, the team maintainer should [[#contact|request your addition]] to their team, as a form of vouching. "Team Member" is roughly analogous to "Level 2" or "Level 3", with the distinction being the content of the repositories managed by the team.<br />
<br />
To get access for a new Contributor, please [https://bugzilla.mozilla.org/enter_bug.cgi?comment=I%27ve%20read%20https%3A%2F%2Fwiki.mozilla.org%2FGithub%2C%20and%20need%20help%20with%20the%20following.%0D%0A%0D%0A&component=Github%3A%20Administration&form_name=enter_bug&product=mozilla.org& file a bug], including:<br />
<br />
* The contributor's details and gitHub ID<br />
** Please also get the contributor to link their github id with their phonebook entry.<br />
* The team(s) they should be added to.<br />
* Approval from a team maintainer or manager.<br />
<br />
'''Please Note:'''<br />
* We will cancel any invitation to the organization which is not accepted within 2 weeks.<br />
* All members of the Mozilla organization on GitHub '''MUST''' have [https://help.github.com/articles/about-two-factor-authentication/ 2FA enabled].<br />
* Automation accounts are also required to have 2FA enabled. Scripts should use [https://help.github.com/articles/creating-an-access-token-for-command-line-use/ access tokens] with minimum permissions to accomplish the task.<br />
<br />
=== Should I make a separate github organization or just create a repository in an existing one? ===<br />
This is a personal preference. If you have a large enough project or organization feel free. We suggest you use the strategies and recommendations here as a model to manage the details.<br />
<br />
=== Forking vs Transferring ===<br />
'''Do not "fork" a repository into a Mozilla organization.''' Doing so gives ''every team in the org'' rights to it.<br />
<br />
If you have created a repo on your own account (for example, myuser/myrepo) and it should live under the Mozilla organization, here are the steps:<br />
<br />
{{note|As soon as you transfer, your repository will be in "limbo" (only you will have write access). An automated process should grant you "admin" access within a few minutes. If that does not happen, please [[#contact|org admin]] who can make that change. Please plan in advance if timing is critical.}}<br />
<br />
# If you're not a member of any team, talk to an [[#contact|org admin]].<br />
# Under the repo admin, transfer ownership to the Mozilla organization. If you don't see this option, return to step 1.<br />
# Choose which teams should be given access. All chosen teams will have only 'read' access at this point.<br />
# Ask an [[#contact|org admin]] to grant team permissions higher than read ('write' and 'admin' are the other choices). (Team maintainers do not have the ability to change a repositories status.)<br />
# Fork the repo from Mozilla (mozilla/myrepo) back to your account (recreating myuser/myrepo). While the transferred repo becomes the root of the network on GitHub (e.g. all forks are now forks of mozilla/myrepo) other users may be pointing to your repo by URL. (Optional, github will redirect old URLs for transfers, but you probably want a local repo if you use the PR workflow.)<br />
<br />
=== Do I need to be an owner to create repositories? ===<br />
No. If a person has read/write access to another repository in that organization they can make more repositories in that organization. However, it's preferred that you create repositories in the context of a team. Teams are created [https://github.com/orgs/mozilla/teams here], if necessary. Once you have created a repo, you can configure it to give rights to members of particular teams.<br />
<br />
=== Are there requirements for when or how I should create a new team? ===<br />
No. When requirements were proposed they all seemed too rigid and time consuming. Instead we recommend staying flexible and using good naming and documentation for projects (similar to naming CSS classes or variables).<br />
<br />
On large teams we recommend you separate teams for read/write and repository administration.<br />
<br />
<div id="other_github"></div><br />
=== Is "mozilla" the only github "organization" related to Mozilla? ===<br />
No, there are plenty of Mozilla-related "organizations" on github. As a rule of thumb, initiatives that create a large number of sub-repositories will create their own "organization". Here is a (probably incomplete) list of them:<br />
{| class="wikitable sortable"<br />
|-<br />
! Organization !! Description !! Contact Owner<br />
|-<br />
| [https://github.com/mozilla-it mozilla-it] || Mozilla IT's repositories || ?<br />
|-<br />
|[https://github.com/mozillabrasil mozillabrasil] || Mozilla Brazil|| ?<br />
|-<br />
| [https://github.com/bugzilla bugzilla] || Bugzilla (the product, not bugzilla.mozilla.org) || #bugzilla<br />
|- <br />
| [https://github.com/drumbeat-badge-sprint drumbeat-badge-sprint] || Drumbeat Badge Lab || ?<br />
|-<br />
| [https://github.com/hackasaurus hackasaurus] || Hackasaurus || ?<br />
|-<br />
| [https://github.com/jetpack-labs jetpack-labs] || Jetpack Labs || ?<br />
|-<br />
| [https://github.com/mdn mdn] || Mozilla Developer Network || [https://github.com/jwhitlock John Whitlock]<br />
|-<br />
| [https://github.com/mozbrick mozbrick] || Mozilla Brick (web components library) || ?<br />
|-<br />
| [https://github.com/mozilla-appmaker mozilla-appmaker] || Mozilla Appmaker || ?<br />
|-<br />
| [https://github.com/mozilla-b2g mozilla-b2g] || Mozilla Boot2Gecko / Firefox OS || ?<br />
|-<br />
| [https://github.com/mozilla-bteam mozilla-bteam] || Bugzilla.Mozilla.org || #bteam<br />
|-<br />
| [https://github.com/mozilla-cit mozilla-cit] || Mozilla Community Ops || {{Mozillians|tanner|Tanner Filip}} or {{Mozillians|yalam96|Yousef Alam}}<br />
|-<br />
| [https://github.com/mozilla-comm mozilla-comm] || Calendaring and Messaging related projects || ?<br />
|-<br />
| [https://github.com/mozilla-cordova mozilla-cordova] || Firefox OS Support for Apache Cordova || ?<br />
|-<br />
| [https://github.com/mozilla-iam mozilla-iam] || Mozilla's identity and access management || kang<br />
|-<br />
| [https://github.com/mozilla-platform-ops mozilla-platform-ops] || Mozilla Platform Operations || [[Platform_Operations]]<br />
|-<br />
| [https://github.com/mozilla-metrics mozilla-metrics] || Mozilla Metrics || ?<br />
|-<br />
| [https://github.com/mozilla-raptor mozilla-raptor] || Mozilla Raptor / Firefox OS Performance || {{Mozillian|eliperelman|Eli Perelman}}, {{Mozillian|rwood|Rob Wood}}<br />
|-<br />
| [https://github.com/mozilla-releng mozilla-releng] || Mozilla Release Engineering || #releng<br />
|-<br />
| [https://github.com/mozilla-services mozilla-services] || Mozilla Services || [https://github.com/orgs/mozilla-services/people?utf8=%E2%9C%93&query=role%3Aowner mozilla-services owners]<br />
|-<br />
| [https://github.com/mozilla-standards mozilla-standards] || Mozilla Standards (for IPR Contributions) || [https://mozillians.org/u/dbaron/ dbaron], [https://mozillians.org/u/annevk/ annevk]<br />
|-<br />
| [https://github.com/mozilla-svcops mozilla-svcops] || Mozilla Cloud Services Ops || {{Mozillian|relud|Daniel Thornton}}<br />
|-<br />
| [https://github.com/Mozilla-TWQA Mozilla-TWQA] || Mozilla Taiwan QA || ?<br />
|-<br />
| [https://github.com/mozillahispano mozillahispano] || Mozilla Hispano || ?<br />
|-<br />
| [https://github.com/MozillaScience MozillaScience] || Mozilla Science Lab || ?<br />
|-<br />
| [https://github.com/MozillaSecurity MozillaSecurity] || Mozilla Platform Fuzzing Team master repo with many fuzzing tools under it. || ?<br />
|-<br />
| [https://github.com/MozillaWiki MozillaWiki] || MozillaWiki (wiki.mozilla.org) || {{Mozillian|ckoehler|Christie Koehler}}, {{Mozillian|gphemsley|Gordon P. Hemsley}}<br />
|-<br />
| [https://github.com/mozillayvr mozillayvr] || Mozilla Vancouver @MozillaYVR || {{Mozillian|bclark|Brian Clark}}, {{Mozillian|shobson|Stephanie Hobson}}<br />
|-<br />
| [https://github.com/mozfr mozfr] || Mozilla Francophone || Pascal Chevrel https://mozillians.org/fr/u/pascalc/<br />
|-<br />
| [https://github.com/opennews opennews] || Knight-Mozilla OpenNews || ?<br />
|-<br />
| [https://github.com/rust-lang rust-lang] || The Rust Programming Language || {{Mozillian|aturon|Aaron Turon}}<br />
|-<br />
| [https://github.com/servo servo] || Servo (browser engine written in Rust) || {{Mozillian|larsberg|Lars Bergstrom}}, Jack Moffitt<br />
|-<br />
| [https://github.com/tabulapdf tabulapdf] || Tabula project (extract data from PDF files) || ?<br />
|-<br />
| [https://github.com/webcompat webcompat] || Web Compatibility Team || {{Mozillian|miketaylr|Mike Taylor}}<br />
|-<br />
| [https://github.com/mozilla-l10n mozilla-l10n] || Mozilla l10n-drivers team || Pascal Chevrel https://mozillians.org/fr/u/pascalc/<br />
|-<br />
| [https://github.com/taskcluster taskcluster] || [[TaskCluster]] Team || [https://github.com/gregarndt Greg Arndt]<br />
|-<br />
| [https://github.com/MozillaCH MozillaCH] || Mozilla [[Switzerland]] || {{Mozillian|mkohler|Michael Kohler}}, {{Mozillian|freaktechnik|freaktechnik}}<br />
|-<br />
| [https://github.com/mozmar mozmar] || Mozilla [[Marketing]] || {{Mozillian|bensternthal|Benjamin Sternthal}}, {{Mozillian|pmac|Paul McLanahan}}<br />
|-<br />
| [https://github.com/mozilla-payments mozilla-payments] || Implementation of Web Payment APIs || {{Mozillian|Marcos Caceres}}<br />
|-<br />
| [https://github.com/mozilla-jetpack mozilla-jetpack] || Resources for Mozilla's Add-on SDK || ?<br />
|-<br />
| [https://github.com/web-ext-experiments web-ext-experiments] || WebExtension API Experiments || {{Mozillian|andym|Andy McKay}}<br />
|-<br />
| [https://github.com/mozilla-conduit mozilla-conduit] || Mozilla Conduit work || {{Mozillian|mcote|Mark Côté}}<br />
|-<br />
| [https://github.com/mozsearch mozsearch] || The code that runs Searchfox.org || {{Mozillian|kats|Kartikaya Gupta}}<br />
|-<br />
| [https://github.com/MozillaCZ/ MozillaCZ] || [https://www.mozilla.cz/ Mozilla.cz] || {{Mozillian|mstanke|Michal Stanke}}, {{Mozillian|MekliCZ|Michal Vašíček}}, {{Mozillian|zelitomas|Tomáš Zelina}}<br />
|-<br />
| [https://github.com/MozillaSK/ MozillaSK] || [https://www.mozilla.sk/ Mozilla.sk] || {{Mozillian|mstanke|Michal Stanke}}, {{Mozillian|kusavica|Juraj Cigáň}}<br />
|}<br />
<br />
=== Are there other unofficial or Mozilla-related repositories hosted on Github? ===<br />
Why, yes! In no particular order:<br />
<br />
* [https://github.com/kinetiknz/nestegg/ https://github.com/kinetiknz/nestegg/] : WebM demuxer<br />
* [https://github.com/xiph/opus/ https://github.com/xiph/opus/] : Modern audio compression for the internet.<br />
* [https://github.com/webmproject/libvpx https://github.com/webmproject/libvpx] : Mirror only. Please do not send pull requests.<br />
* [https://github.com/campd/fxdt-adapters https://github.com/campd/fxdt-adapters] : Firefox Developer Tools protocol adapters<br />
* [https://github.com/kripken/emscripten https://github.com/kripken/emscripten] : Emscripten: An LLVM-to-JavaScript Compiler<br />
* [https://github.com/bbondy/codefirefox https://github.com/bbondy/codefirefox] : Video and exercise based tutorial site for coding Firefox and other Mozilla related technology<br />
* [https://github.com/nickdesaulniers/where-is-firefox-os https://github.com/nickdesaulniers/where-is-firefox-os] : A map showing where in the world Firefox OS phones are being sold.<br />
* [https://github.com/jdm/bugsahoy https://github.com/jdm/bugsahoy] : A landing page to make finding relevant bugs easier for new Mozilla contributors.<br />
* [https://github.com/w3c/web-platform-tests https://github.com/w3c/web-platform-tests] : Test Suites for Web Platform specifications<br />
* [https://github.com/w3c/wptserve https://github.com/w3c/wptserve] : Web server designed for use with web-platform-tests<br />
* [https://github.com/w3c/wptrunner https://github.com/w3c/wptrunner] : Cross-browser and multi-platform test runner for web-platform-tests. Used in mozilla-central and servo.<br />
* [https://github.com/w3c/testharness.js https://github.com/w3c/testharness.js] : (no description)<br />
* [https://github.com/jdm/asknot https://github.com/jdm/asknot] : Ask not what Mozilla can do for you but what you can do for Mozilla.<br />
* [https://github.com/jeffbryner/MozDef https://github.com/jeffbryner/MozDef]: Mozilla Defense Platform.<br />
* [https://github.com/jgraham/webdriver-rust https://github.com/jgraham/webdriver-rust]: WebDriver library for Rust.<br />
* [https://github.com/ehsan/mozilla-cvs-history https://github.com/ehsan/mozilla-cvs-history]: A git conversion of the full Mozilla CVS history, useful for code archaeology.</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/System_Add-ons/Process&diff=1183508Firefox/Go Faster/System Add-ons/Process2017-11-06T08:21:25Z<p>Standard8: /* Getting Started */ Add a one-off system add-on note.</p>
<hr />
<div>= Overview =<br />
<br />
This document is a step-by-step guide for everything you need to deploy a system add-on.<br />
<br />
This documentation leans heavier on a process of updates/fixes to existing versions of Firefox. For larger, feature-based add-ons, code may be required to live on pre-release channels longer before it is approved to move to production.<br />
<br />
<small>An archive of the previous version of these docs can be found [[Firefox/Go_Faster/System_Add-On/Process_v1|here]].</small><br />
<br />
= Getting Started =<br />
<br />
=== Is this something appropriate for a system add-on? ===<br />
<br />
You can view our documentation here:<br />
https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons<br />
<br />
The major use cases for system add-ons is to roll out a vetted and QA'd feature or fix off of the standard release trains.<br />
<br />
If you're thinking of [[Firefox/Making Network Requests From Firefox|Making Network Requests From Firefox]], there is specific guidance to follow.<br />
<br />
=== Are there development resources for system add-ons? ===<br />
<br />
We have a couple of repositories we ask users use to develop their system add-ons.<br />
<br />
A large use case for system add-ons have been smaller one-off add-ons to ship fixes and updates (e.g. pref flips).<br />
<br />
For these '''one-off add-ons''', you can visit https://github.com/mozilla/one-off-system-add-ons where you'll find example code, tests and more.<br />
<br />
For '''larger, more complex add-ons''', you can visit https://github.com/mozilla/example-addon-repo with more resources.<br />
<br />
=== Is this a one-off system add-on? ===<br />
<br />
If yes, please create it in https://github.com/mozilla/one-off-system-add-ons/, as a bonus you can base it on the other add-ons that are in there.<br />
<br />
=== Where can I find existing examples of system add-ons? ===<br />
<br />
One-off system add-ons can be found here: https://github.com/mozilla/one-off-system-add-ons/<br />
<br />
Go Faster System Add-ons will have [https://bugzilla.mozilla.org/buglist.cgi?list_id=13283590&status_whiteboard_type=substring&status_whiteboard=%5Bgo-faster-system-addon%5D&query_format=advanced WHITEBOARD=[go-faster-system-addon<nowiki>]</nowiki>]<br />
<br />
Examples of a simple pref flip<br />
<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1306465<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1307108 <br />
<br />
Examples of more complex feature add-ons<br />
<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1308656<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1280378<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1287966<br />
* https://github.com/mozilla/example-addon-repo<br />
<br />
=== More questions? ===<br />
<br />
You can always cold-call gofaster@mozilla.org, or visit us in #gofaster to chat!<br />
<br />
= Tracking Bug and Intent to Implement =<br />
<br />
=== Tracking Bug ===<br />
<br />
* Every system add-on should have a tracking bug (see Getting Started for examples).<br />
* Product/Component is dependent on the add-on.<br />
* Set the WHITEBOARD=[go-faster-system-addon] to allow the Go Faster team to track status.<br />
<br />
=== Intent to Implement ===<br />
<br />
* Intent to Implement emails are especially helpful for '''larger add-ons'''.<br />
* This allows any potential interested parties to comment on the validity and testing requirements for the system add-on.<br />
* More simple pref flip add-ons may not require an Intent to Implement email.<br />
* A good example: https://mail.mozilla.org/pipermail/gofaster/2016-September/000434.html<br />
<br />
The Intent to Implement email should have<br />
{| class="wikitable"<br />
|-<br />
! Field !! Example<br />
|-<br />
| Tracking bug || see Getting Started for samples<br />
|-<br />
| References || Wiki page, or repository<br />
|-<br />
| Overview || What does the add-on do? What problem is it trying to fix?<br />
|-<br />
| Timeline || What is the rough timeline (and channel) for delivery?<br />
|-<br />
| mailto: || release-drivers@mozilla.org; gofaster@mozilla.org<br />
|}<br />
<br />
This early notification is also important for extremely timely system add-ons, and will prepare the teams for a fast turnaround.<br />
<br />
'''Responsibility''': add-on developer/owner; interested parties to review<br />
<br />
= QA and Code Review =<br />
<br />
QA and code review of your XPI is the responsibility of the add-on developer/owner.<br />
<br />
This can be done in a bug or GitHub issue. The end result is an agreement from the responsible QA party that the add-on is ready for release.<br />
<br />
Once the add-on is approved, '''QA approval''' should be posted to the bug/issue, and/or sent through release-drivers@mozilla.org and gofaster@mozilla.org.<br />
<br />
'''[https://bugzilla.mozilla.org/show_bug.cgi?id=1312528#c14 A signed XPI]''' should also be included in the bug.<br />
<br />
'''Responsibility''': add-on developer/owner; code reviewer; QA<br />
<br />
= Intent to Ship and RelMan Approval =<br />
<br />
=== Intent to Ship === <br />
Once the add-on has been reviewed by QA, an Intent to Ship email should be sent.<br />
<br />
Please expect a lead time of at least 3 business days between the email being sent, and the add-on released into production. Holidays and work weeks will effect scheduling.<br />
<br />
The Intent to Ship email should have<br />
{| class="wikitable"<br />
|-<br />
! Field !! Example<br />
|-<br />
| Tracking bug || see Getting Started for samples<br />
|-<br />
| System add-on || comment linking to signed XPI<br />
|-<br />
| Committed to mozilla-release || Was this committed to mozilla-release? If so, include commit ID<br />
|-<br />
| Verification || Link to comment with QA verification<br />
|-<br />
| User Impact || What are we fixing? What is the risk of this not going out?<br />
|-<br />
| Timeline || When does this need to go live?<br />
|-<br />
| Targeting Version || e.g. 49.0, 49.0.2, 50.*<br />
|-<br />
| Additional target rules || Are we targeting a specific OS, build ID, distribution, etc<br />
|-<br />
| mailto: || release-drivers@mozilla.org; gofaster@mozilla.org<br />
|}<br />
<br />
Example: https://mail.mozilla.org/pipermail/gofaster/2016-October/000507.html<br />
<br />
=== Release Management Approval ===<br />
<br />
The driver of the current release should Reply All to the Intent to Ship email with approval for release. Note that Release Management Approval does not necessarily all stakeholders are of aware of your add-on's effects. If you might impact other teams, be sure to contact them as well.<br />
<br />
'''Responsibility''': add-on developer; release management<br />
<br />
= Deployed to Test Channel =<br />
<br />
After RelMan has approved the add-on for shipping, the Go Faster Team will update the test channel (`release-sysaddon`) in Balrog with the relevant rules and send out an email and post to the tracking bug.<br />
<br />
These Deployed to Test Channel emails should include<br />
{| class="wikitable"<br />
|-<br />
! Field !! Example<br />
|-<br />
| Versions affected || e.g. 49.0, 50.*<br />
|-<br />
| System add-on information || The ID's and versions of the system add-on(s)<br />
|-<br />
| Balrog details || Rules and releases modified in Balrog<br />
|-<br />
| mailto: || release-drivers@mozilla.org; gofaster@mozilla.org<br />
|}<br />
<br />
Examples<br />
* https://mail.mozilla.org/pipermail/gofaster/2016-October/000511.html<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1312528#c16<br />
<br />
'''Responsibility''': Go Faster Team<br />
<br />
= Verification of Test Channel =<br />
<br />
The purpose of this step is to receive verification that the add-on is being deployed correctly on the test channel (`release-sysaddon`).<br />
<br />
This will be done by the QA team (as of this writing, RyanVM's team).<br />
<br />
Notes on how best to verify system add-ons on the test channel can be found here: https://wiki.mozilla.org/Firefox/Go_Faster/Releasing_an_add-on_mechanics#Verifying_Balrog<br />
<br />
Notes regarding coverage: https://public.etherpad-mozilla.org/p/sysaddon-balrog-verification<br />
<br />
Once the test channel has been verified, a Reply All should be sent to the "Deployed to Test Channel" email.<br />
<br />
'''Responsibility''': QA<br />
<br />
= Push Release and Rules to Production =<br />
<br />
Once the test channel is verified, the Go Faster team will update Balrog to the release channel, and update the bugs.<br />
<br />
Example: https://bugzilla.mozilla.org/show_bug.cgi?id=1312528#c19<br />
<br />
Update Deployment Matrix: https://docs.google.com/spreadsheets/d/1yOgiOTU8q2I709VFhjCYCLATmoyQueV8RttPzciFIkQ/edit#gid=0<br />
<br />
'''Responsibility''': Go Faster Team<br />
<br />
= Measurement =<br />
<br />
2016Q4 Goal is to track rollout of the add-on. See: https://wiki.mozilla.org/Firefox/Go_Faster/Measurement</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/System_Add-ons/Process&diff=1183507Firefox/Go Faster/System Add-ons/Process2017-11-06T08:20:10Z<p>Standard8: /* Where can I find existing examples of system add-ons? */ Add one-off system add-ons</p>
<hr />
<div>= Overview =<br />
<br />
This document is a step-by-step guide for everything you need to deploy a system add-on.<br />
<br />
This documentation leans heavier on a process of updates/fixes to existing versions of Firefox. For larger, feature-based add-ons, code may be required to live on pre-release channels longer before it is approved to move to production.<br />
<br />
<small>An archive of the previous version of these docs can be found [[Firefox/Go_Faster/System_Add-On/Process_v1|here]].</small><br />
<br />
= Getting Started =<br />
<br />
=== Is this something appropriate for a system add-on? ===<br />
<br />
You can view our documentation here:<br />
https://wiki.mozilla.org/Firefox/Go_Faster/When_To_Use_System_Add-ons<br />
<br />
The major use cases for system add-ons is to roll out a vetted and QA'd feature or fix off of the standard release trains.<br />
<br />
If you're thinking of [[Firefox/Making Network Requests From Firefox|Making Network Requests From Firefox]], there is specific guidance to follow.<br />
<br />
=== Are there development resources for system add-ons? ===<br />
<br />
We have a couple of repositories we ask users use to develop their system add-ons.<br />
<br />
A large use case for system add-ons have been smaller one-off add-ons to ship fixes and updates (e.g. pref flips).<br />
<br />
For these '''one-off add-ons''', you can visit https://github.com/mozilla/one-off-system-add-ons where you'll find example code, tests and more.<br />
<br />
For '''larger, more complex add-ons''', you can visit https://github.com/mozilla/example-addon-repo with more resources.<br />
<br />
=== Where can I find existing examples of system add-ons? ===<br />
<br />
One-off system add-ons can be found here: https://github.com/mozilla/one-off-system-add-ons/<br />
<br />
Go Faster System Add-ons will have [https://bugzilla.mozilla.org/buglist.cgi?list_id=13283590&status_whiteboard_type=substring&status_whiteboard=%5Bgo-faster-system-addon%5D&query_format=advanced WHITEBOARD=[go-faster-system-addon<nowiki>]</nowiki>]<br />
<br />
Examples of a simple pref flip<br />
<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1306465<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1307108 <br />
<br />
Examples of more complex feature add-ons<br />
<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1308656<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1280378<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1287966<br />
* https://github.com/mozilla/example-addon-repo<br />
<br />
=== More questions? ===<br />
<br />
You can always cold-call gofaster@mozilla.org, or visit us in #gofaster to chat!<br />
<br />
= Tracking Bug and Intent to Implement =<br />
<br />
=== Tracking Bug ===<br />
<br />
* Every system add-on should have a tracking bug (see Getting Started for examples).<br />
* Product/Component is dependent on the add-on.<br />
* Set the WHITEBOARD=[go-faster-system-addon] to allow the Go Faster team to track status.<br />
<br />
=== Intent to Implement ===<br />
<br />
* Intent to Implement emails are especially helpful for '''larger add-ons'''.<br />
* This allows any potential interested parties to comment on the validity and testing requirements for the system add-on.<br />
* More simple pref flip add-ons may not require an Intent to Implement email.<br />
* A good example: https://mail.mozilla.org/pipermail/gofaster/2016-September/000434.html<br />
<br />
The Intent to Implement email should have<br />
{| class="wikitable"<br />
|-<br />
! Field !! Example<br />
|-<br />
| Tracking bug || see Getting Started for samples<br />
|-<br />
| References || Wiki page, or repository<br />
|-<br />
| Overview || What does the add-on do? What problem is it trying to fix?<br />
|-<br />
| Timeline || What is the rough timeline (and channel) for delivery?<br />
|-<br />
| mailto: || release-drivers@mozilla.org; gofaster@mozilla.org<br />
|}<br />
<br />
This early notification is also important for extremely timely system add-ons, and will prepare the teams for a fast turnaround.<br />
<br />
'''Responsibility''': add-on developer/owner; interested parties to review<br />
<br />
= QA and Code Review =<br />
<br />
QA and code review of your XPI is the responsibility of the add-on developer/owner.<br />
<br />
This can be done in a bug or GitHub issue. The end result is an agreement from the responsible QA party that the add-on is ready for release.<br />
<br />
Once the add-on is approved, '''QA approval''' should be posted to the bug/issue, and/or sent through release-drivers@mozilla.org and gofaster@mozilla.org.<br />
<br />
'''[https://bugzilla.mozilla.org/show_bug.cgi?id=1312528#c14 A signed XPI]''' should also be included in the bug.<br />
<br />
'''Responsibility''': add-on developer/owner; code reviewer; QA<br />
<br />
= Intent to Ship and RelMan Approval =<br />
<br />
=== Intent to Ship === <br />
Once the add-on has been reviewed by QA, an Intent to Ship email should be sent.<br />
<br />
Please expect a lead time of at least 3 business days between the email being sent, and the add-on released into production. Holidays and work weeks will effect scheduling.<br />
<br />
The Intent to Ship email should have<br />
{| class="wikitable"<br />
|-<br />
! Field !! Example<br />
|-<br />
| Tracking bug || see Getting Started for samples<br />
|-<br />
| System add-on || comment linking to signed XPI<br />
|-<br />
| Committed to mozilla-release || Was this committed to mozilla-release? If so, include commit ID<br />
|-<br />
| Verification || Link to comment with QA verification<br />
|-<br />
| User Impact || What are we fixing? What is the risk of this not going out?<br />
|-<br />
| Timeline || When does this need to go live?<br />
|-<br />
| Targeting Version || e.g. 49.0, 49.0.2, 50.*<br />
|-<br />
| Additional target rules || Are we targeting a specific OS, build ID, distribution, etc<br />
|-<br />
| mailto: || release-drivers@mozilla.org; gofaster@mozilla.org<br />
|}<br />
<br />
Example: https://mail.mozilla.org/pipermail/gofaster/2016-October/000507.html<br />
<br />
=== Release Management Approval ===<br />
<br />
The driver of the current release should Reply All to the Intent to Ship email with approval for release. Note that Release Management Approval does not necessarily all stakeholders are of aware of your add-on's effects. If you might impact other teams, be sure to contact them as well.<br />
<br />
'''Responsibility''': add-on developer; release management<br />
<br />
= Deployed to Test Channel =<br />
<br />
After RelMan has approved the add-on for shipping, the Go Faster Team will update the test channel (`release-sysaddon`) in Balrog with the relevant rules and send out an email and post to the tracking bug.<br />
<br />
These Deployed to Test Channel emails should include<br />
{| class="wikitable"<br />
|-<br />
! Field !! Example<br />
|-<br />
| Versions affected || e.g. 49.0, 50.*<br />
|-<br />
| System add-on information || The ID's and versions of the system add-on(s)<br />
|-<br />
| Balrog details || Rules and releases modified in Balrog<br />
|-<br />
| mailto: || release-drivers@mozilla.org; gofaster@mozilla.org<br />
|}<br />
<br />
Examples<br />
* https://mail.mozilla.org/pipermail/gofaster/2016-October/000511.html<br />
* https://bugzilla.mozilla.org/show_bug.cgi?id=1312528#c16<br />
<br />
'''Responsibility''': Go Faster Team<br />
<br />
= Verification of Test Channel =<br />
<br />
The purpose of this step is to receive verification that the add-on is being deployed correctly on the test channel (`release-sysaddon`).<br />
<br />
This will be done by the QA team (as of this writing, RyanVM's team).<br />
<br />
Notes on how best to verify system add-ons on the test channel can be found here: https://wiki.mozilla.org/Firefox/Go_Faster/Releasing_an_add-on_mechanics#Verifying_Balrog<br />
<br />
Notes regarding coverage: https://public.etherpad-mozilla.org/p/sysaddon-balrog-verification<br />
<br />
Once the test channel has been verified, a Reply All should be sent to the "Deployed to Test Channel" email.<br />
<br />
'''Responsibility''': QA<br />
<br />
= Push Release and Rules to Production =<br />
<br />
Once the test channel is verified, the Go Faster team will update Balrog to the release channel, and update the bugs.<br />
<br />
Example: https://bugzilla.mozilla.org/show_bug.cgi?id=1312528#c19<br />
<br />
Update Deployment Matrix: https://docs.google.com/spreadsheets/d/1yOgiOTU8q2I709VFhjCYCLATmoyQueV8RttPzciFIkQ/edit#gid=0<br />
<br />
'''Responsibility''': Go Faster Team<br />
<br />
= Measurement =<br />
<br />
2016Q4 Goal is to track rollout of the add-on. See: https://wiki.mozilla.org/Firefox/Go_Faster/Measurement</div>Standard8https://wiki.mozilla.org/index.php?title=ReleaseEngineering/TryChooser&diff=1173484ReleaseEngineering/TryChooser2017-06-14T13:04:56Z<p>Standard8: /* What if I want to run a sub-set of tests for a job? */ Add warning that tag builds are broken</p>
<hr />
<div>[https://mozilla-releng.net/trychooser/ TryChooser] lets you select specific jobs you want to run on [https://wiki.mozilla.org/Build:TryServer tryserver]. You use TryChooser by putting a <tt>try:</tt> block at the end of the topmost commit message when you push to try.<br />
==Syntax Builder==<br />
'''To simplify using the TryChooser, you can use the [https://mozilla-releng.net/trychooser/ TryChooser Syntax Builder] website''' <br />
or the [http://hg.mozilla.org/users/pbiggar_mozilla.com/trychooser/file/tip mercurial extension] (which also functions as a command-line application, but is not maintained by RelEng).<br />
<br />
==Defaults==<br />
<br />
If you don't specify an option or if you give an invalid value for an option, TryChooser will use its default for that option:<br />
<br />
try: --build do<br />
--platform all<br />
--unittests all<br />
--talos none<br />
<br />
==Examples==<br />
; <tt>try: -b do -p all -u all -t none</tt><br />
: Run all platforms, all tests, no talos. You probably want to narrow down the test scope though if your change does not affect all platforms and all unit tests.:<br />
<br />
; <tt>try: -b do -u crashtest</tt><br />
: Debug and optimized builds, all available platforms, only crashtests, no talos:<br />
<br />
; <tt>try: -b d -p linux -u none</tt><br />
: Linux debug build, no unittests, no talos:<br />
<br />
; <tt>try: -b do -u all -t chrome,nochrome</tt><br />
: Debug and optimized builds for all platforms, all unittests, select talos:<br />
<br />
; <tt>try: -b do -u all -t chrome,nochrome mozharness: --spsProfile</tt><br />
: Same as above but run talos in profiling mode so that it produces zip files with profiles that can be opened in Cleopatra. See [https://wiki.mozilla.org/Buildbot/Talos/Profiling Talos Profiling].<br />
<br />
; <tt>try: -b o -u jsreftest,crashtest,mochitest-1 -t tp4,scroll</tt><br />
: Opt builds on all available platforms, select unittests, select talos<br />
<br />
; <tt>try: -b o -u all -n --post-to-bugzilla bug 456234</tt><br />
: Opt builds on all available platforms, all unittests, no emails, results posted to bug 456234<br />
<br />
; <tt>try: -b d -p macosx64 -u all[10.7]</tt><br />
: Debug builds for 64-bit OSX, run all tests only on OSX 10.7 machines<br />
<br />
; <tt>try: -b d -p macosx64 -u all[-10.7]</tt><br />
: Debug builds for 64-bit OSX, run all tests but not on all OSX test platforms except OSX 10.7<br />
<br />
; <tt>try: -b do -p all -u all[x64]</tt><br />
: "T push" -- good replacement for <tt>-p all -u all</tt>. Builds on all platforms, runs all tests on linux64.<br />
<br />
; <tt>try: -b do -p all -u all[10.8]</tt><br />
: Same as above, but run the tests on OSX 10.8 instead<br />
<br />
You may precede the <tt>try:</tt> section with other text:<br />
bug 12345 attempt 2, try: -b d -p linux64 -t jsreftest<br />
<br />
==Workflow==<br />
<br />
===Without MQ===<br />
<br />
If you're not using Mercurial Queues, you can use TryChooser by including a "try:" string in the message of the commit you push to try:<br />
<br />
$ (edit your code)<br />
$ hg commit -m "Bug XXXXXX - Change foo to bar. try: -b d -p all"<br />
$ hg push -f <nowiki>ssh://hg.mozilla.org/try</nowiki><br />
<br />
===With MQ===<br />
<br />
'''Note:''' If you are running Mercurial 2.1 or higher, see [[Build:TryServer#hg_phases|this note]] about phases. ({{bug|725362}})<br />
<br />
If you're using Mercurial Queues, you can use TryChooser by adding an empty patch with a "try:" string to the top of your queue:<br />
<br />
hg qgoto your-patch<br />
hg qnew -m "try: <Insert options here>" try<br />
hg push -f -rtip <nowiki>ssh://hg.mozilla.org/try</nowiki><br />
<br />
After pushing, you can remove the empty patch:<br />
<br />
hg qpop<br />
hg qremove try<br />
<br />
==FAQ==<br />
===What if I want PGO for my build===<br />
Until {{bug|691673}} is resolved, you'll have to do a small hack if you want PGO to work on your try push. Add<br />
mk_add_options MOZ_PGO=1<br />
to <tt>[https://dxr.mozilla.org/mozilla-central/source/build/mozconfig.common.override build/mozconfig.common.override]</tt>.<br />
<br />
===What if I don't put "try:" in my commit message?===<br />
If you don't give a "try:" string in your commit message, you'll get an error message on attempts to push to try as per {{bug|649402}} where try syntax use was made mandatory.<br />
<br />
===What if make a syntax error in my commit message?===<br />
If you pass an invalid parameter, TryChooser will ignore it and substitute the default in its place. For instance, if you specify <tt>try: -b f -u crashtest</tt>, you'll get both debug and optimized builds, since "f" is not a recognized argument. You'll only get crashtest run on those builds, however.<br />
<br />
===Where's the full list of unit tests and talos tests I can request?===<br />
<br />
Try should have the same test/talos suites available to it as mozilla-central does so you can refer to [https://treeherder.mozilla.org Treeherder] for complete listings.<br />
<br />
To match up the Talos suite name to the tests it runs you can go [http://hg.mozilla.org/build/buildbot-configs/file/701b6ccd8e55/mozilla-tests/config.py#l19 here]. (eg: 'chrome' runs ts:tdhtml:twinopen:tsspider)<br />
<br />
If you need help building the syntax line you can also go to the [http://trychooser.pub.build.mozilla.org/ TryChooser Syntax Builder] page.<br />
<br />
===What do I do if I need to add a job after I push?===<br />
Use try extender on Treeherder. To be announced in November.<br />
<br />
===What do I do if I need to remove a job after I push?===<br />
Check out [https://build.mozilla.org/buildapi/self-serve Self Serve!]. With Self-Serve you can cancel pending builds, re-build/run completed builds/test/talos runs.<br />
<br />
===What do I do if I used the wrong syntax and I'm missing a job?===<br />
With the [[ReleaseEngineering/How_To/Trigger_arbitrary_jobs|arbitrary jobs API]] you can trigger jobs that would have not been triggered according to your Try syntax.<br />
You can even specify a different build or tests.zip.<br />
<br />
===Where are my builds/test/talos?===<br />
If you think Treeherder is missing results or it feels like it's been a while since you kicked the build off and you're getting antsy for results. Here are some things you can look into before pinging the person on buildduty:<br />
* Did the build compile successfully? If it didn't, you won't get unittests or talos results.<br />
**Look for your directory in [http://ftp.mozilla.org/pub/mozilla.org/firefox/tryserver-builds/ the builds FTP server] and see what has been uploaded. (You can also find here the email-changeset string that you'll need if you end up pinging releng.)<br />
* Check [http://build.mozilla.org/buildapi/running/ Running] and [http://build.mozilla.org/buildapi/pending/ Pending] to view your build's status, since these are where Treeherder gets the job data from, so are closer to the source of truth.<br />
<br />
===What if I want to run a sub-set of tests for a job?===<br />
'''Note: This is currently broken, see [https://bugzilla.mozilla.org/show_bug.cgi?id=1336606 bug 1336606]'''<br />
<br />
Tests can be tagged via the *.ini files, e.g.<br />
<br />
<pre><br />
[default]<br />
tags = search<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
[default]<br />
<br />
[browser_426329.js]<br />
tags = search<br />
</pre><br />
<br />
You can then run just the required tag by appending `--tag search` onto your try command, e.g.<br />
<br />
<pre><br />
./mach try -b d -p linux64 -u mochitest-e10s-bc -t none --artifact --tag search<br />
</pre><br />
<br />
==Parsing details==<br />
<br />
The parser for TryChooser is [http://hg.mozilla.org/build/buildbotcustom/file/tip/try_parser.py here].<br />
<br />
The basic algorithm is:<br />
* The commit message is split on 'try:'.<br />
* Whatever follows after 'try:' is passed to try_parser as a string.<br />
* The string is processed into a list of args handed to parse_known_args (thus keeping anything that is not a recognized argument from causing errors).<br />
<br />
The email preferences are parsed out in the [http://hg.mozilla.org/build/buildbotcustom/file/tip/bin/try_mailer.py try_mailer] script, and the --post-to-bugzilla flag is currently a work in progress but will land in the RelEng [http://hg.mozilla.org/build/tools/scripts/autoland tools] repo as part of the [https://wiki.mozilla.org/BugzillaAutoLanding Bugzilla Autolanding] project.<br />
<br />
==Buildduty Issues==<br />
=== How to Deploy TryChooser changes ===<br />
[[ReleaseEngineering/How_To/Update_TryChooser]]<br />
<br />
=== Jobs not scheduled at all? ===<br />
Recreate the comment of their change with https://mozilla-releng.net/trychooser/ and compare it to make sure is correct.<br />
<br />
Then do a sendchange and tail the scheduler master:<br />
<pre><br />
buildbot sendchange --master buildbot-master10:9301 --revision 923103d5a656 \<br />
--branch try --username mpalmgren@mozilla.com \<br />
--comments "try: -b d -p linux -u all" doit<br />
</pre><br />
<br />
* If tryserver was just reset verify that [[ReleaseEngineering/How_To/Reset_the_Try_Server#Try_Hg_Poller_state|the scheduler has been reset]]<br />
<br />
=== Using the TryChooser to submit build/test requests ===<br />
Buildduty can also use the same TryChooser syntax as developers use to (re)submit build and testing requests. Here is an example:<br />
<br />
<pre><br />
buildbot sendchange --master buildbot-master10:9301 --revision 923103d5a656 \<br />
--branch try --username mpalmgren@mozilla.com \<br />
--comments "try: -b d -p linux -u all" doit<br />
</pre><br />
<br />
=== Unable to schedule builds due to missing 'requests' package ===<br />
As with pip 8.0, the '--download-cache' option has been removed (it was already deprecated since 6.0). The fix for this issue was removing the argument in mozharness config (see https://hg.mozilla.org/try/rev/1c396281c01b).<br />
In order to build with a base revision prior to '1c396281c01b', you will need to rebase your patch to use a newer version. <br />
<br />
== Source code ==<br />
<br />
The trychooser syntax builder lives in the buildtools repository, under the subdirectory "trychooser":<br />
<br />
* Mercurial: https://hg.mozilla.org/build/tools/ <br />
* Git: https://github.com/mozilla/build-tools/</div>Standard8https://wiki.mozilla.org/index.php?title=ReleaseEngineering/TryChooser&diff=1173444ReleaseEngineering/TryChooser2017-06-14T10:35:49Z<p>Standard8: Add information about tagging of tests.</p>
<hr />
<div>[https://mozilla-releng.net/trychooser/ TryChooser] lets you select specific jobs you want to run on [https://wiki.mozilla.org/Build:TryServer tryserver]. You use TryChooser by putting a <tt>try:</tt> block at the end of the topmost commit message when you push to try.<br />
==Syntax Builder==<br />
'''To simplify using the TryChooser, you can use the [https://mozilla-releng.net/trychooser/ TryChooser Syntax Builder] website''' <br />
or the [http://hg.mozilla.org/users/pbiggar_mozilla.com/trychooser/file/tip mercurial extension] (which also functions as a command-line application, but is not maintained by RelEng).<br />
<br />
==Defaults==<br />
<br />
If you don't specify an option or if you give an invalid value for an option, TryChooser will use its default for that option:<br />
<br />
try: --build do<br />
--platform all<br />
--unittests all<br />
--talos none<br />
<br />
==Examples==<br />
; <tt>try: -b do -p all -u all -t none</tt><br />
: Run all platforms, all tests, no talos. You probably want to narrow down the test scope though if your change does not affect all platforms and all unit tests.:<br />
<br />
; <tt>try: -b do -u crashtest</tt><br />
: Debug and optimized builds, all available platforms, only crashtests, no talos:<br />
<br />
; <tt>try: -b d -p linux -u none</tt><br />
: Linux debug build, no unittests, no talos:<br />
<br />
; <tt>try: -b do -u all -t chrome,nochrome</tt><br />
: Debug and optimized builds for all platforms, all unittests, select talos:<br />
<br />
; <tt>try: -b do -u all -t chrome,nochrome mozharness: --spsProfile</tt><br />
: Same as above but run talos in profiling mode so that it produces zip files with profiles that can be opened in Cleopatra. See [https://wiki.mozilla.org/Buildbot/Talos/Profiling Talos Profiling].<br />
<br />
; <tt>try: -b o -u jsreftest,crashtest,mochitest-1 -t tp4,scroll</tt><br />
: Opt builds on all available platforms, select unittests, select talos<br />
<br />
; <tt>try: -b o -u all -n --post-to-bugzilla bug 456234</tt><br />
: Opt builds on all available platforms, all unittests, no emails, results posted to bug 456234<br />
<br />
; <tt>try: -b d -p macosx64 -u all[10.7]</tt><br />
: Debug builds for 64-bit OSX, run all tests only on OSX 10.7 machines<br />
<br />
; <tt>try: -b d -p macosx64 -u all[-10.7]</tt><br />
: Debug builds for 64-bit OSX, run all tests but not on all OSX test platforms except OSX 10.7<br />
<br />
; <tt>try: -b do -p all -u all[x64]</tt><br />
: "T push" -- good replacement for <tt>-p all -u all</tt>. Builds on all platforms, runs all tests on linux64.<br />
<br />
; <tt>try: -b do -p all -u all[10.8]</tt><br />
: Same as above, but run the tests on OSX 10.8 instead<br />
<br />
You may precede the <tt>try:</tt> section with other text:<br />
bug 12345 attempt 2, try: -b d -p linux64 -t jsreftest<br />
<br />
==Workflow==<br />
<br />
===Without MQ===<br />
<br />
If you're not using Mercurial Queues, you can use TryChooser by including a "try:" string in the message of the commit you push to try:<br />
<br />
$ (edit your code)<br />
$ hg commit -m "Bug XXXXXX - Change foo to bar. try: -b d -p all"<br />
$ hg push -f <nowiki>ssh://hg.mozilla.org/try</nowiki><br />
<br />
===With MQ===<br />
<br />
'''Note:''' If you are running Mercurial 2.1 or higher, see [[Build:TryServer#hg_phases|this note]] about phases. ({{bug|725362}})<br />
<br />
If you're using Mercurial Queues, you can use TryChooser by adding an empty patch with a "try:" string to the top of your queue:<br />
<br />
hg qgoto your-patch<br />
hg qnew -m "try: <Insert options here>" try<br />
hg push -f -rtip <nowiki>ssh://hg.mozilla.org/try</nowiki><br />
<br />
After pushing, you can remove the empty patch:<br />
<br />
hg qpop<br />
hg qremove try<br />
<br />
==FAQ==<br />
===What if I want PGO for my build===<br />
Until {{bug|691673}} is resolved, you'll have to do a small hack if you want PGO to work on your try push. Add<br />
mk_add_options MOZ_PGO=1<br />
to <tt>[https://dxr.mozilla.org/mozilla-central/source/build/mozconfig.common.override build/mozconfig.common.override]</tt>.<br />
<br />
===What if I don't put "try:" in my commit message?===<br />
If you don't give a "try:" string in your commit message, you'll get an error message on attempts to push to try as per {{bug|649402}} where try syntax use was made mandatory.<br />
<br />
===What if make a syntax error in my commit message?===<br />
If you pass an invalid parameter, TryChooser will ignore it and substitute the default in its place. For instance, if you specify <tt>try: -b f -u crashtest</tt>, you'll get both debug and optimized builds, since "f" is not a recognized argument. You'll only get crashtest run on those builds, however.<br />
<br />
===Where's the full list of unit tests and talos tests I can request?===<br />
<br />
Try should have the same test/talos suites available to it as mozilla-central does so you can refer to [https://treeherder.mozilla.org Treeherder] for complete listings.<br />
<br />
To match up the Talos suite name to the tests it runs you can go [http://hg.mozilla.org/build/buildbot-configs/file/701b6ccd8e55/mozilla-tests/config.py#l19 here]. (eg: 'chrome' runs ts:tdhtml:twinopen:tsspider)<br />
<br />
If you need help building the syntax line you can also go to the [http://trychooser.pub.build.mozilla.org/ TryChooser Syntax Builder] page.<br />
<br />
===What do I do if I need to add a job after I push?===<br />
Use try extender on Treeherder. To be announced in November.<br />
<br />
===What do I do if I need to remove a job after I push?===<br />
Check out [https://build.mozilla.org/buildapi/self-serve Self Serve!]. With Self-Serve you can cancel pending builds, re-build/run completed builds/test/talos runs.<br />
<br />
===What do I do if I used the wrong syntax and I'm missing a job?===<br />
With the [[ReleaseEngineering/How_To/Trigger_arbitrary_jobs|arbitrary jobs API]] you can trigger jobs that would have not been triggered according to your Try syntax.<br />
You can even specify a different build or tests.zip.<br />
<br />
===Where are my builds/test/talos?===<br />
If you think Treeherder is missing results or it feels like it's been a while since you kicked the build off and you're getting antsy for results. Here are some things you can look into before pinging the person on buildduty:<br />
* Did the build compile successfully? If it didn't, you won't get unittests or talos results.<br />
**Look for your directory in [http://ftp.mozilla.org/pub/mozilla.org/firefox/tryserver-builds/ the builds FTP server] and see what has been uploaded. (You can also find here the email-changeset string that you'll need if you end up pinging releng.)<br />
* Check [http://build.mozilla.org/buildapi/running/ Running] and [http://build.mozilla.org/buildapi/pending/ Pending] to view your build's status, since these are where Treeherder gets the job data from, so are closer to the source of truth.<br />
<br />
===What if I want to run a sub-set of tests for a job?===<br />
Tests can be tagged via the *.ini files, e.g.<br />
<br />
<pre><br />
[default]<br />
tags = search<br />
</pre><br />
<br />
or<br />
<br />
<pre><br />
[default]<br />
<br />
[browser_426329.js]<br />
tags = search<br />
</pre><br />
<br />
You can then run just the required tag by appending `--tag search` onto your try command, e.g.<br />
<br />
<pre><br />
./mach try -b d -p linux64 -u mochitest-e10s-bc -t none --artifact --tag search<br />
</pre><br />
<br />
==Parsing details==<br />
<br />
The parser for TryChooser is [http://hg.mozilla.org/build/buildbotcustom/file/tip/try_parser.py here].<br />
<br />
The basic algorithm is:<br />
* The commit message is split on 'try:'.<br />
* Whatever follows after 'try:' is passed to try_parser as a string.<br />
* The string is processed into a list of args handed to parse_known_args (thus keeping anything that is not a recognized argument from causing errors).<br />
<br />
The email preferences are parsed out in the [http://hg.mozilla.org/build/buildbotcustom/file/tip/bin/try_mailer.py try_mailer] script, and the --post-to-bugzilla flag is currently a work in progress but will land in the RelEng [http://hg.mozilla.org/build/tools/scripts/autoland tools] repo as part of the [https://wiki.mozilla.org/BugzillaAutoLanding Bugzilla Autolanding] project.<br />
<br />
==Buildduty Issues==<br />
=== How to Deploy TryChooser changes ===<br />
[[ReleaseEngineering/How_To/Update_TryChooser]]<br />
<br />
=== Jobs not scheduled at all? ===<br />
Recreate the comment of their change with https://mozilla-releng.net/trychooser/ and compare it to make sure is correct.<br />
<br />
Then do a sendchange and tail the scheduler master:<br />
<pre><br />
buildbot sendchange --master buildbot-master10:9301 --revision 923103d5a656 \<br />
--branch try --username mpalmgren@mozilla.com \<br />
--comments "try: -b d -p linux -u all" doit<br />
</pre><br />
<br />
* If tryserver was just reset verify that [[ReleaseEngineering/How_To/Reset_the_Try_Server#Try_Hg_Poller_state|the scheduler has been reset]]<br />
<br />
=== Using the TryChooser to submit build/test requests ===<br />
Buildduty can also use the same TryChooser syntax as developers use to (re)submit build and testing requests. Here is an example:<br />
<br />
<pre><br />
buildbot sendchange --master buildbot-master10:9301 --revision 923103d5a656 \<br />
--branch try --username mpalmgren@mozilla.com \<br />
--comments "try: -b d -p linux -u all" doit<br />
</pre><br />
<br />
=== Unable to schedule builds due to missing 'requests' package ===<br />
As with pip 8.0, the '--download-cache' option has been removed (it was already deprecated since 6.0). The fix for this issue was removing the argument in mozharness config (see https://hg.mozilla.org/try/rev/1c396281c01b).<br />
In order to build with a base revision prior to '1c396281c01b', you will need to rebase your patch to use a newer version. <br />
<br />
== Source code ==<br />
<br />
The trychooser syntax builder lives in the buildtools repository, under the subdirectory "trychooser":<br />
<br />
* Mercurial: https://hg.mozilla.org/build/tools/ <br />
* Git: https://github.com/mozilla/build-tools/</div>Standard8https://wiki.mozilla.org/index.php?title=User_talk:Standard8&diff=1154238User talk:Standard82016-11-10T15:23:13Z<p>Standard8: Replaced content with "== Random Test == * https://hello.firefox.com (3 redirects) * https://www.mozilla.org/firefox/hello/ (2 redirects) * https://support.mozilla.org/kb/hello-status (1 redire..."</p>
<hr />
<div>== Random Test ==<br />
<br />
* https://hello.firefox.com (3 redirects)<br />
* https://www.mozilla.org/firefox/hello/ (2 redirects)<br />
* https://support.mozilla.org/kb/hello-status (1 redirect)<br />
* https://support.mozilla.org/en-US/kb/hello-status (final page)</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster&diff=1154016Firefox/Go Faster2016-11-08T14:12:26Z<p>Standard8: fix rest of wiki links to be internal.</p>
<hr />
<div>= Overview =<br />
We believe that building out tools and processes for shipping Go Faster add-ons will enable Mozilla's engineers to get features and fixes to a larger audience sooner. We will know this is true when we see widespread adoption of system add-ons as a mechanism for moving faster and updating faster than the standard trains. <br />
<br />
==Team==<br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Laura Thomson || Product Owner<br />
|-<br />
| Cory Price || Program Management<br />
|}<br />
<br />
==KPI's==<br />
* Number of projects using the tools.<br />
* All new features or improvements to existing features validated by go faster by the end 2016.<br />
<br />
==Meetings==<br />
* [[Firefox/Go_Faster/Meetings|Meeting Notes]]<br />
* Bi-Weekly Team Meeting<br />
** Every other Tuesday at 11:30 AM PST ([https://www.timeanddate.com/worldclock/converted.html?iso=20151124T0930&p1=224&p2=250&p3=0&p4=195 conversions])<br />
** "GoFaster" Vidyo Room (extension 8557)<br />
<br />
==Communications==<br />
* [https://mail.mozilla.org/listinfo/gofaster Mailing List] (open to all, primarily used for sharing status)<br />
* IRC: #gofaster<br />
<br />
= Release Process and Mechanics =<br />
<br />
== Process ==<br />
<br />
Have something you want to ship through Go Faster?<br />
<br />
Start here:<br />
* [[Firefox/Go_Faster/System_Add-ons/Process]]<br />
<br />
== Mechanics ==<br />
<br />
This page details the technological pieces involved in shipping system add-ons.<br />
<br />
[[Firefox/Go_Faster/Releasing_an_add-on_mechanics|Releasing mechanics]].<br />
<br />
The initial authors of this process are<br />
<br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| needs:owner || Owner<br />
|-<br />
| Mark Banner || Hello/docs<br />
|-<br />
| Ian Bicking || Hello/docs<br />
|-<br />
| Rob Helmer || Client<br />
|-<br />
| Dave Townsend || Client<br />
|-<br />
| Ben Hearsum || Tools<br />
|-<br />
| Ritu Kothari || Tools<br />
|-<br />
| Chris Lonnen || Tools<br />
|-<br />
| Axel Hecht || l10n<br />
|}<br />
<br />
= Projects =<br />
<br />
These are the top-level projects defined for this program.<br />
<br />
== Morgoth ==<br />
<br />
[[Firefox/Morgoth|Morgoth]]<br />
<br />
* Project Owner: Michael Kelly [:Osmose]<br />
* Development: Rehan Dalal [:rdalal], Web Engineering - Systems<br />
* Status: Planning / Implementation<br />
* Scheduled for: 2016 late q2 / q3<br />
<br />
== Kinto ==<br />
<br />
A JSON storage service with synchronisation and sharing abilitie - allows the smart client to retrieve signed data from a dumb server.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Tarek Ziade || Owner<br />
|-<br />
| Mark Goodwin || OneCRL client, PKI work for the signing<br />
|-<br />
| Sebastian || Fennec Client<br />
|-<br />
| Jorge || our customer for the AMO blocklist<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* Tracking document: https://docs.google.com/document/d/1MHQNqJ--GAmNxXl2PODJ-YGU459l6vvDRmf9oEIRTms/edit<br />
* Tool: http://kinto.readthedocs.org<br />
<br />
== Recipe Server (SHIELD + Variants) ==<br />
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Gregg Lind || Owner<br />
|-<br />
| Matt Grimes || Product Manager<br />
|-<br />
| Mike Kelly || Engineering Manager<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* [[Firefox/Recipe_Server|Recipe Server]]<br />
<br />
== Test Pilot ==<br />
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Javaun Moradi || Owner<br />
|-<br />
| Cory Price || Program Management<br />
|-<br />
| Wil Clouser || Engineering Manager<br />
|-<br />
| John Gruen || UX Lead<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* [[Test_Pilot|Test Pilot]]<br />
<br />
= Shipping Pipeline ( https://trello.com/b/moJCpVCD/go-faster-system-add-on-pipeline ) =<br />
<br />
The `how` for Go Faster are the top-level projects outlined above. The other important things to track are the individual features and fixes that are going to be launching ''through'' Go Faster.<br />
<br />
View the Trello board for a list of System Add-ons in flight.</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster&diff=1154015Firefox/Go Faster2016-11-08T14:11:15Z<p>Standard8: /* Process */ Improve link</p>
<hr />
<div>= Overview =<br />
We believe that building out tools and processes for shipping Go Faster add-ons will enable Mozilla's engineers to get features and fixes to a larger audience sooner. We will know this is true when we see widespread adoption of system add-ons as a mechanism for moving faster and updating faster than the standard trains. <br />
<br />
==Team==<br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Laura Thomson || Product Owner<br />
|-<br />
| Cory Price || Program Management<br />
|}<br />
<br />
==KPI's==<br />
* Number of projects using the tools.<br />
* All new features or improvements to existing features validated by go faster by the end 2016.<br />
<br />
==Meetings==<br />
* [[Firefox/Go_Faster/Meetings|Meeting Notes]]<br />
* Bi-Weekly Team Meeting<br />
** Every other Tuesday at 11:30 AM PST ([https://www.timeanddate.com/worldclock/converted.html?iso=20151124T0930&p1=224&p2=250&p3=0&p4=195 conversions])<br />
** "GoFaster" Vidyo Room (extension 8557)<br />
<br />
==Communications==<br />
* [https://mail.mozilla.org/listinfo/gofaster Mailing List] (open to all, primarily used for sharing status)<br />
* IRC: #gofaster<br />
<br />
= Release Process and Mechanics =<br />
<br />
== Process ==<br />
<br />
Have something you want to ship through Go Faster?<br />
<br />
Start here:<br />
* [[Firefox/Go_Faster/System_Add-ons/Process]]<br />
<br />
== Mechanics ==<br />
<br />
This page details the technological pieces involved in shipping system add-ons.<br />
<br />
[[Firefox/Go_Faster/Releasing_an_add-on_mechanics|Releasing mechanics]].<br />
<br />
The initial authors of this process are<br />
<br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| needs:owner || Owner<br />
|-<br />
| Mark Banner || Hello/docs<br />
|-<br />
| Ian Bicking || Hello/docs<br />
|-<br />
| Rob Helmer || Client<br />
|-<br />
| Dave Townsend || Client<br />
|-<br />
| Ben Hearsum || Tools<br />
|-<br />
| Ritu Kothari || Tools<br />
|-<br />
| Chris Lonnen || Tools<br />
|-<br />
| Axel Hecht || l10n<br />
|}<br />
<br />
= Projects =<br />
<br />
These are the top-level projects defined for this program.<br />
<br />
== Morgoth ==<br />
<br />
https://wiki.mozilla.org/Firefox/Morgoth<br />
<br />
* Project Owner: Michael Kelly [:Osmose]<br />
* Development: Rehan Dalal [:rdalal], Web Engineering - Systems<br />
* Status: Planning / Implementation<br />
* Scheduled for: 2016 late q2 / q3<br />
<br />
== Kinto ==<br />
<br />
A JSON storage service with synchronisation and sharing abilitie - allows the smart client to retrieve signed data from a dumb server.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Tarek Ziade || Owner<br />
|-<br />
| Mark Goodwin || OneCRL client, PKI work for the signing<br />
|-<br />
| Sebastian || Fennec Client<br />
|-<br />
| Jorge || our customer for the AMO blocklist<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* Tracking document: https://docs.google.com/document/d/1MHQNqJ--GAmNxXl2PODJ-YGU459l6vvDRmf9oEIRTms/edit<br />
* Tool: http://kinto.readthedocs.org<br />
<br />
== Recipe Server (SHIELD + Variants) ==<br />
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Gregg Lind || Owner<br />
|-<br />
| Matt Grimes || Product Manager<br />
|-<br />
| Mike Kelly || Engineering Manager<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* https://wiki.mozilla.org/Firefox/Recipe_Server<br />
<br />
== Test Pilot ==<br />
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Javaun Moradi || Owner<br />
|-<br />
| Cory Price || Program Management<br />
|-<br />
| Wil Clouser || Engineering Manager<br />
|-<br />
| John Gruen || UX Lead<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* https://wiki.mozilla.org/Test_Pilot<br />
<br />
= Shipping Pipeline ( https://trello.com/b/moJCpVCD/go-faster-system-add-on-pipeline ) =<br />
<br />
The `how` for Go Faster are the top-level projects outlined above. The other important things to track are the individual features and fixes that are going to be launching ''through'' Go Faster.<br />
<br />
View the Trello board for a list of System Add-ons in flight.</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster&diff=1154014Firefox/Go Faster2016-11-08T14:10:37Z<p>Standard8: /* Meetings */ Improve meeting notes link as its internal to the wiki</p>
<hr />
<div>= Overview =<br />
We believe that building out tools and processes for shipping Go Faster add-ons will enable Mozilla's engineers to get features and fixes to a larger audience sooner. We will know this is true when we see widespread adoption of system add-ons as a mechanism for moving faster and updating faster than the standard trains. <br />
<br />
==Team==<br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Laura Thomson || Product Owner<br />
|-<br />
| Cory Price || Program Management<br />
|}<br />
<br />
==KPI's==<br />
* Number of projects using the tools.<br />
* All new features or improvements to existing features validated by go faster by the end 2016.<br />
<br />
==Meetings==<br />
* [[Firefox/Go_Faster/Meetings|Meeting Notes]]<br />
* Bi-Weekly Team Meeting<br />
** Every other Tuesday at 11:30 AM PST ([https://www.timeanddate.com/worldclock/converted.html?iso=20151124T0930&p1=224&p2=250&p3=0&p4=195 conversions])<br />
** "GoFaster" Vidyo Room (extension 8557)<br />
<br />
==Communications==<br />
* [https://mail.mozilla.org/listinfo/gofaster Mailing List] (open to all, primarily used for sharing status)<br />
* IRC: #gofaster<br />
<br />
= Release Process and Mechanics =<br />
<br />
== Process ==<br />
<br />
Have something you want to ship through Go Faster?<br />
<br />
Start here:<br />
* https://wiki.mozilla.org/Firefox/Go_Faster/System_Add-ons/Process<br />
<br />
== Mechanics ==<br />
<br />
This page details the technological pieces involved in shipping system add-ons.<br />
<br />
[[Firefox/Go_Faster/Releasing_an_add-on_mechanics|Releasing mechanics]].<br />
<br />
The initial authors of this process are<br />
<br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| needs:owner || Owner<br />
|-<br />
| Mark Banner || Hello/docs<br />
|-<br />
| Ian Bicking || Hello/docs<br />
|-<br />
| Rob Helmer || Client<br />
|-<br />
| Dave Townsend || Client<br />
|-<br />
| Ben Hearsum || Tools<br />
|-<br />
| Ritu Kothari || Tools<br />
|-<br />
| Chris Lonnen || Tools<br />
|-<br />
| Axel Hecht || l10n<br />
|}<br />
<br />
= Projects =<br />
<br />
These are the top-level projects defined for this program.<br />
<br />
== Morgoth ==<br />
<br />
https://wiki.mozilla.org/Firefox/Morgoth<br />
<br />
* Project Owner: Michael Kelly [:Osmose]<br />
* Development: Rehan Dalal [:rdalal], Web Engineering - Systems<br />
* Status: Planning / Implementation<br />
* Scheduled for: 2016 late q2 / q3<br />
<br />
== Kinto ==<br />
<br />
A JSON storage service with synchronisation and sharing abilitie - allows the smart client to retrieve signed data from a dumb server.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Tarek Ziade || Owner<br />
|-<br />
| Mark Goodwin || OneCRL client, PKI work for the signing<br />
|-<br />
| Sebastian || Fennec Client<br />
|-<br />
| Jorge || our customer for the AMO blocklist<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* Tracking document: https://docs.google.com/document/d/1MHQNqJ--GAmNxXl2PODJ-YGU459l6vvDRmf9oEIRTms/edit<br />
* Tool: http://kinto.readthedocs.org<br />
<br />
== Recipe Server (SHIELD + Variants) ==<br />
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Gregg Lind || Owner<br />
|-<br />
| Matt Grimes || Product Manager<br />
|-<br />
| Mike Kelly || Engineering Manager<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* https://wiki.mozilla.org/Firefox/Recipe_Server<br />
<br />
== Test Pilot ==<br />
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Javaun Moradi || Owner<br />
|-<br />
| Cory Price || Program Management<br />
|-<br />
| Wil Clouser || Engineering Manager<br />
|-<br />
| John Gruen || UX Lead<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* https://wiki.mozilla.org/Test_Pilot<br />
<br />
= Shipping Pipeline ( https://trello.com/b/moJCpVCD/go-faster-system-add-on-pipeline ) =<br />
<br />
The `how` for Go Faster are the top-level projects outlined above. The other important things to track are the individual features and fixes that are going to be launching ''through'' Go Faster.<br />
<br />
View the Trello board for a list of System Add-ons in flight.</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/When_To_Use_System_Add-ons&diff=1150926Firefox/Go Faster/When To Use System Add-ons2016-10-11T14:24:30Z<p>Standard8: Make sections into titles for clearer reading.</p>
<hr />
<div>=== You should not use a System Add-on if ===<br />
<br />
* It is a raw experiment of new functionality -> [[Firefox/Go_Faster#Test_Pilot|Use Test Pilot]]<br />
* It is attempting to answer a summary from a segment of our users -> [[Firefox/Go_Faster#Recipe_Server_.28SHIELD_.2B_Variants.29|Use Shield / Recipes]]<br />
* If it is not under rapid development/is unlikely to need out-of-cycle updates.<br />
<br />
=== You might want to consider System Add-ons for ===<br />
<br />
* A confirmed feature (i.e. has been through test pilot) that is still under rapid development<br />
** Would like to be able to ship updates faster than the release train to get a better development/user feedback cycle.<br />
* May need to update parts of it off-cycle, for example:<br />
** e10s rollout needed to be updated off-cycle to push out to different amounts of release populations.<br />
** Form autofill may need to be modified to account for changes in active websites.<br />
* It is being pushed out to older users, for example:<br />
** To try and get them to update<br />
** To fix issues discovered that might block them updating.<br />
* It is being pushed out to fix issues for release users, i.e. replacing the hotfix mechanism.<br />
<br />
=== Additional Considerations ===<br />
<br />
* System add-ons are not just a way to skip the release trains<br />
* System add-ons must be covered well with automated tests to give confidence when shipping<br />
* Testing & release cycles will need to be considered and planned<br />
* Developing within mozilla-central<br />
** Any L10n requirements/changes will be constrained by the existing release train.<br />
** You will need to ensure that any changes are complete at the end of the release train cycle, ready for uplift<br />
**** Hello had lots of feature based development, which wasn't always complete at the end of a cycle.<br />
* Developing outside mozilla-central<br />
** L10n is not constrained by the release train, but the methods used are likely to lead to a smaller proportion of locales having complete localisation<br />
** You're not constrained by release cycles - you can choose when to release to mozilla-central (and then uplift/push to release if required).<br />
** You'll need to consider reviews - Firefox changes typically need to be reviewed by a Firefox peer. Would this be suitable for snapshot based releases?<br />
** There's more flexibility for the build system - you can use npm/libraries and ship only the output to the add-on in mozilla-central<br />
*** Of course, this may change for mozilla-central in the future.<br />
** Hello also had its own "beta" add-on hosted on AMO, for testing out changes with a much smaller population before pushing to mozilla-central<br />
*** There was also a developer channel one for L10n people.<br />
* There should be a way (via metrics, whatever) to assess whether a system add-on was successfully delivered. Both for individual users who report new issues, and to know whether we expect a certain percent of the population to never received it.<br />
** Related: https://public.etherpad-mozilla.org/p/gofaster-measurements</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/When_To_Use_System_Add-ons&diff=1150925Firefox/Go Faster/When To Use System Add-ons2016-10-11T14:23:17Z<p>Standard8: /* When to use System Add-ons */ skip the double title.</p>
<hr />
<div>You should not use a System Add-on if:<br />
<br />
* It is a raw experiment of new functionality -> [[Firefox/Go_Faster#Test_Pilot|Use Test Pilot]]<br />
* It is attempting to answer a summary from a segment of our users -> [[Firefox/Go_Faster#Recipe_Server_.28SHIELD_.2B_Variants.29|Use Shield / Recipes]]<br />
* If it is not under rapid development/is unlikely to need out-of-cycle updates.<br />
<br />
You might want to consider System Add-ons for:<br />
<br />
* A confirmed feature (i.e. has been through test pilot) that is still under rapid development<br />
** Would like to be able to ship updates faster than the release train to get a better development/user feedback cycle.<br />
* May need to update parts of it off-cycle, for example:<br />
** e10s rollout needed to be updated off-cycle to push out to different amounts of release populations.<br />
** Form autofill may need to be modified to account for changes in active websites.<br />
* It is being pushed out to older users, for example:<br />
** To try and get them to update<br />
** To fix issues discovered that might block them updating.<br />
* It is being pushed out to fix issues for release users, i.e. replacing the hotfix mechanism.<br />
<br />
Additional Considerations:<br />
<br />
* System add-ons are not just a way to skip the release trains<br />
* System add-ons must be covered well with automated tests to give confidence when shipping<br />
* Testing & release cycles will need to be considered and planned<br />
* Developing within mozilla-central<br />
** Any L10n requirements/changes will be constrained by the existing release train.<br />
** You will need to ensure that any changes are complete at the end of the release train cycle, ready for uplift<br />
**** Hello had lots of feature based development, which wasn't always complete at the end of a cycle.<br />
* Developing outside mozilla-central<br />
** L10n is not constrained by the release train, but the methods used are likely to lead to a smaller proportion of locales having complete localisation<br />
** You're not constrained by release cycles - you can choose when to release to mozilla-central (and then uplift/push to release if required).<br />
** You'll need to consider reviews - Firefox changes typically need to be reviewed by a Firefox peer. Would this be suitable for snapshot based releases?<br />
** There's more flexibility for the build system - you can use npm/libraries and ship only the output to the add-on in mozilla-central<br />
*** Of course, this may change for mozilla-central in the future.<br />
** Hello also had its own "beta" add-on hosted on AMO, for testing out changes with a much smaller population before pushing to mozilla-central<br />
*** There was also a developer channel one for L10n people.<br />
* There should be a way (via metrics, whatever) to assess whether a system add-on was successfully delivered. Both for individual users who report new issues, and to know whether we expect a certain percent of the population to never received it.<br />
** Related: https://public.etherpad-mozilla.org/p/gofaster-measurements</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster&diff=1150924Firefox/Go Faster2016-10-11T14:22:48Z<p>Standard8: /* Process */ Changed link name.</p>
<hr />
<div>= Overview =<br />
We believe that building out tools and processes for shipping Go Faster add-ons will enable Mozilla's engineers to get features and fixes to a larger audience sooner. We will know this is true when we see widespread adoption of system add-ons as a mechanism for moving faster and updating faster than the standard trains. <br />
<br />
==Team==<br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Laura Thomson || Product Owner<br />
|-<br />
| Cory Price || Program Management<br />
|}<br />
<br />
==KPI's==<br />
* Number of projects using the tools.<br />
* All new features or improvements to existing features validated by go faster by the end 2016.<br />
<br />
==Meetings==<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings Meeting Notes]<br />
* Bi-Weekly Team Meeting<br />
** Every other Tuesday at 11:30 AM PST ([https://www.timeanddate.com/worldclock/converted.html?iso=20151124T0930&p1=224&p2=250&p3=0&p4=195 conversions])<br />
** "GoFaster" Vidyo Room (extension 8557)<br />
<br />
==Communications==<br />
* [https://mail.mozilla.org/listinfo/gofaster Mailing List] (open to all, primarily used for sharing status)<br />
* IRC: #gofaster<br />
<br />
= Release Process and Mechanics =<br />
<br />
== Process ==<br />
<br />
Have something you want to ship through Go Faster?<br />
<br />
Start here:<br />
* [[Firefox/Go Faster/When To Use System Add-ons]]<br />
* [[Firefox/Go Faster/Process]]<br />
<br />
== Mechanics ==<br />
<br />
This page details the technological pieces involved in shipping system add-ons.<br />
<br />
[[Firefox/Go_Faster/Releasing_an_add-on_mechanics|Releasing mechanics]].<br />
<br />
The initial authors of this process are<br />
<br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| needs:owner || Owner<br />
|-<br />
| Mark Banner || Hello/docs<br />
|-<br />
| Ian Bicking || Hello/docs<br />
|-<br />
| Rob Helmer || Client<br />
|-<br />
| Dave Townsend || Client<br />
|-<br />
| Ben Hearsum || Tools<br />
|-<br />
| Ritu Kothari || Tools<br />
|-<br />
| Chris Lonnen || Tools<br />
|-<br />
| Axel Hecht || l10n<br />
|}<br />
<br />
= Projects =<br />
<br />
These are the top-level projects defined for this program.<br />
<br />
== Morgoth ==<br />
<br />
https://wiki.mozilla.org/Firefox/Morgoth<br />
<br />
* Project Owner: Michael Kelly [:Osmose]<br />
* Development: Rehan Dalal [:rdalal], Web Engineering - Systems<br />
* Status: Planning / Implementation<br />
* Scheduled for: 2016 late q2 / q3<br />
<br />
== Kinto ==<br />
<br />
A JSON storage service with synchronisation and sharing abilitie - allows the smart client to retrieve signed data from a dumb server.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Tarek Ziade || Owner<br />
|-<br />
| Mark Goodwin || OneCRL client, PKI work for the signing<br />
|-<br />
| Sebastian || Fennec Client<br />
|-<br />
| Jorge || our customer for the AMO blocklist<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* Tracking document: https://docs.google.com/document/d/1MHQNqJ--GAmNxXl2PODJ-YGU459l6vvDRmf9oEIRTms/edit<br />
* Tool: http://kinto.readthedocs.org<br />
<br />
== Recipe Server (SHIELD + Variants) ==<br />
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Gregg Lind || Owner<br />
|-<br />
| Matt Grimes || Product Manager<br />
|-<br />
| Mike Kelly || Engineering Manager<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* https://wiki.mozilla.org/Firefox/Recipe_Server<br />
<br />
== Test Pilot ==<br />
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Javaun Moradi || Owner<br />
|-<br />
| Cory Price || Program Management<br />
|-<br />
| Wil Clouser || Engineering Manager<br />
|-<br />
| John Gruen || UX Lead<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* https://wiki.mozilla.org/Test_Pilot<br />
<br />
= Shipping Pipeline ( https://trello.com/b/moJCpVCD/go-faster-system-add-on-pipeline ) =<br />
<br />
The `how` for Go Faster are the top-level projects outlined above. The other important things to track are the individual features and fixes that are going to be launching ''through'' Go Faster.<br />
<br />
View the Trello board for a list of System Add-ons in flight.</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/When_To_Use_System_Add-ons&diff=1150923Firefox/Go Faster/When To Use System Add-ons2016-10-11T14:22:19Z<p>Standard8: Initial version of the thoughts from the go faster list.</p>
<hr />
<div>== When to use System Add-ons ==<br />
<br />
You should not use a System Add-on if:<br />
<br />
* It is a raw experiment of new functionality -> [[Firefox/Go_Faster#Test_Pilot|Use Test Pilot]]<br />
* It is attempting to answer a summary from a segment of our users -> [[Firefox/Go_Faster#Recipe_Server_.28SHIELD_.2B_Variants.29|Use Shield / Recipes]]<br />
* If it is not under rapid development/is unlikely to need out-of-cycle updates.<br />
<br />
You might want to consider System Add-ons for:<br />
<br />
* A confirmed feature (i.e. has been through test pilot) that is still under rapid development<br />
** Would like to be able to ship updates faster than the release train to get a better development/user feedback cycle.<br />
* May need to update parts of it off-cycle, for example:<br />
** e10s rollout needed to be updated off-cycle to push out to different amounts of release populations.<br />
** Form autofill may need to be modified to account for changes in active websites.<br />
* It is being pushed out to older users, for example:<br />
** To try and get them to update<br />
** To fix issues discovered that might block them updating.<br />
* It is being pushed out to fix issues for release users, i.e. replacing the hotfix mechanism.<br />
<br />
Additional Considerations:<br />
<br />
* System add-ons are not just a way to skip the release trains<br />
* System add-ons must be covered well with automated tests to give confidence when shipping<br />
* Testing & release cycles will need to be considered and planned<br />
* Developing within mozilla-central<br />
** Any L10n requirements/changes will be constrained by the existing release train.<br />
** You will need to ensure that any changes are complete at the end of the release train cycle, ready for uplift<br />
**** Hello had lots of feature based development, which wasn't always complete at the end of a cycle.<br />
* Developing outside mozilla-central<br />
** L10n is not constrained by the release train, but the methods used are likely to lead to a smaller proportion of locales having complete localisation<br />
** You're not constrained by release cycles - you can choose when to release to mozilla-central (and then uplift/push to release if required).<br />
** You'll need to consider reviews - Firefox changes typically need to be reviewed by a Firefox peer. Would this be suitable for snapshot based releases?<br />
** There's more flexibility for the build system - you can use npm/libraries and ship only the output to the add-on in mozilla-central<br />
*** Of course, this may change for mozilla-central in the future.<br />
** Hello also had its own "beta" add-on hosted on AMO, for testing out changes with a much smaller population before pushing to mozilla-central<br />
*** There was also a developer channel one for L10n people.<br />
* There should be a way (via metrics, whatever) to assess whether a system add-on was successfully delivered. Both for individual users who report new issues, and to know whether we expect a certain percent of the population to never received it.<br />
** Related: https://public.etherpad-mozilla.org/p/gofaster-measurements</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster&diff=1150916Firefox/Go Faster2016-10-11T14:06:28Z<p>Standard8: /* Process */ Add a why page</p>
<hr />
<div>= Overview =<br />
We believe that building out tools and processes for shipping Go Faster add-ons will enable Mozilla's engineers to get features and fixes to a larger audience sooner. We will know this is true when we see widespread adoption of system add-ons as a mechanism for moving faster and updating faster than the standard trains. <br />
<br />
==Team==<br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Laura Thomson || Product Owner<br />
|-<br />
| Cory Price || Program Management<br />
|}<br />
<br />
==KPI's==<br />
* Number of projects using the tools.<br />
* All new features or improvements to existing features validated by go faster by the end 2016.<br />
<br />
==Meetings==<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings Meeting Notes]<br />
* Bi-Weekly Team Meeting<br />
** Every other Tuesday at 11:30 AM PST ([https://www.timeanddate.com/worldclock/converted.html?iso=20151124T0930&p1=224&p2=250&p3=0&p4=195 conversions])<br />
** "GoFaster" Vidyo Room (extension 8557)<br />
<br />
==Communications==<br />
* [https://mail.mozilla.org/listinfo/gofaster Mailing List] (open to all, primarily used for sharing status)<br />
* IRC: #gofaster<br />
<br />
= Release Process and Mechanics =<br />
<br />
== Process ==<br />
<br />
Have something you want to ship through Go Faster?<br />
<br />
Start here:<br />
* [[Firefox/Go Faster/Why Use System Add-ons]]<br />
* [[Firefox/Go Faster/Process]]<br />
<br />
== Mechanics ==<br />
<br />
This page details the technological pieces involved in shipping system add-ons.<br />
<br />
[[Firefox/Go_Faster/Releasing_an_add-on_mechanics|Releasing mechanics]].<br />
<br />
The initial authors of this process are<br />
<br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| needs:owner || Owner<br />
|-<br />
| Mark Banner || Hello/docs<br />
|-<br />
| Ian Bicking || Hello/docs<br />
|-<br />
| Rob Helmer || Client<br />
|-<br />
| Dave Townsend || Client<br />
|-<br />
| Ben Hearsum || Tools<br />
|-<br />
| Ritu Kothari || Tools<br />
|-<br />
| Chris Lonnen || Tools<br />
|-<br />
| Axel Hecht || l10n<br />
|}<br />
<br />
= Projects =<br />
<br />
These are the top-level projects defined for this program.<br />
<br />
== Morgoth ==<br />
<br />
https://wiki.mozilla.org/Firefox/Morgoth<br />
<br />
* Project Owner: Michael Kelly [:Osmose]<br />
* Development: Rehan Dalal [:rdalal], Web Engineering - Systems<br />
* Status: Planning / Implementation<br />
* Scheduled for: 2016 late q2 / q3<br />
<br />
== Kinto ==<br />
<br />
A JSON storage service with synchronisation and sharing abilitie - allows the smart client to retrieve signed data from a dumb server.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Tarek Ziade || Owner<br />
|-<br />
| Mark Goodwin || OneCRL client, PKI work for the signing<br />
|-<br />
| Sebastian || Fennec Client<br />
|-<br />
| Jorge || our customer for the AMO blocklist<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* Tracking document: https://docs.google.com/document/d/1MHQNqJ--GAmNxXl2PODJ-YGU459l6vvDRmf9oEIRTms/edit<br />
* Tool: http://kinto.readthedocs.org<br />
<br />
== Recipe Server (SHIELD + Variants) ==<br />
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Gregg Lind || Owner<br />
|-<br />
| Matt Grimes || Product Manager<br />
|-<br />
| Mike Kelly || Engineering Manager<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* https://wiki.mozilla.org/Firefox/Recipe_Server<br />
<br />
== Test Pilot ==<br />
A system that provides a fast and powerful way for Firefox to fix configuration problems, interact with users, and recommend features.<br />
<br />
<big>'''Team'''</big><br />
{| class="wikitable"<br />
|-<br />
! Name !! Role<br />
|-<br />
| Javaun Moradi || Owner<br />
|-<br />
| Cory Price || Program Management<br />
|-<br />
| Wil Clouser || Engineering Manager<br />
|-<br />
| John Gruen || UX Lead<br />
|}<br />
<br />
<big>'''Resources'''</big><br />
* https://wiki.mozilla.org/Test_Pilot<br />
<br />
= Shipping Pipeline ( https://trello.com/b/moJCpVCD/go-faster-system-add-on-pipeline ) =<br />
<br />
The `how` for Go Faster are the top-level projects outlined above. The other important things to track are the individual features and fixes that are going to be launching ''through'' Go Faster.<br />
<br />
View the Trello board for a list of System Add-ons in flight.</div>Standard8https://wiki.mozilla.org/index.php?title=Loop&diff=1148175Loop2016-09-19T12:42:12Z<p>Standard8: Fix the template!</p>
<hr />
<div>{{blackboxwarning|<br />
Firefox Hello (aka Loop) is being [https://support.mozilla.org/kb/hello-status shutdown from Firefox 49].<br />These pages serve as an archive and reference.<br />
}}<br />
<br />
__TOC__<br />
<br />
Loop is the codename for the [https://www.mozilla.org/firefox/hello/ Firefox Hello] project.<br />
<br />
= Overview =<br />
<br />
The Hello project (code name Loop) started as a video calling solution built into the browser (experience up until FF44) and has now pivoted to addressing Firefox user needs to share Web content. We’ll do so by providing a simple solution which blends web browsing, real-time communication, collaboration and content storage.<br />
<br />
Hello uses an incremental delivery approach building on top of an initial basic implementation which will focus on real-time sharing.<br />
Moving forward we’ll extend this first implementation with the following capabilities:<br /><br />
- Asynchronous interactions<br /><br />
- Real-time collaboration<br /><br />
- Mobile support<br /><br />
<br />
Hello is delivered as a Go Faster system add-on since Firefox 45, Hello releases therefore don't follow the train model.<br />
<br />
Additional features will be prioritized and implemented as we progress development and collect user feedback to help shape what will provide the greatest value to our users.<br />
<br />
== Bug List ==<br />
<br />
* Bugs are filed in the "Hello (Loop)" product in Bugzilla.<br />
* Queries to bugs in our [https://wiki.mozilla.org/Firefox/Iterative_Hello_Development#Product_Backlog Backlog]<br />
<br />
= Core Team =<br />
<br />
* Romain Testard - Product Manager IRC: RT<br />
* Adam Roach - Technical Architecture Lead IRC: abr<br />
* Ian Bicking - Engineering Manager IRC: ianbicking<br />
* Shell Escalante - Engineering Program Manager IRC: shell<br />
* Mark Banner - Engineering / Technical Lead IRC: standard8<br />
* Dan Mosedale - Engineering / Front-end IRC: dmose<br />
* Mike deBoer - Engineering / Front-end IRC: mikedeboer<br />
* Sevaan Franks - UX Lead Mozilla IRC: sevaan<br />
* Pau Masia Martinez - UX Tef IRC: pau<br />
* Michael Sanders - TokBox EPM, PM<br />
* Alexis Metaireau - Engineering / Server <br />
* Remy Hubscher - Engineering / Server<br />
* Jose A. Olivera - Tef Engineering PM<br />
* Bob Micheletto - Engineering / Operations<br />
* Richard Pappalardo - Engineering / Test<br />
* Fabio Rios - Marketing<br />
<br />
= Documentation =<br />
<br />
* [[Loop/Development]] - Get started with Loop development<br />
* [[Loop/Architecture]] - Technical documentation of overall system<br />
* [[Loop/Architecture/MVP]] - Initial design for MVP-level product<br />
* [[Loop/Architecture/Rooms]] - Initial design for room ("conversation")-based user experience<br />
* [[Loop/Architecture/Context]] - Preliminary design for encrypted room context (name, description, etc)<br />
* [[Loop/Desktop & Standalon/Code Style & Structure]]<br />
* [[Loop/Data Collection]] - Information to collect about the functioning of the system<br />
* [[Loop/Loop-client_Release_Process]] - Information on the loop-client release cycle and release process<br />
* [[Loop/UX]] - Documentation of targeted User Experience<br />
* [[Loop/Test]] - Loop testing reference / QA<br />
* [[Loop/Automated Testing]] - Loop automated testing reference<br />
* [[Loop/Logging]] - What we need to know in case of failure to make calls. <br />
* [[Loop/Load Handling]] - Our plan for managing initial server load<br />
* [https://docs.services.mozilla.com/loop/apis.html Loop server API] - Documentation of the REST API used by the Loop server<br />
* [[Loop/OAuth Setup]] - Information about adding OAuth client credentials to Firefox<br />
* [[Loop/Reporting]] - Dashboards and Reporting<br />
* [[Loop/Try_Loop]] Older page on getting started with loop<br />
* [[Loop/Library Upgrades]]<br />
<br />
<br />
[tbd -- other artifacts as they become available]<br />
<br />
= Cross-Team Project Calendar =<br />
{{#widget:Widget:Google Calendar<br />
|id=bW96aWxsYS5jb21fNTY0NW1uMWpnamQ5aG8zaXNodHRodnQybHNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ<br />
}}<br />
<br />
= Communication Channels =<br />
<br />
* [[IRC]]: [irc://irc.mozilla.org/loop #loop on irc.mozilla.org] (Use [irc://irc.mozilla.org/media #media on irc.mozilla.org] for WebRTC discussion)<br />
* [[IRC]]: [irc://irc.mozilla.org/loop-server #loop-server on irc.mozilla.org]<br />
* [https://lists.mozilla.org/listinfo/dev-media dev-media Discussion List]<br />
<br />
[[Category:Firefox Hello]]<br />
[[Category:Loop]]<br />
<br />
== Standing Meetings ==<br />
* Watch [https://lists.mozilla.org/listinfo/dev-media dev-media] for new information.<br />
<p> </p><br />
{| class="wikitable"<br />
|-<br />
! Meeting !! Day of week !! Pacific Time !! Eastern Time !! Central European Time !! Vidyo Room !! Notes<br />
|-<br />
| "Daily Stand-up" || Monday, Tuesday, Wednesday, Thursday || 8:00AM - 8:30AM || 11:00AM - 11:30PM || 5:00PM - 5:30PM || webRTC-Apps || ||]<br />
|-<br />
| "Retrospective" || Friday || 8:00AM - 9:00AM || 11:00AM - 12:00PM || 5:00PM - 6:00PM || webRTC-Apps || [https://etherpad.mozilla.org/loop-retrospectives etherpad]<br />
|-<br />
| "Cross team alignment" || Tuesday || 11:30AM - 12:00PM || 2:30AM - 3:00PM || || || <br />
|}<br />
<br />
<p> </p><br />
==[https://wiki.mozilla.org/Loop/wiki Links to current info]==<br />
[https://wiki.mozilla.org/Loop/wiki Loop/wiki] page is the central location for current focus, Roadmap, Metrics, UX, Marketing, and more.<br />
=Triage=<br />
<p> </p><br />
The goals of the Prioritized Product Backlog and dynamic Planning are to:<br />
*Simplify prioritization & planning so the team is always working on the most important features.<br />
*Improve visibility to everyone to clear priorities - so we make the best decisions about the direction of the product (call out risks early, relative priorities, trade-offs).<p> </p><br />
<br />
==Key Bugzilla Queries==<br />
* [http://mzl.la/1KZGqPm Bugzilla Ranked list] <br />
**Searches all Hello bugs with Ranks Assigned<br />
*[http://mzl.la/1PEmKj8 Triage: Prioritized Bugs without Rank set]<br />
* [http://mzl.la/1JBkwev Triage: Bugs without Rank or Priority]<br />
* [https://bugzilla.mozilla.org/buglist.cgi?f1=status_whiteboard&list_id=12373638&columnlist=cf_fx_iteration%2Ccf_fx_points%2Cassigned_to%2Cbug_status%2Cstatus_whiteboard%2Cshort_desc%2Cchangeddate%2Cpriority%2Cbug_severity%2Cresolution%2Ccomponent%2Creporter&o1=anywordssubstr&resolution=---&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&v1=tech-debt&component=Client&component=General&product=Hello%20%28Loop%29 Tech-debt bugs]<br />
<br />
==Triage Guidelines==<br />
The Product Backlog is continually maintained by the Hello Management team to ensure new priorities are available for each Sprint Planning meeting.<br />
* Priorities: if you are filing a bug - based on your knowledge of the bug feel free to set a priority for consideration based on the following criteria:<br />
** Priority 1 - Blocker, must-fix before shipping in the next release. <br />
** Priority 2 - Major impact, considering severity × probability. Not a blocker for shipping.<br />
** Priority 3 - Average Bug. definitely a problem, but doesn't stop someone from using the product. <br />
** Priority 4 - Minor or polish bugs that are real issues (especially in aggregate) and annoying.<br />
** Priority 5 - Low-impact. something we'd fix, but mostly only bothers the discerning user. Little impact on usability.<br />
<br />
*RANK: Not needed when filing a bug, set during weekly Triage meetings. As priority buckets start to have a large amount of bugs in them, the Rank field can be used to sort easily in bugzilla. To have some rhyme/reason to the order - Rank should relate to Priority. The "Ranking" number does not need to be unique. Unless there is a reason to for a bug to be considered before (or after) others in the Priority bucket - use default<br />
** P1 Rank options=1-10, '''default 5'''<br />
** P2 Rank options=11-29, '''default 25'''<br />
** P3 Rank options=30-39, '''default 35'''<br />
** P4 Rank options=40-49, '''default 45'''<br />
** P5 Rank options=50-59, '''default 55'''<br />
** any that we don't think we can get to in the next 6 months should be set to 100<br />
<br />
<p> </p><br />
*QE-Verify is a flag that developers should be setting on bugs they are working on. This is used for QE to filter which bugs they check<br />
**"+" means that QE should look at the bug and it can be verified with human eyes<br />
**"-" means QE should not look at<br />
***Typically goes with in-testsuite set to "+", to show testing via another method.<br />
*"Points" should be set when known (if nothing set - assumed a "1" or very small). Most relevant if taking a bigger bug so we know when bugs are large bits of work.<br />
*"Iteration" should be updated when a bug is being worked on during a particular Sprint.<br />
<br />
===Filing a bug===<br />
* Open a bug under Product:"(Hello)Loop" || Component: "General" or "Client"<br />
**We triage weekly - it helps if there is a priority as a starting point and a reason <br />
<p> </p><br />
<br />
===Definition of Done===<br />
<p> </p><br />
* The [https://etherpad.mozilla.org/HsVyzOogAr Definition of Done] ensures a potentially shippable product increment is released at the conclusion of a release cycle.<br />
<p> </p><br />
* A potentially shippable product increment means compliance with the work's individual acceptance criteria and not the full story under development.<br />
<p> </p><br />
<br />
===Themes===<br />
As we plan what's coming next, these are areas being discussed. This is not a commitment to the next projects - just our scratch area.<br />
<br />
Things we want to do - but parking lot until the highest priorities are done:<br />
*New User Journey - which is moving to starting from '''[https://bugzilla.mozilla.org/show_bug.cgi?id=1209713 web sharing]'''<br />
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1223573 '''add-ons''']: moving Hello from browser integrated to an add-on in order to reduce delay between development and release and testing flexibility<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1048850 '''e10s''']: not sure if this is coming in 45 or 46 - but trying to get this resolved as its in Beta in 44<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1178304 '''Facebook'''] improvement<br />
*Quality<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1187857 Shared '''Pointers''']<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1186905 Independent '''scrolling''']<br />
*Metrics [https://bugzilla.mozilla.org/show_bug.cgi?id=1148381 bug 1148381]<br />
*Android experience improvements<br />
*WebRTC permission prompt optimization</div>Standard8https://wiki.mozilla.org/index.php?title=Loop&diff=1148174Loop2016-09-19T12:39:04Z<p>Standard8: Attempt to add warning notice</p>
<hr />
<div>{{blackboxwarning|<br />
Firefox Hello / Loop is being [https://support.mozilla.org/en-US/kb/hello-status?as=u&utm_source=inproduct shutdown from Firefox 49].<br />These pages serve as an archive/reference.<br />
}}<br />
<br />
__TOC__<br />
<br />
Loop is the codename for the [https://www.mozilla.org/firefox/hello/ Firefox Hello] project.<br />
<br />
= Overview =<br />
<br />
The Hello project (code name Loop) started as a video calling solution built into the browser (experience up until FF44) and has now pivoted to addressing Firefox user needs to share Web content. We’ll do so by providing a simple solution which blends web browsing, real-time communication, collaboration and content storage.<br />
<br />
Hello uses an incremental delivery approach building on top of an initial basic implementation which will focus on real-time sharing.<br />
Moving forward we’ll extend this first implementation with the following capabilities:<br /><br />
- Asynchronous interactions<br /><br />
- Real-time collaboration<br /><br />
- Mobile support<br /><br />
<br />
Hello is delivered as a Go Faster system add-on since Firefox 45, Hello releases therefore don't follow the train model.<br />
<br />
Additional features will be prioritized and implemented as we progress development and collect user feedback to help shape what will provide the greatest value to our users.<br />
<br />
== Bug List ==<br />
<br />
* Bugs are filed in the "Hello (Loop)" product in Bugzilla.<br />
* Queries to bugs in our [https://wiki.mozilla.org/Firefox/Iterative_Hello_Development#Product_Backlog Backlog]<br />
<br />
= Core Team =<br />
<br />
* Romain Testard - Product Manager IRC: RT<br />
* Adam Roach - Technical Architecture Lead IRC: abr<br />
* Ian Bicking - Engineering Manager IRC: ianbicking<br />
* Shell Escalante - Engineering Program Manager IRC: shell<br />
* Mark Banner - Engineering / Technical Lead IRC: standard8<br />
* Dan Mosedale - Engineering / Front-end IRC: dmose<br />
* Mike deBoer - Engineering / Front-end IRC: mikedeboer<br />
* Sevaan Franks - UX Lead Mozilla IRC: sevaan<br />
* Pau Masia Martinez - UX Tef IRC: pau<br />
* Michael Sanders - TokBox EPM, PM<br />
* Alexis Metaireau - Engineering / Server <br />
* Remy Hubscher - Engineering / Server<br />
* Jose A. Olivera - Tef Engineering PM<br />
* Bob Micheletto - Engineering / Operations<br />
* Richard Pappalardo - Engineering / Test<br />
* Fabio Rios - Marketing<br />
<br />
= Documentation =<br />
<br />
* [[Loop/Development]] - Get started with Loop development<br />
* [[Loop/Architecture]] - Technical documentation of overall system<br />
* [[Loop/Architecture/MVP]] - Initial design for MVP-level product<br />
* [[Loop/Architecture/Rooms]] - Initial design for room ("conversation")-based user experience<br />
* [[Loop/Architecture/Context]] - Preliminary design for encrypted room context (name, description, etc)<br />
* [[Loop/Desktop & Standalon/Code Style & Structure]]<br />
* [[Loop/Data Collection]] - Information to collect about the functioning of the system<br />
* [[Loop/Loop-client_Release_Process]] - Information on the loop-client release cycle and release process<br />
* [[Loop/UX]] - Documentation of targeted User Experience<br />
* [[Loop/Test]] - Loop testing reference / QA<br />
* [[Loop/Automated Testing]] - Loop automated testing reference<br />
* [[Loop/Logging]] - What we need to know in case of failure to make calls. <br />
* [[Loop/Load Handling]] - Our plan for managing initial server load<br />
* [https://docs.services.mozilla.com/loop/apis.html Loop server API] - Documentation of the REST API used by the Loop server<br />
* [[Loop/OAuth Setup]] - Information about adding OAuth client credentials to Firefox<br />
* [[Loop/Reporting]] - Dashboards and Reporting<br />
* [[Loop/Try_Loop]] Older page on getting started with loop<br />
* [[Loop/Library Upgrades]]<br />
<br />
<br />
[tbd -- other artifacts as they become available]<br />
<br />
= Cross-Team Project Calendar =<br />
{{#widget:Widget:Google Calendar<br />
|id=bW96aWxsYS5jb21fNTY0NW1uMWpnamQ5aG8zaXNodHRodnQybHNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ<br />
}}<br />
<br />
= Communication Channels =<br />
<br />
* [[IRC]]: [irc://irc.mozilla.org/loop #loop on irc.mozilla.org] (Use [irc://irc.mozilla.org/media #media on irc.mozilla.org] for WebRTC discussion)<br />
* [[IRC]]: [irc://irc.mozilla.org/loop-server #loop-server on irc.mozilla.org]<br />
* [https://lists.mozilla.org/listinfo/dev-media dev-media Discussion List]<br />
<br />
[[Category:Firefox Hello]]<br />
[[Category:Loop]]<br />
<br />
== Standing Meetings ==<br />
* Watch [https://lists.mozilla.org/listinfo/dev-media dev-media] for new information.<br />
<p> </p><br />
{| class="wikitable"<br />
|-<br />
! Meeting !! Day of week !! Pacific Time !! Eastern Time !! Central European Time !! Vidyo Room !! Notes<br />
|-<br />
| "Daily Stand-up" || Monday, Tuesday, Wednesday, Thursday || 8:00AM - 8:30AM || 11:00AM - 11:30PM || 5:00PM - 5:30PM || webRTC-Apps || ||]<br />
|-<br />
| "Retrospective" || Friday || 8:00AM - 9:00AM || 11:00AM - 12:00PM || 5:00PM - 6:00PM || webRTC-Apps || [https://etherpad.mozilla.org/loop-retrospectives etherpad]<br />
|-<br />
| "Cross team alignment" || Tuesday || 11:30AM - 12:00PM || 2:30AM - 3:00PM || || || <br />
|}<br />
<br />
<p> </p><br />
==[https://wiki.mozilla.org/Loop/wiki Links to current info]==<br />
[https://wiki.mozilla.org/Loop/wiki Loop/wiki] page is the central location for current focus, Roadmap, Metrics, UX, Marketing, and more.<br />
=Triage=<br />
<p> </p><br />
The goals of the Prioritized Product Backlog and dynamic Planning are to:<br />
*Simplify prioritization & planning so the team is always working on the most important features.<br />
*Improve visibility to everyone to clear priorities - so we make the best decisions about the direction of the product (call out risks early, relative priorities, trade-offs).<p> </p><br />
<br />
==Key Bugzilla Queries==<br />
* [http://mzl.la/1KZGqPm Bugzilla Ranked list] <br />
**Searches all Hello bugs with Ranks Assigned<br />
*[http://mzl.la/1PEmKj8 Triage: Prioritized Bugs without Rank set]<br />
* [http://mzl.la/1JBkwev Triage: Bugs without Rank or Priority]<br />
* [https://bugzilla.mozilla.org/buglist.cgi?f1=status_whiteboard&list_id=12373638&columnlist=cf_fx_iteration%2Ccf_fx_points%2Cassigned_to%2Cbug_status%2Cstatus_whiteboard%2Cshort_desc%2Cchangeddate%2Cpriority%2Cbug_severity%2Cresolution%2Ccomponent%2Creporter&o1=anywordssubstr&resolution=---&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&v1=tech-debt&component=Client&component=General&product=Hello%20%28Loop%29 Tech-debt bugs]<br />
<br />
==Triage Guidelines==<br />
The Product Backlog is continually maintained by the Hello Management team to ensure new priorities are available for each Sprint Planning meeting.<br />
* Priorities: if you are filing a bug - based on your knowledge of the bug feel free to set a priority for consideration based on the following criteria:<br />
** Priority 1 - Blocker, must-fix before shipping in the next release. <br />
** Priority 2 - Major impact, considering severity × probability. Not a blocker for shipping.<br />
** Priority 3 - Average Bug. definitely a problem, but doesn't stop someone from using the product. <br />
** Priority 4 - Minor or polish bugs that are real issues (especially in aggregate) and annoying.<br />
** Priority 5 - Low-impact. something we'd fix, but mostly only bothers the discerning user. Little impact on usability.<br />
<br />
*RANK: Not needed when filing a bug, set during weekly Triage meetings. As priority buckets start to have a large amount of bugs in them, the Rank field can be used to sort easily in bugzilla. To have some rhyme/reason to the order - Rank should relate to Priority. The "Ranking" number does not need to be unique. Unless there is a reason to for a bug to be considered before (or after) others in the Priority bucket - use default<br />
** P1 Rank options=1-10, '''default 5'''<br />
** P2 Rank options=11-29, '''default 25'''<br />
** P3 Rank options=30-39, '''default 35'''<br />
** P4 Rank options=40-49, '''default 45'''<br />
** P5 Rank options=50-59, '''default 55'''<br />
** any that we don't think we can get to in the next 6 months should be set to 100<br />
<br />
<p> </p><br />
*QE-Verify is a flag that developers should be setting on bugs they are working on. This is used for QE to filter which bugs they check<br />
**"+" means that QE should look at the bug and it can be verified with human eyes<br />
**"-" means QE should not look at<br />
***Typically goes with in-testsuite set to "+", to show testing via another method.<br />
*"Points" should be set when known (if nothing set - assumed a "1" or very small). Most relevant if taking a bigger bug so we know when bugs are large bits of work.<br />
*"Iteration" should be updated when a bug is being worked on during a particular Sprint.<br />
<br />
===Filing a bug===<br />
* Open a bug under Product:"(Hello)Loop" || Component: "General" or "Client"<br />
**We triage weekly - it helps if there is a priority as a starting point and a reason <br />
<p> </p><br />
<br />
===Definition of Done===<br />
<p> </p><br />
* The [https://etherpad.mozilla.org/HsVyzOogAr Definition of Done] ensures a potentially shippable product increment is released at the conclusion of a release cycle.<br />
<p> </p><br />
* A potentially shippable product increment means compliance with the work's individual acceptance criteria and not the full story under development.<br />
<p> </p><br />
<br />
===Themes===<br />
As we plan what's coming next, these are areas being discussed. This is not a commitment to the next projects - just our scratch area.<br />
<br />
Things we want to do - but parking lot until the highest priorities are done:<br />
*New User Journey - which is moving to starting from '''[https://bugzilla.mozilla.org/show_bug.cgi?id=1209713 web sharing]'''<br />
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1223573 '''add-ons''']: moving Hello from browser integrated to an add-on in order to reduce delay between development and release and testing flexibility<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1048850 '''e10s''']: not sure if this is coming in 45 or 46 - but trying to get this resolved as its in Beta in 44<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1178304 '''Facebook'''] improvement<br />
*Quality<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1187857 Shared '''Pointers''']<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1186905 Independent '''scrolling''']<br />
*Metrics [https://bugzilla.mozilla.org/show_bug.cgi?id=1148381 bug 1148381]<br />
*Android experience improvements<br />
*WebRTC permission prompt optimization</div>Standard8https://wiki.mozilla.org/index.php?title=Add-ons/Extension_Signing&diff=1142503Add-ons/Extension Signing2016-08-03T12:54:12Z<p>Standard8: /* FAQ */ Change link to the same page, to an internal wiki link to avoid extra page loads</p>
<hr />
<div>Mozilla now requires all extensions to be signed by Mozilla in order for them to be installable in Release and Beta versions of Firefox. Signing will be done through [http://addons.mozilla.org/ addons.mozilla.org (AMO)] and will be mandatory for all extensions, regardless of where they are hosted.<br />
<br />
== Documentation ==<br />
* [http://blog.mozilla.org/addons/2015/02/10/extension-signing-safer-experience/ Introducing Extension Signing], Add-ons Blog.<br />
* [https://blog.mozilla.org/addons/2015/04/15/the-case-for-extension-signing/ The Case for Extension Signing], Add-ons Blog.<br />
* [https://bugzilla.mozilla.org/show_bug.cgi?id=signed-addons Main tracking bug].<br />
<br />
== Timeline ==<br />
Check the [[RapidRelease/Calendar|Firefox Release Calendar]] for specific dates. The following timelines are for Desktop:<br />
<br />
* '''Firefox 40-42''': Firefox warns about signatures but doesn't enforce them.<br />
* '''Firefox 43''': Firefox enforces the use of signatures by default, but has a preference that allows signature enforcement to be disabled (''xpinstall.signatures.required'' in about:config).<br />
* '''Firefox 48''': (Pushed from Firefox 46). Release and Beta versions of Firefox for Desktop will not allow unsigned extensions to be installed, with no override. Firefox for Android will enforce add-on signing, and will retain a preference &mdash; which will be removed in a future release &mdash; to allow the user to disable signing enforcement.<br />
<br />
The first ESR version to include signing support will be the Firefox ESR 52 release. <br />
<br />
All Firefox extensions - for Desktop and Android - on AMO that have passed review are now signed.<br />
<br />
For unlisted (non-AMO) add-ons, submission and signing is active through [https://addons.mozilla.org AMO], and there is a [https://blog.mozilla.org/addons/2015/11/20/signing-api-now-available/ Signing API available] for automated submission and retrieval of unlisted addons.<br />
<br />
== Unbranded Builds ==<br />
<br />
Unbranded builds are available from the continuous integration builds on archive.mozilla.org. Links to the latest beta and release builds, as well as the root directories for those treeherder builds are below, and subdirectories are named from the epoch timestamp of when the build was generated.<br />
<br />
'''Note:''' We’re aware of a problem with the builds where they’re getting updated to branded releases/betas. We’re looking into it in [https://bugzilla.mozilla.org/show_bug.cgi?id=1290548 bug 1290548]. A workaround for this while we correct the issue is to create a separate profile for testing, toggle app.update.enabled to false in that profile, and then install the unbranded build using that profile for add-on testing.<br />
<br />
=== Latest Builds ===<br />
<br />
'''Release builds'''<br />
<br />
Latest release (pending - Firefox 48) builds: '''Incoming Aug 2, 2016'''<br />
<br />
'''Beta builds'''<br />
<br />
Latest beta (48b10) builds:<br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-linux64-add-on-devel/1469251868/firefox-48.0.en-US.linux-x86_64-add-on-devel.tar.bz2 Linux Installer] ([http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-linux64-add-on-devel/1469251868/ build directory]) <br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-macosx64-add-on-devel/1469251868/firefox-48.0.en-US.mac64-add-on-devel.dmg Mac OSX Installer] ([http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-macosx64-add-on-devel/1469251868/ build directory]) <br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-win32-add-on-devel/1469251868/firefox-48.0.en-US.win32-add-on-devel.installer.exe Windows 32-bit Installer] ([http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-win32-add-on-devel/1469251868/ build directory)] <br />
*[http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-win64-add-on-devel/1469251868/firefox-48.0.en-US.win64-add-on-devel.installer.exe Windows 64-bit Installer] ([http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-win64-add-on-devel/1469251868/ build directory])<br />
<br />
=== Treeherder Root Directories ===<br />
<br />
'''Release'''<br />
<br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-release-linux64-add-on-devel/ Linux]<br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-release-macosx64-add-on-devel/ Mac OSX]<br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-release-win32-add-on-devel/ Windows 32-bit]<br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-release-win64-add-on-devel/ Windows 64-bit]<br />
<br />
'''Beta'''<br />
<br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-linux64-add-on-devel/ Linux]<br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-macosx64-add-on-devel/ OSX]<br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-win32-add-on-devel/ Windows 32-bit]<br />
* [http://archive.mozilla.org/pub/firefox/tinderbox-builds/mozilla-beta-win64-add-on-devel/ Windows 64-bit]<br />
<br />
== FAQ ==<br />
* Which add-on types will need to be signed?<br />
** Only extensions ([https://developer.mozilla.org/en-US/Add-ons/Install_Manifests#type type 2] in install.rdf). Themes, dictionaries, language packs, and plugins don't need to be signed.<br />
<br />
* Will other applications like Thunderbird, Seamonkey, Palemoon, etc. require extensions to be signed?<br />
** The leaders of each of those projects will decide if they want to enforce signing, keep it as a setting, or deactivate it by default. We haven't heard about any other applications planning to support this.<br />
<br />
* Will signed extensions work on other applications or older versions of Firefox?<br />
** Yes, the signature system is built on top of the [https://developer.mozilla.org/en-US/docs/Signing_a_XPI existing add-on signing feature], which has been supported in Firefox and other applications.<br />
<br />
* Will there be a setting or other overrides to disable signature checks?<br />
** Firefox Release and Beta versions will not have any way to disable signature checks. Signature checks can be disabled in other versions, as described in detail below.<br />
<br />
* What are my options if I want to install unsigned extensions in Firefox?<br />
** The [https://www.mozilla.org/firefox/developer/ Developer Edition] and [https://nightly.mozilla.org/ Nightly] versions of Firefox will have a setting to disable signature enforcement. There are also be special [https://wiki.mozilla.org/Add-ons/Extension_Signing#Unbranded_Builds unbranded versions of Release and Beta] that will have this setting (see , so that add-on developers can work on their add-ons without having to sign every build. To disable signature checks, you will need to set the <code>xpinstall.signatures.required</code> preference to "false".<br />
*** type <code>about:config</code> into the URL bar in Firefox<br />
*** in the Search box type <code>xpinstall.signatures.required</code><br />
*** double-click the preference, or right-click and selected "Toggle", to set it to <code>false</code>.<br />
<br />
* How will the [[Add-ons/Extension_Signing#Unbranded_Builds|unbranded versions of Firefox]] work?<br />
** They work just like Firefox, with two differences: they will have a setting to disable mandatory signature checks, and they will not have the Firefox name and logo (instead using a generic name and logo). These builds are available in the en-US locale only.<br />
<br />
* What about private add-ons used in enterprise environments?<br />
** The ESR release will support signing starting with version 45-based releases. Signing enforcement will be enabled by default in these releases, and enforcement can be disabled using the <code>xpinstall.signatures.required</code> preference.<br />
<br />
* How do I get my add-ons signed if they are hosted on addons.mozilla.org (AMO)?<br />
** No action is required. We automatically signed reviewed versions of all add-ons currently hosted on AMO. All new versions will be signed automatically after they pass review. <br />
<br />
* How do I get my add-ons signed if they are not hosted on addons.mozilla.org (AMO)?<br />
** You will need to create an AMO account and submit your add-on. There will be an option where you indicate the add-on won't be listed on AMO, and you'll be able to submit your add-on files without having them published on the site. Please read the [https://developer.mozilla.org/en-US/Add-ons/Distribution Distribution Policy] for more details.<br />
** You can also use the [https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/jpm#jpm_sign jpm sign] command to generate a signed XPI that can be self-hosted.<br />
** There is an [http://olympia.readthedocs.org/en/latest/topics/api/signing.html API you can use] for signing.<br />
<br />
* How does the signing process work for unlisted add-ons?<br />
** For unlisted add-ons, files submitted for signing will go through an automated review process. If they pass this review, they are automatically signed and a download link is sent back to the developer. This process should normally take seconds. If the file doesn't pass review, the developer will have the option to request a manual review, which should take less than two days. This is not the same process that currently applies to AMO add-ons, which has been typically slower.<br />
** There is an [http://olympia.readthedocs.org/en/latest/topics/api/signing.html API you can use] for signing.<br />
<br />
* What about [https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Maintenance#How_do_I_submit_a_Beta_add-on.3F Beta versions on AMO]? Will they be reviewed and signed?<br />
** Yes. Beta versions will be treated like non-AMO add-ons. They will be automatically validated and signed if they pass validation.<br />
<br />
* Will I need to sign the custom version of an existing add-on I created with my own code changes, locale additions, etc.?<br />
** If you use it on Release or Beta, yes. You will also need to change the add-on ID in order to submit it for signing.<br />
<br />
* Is this a way for Mozilla to censor add-ons they don't like, enforce copyright, government demands, etc.?<br />
** No, the purpose of this is to protect users from malicious add-ons. We have [https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines clear guidelines] for when it is appropriate to blocklist an add-on and have refused multiple times to block for other reasons.<br />
<br />
* Will there be an upload and signing API so I don't have to manually upload each new version of the add-on?<br />
** Yes. The [http://olympia.readthedocs.org/en/latest/topics/api/signing.html signing API is documented here].<br />
<br />
* Will this protect users against all forms of add-on malware?<br />
** No, there is no perfect solution for this. Fighting malware requires defenses on many levels: operating system,, application, user, and even industry. Extension signing is a big step in protecting Firefox against malicious add-ons, but there is much more to do in other fronts to ensure the best experience for our users.<br />
<br />
== Further discussion ==<br />
The main discussion channel is the [https://groups.google.com/forum/#!forum/mozilla.addons.user-experience mozilla.addons.user-experience] newsgroup.</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/Releasing_an_add-on_mechanics&diff=1138322Firefox/Go Faster/Releasing an add-on mechanics2016-06-30T18:16:53Z<p>Standard8: /* Set up a rule in Balrog */ Improve channel-prefs.js location</p>
<hr />
<div>{{warning|This document and process is still in a very active exploration and discovery phase. It has not been tested fully, and may change at any time. ianb and Standard8 know most about the process}}<br />
<br />
{{warning|This document does not yet contain how to handle multiple add-ons. Please talk to ianb and Standard8 before attempting to proceed.}}<br />
<br />
This document only contains details about the mechanics for releasing. You will need to discuss with release drivers and other folks about being able to actually do a release.<br />
<br />
== Access Rights ==<br />
<br />
To upload and release add-ons, you'll need access to:<br />
<br />
* ftp (<code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code>)<br />
** Talk to the Cloud Services team for access<br />
* balrog via VPN<br />
** Talk to Release Engineering team for access<br />
<br />
== Procedure ==<br />
<br />
This process assumes you have a xpi that is ready for release.<br />
<br />
=== Uploading the xpi ===<br />
<br />
* Get the xpi signed, e.g. [https://bugzilla.mozilla.org/show_bug.cgi?id=1249764 clone this bug]<br />
* Upload the signed xpi to ftp in the <code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code> directory.<br />
** Use a sub-directory appropriate for the add-on.<br />
<br />
=== Setting up Balrog ===<br />
<br />
{{warning|Multiple system add-ons are released together as one bundle which should be tested. Take account of this when updating the template files.}}<br />
<br />
When experimenting/doing initial setup, it is suggested to use the dev servers for Balrog:<br />
<br />
* https://aus4-admin-dev.allizom.org/ with update urls at https://aus4-dev.allizom.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-cdntest1/default/default/default/update.xml<br />
<br />
Once you're confident of the configuration, you can then copy this across to production:<br />
<br />
* For production, sign into Balrog at https://aus4-admin.mozilla.org/<br />
<br />
=== Set up a release in Balrog ===<br />
<br />
First step is to generate the template for the System add-on update release. This contains detail about the xpis, and which platform(s) they are for.<br />
<br />
* Under Releases, search for <code>SystemAddons</code>.<br />
* Find the latest release and download the existing template.<br />
** Update the fileUrl to point to the location on ftp. '''The url must be https'''.<br />
** Update the hashValue (<code>shasum -a 512 <file></code>).<br />
** Update filesize (bytes, <code>ls -la <file></code>).<br />
** Update version to the version number of the add-on.<br />
** Update the name, use something like <code>"SystemAddons-<addon shortname><addon shortversion>"</code> and append extra add-on sections for each add-on.<br />
*** e.g. <code>SystemAddons-hello112</code><br />
*** We might need to review the naming eventually, but for now it'll do.<br />
** Save the template with the filename matching the name in the file (e.g. <code>SystemAddons-hello112.json</code><br />
* Back in Balrog, select "Add a new release"<br />
** Enter the name as matching the name in the file.<br />
** Enter the product as <code>SystemAddons</code><br />
** Under data, select the file you just created.<br />
** Select "Save Changes".<br />
* The new release should appear in the list.<br />
<br />
At this stage, the details for the add-on release have been created. Now you need to create a rule for it to be picked up.<br />
<br />
=== Set up a rule in Balrog ===<br />
<br />
{{warning|Rules go live as soon as they are created or updated.}}<br />
<br />
A note about channels:<br />
<br />
* <code>beta</code> and <code>release</code> are production channels. Do not use these for testing.<br />
* For testing system addons, we are using the <code>beta-sysaddon</code> and <code>release-sysaddon</code> channels<br />
** This is designed to avoid testing on the same channel that QA uses for updates. <br />
* If you need to test something special, it may be useful to use a different channel.<br />
<br />
To add a rule:<br />
<br />
* Under Rules, search for <code>SystemAddons</code>.<br />
** You can use the results to check your expectations of values to put in fields.<br />
* Select "Add a new rule"<br />
** More background on rules at [[Balrog#What.27s_in_a_rule.3F|Balrog pages]]<br />
** Leave blank: Alias, Locale, Distribution, Build Target, OS Version, Dist Version, Whitelist, Header Architecture<br />
** Product: <code>SystemAddons</code><br />
** Channel: <code>beta-sysaddon</code> (or the one you want to use)<br />
** Mapping: The name of the release you created earlier, should auto-complete.<br />
** Rate: The rate at which you wish to push the release out (100 = full, 0 = none)<br />
** Priority: <code>100</code><br />
** Version: The version of Firefox the add-ons should be released to.<br />
** Build ID: The build id of Firefox you wish to push the add-ons to. You can leave this blank to push it to all builds of versions specified in the version field.<br />
** Update Type: Leave as <code>minor</code><br />
** Comment: Enter a comment about the release if necessary, e.g. something exceptional.<br />
* Select "Save Changes"<br />
<br />
The changes are live within a few seconds.<br />
<br />
Testing via url:<br />
* You can check the data via a url: https://aus5.mozilla.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-sysaddon/default/default/default/update.xml<br />
** You'll need to replace the version, build id and maybe the channel in the url above.<br />
<br />
Testing in Firefox:<br />
* Note: currently system add-ons updates don't apply until you restart Firefox.<br />
* You may need to change <code>/path/to/binary/folder/defaults/pref/channel-prefs.js</code> to point to the specified channel (on Mac this would be <code>Name.app/Contents/Resources/defaults/pref/channel-prefs.js</code><br />
* Add-on manager activity can be monitored by setting <code>extensions.logging.enabled</code> to true.<br />
* You can force an add-on update with the [https://addons.mozilla.org/en-US/firefox/addon/timer-fire/ timer-fire add-on]<br />
** Using "Tools > Fire Timer > Add-on Update"<br />
** If you don't force, you'll need to wait for the update - one check occurs each day.<br />
* about:support shows the current add-on version</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster&diff=1124752Firefox/Go Faster2016-03-29T18:27:03Z<p>Standard8: /* Documentation */ Add existing docs to the list.</p>
<hr />
<div>= Go Faster =<br />
Go Faster is a plan to change the way we ship Firefox for Desktop, and potentially other products. The end goal is to reduce the time it takes to deliver value to the user. This focuses on getting features and fixes to the user on a reduced cycle time, but includes reductions in time to download updates and new versions, and reductions in build and release time.<br />
<br />
==Meetings, Status Reports, Communications==<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings Meetings]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Status Status Reports]<br />
* Bi-Weekly Team Meeting: Tuesdays at 11:30 San Francisco, CA, USA local time ([https://www.timeanddate.com/worldclock/converted.html?iso=20151124T0930&p1=224&p2=250&p3=0&p4=195 conversions]) in the "Program Management" Vidyo Room.<br />
* [https://mail.mozilla.org/listinfo/gofaster Mailing List] (open to all, primarily used for sharing status)<br />
<br />
=Development=<br />
<p> </p><br />
==Schedule==<br />
* [https://wiki.mozilla.org/Release_Management/TeamWiki Firefox main release schedule] is the master location for the dates when each Firefox version goes to Aurora, Beta, & Release.<br />
* System add-ons: <br />
** Hello (45) and Pocket (46) are shipping as system add-ons. <br />
** We shipped our first (signed, no-op) update to the beta channel on Friday, February 26 2016.<br />
* Data updates: <br />
** Finalizing signing now.<br />
** OneCRL is shipping in 47<br />
** AMO blocklist is shipping via Go Faster (Kinto) in 49<br />
* DLC<br />
** Fennec fonts is shipping in 48 <br />
* Test Pilot is scheduled [real soon now]<br />
<br />
<br />
<p> </p><br />
<br />
<br />
== Goals ==<br />
* 2016 H1 strategic initiatives:<br />
* System add-ons<br />
** System add-ons infrastructure complete: Documented, simple, easy to ship/update, easy to localize. (Q2)<br />
** Staged rollout of a system addon: With a/b testing (Q2)<br />
** Measurement infrastructure in place: Telemetry for go-faster addons (Q2)<br />
** String delivery and updates are decoupled from trains (May tweak the wording here slightly, but essentially l10n work to support Go Faster) (Q2) <br />
* Test Pilot<br />
** Test Pilot launch: Release opt-in platform that allows us to perform controlled tests of new high-visibility product concepts in the general release channel of Firefox (Q2)<br />
** Test Pilot metrics dashboard: Metrics dashboard to aid experiment authors in making decisions (Q2)<br />
<br />
* Q1 goals:<br />
** Ship Hello as a system add-on and update it <br />
** OneCRL via Kinto into production<br />
** Fennec fonts installed on demand (DLC) via Kinto <br />
** Scope and prototypes for rollout and telemetry systems <br />
** Test Pilot locale expansion - Nick/Wil<br />
** Test Pilot launch - Nick/Wil<br />
<br />
<br />
<br />
== Project 1: Ship features as system add-ons ==<br />
=== Client ===<br />
* Owner: Dave Townsend, Robert Helmer<br />
<br />
=== Tools/Metrics ===<br />
[https://wiki.mozilla.org/Firefox/Go_Faster/Release_Pipeline Release Pipeline]<br />
* Owner: Chris Lonnen (Tools and Systems)<br />
<br />
=== Hello as add-on ===<br />
* Owner: Mark Banner, Ian Bicking (Hello) <br />
<br />
=== Pocket as add-on ===<br />
* Owner: Shane Caraveo (BD&L)<br />
<br />
== Project 2: Ship experimental features as add-ons from Test Pilot ==<br />
* Product Owner: Nick Chapman<br />
* Engineering Team: Wil Clouser (manager), Jared Hirsch (dev), Dave Justice (dev), John Gruen (UX), Les Orchard (dev)<br />
* Tasks:<br />
* Implement Universal Search as an experimental add-on (this can be served/updated from AMO or similar) (Jared/Les)<br />
* Implement first iteration of Test Pilot website (Nick Chapman/John Gruen)<br />
* Design and implement process for Test Pilot<br />
* Dependencies:<br />
* None.<br />
* Resources<br />
* Planning Doc: https://docs.google.com/document/d/1bew13QgnGriiMEEZMnI7XP6P2ieq6KiE0t4tDzrqcxQ/edit<br />
* Primary Wireframes: https://www.dropbox.com/s/n7dz7be1zm372mu/idea-town-WIRES.pdf?dl=0<br />
* Flows: https://www.lucidchart.com/documents/view/5efea80e-6240-4c24-801f-fd56c1ca9c3d<br />
* Github Repo: https://github.com/mozilla/idea-town<br />
<br />
== Project 3: Data Updates ==<br />
* Owner: Tarek Ziade + Cloud Storage team<br />
<br />
== Project 4: decouple l10n from product ==<br />
* On hold<br />
<br />
==Roles and Responsibilities==<br />
The [https://wiki.mozilla.org/Firefox/Contacts Contacts Page] has the Roles and Responsibilities for Firefox teams, partner teams, and external partners.<br />
<br />
= Documentation =<br />
<br />
Place for us to keep documentation for now. Will put something better together later.<br />
<br />
* [https://docs.google.com/document/d/1x27I7hAmWDWiqk3o3YC3fklhE3N59bdgHCQHF5p_lkU/edit#heading=h.x1jyf4e7lno7 Release & Relnotes plan]<br />
* [[Firefox/Go_Faster/Releasing_an_add-on_mechanics|Releasing mechanics]]</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/Releasing_an_add-on_mechanics&diff=1122131Firefox/Go Faster/Releasing an add-on mechanics2016-03-15T14:10:18Z<p>Standard8: /* Setting up Balrog */ Add info about dev server.</p>
<hr />
<div>{{warning|This document and process is still in a very active exploration and discovery phase. It has not been tested fully, and may change at any time. ianb and Standard8 know most about the process}}<br />
<br />
{{warning|This document does not yet contain how to handle multiple add-ons. Please talk to ianb and Standard8 before attempting to proceed.}}<br />
<br />
This document only contains details about the mechanics for releasing. You will need to discuss with release drivers and other folks about being able to actually do a release.<br />
<br />
== Access Rights ==<br />
<br />
To upload and release add-ons, you'll need access to:<br />
<br />
* ftp (<code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code>)<br />
** Talk to the Cloud Services team for access<br />
* balrog via VPN<br />
** Talk to Release Engineering team for access<br />
<br />
== Procedure ==<br />
<br />
This process assumes you have a xpi that is ready for release.<br />
<br />
=== Uploading the xpi ===<br />
<br />
* Get the xpi signed, e.g. [https://bugzilla.mozilla.org/show_bug.cgi?id=1249764 clone this bug]<br />
* Upload the signed xpi to ftp in the <code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code> directory.<br />
** Use a sub-directory appropriate for the add-on.<br />
<br />
=== Setting up Balrog ===<br />
<br />
{{warning|Multiple system add-ons are released together as one bundle which should be tested. Take account of this when updating the template files.}}<br />
<br />
When experimenting/doing initial setup, it is suggested to use the dev servers for Balrog:<br />
<br />
* https://aus4-admin-dev.allizom.org/ with update urls at https://aus4-dev.allizom.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-cdntest1/default/default/default/update.xml<br />
<br />
Once you're confident of the configuration, you can then copy this across to production:<br />
<br />
* For production, sign into Balrog at https://aus4-admin.mozilla.org/<br />
<br />
=== Set up a release in Balrog ===<br />
<br />
First step is to generate the template for the System add-on update release. This contains detail about the xpis, and which platform(s) they are for.<br />
<br />
* Under Releases, search for <code>SystemAddons</code>.<br />
* Find the latest release and download the existing template.<br />
** Update the fileUrl to point to the location on ftp. '''The url must be https'''.<br />
** Update the hashValue (<code>shasum -a 512 <file></code>).<br />
** Update filesize (bytes, <code>ls -la <file></code>).<br />
** Update version to the version number of the add-on.<br />
** Update the name, use something like <code>"SystemAddons-<addon shortname><addon shortversion>"</code> and append extra add-on sections for each add-on.<br />
*** e.g. <code>SystemAddons-hello112</code><br />
*** We might need to review the naming eventually, but for now it'll do.<br />
** Save the template with the filename matching the name in the file (e.g. <code>SystemAddons-hello112.json</code><br />
* Back in Balrog, select "Add a new release"<br />
** Enter the name as matching the name in the file.<br />
** Enter the product as <code>SystemAddons</code><br />
** Under data, select the file you just created.<br />
** Select "Save Changes".<br />
* The new release should appear in the list.<br />
<br />
At this stage, the details for the add-on release have been created. Now you need to create a rule for it to be picked up.<br />
<br />
=== Set up a rule in Balrog ===<br />
<br />
{{warning|Rules go live as soon as they are created or updated.}}<br />
<br />
A note about channels:<br />
<br />
* <code>beta</code> and <code>release</code> are production channels. Do not use these for testing.<br />
* For testing system addons, we are using the <code>beta-sysaddon</code> and <code>release-sysaddon</code> channels<br />
** This is designed to avoid testing on the same channel that QA uses for updates. <br />
* If you need to test something special, it may be useful to use a different channel.<br />
<br />
To add a rule:<br />
<br />
* Under Rules, search for <code>SystemAddons</code>.<br />
** You can use the results to check your expectations of values to put in fields.<br />
* Select "Add a new rule"<br />
** More background on rules at [[Balrog#What.27s_in_a_rule.3F|Balrog pages]]<br />
** Leave blank: Alias, Locale, Distribution, Build Target, OS Version, Dist Version, Whitelist, Header Architecture<br />
** Product: <code>SystemAddons</code><br />
** Channel: <code>beta-sysaddon</code> (or the one you want to use)<br />
** Mapping: The name of the release you created earlier, should auto-complete.<br />
** Rate: The rate at which you wish to push the release out (100 = full, 0 = none)<br />
** Priority: <code>100</code><br />
** Version: The version of Firefox the add-ons should be released to.<br />
** Build ID: The build id of Firefox you wish to push the add-ons to. You can leave this blank to push it to all builds of versions specified in the version field.<br />
** Update Type: Leave as <code>minor</code><br />
** Comment: Enter a comment about the release if necessary, e.g. something exceptional.<br />
* Select "Save Changes"<br />
<br />
The changes are live within a few seconds.<br />
<br />
Testing via url:<br />
* You can check the data via a url: https://aus5.mozilla.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-sysaddon/default/default/default/update.xml<br />
** You'll need to replace the version, build id and maybe the channel in the url above.<br />
<br />
Testing in Firefox:<br />
* Note: currently system add-ons updates don't apply until you restart Firefox.<br />
* You may need to change <code>/path/to/binary/folder/browser/defaults/pref/channel-prefs.js</code> to point to the specified channel.<br />
* Add-on manager activity can be monitored by setting <code>extensions.logging.enabled</code> to true.<br />
* You can force an add-on update with the [https://addons.mozilla.org/en-US/firefox/addon/timer-fire/ timer-fire add-on]<br />
** Using "Tools > Fire Timer > Add-on Update"<br />
** If you don't force, you'll need to wait for the update - one check occurs each day.<br />
* about:support shows the current add-on version</div>Standard8https://wiki.mozilla.org/index.php?title=Loop&diff=1119201Loop2016-02-29T22:32:58Z<p>Standard8: /* Key Bugzilla Queries */ use a query that forces the rank column to be displayed.</p>
<hr />
<div>__TOC__<br />
<br />
Loop is the codename for the [https://www.mozilla.org/firefox/hello/ Firefox Hello] project.<br />
<br />
= Overview =<br />
<br />
The Hello project (code name Loop) started as a video calling solution built into the browser (experience up until FF44) and has now pivoted to addressing Firefox user needs to share Web content. We’ll do so by providing a simple solution which blends web browsing, real-time communication, collaboration and content storage.<br />
<br />
Hello uses an incremental delivery approach building on top of an initial basic implementation which will focus on real-time sharing.<br />
Moving forward we’ll extend this first implementation with the following capabilities:<br /><br />
- Asynchronous interactions<br /><br />
- Real-time collaboration<br /><br />
- Mobile support<br /><br />
<br />
Hello is delivered as a Go Faster system add-on since Firefox 45, Hello releases therefore don't follow the train model.<br />
<br />
Additional features will be prioritized and implemented as we progress development and collect user feedback to help shape what will provide the greatest value to our users.<br />
<br />
== Bug List ==<br />
<br />
* Bugs are filed in the "Hello (Loop)" product in Bugzilla.<br />
* Queries to bugs in our [https://wiki.mozilla.org/Firefox/Iterative_Hello_Development#Product_Backlog Backlog]<br />
<br />
= Core Team =<br />
<br />
* Romain Testard - Product Manager IRC: RT<br />
* Adam Roach - Technical Architecture Lead IRC: abr<br />
* Ian Bicking - Engineering Manager IRC: ianbicking<br />
* Shell Escalante - Engineering Program Manager IRC: shell<br />
* Mark Banner - Engineering / Technical Lead IRC: standard8<br />
* Dan Mosedale - Engineering / Front-end IRC: dmose<br />
* Mike deBoer - Engineering / Front-end IRC: mikedeboer<br />
* Sevaan Franks - UX Lead Mozilla IRC: sevaan<br />
* Pau Masia Martinez - UX Tef IRC: pau<br />
* Michael Sanders - TokBox EPM, PM<br />
* Alexis Metaireau - Engineering / Server <br />
* Remy Hubscher - Engineering / Server<br />
* Jose A. Olivera - Tef Engineering PM<br />
* Bob Micheletto - Engineering / Operations<br />
* Richard Pappalardo - Engineering / Test<br />
* Fabio Rios - Marketing<br />
<br />
= Documentation =<br />
<br />
* [[Loop/Development]] - Get started with Loop development<br />
* [[Loop/Architecture]] - Technical documentation of overall system<br />
* [[Loop/Architecture/MVP]] - Initial design for MVP-level product<br />
* [[Loop/Architecture/Rooms]] - Initial design for room ("conversation")-based user experience<br />
* [[Loop/Architecture/Context]] - Preliminary design for encrypted room context (name, description, etc)<br />
* [[Loop/Desktop & Standalon/Code Style & Structure]]<br />
* [[Loop/Data Collection]] - Information to collect about the functioning of the system<br />
* [[Loop/Loop-client_Release_Process]] - Information on the loop-client release cycle and release process<br />
* [[Loop/UX]] - Documentation of targeted User Experience<br />
* [[Loop/Test]] - Loop testing reference / QA<br />
* [[Loop/Automated Testing]] - Loop automated testing reference<br />
* [[Loop/Logging]] - What we need to know in case of failure to make calls. <br />
* [[Loop/Load Handling]] - Our plan for managing initial server load<br />
* [https://docs.services.mozilla.com/loop/apis.html Loop server API] - Documentation of the REST API used by the Loop server<br />
* [[Loop/OAuth Setup]] - Information about adding OAuth client credentials to Firefox<br />
* [[Loop/Reporting]] - Dashboards and Reporting<br />
* [[Loop/Try_Loop]] Older page on getting started with loop<br />
* [[Loop/Library Upgrades]]<br />
<br />
<br />
[tbd -- other artifacts as they become available]<br />
<br />
= Cross-Team Project Calendar =<br />
{{#widget:Widget:Google Calendar<br />
|id=bW96aWxsYS5jb21fNTY0NW1uMWpnamQ5aG8zaXNodHRodnQybHNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ<br />
}}<br />
<br />
= Communication Channels =<br />
<br />
* [[IRC]]: [irc://irc.mozilla.org/loop #loop on irc.mozilla.org] (Use [irc://irc.mozilla.org/media #media on irc.mozilla.org] for WebRTC discussion)<br />
* [[IRC]]: [irc://irc.mozilla.org/loop-server #loop-server on irc.mozilla.org]<br />
* [https://lists.mozilla.org/listinfo/dev-media dev-media Discussion List]<br />
<br />
[[Category:Firefox Hello]]<br />
[[Category:Loop]]<br />
<br />
== Standing Meetings ==<br />
* Watch [https://lists.mozilla.org/listinfo/dev-media dev-media] for new information.<br />
<p> </p><br />
{| class="wikitable"<br />
|-<br />
! Meeting !! Day of week !! Pacific Time !! Eastern Time !! Central European Time !! Vidyo Room !! Notes<br />
|-<br />
| "Daily Stand-up" || Monday, Tuesday, Wednesday, Thursday || 8:00AM - 8:30AM || 11:00AM - 11:30PM || 5:00PM - 5:30PM || webRTC-Apps || ||]<br />
|-<br />
| "Retrospective" || Friday || 8:00AM - 9:00AM || 11:00AM - 12:00PM || 5:00PM - 6:00PM || webRTC-Apps || [https://etherpad.mozilla.org/loop-retrospectives etherpad]<br />
|-<br />
| "Cross team alignment" || Tuesday || 11:30AM - 12:00PM || 2:30AM - 3:00PM || || || <br />
|}<br />
<br />
<p> </p><br />
==[https://wiki.mozilla.org/Loop/wiki Links to current info]==<br />
[https://wiki.mozilla.org/Loop/wiki Loop/wiki] page is the central location for current focus, Roadmap, Metrics, UX, Marketing, and more.<br />
=Triage=<br />
<p> </p><br />
The goals of the Prioritized Product Backlog and dynamic Planning are to:<br />
*Simplify prioritization & planning so the team is always working on the most important features.<br />
*Improve visibility to everyone to clear priorities - so we make the best decisions about the direction of the product (call out risks early, relative priorities, trade-offs).<p> </p><br />
<br />
==Key Bugzilla Queries==<br />
* [http://mzl.la/1KZGqPm Bugzilla Ranked list] <br />
**Searches all Hello bugs with Ranks Assigned<br />
*[http://mzl.la/1PEmKj8 Triage: Prioritized Bugs without Rank set]<br />
* [http://mzl.la/1JBkwev Triage: Bugs without Rank or Priority]<br />
* [https://bugzilla.mozilla.org/buglist.cgi?f1=status_whiteboard&list_id=12373638&columnlist=cf_fx_iteration%2Ccf_fx_points%2Cassigned_to%2Cbug_status%2Cstatus_whiteboard%2Cshort_desc%2Cchangeddate%2Cpriority%2Cbug_severity%2Cresolution%2Ccomponent%2Creporter&o1=anywordssubstr&resolution=---&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&v1=tech-debt&component=Client&component=General&product=Hello%20%28Loop%29 Tech-debt bugs]<br />
<br />
==Triage Guidelines==<br />
The Product Backlog is continually maintained by the Hello Management team to ensure new priorities are available for each Sprint Planning meeting.<br />
* Priorities: if you are filing a bug - based on your knowledge of the bug feel free to set a priority for consideration based on the following criteria:<br />
** Priority 1 - Blocker, must-fix before shipping in the next release. <br />
** Priority 2 - Major impact, considering severity × probability. Not a blocker for shipping.<br />
** Priority 3 - Average Bug. definitely a problem, but doesn't stop someone from using the product. <br />
** Priority 4 - Minor or polish bugs that are real issues (especially in aggregate) and annoying.<br />
** Priority 5 - Low-impact. something we'd fix, but mostly only bothers the discerning user. Little impact on usability.<br />
<br />
*RANK: Not needed when filing a bug, set during weekly Triage meetings. As priority buckets start to have a large amount of bugs in them, the Rank field can be used to sort easily in bugzilla. To have some rhyme/reason to the order - Rank should relate to Priority. The "Ranking" number does not need to be unique. Unless there is a reason to for a bug to be considered before (or after) others in the Priority bucket - use default<br />
** P1 Rank options=1-10, '''default 5'''<br />
** P2 Rank options=11-29, '''default 25'''<br />
** P3 Rank options=30-39, '''default 35'''<br />
** P4 Rank options=40-49, '''default 45'''<br />
** P5 Rank options=50-59, '''default 55'''<br />
** any that we don't think we can get to in the next 6 months should be set to 100<br />
<br />
<p> </p><br />
*QE-Verify is a flag that developers should be setting on bugs they are working on. This is used for QE to filter which bugs they check<br />
**"+" means that QE should look at the bug and it can be verified with human eyes<br />
**"-" means QE should not look at<br />
***Typically goes with in-testsuite set to "+", to show testing via another method.<br />
*"Points" should be set when known (if nothing set - assumed a "1" or very small). Most relevant if taking a bigger bug so we know when bugs are large bits of work.<br />
*"Iteration" should be updated when a bug is being worked on during a particular Sprint.<br />
<br />
===Filing a bug===<br />
* Open a bug under Product:"(Hello)Loop" || Component: "General" or "Client"<br />
**We triage weekly - it helps if there is a priority as a starting point and a reason <br />
<p> </p><br />
<br />
===Definition of Done===<br />
<p> </p><br />
* The [https://etherpad.mozilla.org/HsVyzOogAr Definition of Done] ensures a potentially shippable product increment is released at the conclusion of a release cycle.<br />
<p> </p><br />
* A potentially shippable product increment means compliance with the work's individual acceptance criteria and not the full story under development.<br />
<p> </p><br />
<br />
===Themes===<br />
As we plan what's coming next, these are areas being discussed. This is not a commitment to the next projects - just our scratch area.<br />
<br />
Things we want to do - but parking lot until the highest priorities are done:<br />
*New User Journey - which is moving to starting from '''[https://bugzilla.mozilla.org/show_bug.cgi?id=1209713 web sharing]'''<br />
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1223573 '''add-ons''']: moving Hello from browser integrated to an add-on in order to reduce delay between development and release and testing flexibility<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1048850 '''e10s''']: not sure if this is coming in 45 or 46 - but trying to get this resolved as its in Beta in 44<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1178304 '''Facebook'''] improvement<br />
*Quality<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1187857 Shared '''Pointers''']<br />
*[https://bugzilla.mozilla.org/show_bug.cgi?id=1186905 Independent '''scrolling''']<br />
*Metrics [https://bugzilla.mozilla.org/show_bug.cgi?id=1148381 bug 1148381]<br />
*Android experience improvements<br />
*WebRTC permission prompt optimization</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/Releasing_an_add-on_mechanics&diff=1118610Firefox/Go Faster/Releasing an add-on mechanics2016-02-25T14:31:50Z<p>Standard8: More headings, plus a link to the balrog pages.</p>
<hr />
<div>{{warning|This document and process is still in a very active exploration and discovery phase. It has not been tested fully, and may change at any time. ianb and Standard8 know most about the process}}<br />
<br />
{{warning|This document does not yet contain how to handle multiple add-ons. Please talk to ianb and Standard8 before attempting to proceed.}}<br />
<br />
This document only contains details about the mechanics for releasing. You will need to discuss with release drivers and other folks about being able to actually do a release.<br />
<br />
== Access Rights ==<br />
<br />
To upload and release add-ons, you'll need access to:<br />
<br />
* ftp (<code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code>)<br />
** Talk to the Cloud Services team for access<br />
* balrog via VPN<br />
** Talk to Release Engineering team for access<br />
<br />
== Procedure ==<br />
<br />
This process assumes you have a xpi that is ready for release.<br />
<br />
=== Uploading the xpi ===<br />
<br />
* Get the xpi signed, e.g. [https://bugzilla.mozilla.org/show_bug.cgi?id=1249764 clone this bug]<br />
* Upload the signed xpi to ftp in the <code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code> directory.<br />
** Use a sub-directory appropriate for the add-on.<br />
<br />
=== Setting up Balrog ===<br />
<br />
{{warning|Multiple system add-ons are released together as one bundle which should be tested. Take account of this when updating the template files.}}<br />
<br />
* Sign into Balrog at https://aus4-admin.mozilla.org/<br />
<br />
=== Set up a release in Balrog ===<br />
<br />
First step is to generate the template for the System add-on update release. This contains detail about the xpis, and which platform(s) they are for.<br />
<br />
* Under Releases, search for <code>SystemAddons</code>.<br />
* Find the latest release and download the existing template.<br />
** Update the fileUrl to point to the location on ftp. '''The url must be https'''.<br />
** Update the hashValue (<code>shasum -a 512 <file></code>).<br />
** Update filesize (bytes, <code>ls -la <file></code>).<br />
** Update version to the version number of the add-on.<br />
** Update the name, use something like <code>"SystemAddons-<addon shortname><addon shortversion>"</code> and append extra add-on sections for each add-on.<br />
*** e.g. <code>SystemAddons-hello112</code><br />
*** We might need to review the naming eventually, but for now it'll do.<br />
** Save the template with the filename matching the name in the file (e.g. <code>SystemAddons-hello112.json</code><br />
* Back in Balrog, select "Add a new release"<br />
** Enter the name as matching the name in the file.<br />
** Enter the product as <code>SystemAddons</code><br />
** Under data, select the file you just created.<br />
** Select "Save Changes".<br />
* The new release should appear in the list.<br />
<br />
At this stage, the details for the add-on release have been created. Now you need to create a rule for it to be picked up.<br />
<br />
=== Set up a rule in Balrog ===<br />
<br />
{{warning|Rules go live as soon as they are created or updated.}}<br />
<br />
A note about channels:<br />
<br />
* <code>beta</code> and <code>release</code> are production channels. Do not use these for testing.<br />
* For testing system addons, we are using the <code>beta-sysaddon</code> and <code>release-sysaddon</code> channels<br />
** This is designed to avoid testing on the same channel that QA uses for updates. <br />
* If you need to test something special, it may be useful to use a different channel.<br />
<br />
To add a rule:<br />
<br />
* Under Rules, search for <code>SystemAddons</code>.<br />
** You can use the results to check your expectations of values to put in fields.<br />
* Select "Add a new rule"<br />
** More background on rules at [[Balrog#What.27s_in_a_rule.3F|Balrog pages]]<br />
** Leave blank: Alias, Locale, Distribution, Build Target, OS Version, Dist Version, Whitelist, Header Architecture<br />
** Product: <code>SystemAddons</code><br />
** Channel: <code>beta-sysaddon</code> (or the one you want to use)<br />
** Mapping: The name of the release you created earlier, should auto-complete.<br />
** Rate: The rate at which you wish to push the release out (100 = full, 0 = none)<br />
** Priority: <code>100</code><br />
** Version: The version of Firefox the add-ons should be released to.<br />
** Build ID: The build id of Firefox you wish to push the add-ons to. You can leave this blank to push it to all builds of versions specified in the version field.<br />
** Update Type: Leave as <code>minor</code><br />
** Comment: Enter a comment about the release if necessary, e.g. something exceptional.<br />
* Select "Save Changes"<br />
<br />
The changes are live within a few seconds.<br />
<br />
Testing via url:<br />
* You can check the data via a url: https://aus5.mozilla.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-sysaddon/default/default/default/update.xml<br />
** You'll need to replace the version, build id and maybe the channel in the url above.<br />
<br />
Testing in Firefox:<br />
* Note: currently system add-ons updates don't apply until you restart Firefox.<br />
* You may need to change <code>/path/to/binary/folder/browser/defaults/pref/channel-prefs.js</code> to point to the specified channel.<br />
* Add-on manager activity can be monitored by setting <code>extensions.logging.enabled</code> to true.<br />
* You can force an add-on update with the [https://addons.mozilla.org/en-US/firefox/addon/timer-fire/ timer-fire add-on]<br />
** Using "Tools > Fire Timer > Add-on Update"<br />
** If you don't force, you'll need to wait for the update - one check occurs each day.<br />
* about:support shows the current add-on version</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/Releasing_an_add-on_mechanics&diff=1118593Firefox/Go Faster/Releasing an add-on mechanics2016-02-25T10:51:42Z<p>Standard8: Fix the channel prefs location</p>
<hr />
<div>{{warning|This document and process is still in a very active exploration and discovery phase. It has not been tested fully, and may change at any time. ianb and Standard8 know most about the process}}<br />
<br />
{{warning|This document does not yet contain how to handle multiple add-ons. Please talk to ianb and Standard8 before attempting to proceed.}}<br />
<br />
This document only contains details about the mechanics for releasing. You will need to discuss with release drivers and other folks about being able to actually do a release.<br />
<br />
== Access Rights ==<br />
<br />
To upload and release add-ons, you'll need access to:<br />
<br />
* ftp (<code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code>)<br />
** Talk to the Cloud Services team for access<br />
* balrog via VPN<br />
** Talk to Release Engineering team for access<br />
<br />
== Procedure ==<br />
<br />
This process assumes you have a xpi that is ready for release.<br />
<br />
=== Uploading the xpi ===<br />
<br />
* Get the xpi signed, e.g. [https://bugzilla.mozilla.org/show_bug.cgi?id=1249764 clone this bug]<br />
* Upload the signed xpi to ftp in the <code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code> directory.<br />
** Use a sub-directory appropriate for the add-on.<br />
<br />
=== Setting up Balrog ===<br />
<br />
{{warning|Multiple system add-ons are released together as one bundle which should be tested. Take account of this when updating the template files.}}<br />
<br />
* Sign into Balrog at https://aus4-admin.mozilla.org/<br />
<br />
First step is to generate the template for the System add-on update release. This contains detail about the xpis, and which platform(s) they are for.<br />
<br />
* Under Releases, search for <code>SystemAddons</code>.<br />
* Find the latest release and download the existing template.<br />
** Update the fileUrl to point to the location on ftp. '''The url must be https'''.<br />
** Update the hashValue (<code>shasum -a 512 <file></code>).<br />
** Update filesize (bytes, <code>ls -la <file></code>).<br />
** Update version to the version number of the add-on.<br />
** Update the name, use something like <code>"SystemAddons-<addon shortname><addon shortversion>"</code> and append extra add-on sections for each add-on.<br />
*** e.g. <code>SystemAddons-hello112</code><br />
*** We might need to review the naming eventually, but for now it'll do.<br />
** Save the template with the filename matching the name in the file (e.g. <code>SystemAddons-hello112.json</code><br />
* Back in Balrog, select "Add a new release"<br />
** Enter the name as matching the name in the file.<br />
** Enter the product as <code>SystemAddons</code><br />
** Under data, select the file you just created.<br />
** Select "Save Changes".<br />
* The new release should appear in the list.<br />
<br />
At this stage, the details for the add-on release have been created. Now you need to create a rule for it to be picked up.<br />
<br />
{{warning|Rules go live as soon as they are created or updated.}}<br />
<br />
A note about channels:<br />
<br />
* <code>beta</code> and <code>release</code> are production channels. Do not use these for testing.<br />
* For testing system addons, we are using the <code>beta-sysaddon</code> and <code>release-sysaddon</code> channels<br />
** This is designed to avoid testing on the same channel that QA uses for updates. <br />
* If you need to test something special, it may be useful to use a different channel.<br />
<br />
To add a rule:<br />
<br />
* Under Rules, search for <code>SystemAddons</code>.<br />
** You can use the results to check your expectations of values to put in fields.<br />
* Select "Add a new rule"<br />
** Leave blank: Alias, Locale, Distribution, Build Target, OS Version, Dist Version, Whitelist, Header Architecture<br />
** Product: <code>SystemAddons</code><br />
** Channel: <code>beta-sysaddon</code> (or the one you want to use)<br />
** Mapping: The name of the release you created earlier, should auto-complete.<br />
** Rate: The rate at which you wish to push the release out (100 = full, 0 = none)<br />
** Priority: <code>100</code><br />
** Version: The version of Firefox the add-ons should be released to.<br />
** Build ID: The build id of Firefox you wish to push the add-ons to. You can leave this blank to push it to all builds of versions specified in the version field.<br />
** Update Type: Leave as <code>minor</code><br />
** Comment: Enter a comment about the release if necessary, e.g. something exceptional.<br />
* Select "Save Changes"<br />
<br />
The changes are live within a few seconds.<br />
<br />
Testing via url:<br />
* You can check the data via a url: https://aus5.mozilla.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-sysaddon/default/default/default/update.xml<br />
** You'll need to replace the version, build id and maybe the channel in the url above.<br />
<br />
Testing in Firefox:<br />
* Note: currently system add-ons updates don't apply until you restart Firefox.<br />
* You may need to change <code>/path/to/binary/folder/browser/defaults/pref/channel-prefs.js</code> to point to the specified channel.<br />
* Add-on manager activity can be monitored by setting <code>extensions.logging.enabled</code> to true.<br />
* You can force an add-on update with the [https://addons.mozilla.org/en-US/firefox/addon/timer-fire/ timer-fire add-on]<br />
** Using "Tools > Fire Timer > Add-on Update"<br />
** If you don't force, you'll need to wait for the update - one check occurs each day.<br />
* about:support shows the current add-on version</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/Releasing_an_add-on_mechanics&diff=1118591Firefox/Go Faster/Releasing an add-on mechanics2016-02-25T10:49:31Z<p>Standard8: Add details about creating releases and rules in balrog</p>
<hr />
<div>{{warning|This document and process is still in a very active exploration and discovery phase. It has not been tested fully, and may change at any time. ianb and Standard8 know most about the process}}<br />
<br />
{{warning|This document does not yet contain how to handle multiple add-ons. Please talk to ianb and Standard8 before attempting to proceed.}}<br />
<br />
This document only contains details about the mechanics for releasing. You will need to discuss with release drivers and other folks about being able to actually do a release.<br />
<br />
== Access Rights ==<br />
<br />
To upload and release add-ons, you'll need access to:<br />
<br />
* ftp (<code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code>)<br />
** Talk to the Cloud Services team for access<br />
* balrog via VPN<br />
** Talk to Release Engineering team for access<br />
<br />
== Procedure ==<br />
<br />
This process assumes you have a xpi that is ready for release.<br />
<br />
=== Uploading the xpi ===<br />
<br />
* Get the xpi signed, e.g. [https://bugzilla.mozilla.org/show_bug.cgi?id=1249764 clone this bug]<br />
* Upload the signed xpi to ftp in the <code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code> directory.<br />
** Use a sub-directory appropriate for the add-on.<br />
<br />
=== Setting up Balrog ===<br />
<br />
{{warning|Multiple system add-ons are released together as one bundle which should be tested. Take account of this when updating the template files.}}<br />
<br />
* Sign into Balrog at https://aus4-admin.mozilla.org/<br />
<br />
First step is to generate the template for the System add-on update release. This contains detail about the xpis, and which platform(s) they are for.<br />
<br />
* Under Releases, search for <code>SystemAddons</code>.<br />
* Find the latest release and download the existing template.<br />
** Update the fileUrl to point to the location on ftp. '''The url must be https'''.<br />
** Update the hashValue (<code>shasum -a 512 <file></code>).<br />
** Update filesize (bytes, <code>ls -la <file></code>).<br />
** Update version to the version number of the add-on.<br />
** Update the name, use something like <code>"SystemAddons-<addon shortname><addon shortversion>"</code> and append extra add-on sections for each add-on.<br />
*** e.g. <code>SystemAddons-hello112</code><br />
*** We might need to review the naming eventually, but for now it'll do.<br />
** Save the template with the filename matching the name in the file (e.g. <code>SystemAddons-hello112.json</code><br />
* Back in Balrog, select "Add a new release"<br />
** Enter the name as matching the name in the file.<br />
** Enter the product as <code>SystemAddons</code><br />
** Under data, select the file you just created.<br />
** Select "Save Changes".<br />
* The new release should appear in the list.<br />
<br />
At this stage, the details for the add-on release have been created. Now you need to create a rule for it to be picked up.<br />
<br />
{{warning|Rules go live as soon as they are created or updated.}}<br />
<br />
A note about channels:<br />
<br />
* <code>beta</code> and <code>release</code> are production channels. Do not use these for testing.<br />
* For testing system addons, we are using the <code>beta-sysaddon</code> and <code>release-sysaddon</code> channels<br />
** This is designed to avoid testing on the same channel that QA uses for updates. <br />
* If you need to test something special, it may be useful to use a different channel.<br />
<br />
To add a rule:<br />
<br />
* Under Rules, search for <code>SystemAddons</code>.<br />
** You can use the results to check your expectations of values to put in fields.<br />
* Select "Add a new rule"<br />
** Leave blank: Alias, Locale, Distribution, Build Target, OS Version, Dist Version, Whitelist, Header Architecture<br />
** Product: <code>SystemAddons</code><br />
** Channel: <code>beta-sysaddon</code> (or the one you want to use)<br />
** Mapping: The name of the release you created earlier, should auto-complete.<br />
** Rate: The rate at which you wish to push the release out (100 = full, 0 = none)<br />
** Priority: <code>100</code><br />
** Version: The version of Firefox the add-ons should be released to.<br />
** Build ID: The build id of Firefox you wish to push the add-ons to. You can leave this blank to push it to all builds of versions specified in the version field.<br />
** Update Type: Leave as <code>minor</code><br />
** Comment: Enter a comment about the release if necessary, e.g. something exceptional.<br />
* Select "Save Changes"<br />
<br />
The changes are live within a few seconds.<br />
<br />
Testing via url:<br />
* You can check the data via a url: https://aus5.mozilla.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-sysaddon/default/default/default/update.xml<br />
** You'll need to replace the version, build id and maybe the channel in the url above.<br />
<br />
Testing in Firefox:<br />
* Note: currently system add-ons updates don't apply until you restart Firefox.<br />
* You may need to change <code>/path/to/binary/folder/browser/defaults/preferences/prefs.js</code> to point to the specified channel.<br />
* Add-on manager activity can be monitored by setting <code>extensions.logging.enabled</code> to true.<br />
* You can force an add-on update with the [https://addons.mozilla.org/en-US/firefox/addon/timer-fire/ timer-fire add-on]<br />
** Using "Tools > Fire Timer > Add-on Update"<br />
** If you don't force, you'll need to wait for the update - one check occurs each day.<br />
* about:support shows the current add-on version</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/Releasing_an_add-on_mechanics&diff=1118581Firefox/Go Faster/Releasing an add-on mechanics2016-02-25T10:14:08Z<p>Standard8: Update ftp details and basic access information.</p>
<hr />
<div>{{warning|This document and process is still in a very active exploration and discovery phase. It has not been tested fully, and may change at any time. ianb and Standard8 know most about the process}}<br />
<br />
{{warning|This document does not yet contain how to handle multiple add-ons. Please talk to ianb and Standard8 before attempting to proceed.}}<br />
<br />
This document only contains details about the mechanics for releasing. You will need to discuss with release drivers and other folks about being able to actually do a release.<br />
<br />
== Access Rights ==<br />
<br />
To upload and release add-ons, you'll need access to:<br />
<br />
* ftp (<code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code>)<br />
** Talk to the Cloud Services team for access<br />
* balrog via VPN<br />
** Talk to Release Engineering team for access<br />
<br />
== Procedure<br />
<br />
This process assumes you have a xpi that is ready for release.<br />
<br />
* Get the xpi signed, e.g. [https://bugzilla.mozilla.org/show_bug.cgi?id=1249764 clone this bug]<br />
* Upload the signed xpi to ftp in the <code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code> directory.<br />
** Use a sub-directory appropriate for the add-on.<br />
* Generate Balrog template<br />
** Under Releases, search for `SystemAddons`<br />
** Download the existing template<br />
*** Update fileUrl, default https<br />
*** Update the hashValue (`shasum -a 512 <file>`)<br />
*** Update filesize (bytes, `ls -la <file>`)<br />
*** Update version<br />
*** Update name if necessary<br />
** Upload template to either updated release or new release.<br />
** Under Rules, search for `SystemAddons`<br />
*** Create/Update as necessary<br />
** Example update url `https://aus5.mozilla.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-cdntest1/default/default/default/update.xml`</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/Releasing_an_add-on_mechanics&diff=1118424Firefox/Go Faster/Releasing an add-on mechanics2016-02-24T17:39:26Z<p>Standard8: Initial version, dump the know notes so far.</p>
<hr />
<div>{{warning|This document and process is still in a very active exploration and discovery phase. It has not been tested fully, and may change at any time. ianb and Standard8 know most about the process}}<br />
<br />
{{warning|This document does not yet contain how to handle multiple add-ons. Please talk to ianb and Standard8 before attempting to proceed.}}<br />
<br />
* Sign xpi<br />
* Upload xpi to ftp<br />
* Generate Balrog template<br />
** Under Releases, search for `SystemAddons`<br />
** Download the existing template<br />
*** Update fileUrl, default https<br />
*** Update the hashValue (`shasum -a 512 <file>`)<br />
*** Update filesize (bytes, `ls -la <file>`)<br />
*** Update version<br />
*** Update name if necessary<br />
** Upload template to either updated release or new release.<br />
** Under Rules, search for `SystemAddons`<br />
*** Create/Update as necessary<br />
** Example update url `https://aus5.mozilla.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-cdntest1/default/default/default/update.xml`</div>Standard8https://wiki.mozilla.org/index.php?title=Firefox/Go_Faster/Meetings&diff=1117453Firefox/Go Faster/Meetings2016-02-17T13:21:46Z<p>Standard8: Add latest meeting notes</p>
<hr />
<div>== Meeting deets == <br />
<br />
* Tuesdays at 09:30 local in San Francisco, CA, USA (conversions)<br />
* Vidyo: ProgramManagement<br />
* IRC: #gofaster <br />
<br />
== Agendas, notes etc ==<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150630 June 30, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150707 July 7, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150714 July 14, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150721 July 21, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150728 July 28, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150804 August 4, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150811 August 11, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150818 August 18, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150825 August 25, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150901 September 1, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150908 September 8, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150915 September 15, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150921 September 22, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20150929 September 29, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20151006 October 6, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20151013 October 13, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20151020 October 20, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20151027 October 27, 2015]<br />
* No mtg November 3rd, Firefox Launch Day<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20151110 November 10, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20151117 November 17, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20151124 November 24, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20151201 December 01, 2015]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20160105 January 5, 2016]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20160119 January 19, 2016]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20160202 February 2, 2016]<br />
* [https://wiki.mozilla.org/Firefox/Go_Faster/Meetings/20160216 February 16, 2016]</div>Standard8https://wiki.mozilla.org/index.php?title=Buildbot/Talos/Running&diff=1112868Buildbot/Talos/Running2016-01-15T10:27:14Z<p>Standard8: /* Using mach */ Correct the example mach command</p>
<hr />
<div>= Running Talos Tests =<br />
<br />
== Using mach ==<br />
<br />
First, make sure that firefox is already compiled. Then, execute the mach command in the top source directory. Let’s try running the chromez test suite. The list of valid suites are in the [http://mxr.mozilla.org/mozilla-central/source/testing/talos/talos.json talos.json] file.<br />
<br />
./mach talos-test --suite chromez<br />
<br />
== I have a patch for Talos, what tests to I run? ==<br />
<br />
If you are making changes to talos obviously running the tests locally will be the first step. The next logical step is to run the tests on Try server (try: -b o -p all -u none -t all).<br />
<br />
=== Testing Locally ===<br />
<br />
Testing locally involves running some subset of the Talos tests on<br />
desktop and possibly mobile. Obviously not all permutations of tests<br />
and the ways of running them can be tried, so common sense should be<br />
used as to what is run. You may also want to run Talos' internal<br />
unittests: http://hg.mozilla.org/build/talos/file/tip/tests<br />
<br />
You should tailor your choice of tests to pick those that cover what<br />
you've changed programmatically, but in general you should probably<br />
run at least one startup test and one pageloader test. A good<br />
baseline might be:<br />
<br />
# refer to [[#Running_locally_-_Source_Code|running locally]] for more details<br />
talos -n -d -a tresize:tsvgx -e `which firefox` --develop<br />
<br />
=== Testing on Try Server ===<br />
<br />
There are three scenarios that are needed for testing talos on try server:<br />
* Firefox Developer: testing your Firefox changes for performance issues<br />
* Talos Validation: testing your already reviewed and landed patches to the Talos toolchain in production<br />
* Talos Developer: testing patches to Talos which have not been reviewed or landed<br />
<br />
For the purposes of Talos development we will ignore the Firefox Developer scenario and discuss the two scenarios regarding Talos toolchain development. In fact, the process is similar for both, lets get started:<br />
<br />
First off, you need to edit [[http://dxr.mozilla.org/mozilla-central/source/testing/talos/talos.json?from=talos.json&case=true#1 testing/talos/talos.json]] in your Firefox tree, what is of most importance is:<br />
"talos.zip": {<br />
"url": "http://talos-bundles.pvt.build.mozilla.org/zips/talos.49b74c08dad4.zip",<br />
"path": ""<br />
},<br />
"global": {<br />
"talos_repo": "https://hg.mozilla.org/build/talos",<br />
"talos_revision": "5e18c3e56875"<br />
}<br />
<br />
Android 4.0 tests use "talos.zip:, and all desktop platforms use the "global" section. You can see in global there are 2 fields, "talos_repo" and "talos_revision".<br />
<br />
In the Talos Validation scenario, you only need to change "talos_revision" to be the revision of [[http://hg.mozilla.org/build/talos talos]] that your change is.<br />
<br />
For the Talos Developer scenario, you would edit "global" to look like this:<br />
"global": {<br />
"talos_repo": "http://hg.mozilla.org/users/jmaher_mozilla.com/tpain",<br />
"talos_revision": "default"<br />
}<br />
<br />
There are 2 key points here:<br />
* the repo is pointing to a [[https://developer.mozilla.org/en-US/docs/Creating_Mercurial_User_Repositories user repo]] which contains a full copy of the talos repo and all local changes made<br />
* the revision is pointing at "default"<br />
<br />
''NOTE: there is a trick with using "default" as the revision, it allows you to check in changes and then retrigger a job on try. This avoids the need to push a new revision to try and wait for a build.''<br />
<br />
Finally if you are validating a push or adjusting something that should or will affect Android Talos, then you need to [[http://hg.mozilla.org/build/talos/file/5e18c3e56875/create_talos_zip.py create a new talos.zip]], ftp that to a people.mozilla.org directory, and then edit the talos.zip section of talos.json to reference it.<br />
<br />
Once you have talos.json changed, you just need to select the proper [[http://trychooser.pub.build.mozilla.org/ try chooser]] syntax.<br />
<br />
== Are my numbers ok ==<br />
<br />
The best way to answer this question is to push to try server and compare the reported numbers from the logs (use Treeherder as a log parser) and compare that with the [[http://graphs.mozilla.org/ graph server]]. I recommend using Treeherder to open the link to the graphs. <br />
<br />
If you are planning on landing on mozilla-central, look at tests from mozilla-central. Be aware of PGO vs Non PGO and e10s vs Non e10s. Treeherder makes this a moderately pain free process (i.e. about 30 minutes).<br />
<br />
== Using try server ==<br />
<br />
If you have access to generate try builds you can also have performance tests run against a custom version of talos. The performance results will be generated on the same machines that generate the talos results for all check-ins on all branches. This involves a few steps:<br />
<br />
=== Testing changes to talos properly ===<br />
* Create a [https://developer.mozilla.org/en-US/docs/Creating_Mercurial_User_Repositories?redirectlocale=en-US&redirectslug=Publishing_Mercurial_Clones user repo] with talos, commit and push your changes<br />
* Check out a copy of Mozilla central<br />
* Modify the file "testing/talos/talos.json" to point to your user repo and put the changeset as 'default'.<br />
** For android, change the location of talos.zip<br />
<br />
=== Pushing to try ===<br />
* [https://wiki.mozilla.org/ReleaseEngineering/TryServer#How_to_push_to_try Push] this change to try server using the right syntax (you can use TryChooser to help with this: recommended is to test talos thoroughly, but standard unit tests can be skipped)<br />
* Try server will give you results for a single data point (I recommend hitting retrigger a few times to get at least 3 data points for each test). Graph server is not very useful for viewing your try push data, we have two options for aiding in this effort:<br />
** [[http://hg.mozilla.org/build/talos/file/tip/talos/compare.py compare.py]]: clone talos, setup the virtualenv, run "python compare.py --help", normally I run "python compare.py --revision <rev>" where <rev> is the revision of my try push<br />
** [[http://compare-talos.mattn.ca/ compare-talos]]: Browse to the [http://hg.mozilla.org/build/talos/file/tip/talos/compare.py url], enter your try server revision, then enter a revision of the branch you are comparing to, you can then browser the delta for each summary and individual test page.<br />
<br />
A bit more information can be found in this [http://armenzg.blogspot.com/2011/12/taloszip-talosjson-and-you.html blog post] from armenzg.<br />
<br />
== Running locally - Source Code ==<br />
<br />
* Note: you must first have setuptools installed on your system<br />
* apt-get install python-setuptools # linux<br />
* https://pypi.python.org/pypi/setuptools # download and install for all operating systems<br />
<br />
* you also need virtualenv installed on your system<br />
* pip install virtualenv # http://www.virtualenv.org/en/latest/virtualenv.html#installation<br />
<br />
For the majority of the tests, we include test files and tools out of the box. You will need the [https://developer.mozilla.org/en-US/docs/Simple_Firefox_build mozilla-central code base]:<br />
<br />
* '''clone talos:'''<br />
hg clone http://hg.mozilla.org/mozilla-central<br />
<br />
* '''setup talos'''<br />
cd mozilla-central/testing/talos<br />
virtualenv .<br />
. bin/activate (or on windows Scripts\activate.bat)<br />
python setup.py develop<br />
<br />
<br />
* '''run tests:'''<br />
talos --develop --executablePath pathtofirefox --activeTests tart<br />
# Note: this will open and close the browser real fast for the warmup, then run the test<br />
** --develop indicates to run in develop mode and store the results in local.json + local.out<br />
** --executablePath tells Talos where the firefox installation we want to run is located<br />
*** we have pathtofirefox as an example, you can use '~/mozilla/objdir/dist/bin/firefox' or whatever the full path is to your firefox executable that will be running the tests.<br />
** --activeTests is a list of tests we want to run separated by ':'. In this example, we are running the tart test .<br />
** --output is the new config file we want to generate<br />
You can use `talos --help` to get a complete list of options<br />
<br />
'''Tip: Run ''find . | xargs touch'' to clear operating system caches between talos runs. This significantly improves the consistency of the results.'''<br />
<br />
If you're looking to run remote talos, instructions are at: https://wiki.mozilla.org/Mobile/Fennec/Android#talos<br />
<br />
''talos --print-tests'' may be used to display the descriptions and run-time parameters of tests<br />
<br />
We do not include the tp5 or similar pagesets for legal restrictions.<br />
<br />
== How Talos is Run in Production ==<br />
<br />
* buildbot constructs commands to launch mozharness, ex:<br />
/tools/buildbot/bin/python scripts/scripts/talos_script.py --suite chromez --add-option --webServer,localhost --branch-name Mozilla-Inbound-Non-PGO --system-bits 64 --cfg talos/linux_config.py --download-symbols ondemand --use-talos-json --blob-upload-branch Mozilla-Inbound-Non-PGO<br />
<br />
* mozharness [https://dxr.mozilla.org/mozilla-central/source/testing/mozharness/mozharness/mozilla/testing/talos.py talos.py] downloads common tools, the talos source, pagesets and run the install commands.<br />
<br />
* talos [https://dxr.mozilla.org/mozilla-central/source/testing/talos/talos/run_tests.py run_tests.py] is invoked with commandline options which then runs the test as you would locally<br />
<br />
* Talos will run the tests and measured results which are uploaded to [http://graphs.mozilla.org/ graphserver] (after being suitably averaged per-page for Pageloader tests)<br />
** (Talos also uploads raw results to [https://treeherder.mozilla.org/perf.html#/graphs PerfHerder])<br />
<br />
* the graphserver performs averaging across the pageset (for Pageloader tests) or across cycles (for Startup tests) and returns a number via HTTP to Talos which is then printed to the log<br />
<br />
* [https://treeherder.mozilla.org/ Treeherder] receives the name of the suite from buildbot. These are correlated to Treeherder letters via [https://github.com/mozilla/treeherder-service/blob/master/treeherder/etl/buildbot.py]. The computed results from graphserver are scraped from the log and displayed when a Treeherder suite letter is clicked.<br />
<br />
=== The Test Machines ===<br />
<br />
Here is a [[https://wiki.mozilla.org/Buildbot/Talos/Misc#Hardware_Profile_of_machines_used_in_automation description of the specs]] for the machines we use. For more information, please see the [https://wiki.mozilla.org/ReferencePlatforms#Build_Reference_Platforms Test Reference Platforms].<br />
<br />
=== Running Tp the Automation Way ===<br />
In our automation, we run beneath many more restrictions than normal users. One of those restrictions is that our automation machines are walled off from the real-world networks. Because of this, and because we want to test pure page-loading and rendering time of Firefox, we serve the pages from localhost using a built in python webserver thus eliminating all network latency and uncertainty. You've probably noticed this if you looked at the talos/page_load_test/tp4.manifest.<br />
<br />
To do this, we construct full downloads of sites in our manifest and they are placed on the automation slave at run time. Because we cannot at this time distribute our full page load test set, I'll walk through how these are set up and show you how to make your own. Note that our next version of the page load set will be distributable, so soon this won't be an issue.<br />
<br />
In the meantime, here's the instructions:<br />
<ol><br />
<li>Use the following wget command to fetch a page and everything it links to in order to have a complete page for offline use: <pre>wget -p -k -H -E -erobots=off --no-check-certificate -U "Mozilla/5.0 (firefox)" --restrict-file-names=windows --restrict-file-names=nocontrol $URL -o outputlog.txt</pre><br />
</li><br />
</ol></div>Standard8https://wiki.mozilla.org/index.php?title=Loop/Development&diff=1106723Loop/Development2015-11-23T13:16:34Z<p>Standard8: Fix env var for loop server url</p>
<hr />
<div>== Bug Tracking and Repositories ==<br />
<br />
=== Need Help, want to discuss with Loop developers? ===<br />
<br />
If you need help or want to discuss something with the Loop developers, then visit us on [irc://irc.mozilla.org/loop #loop on irc.mozilla.org] - if you need more information about IRC, see our [[IRC]] page.<br />
<br />
=== Tracking ===<br />
Bugs are stored in [https://github.com/mozilla/gecko-dev bugzilla]:<br />
<br />
* Desktop & Standalone (aka 'link generator' and 'link clicker', respectively): 'Loop' product, 'Client' component<br />
* Server: 'Loop' product, 'Server' component<br />
<br />
==== Looking for bugs? ====<br />
<br />
Try one of the [https://bugzilla.mozilla.org/buglist.cgi?f1=status_whiteboard&o1=substring&resolution=---&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&v1=good%20first%20bug&component=Client&component=General&product=Hello%20(Loop)&list_id=12141660 good first bugs] (simple bugs that are easy to fix) or a [https://bugzilla.mozilla.org/buglist.cgi?f1=status_whiteboard&o1=substring&resolution=---&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&v1=good%20next%20bug&component=Client&component=General&product=Hello%20(Loop)&list_id=12141660 good next bug].<br />
<br />
There's also [https://bugzilla.mozilla.org/buglist.cgi?f1=bug_mentor&list_id=12141679&o1=isnotempty&resolution=---&emailtype1=exact&query_format=advanced&emailassigned_to1=1&email1=nobody%40mozilla.org&product=Hello%20(Loop) mentored bugs] where are developers have signed up to help you fix the bugs. Most of these will be in the good first and next bug groups above.<br />
<br />
Or if not, take a look at our [[Firefox/Iterative_Hello_Development#Product_Backlog|ranked priority list]] and choose one from there.<br />
<br />
=== Repositories ===<br />
Loop is contained across several repositories:<br />
<br />
* Master repository for Desktop and Standalone UI: [http://hg.mozilla.org/mozilla-central/ mozilla-central] (there's a [https://github.com/mozilla/gecko-dev git mirror] of it as well)<br />
* [https://github.com/mozilla-services/loop-server Loop server]<br />
<br />
=== Directories ===<br />
<br />
All files, apart from desktop locales are in [http://hg.mozilla.org/mozilla-central/ mozilla-central], under <code>browser/components/loop/</code>. Within that directory there is:<br />
<br />
* *.jsm - Various modules used within Firefox desktop<br />
* build-jsx used to build the required jsx files<br />
* content/ - These files are all used on the desktop for the Loop panel and conversation window. They are loaded into content space rather than chrome<br />
* content/shared - Used for Firefox desktop, but also used for the standalone UI<br />
* standalone/ - Files used by the standalone application, including commands to make and run a standalone server (see below)<br />
* standalone/content - The content files for the standalone application<br />
* ui/ - A UI showcase, used to aid development and layout of styles for the various parts of the UI<br />
<br />
A small bit of integration code with Firefox can be found in [https://dxr.mozilla.org/mozilla-central/source/browser/base/content/browser-loop.js browser-loop.js].<br />
<br />
=== Loop Software Architecture ===<br />
<br />
More details on the structure coming soon. We have parts of Loop that run in a web-content space (those typically below a <code>content</code> directory), and other parts that work in a gecko privileged space (these are typically in the root directory of <code>browser/components/loop</code>).<br />
<br />
A lot of the content files use a Flux based architecture, [https://blog.mozilla.org/standard8/2015/02/09/firefox-hello-desktop-behind-the-scenes-flux-and-react/ read more about that here].<br />
<br />
== Getting started with Firefox Desktop and Standalone development ==<br />
<br />
=== Additional Requirements ===<br />
<br />
For Loop development, there's currently a couple of extra requirements on top of the [https://developer.mozilla.org/en-US/docs/Simple_Firefox_build#Build_prerequisites Firefox desktop build requirements]. <br />
<br />
These are [https://nodejs.org/ NodeJS] (note, though, that you MUST currently use an old version, 0.10), react-tools and eslint.<br />
<br />
Note that when building Firefox itself, be sure to set <pre>ac_add_options --enable-optimize</pre> in your mozconfig to avoid problems with automated tests timing out.<br />
<br />
Install NodeJS 0.10 first, then follow the instructions below<br />
<br />
==== Mac installation of node 0.10 ====<br />
<br />
brew install homebrew/versions/node010<br />
<br />
==== Windows Specific ====<br />
<br />
There's a little bit more set-up required specific to Windows.<br />
<br />
* Start up the mozilla-build shell via one of the start-shell-msvc*.bat files<br />
* Work out your APPDATA path:<br />
<br />
echo $APPDATA<br />
<br />
* In your APPDATA, you'll need to replace various parts, so:<br />
<br />
c:\Users\moztest\AppData\Roaming<br />
<br />
becomes:<br />
<br />
/c/Users/moztest/AppData/Roaming<br />
<br />
* Now setup your profile file, replace the <code><path to APPDATA></code> with the path you just worked out.<br />
<br />
echo PATH=$PATH:/c/Program\ Files/nodejs:<path to APPDATA>/npm >> ~/.profile<br />
<br />
* Now exit your shell/console and re-enter it.<br />
* Complete the steps in the "All Platforms" section<br />
<br />
If you need to change the path later, you can edit the ~/.profile file.<br />
<br />
==== All Platforms ====<br />
<br />
Once you have Node installed, use npm (which comes with it) to globally install the extra required items:<br />
<br />
npm install -g react-tools@0.12.2<br />
npm install -g eslint<br />
npm install -g eslint-plugin-react<br />
<br />
=== Standalone server - Link-clicker UI and unit test development ===<br />
<br />
We have a server that helps running the unit tests manually, there's also the ui-showcase which helps with previewing layouts before starting Firefox.<br />
<br />
cd browser/components/loop/standalone<br />
make install<br />
make runserver<br />
<br />
You only need to do <code>make runserver</code> on subsequent runs. Although <code>make install</code> may be required occasionally if dependencies get updated.<br />
<br />
==== Visiting test pages ====<br />
<br />
To view the unit tests visit:<br />
<br />
http://localhost:3000/test/<br />
<br />
To view the UI-showcase, visit:<br />
<br />
http://localhost:3000/ui/<br />
<br />
==== Testing out changes to the standalone UI ====<br />
<br />
The standalone part of Loop (also known as the link-clicker UI) can be viewed in any web browser, and is hosted on a server. You can hook the development server up to talk to one of the servers to be able to test changes to the standalone UI.<br />
<br />
To do this, setup the standalone server as described above, then rather than a simple <code>make runserver</code>, do:<br />
<br />
LOOP_SERVER_URL=https://path/to/server make runserver<br />
<br />
Replace the server path with one of:<br />
<br />
* Development server: https://loop-dev.stage.mozaws.net<br />
* Production server: https://loop.services.mozilla.com<br />
<br />
(Generally its better to use the development server than the production one to avoid affecting the stats of production usage).<br />
<br />
For the desktop side (also known as the link-generator):<br />
<br />
* You may wish to create a new profile for testing purposes (since changing the pref below will loose your previously created conversations), e.g:<br />
<br />
/path/to/firefox -createProfile myTestProfile<br />
./mach run -P myTestProfile -purgecaches<br />
<br />
* Visit about:config, change the <code>loop.server</code> preference to be <code>https://loop-dev.stage.mozaws.net/v0</code><br />
* Restart Firefox after changing the pref<br />
* From the Hello panel, select "Start a conversation"<br />
* Copy the url, and paste it into a browser window, but change the url<br />
** <code>https://hello.firefox.com/1234567890a#dfkjekrltykyleoefirek</code> would become <code>http://localhost:3000/content/1234567890ab#dfkjekrltykyleoefirek</code><br />
<br />
You should now be able to join the room with that instance.<br />
<br />
=== Developing ===<br />
If you're altering any of the javascript files, you need to make sure you alter the jsx versions if they exist.<br />
<br />
You can start up the jsx compiler so that it watches the files and continuously updates them whilst the jsx is left running:<br />
<br />
cd browser/components/loop<br />
./build-jsx -w<br />
<br />
To stop watching files and quit jsx, just use <code>ctrl-c</code><br />
<br />
{{note|Note: On windows, build-jsx doesn't currently do the version check for the react version, so please keep an eye on the suggested version in case it is updated.}}<br />
<br />
=== Linting ===<br />
We use [http://eslint.org/ eslint] to parse the Loop files and check them for correctness before landing.<br />
<br />
See the [http://mxr.mozilla.org/mozilla-central/source/browser/components/loop/README.txt README.txt] for how to run it.<br />
<br />
=== UI-showcase ===<br />
<br />
If you've got the standalone server running, you can view this by visiting http://localhost:3000/ui/ . This lets you layout the content pages (the parts displayed in the panel and conversation view) in a web context before loading and testing them in Firefox itself.<br />
<br />
This can save you a considerable amount of time, because you don't have to (re-)build each time you made a change to see what effect it had.<br />
<br />
=== Running Tests ===<br />
<br />
There's a file located at <code>[http://mxr.mozilla.org/mozilla-central/source/browser/components/loop/run-all-loop-tests.sh browser/components/loop/run-all-loop-tests.sh]</code> which allows all loop related tests to be run at the same time.<br />
<br />
For information on running the tests individually, see the <code>[http://mxr.mozilla.org/mozilla-central/source/browser/components/loop/README.txt README.txt]</code> file.<br />
<br />
== Creating Patches ==<br />
<br />
Creating patches happens in exactly the same manner as for the rest of Firefox. See our documentation on the Mozilla Developer Network for [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/How_to_Submit_a_Patch how to create and submit a patch.]<br />
<br />
[[Category:Firefox Hello]]<br />
[[Category:Loop]]</div>Standard8https://wiki.mozilla.org/index.php?title=MOSS/Foundational_Technology/Projects_We_Use&diff=1103907MOSS/Foundational Technology/Projects We Use2015-11-03T12:30:32Z<p>Standard8: Add some notes about Firefox Hello usages</p>
<hr />
<div>This is an incomplete list of the free software and open source projects Mozilla relies upon. As a starting point, it lists each project along with a short statement of how we depend on it. Where practical it would also be helpful to identify a Mozillian most closely associated with our use of each project, as next steps will involve contacting each one to find out more about how we can best provide support.<br />
<br />
This is a work in progress - please contribute to this list.<br />
<br />
{| class="wikitable"<br />
|-<br />
! Project !! Description !! Contact within Mozilla<br />
|-<br />
| [https://angularjs.org/ angular.js] || Used by A-Team for web apps (eg Treeherder) || Member of Jonathan Griffin's team<br />
|-<br />
| [https://httpd.apache.org Apache Server] || Used by A-Team for web apps || Member of Jonathan Griffin's team<br />
|-<br />
| [https://github.com/ansible/ansible Ansible] || Used by IT (netops) and A-Team to manage deployments || jbarnell , GPS?<br />
|-<br />
| [https://babeljs.io/ BabelJS] || JavaScript compiler, Used by Gaia, TaskCluster team || Selena Deckelmann<br />
|-<br />
| [https://pypi.python.org/pypi/blessings/ Blessings] || Terminal formatting lib used by mozilla-central build process || Erik Rose<br />
|-<br />
| [http://getbootstrap.com/ Bootstrap] || HTML/CSS/JS framework, used by many of Mozilla's sites. || Webdev<br />
|-<br />
| [https://bro.org bro] || The Bro Network Security Monitor || Michal Purzynski<br />
|-<br />
| [http://buildbot.net/ BuildBot] || The base system currently in use for release automation ''(due to be replaced by Task Cluster)'' || Chris AtLee<br />
|-<br />
| [http://bugzilla.org/ Bugzilla] (upstream) || The base Bugzilla on that we customize for Mozilla's use || Glob<br />
|-<br />
| [http://www.celeryproject.org/ Celery] || Distributed task queue. Used by Treeherder and others. || Member of Jonathan Griffin's team<br />
|-<br />
| [http://ckeditor.com/ CKEditor] || WYSIWYG editor on MDN || <br />
|-<br />
| [http://chaijs.com/ Chai] || JavaScript test and assertion library || Cloud Services, Tarek Ziade's team (kinto.js), Firefox Hello team<br />
|-<br />
| [http://www.llvm.org Clang/LLVM] || C/C++ compiler and infrastructure || Ehsan Akhgari <br />
|-<br />
| [https://codemirror.net/ CodeMirror] || Used in DevTools, [https://thimble.mozilla.org Thimble], and other online code tools || David Humphrey/Simon Wex<br />
|-<br />
| [https://conemu.github.io/ ConEmu] || Console emulator for Windows. Used by devs running Windows. || Ed Morley<br />
|-<br />
| [http://curl.haxx.se/ curl] || internet transfer tool and library, used by crashreporter and FirefoxOS || Daniel Stenberg<br />
|-<br />
| [https://www.debian.org/ Debian] || Used on many developer boxes || Unknown (maybe Sylvestre Ledru) or glandium<br />
|-<br />
| [http://deis.io Deis] || Open Source Heroku-like PaaS platform. Hosts www.mozilla.org, masterfirefoxos.mozilla.org, etc. || Member of Benjamin Sternthal's team<br />
|-<br />
| [https://discourse.org Discourse] || [https://discourse.mozilla-community.org Community], [https://discourse.webmaker.org/ Webmaker], [https://discourse.mozilla-advocacy.org/ Advocacy], et al || [[IT/Community/WG/Discourse|Community Ops]] (Yousef Alam or Tanner Filip)<br />
|-<br />
| [https://djangoproject.com Django] || Backend web framework used on many of our websites, including addons.mozilla.org, marketplace.mozilla.org, support.mozilla.org, Input, Snippets, MDN (Mozilla Developer Network), mozilla.org, Treeherder || Andy McKay and Jannis Leidel are (or have been) on the [https://www.djangoproject.com/foundation/ Django Software Foundation] board, Jannis is core team member<br />
|-<br />
| [http://www.django-rest-framework.org Django REST framework] || API framework. Used by various Mozilla sites including MDN, Firefox marketplace, mozilla.org, support.mozilla.com. || Andy McKay and Jannis Leidel<br />
|-<br />
| [https://github.com/docker/docker Docker] || Used by release engineering for Linux build and test containers and by ateam for managing test and production services. Used by many Mozilla websites as well such as addons.mozilla.org, marketplace.mozilla.org. (Plus docker-compose and docker machine) || Member of Selena Deckelmann's team <br />
|-<br />
| [https://www.elastic.co/products/elasticsearch elasticsearch] || Search engine for various web sites and analytics || Erik Rose<br />
|-<br />
| [http://www.gnu.org/software/emacs/ emacs] || Programmable editor used by many developers || —<br />
|-<br />
| [http://eslint.org/ eslint] || Pluggable linting utiltity used by Firefox Hello, DevTools and Firefox Android || Mark Banner<br />
|-<br />
| [https://github.com/ether/etherpad-lite Etherpad] || Used for meeting notes, etc || JP Schneider<br />
|-<br />
| [https://flake8.readthedocs.org/ flake8] || Wrapper around Python linters. Used by Treeherder and others. || Member of Jonathan Griffin's team<br />
|-<br />
| [http://flask.pocoo.org/ Flask] || Python web framework || Erik Rose<br />
|-<br />
| [https://fortawesome.github.io/Font-Awesome/ Font Awesome] || Font and CSS toolkit, used by many of Mozilla's sites. || Webdev<br />
|-<br />
| [http://gcc.gnu.org GCC] || C/C++ compiler and infrastructure || Nathan Froyd<br />
|-<br />
| [https://git-scm.com/ Git] || Version control system - https://git.mozilla.org || Unknown <br />
|-<br />
| [http://gunicorn.org/ gunicorn] || Python WSGI HTTP Server. Used by Treeherder, Socorro, Pontoon. || Webdev<br />
|-<br />
| [http://www.freedesktop.org/wiki/Software/HarfBuzz/ HarfBuzz] || International text shaping engine used in Firefox/Servo || Platform team<br />
|-<br />
| [http://hunspell.sourceforge.net/ Hunspell] || Spellchecking engine || Unknown<br />
|-<br />
| [https://github.com/hunspell/hyphen/ Hyphen] || Hyphenation library || Unknown<br />
|-<br />
| [https://github.com/jkbrzt/httpie HTTPie] || HTTP command-line client || Cloud Services (among many others), Tarek Ziade's team<br />
|-<br />
| [https://theintern.github.io/intern/ Intern] || Intern is a complete test system for JavaScript designed to help you write and run consistent, high-quality test cases for your JavaScript libraries and applications. || jrgm/vladikoff<br />
|-<br />
| [http://canonware.com/jemalloc/ jemalloc] || Memory allocation library || We can ask glandium<br />
|-<br />
| [http://jenkins-ci.org/ Jenkins CI] || Continuous integration system used by WebQA and EE || Unknown<br />
|-<br />
| [https://jquery.com/ jQuery] || JavaScript library, used by many of Mozilla's sites. || Webdev<br />
|-<br />
| [https://github.com/tmpvar/jsdom jsdom] || DOM implementation in full JS || Test suites in Cloud Services, Tarek Ziade's team (kinto.js)<br />
|-<br />
| [http://kombu.readthedocs.org/ Kombu] || Messaging library for Python. Used by Treeherder and others. || Member of Jonathan Griffin's team<br />
|-<br />
| libjpeg-turbo || JPEG decoding library || Jeff Muizelaar <br />
|-<br />
| [http://www.libpng.org/pub/png/libpng.html libpng] || PNG decoding library || Jeff Muizelaar <br />
|-<br />
| libvpx (Google) || Library for support of Google’s VP* family of codecs || Tim Terriberry <br />
|-<br />
| Linux || OS kernel used in Firefox OS || Unknown <br />
|-<br />
| [https://lodash.com/ lodash] || JavaScript utility library, used by many of Mozilla's sites. || Webdev & Firefox Hello<br />
|-<br />
| [https://www.list.org/ Mailman] || [https://mail.mozilla.org/listinfo Mailing lists] || Unknown<br />
|-<br />
| [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] || You are reading this on a wiki || Sheeri Cabral<br />
|-<br />
| [https://www.mercurial-scm.org/ Mercurial] || Version control system and source code management || GPS <br />
|-<br />
| [http://mochajs.org/ Mocha] || JavaScript test runner || Cloud Services, Tarek Ziade's team (kinto.js); Firefox Hello team<br />
|-<br />
| [https://github.com/kumar303/mohawk Mohawk] || Python library for Hawk HTTP authorization. Used by Treeherder and others. || Member of Jonathan Griffin's team<br />
|-<br />
| [http://mozdef.com mozdef] || Security event monitoring and incident response || Jeff Bryner<br />
|-<br />
| [http://www.mingw.org/wiki/msys msys] || Used to build Firefox on Windows. Note: It's likely best we support the newer MSYS2 project instead: https://github.com/msys2 || Unknown<br />
|-<br />
| [https://www.mysql.com/ MySQL] || Open source relational DB used by many developers, including AMO, SUMO, Input, bugzilla, releng, adminstered by IT || Sheeri Cabral<br />
|-<br />
| [https://www.nagios.org/ Nagios] || IT management system. Used for notifications of system failures || Sheeri Cabral, Ashish V.<br />
|-<br />
| [http://netsniff-ng.org/ netsniff-ng] || Linux networking toolkit || Michal Purzynski<br />
|-<br />
| nICEr || Library for traversing firewalls || Unknown <br />
|-<br />
| [https://nixos.org NixOS] || Reproducible Linux distribution. Used by some developers and for running benchmarks on Firefox OS for AreWeFastYet || Nicolas B. Pierron<br />
|-<br />
| [https://nodejs.org Node.js] || JavaScript runtime for server side applications, command line utilities || Nick Desaulniers<br />
|-<br />
| nrappkit || Toolkit for building standalone applications || Unknown <br />
|-<br />
| OpenH264 (Cisco) || H.264 video library || Unknown <br />
|-<br />
| [http://openresty.org OpenResty] || a fast web app server by extending nginx, used by cloudops || Benson Wong (mostlygeek)<br />
|-<br />
| [http://www.openssh.com/ OpenSSH] || Remote server management, secure transport for Git and Mercurial || Unknown<br />
|-<br />
|-<br />
| [http://www.openLDAP.org/ OpenLDAP] || User management used by Infra || :jabba?<br />
|-<br />
|-<br />
| [http://www.inspircd.org/ inspircd] || Irc server used by mozilla || Unknown<br />
|-<br />
| [http://openssl.org/ OpenSSL] || Cryptograpahy and TLS Toolkit || Nick Desaulniers<br />
|-<br />
| [https://github.com/khaledhosny/ots OTS] || OpenType sanitizer used by Firefox to protect against security bugs in underlying platforms related to malicious fonts || Jonathan Kew <br />
|-<br />
| [https://www.owasp.org/index.php/ZAP OWASP ZAP] || Web security testing tool used by security and QA teams || Simon Bennetts (psiinon)<br />
|-<br />
| [https://owncloud.org/ Owncloud] || Open platform to host your cloud under your control || Some communities have been using it to host files under their control (ask Nukeador)<br />
|-<br />
| [https://pypi.python.org/pypi/parsimonious/ Parsimonious] || Parsing lib used by DXR and a few other sites (I think) || Erik Rose<br />
|-<br />
| [https://github.com/mozilla/pdf.js PDF.js] || Used as the PDF Viewer in Firefox and Firefox OS || Brendan Dahl, Yury Delendik<br />
|-<br />
| [https://github.com/PyCQA/pep8 pep8] || Python linter. Used by Treeherder and others. || Member of Jonathan Griffin's team<br />
|-<br />
| [https://www.perl.org/ Perl] || Used by Bugzilla || Member of Jonathan Griffin's team<br />
|-<br />
| [https://phalconphp.com/ Phalcon PHP Framework] || Phalcon is an open source web framework delivered as a C extension for the PHP language providing high performance and lower resource consumption. || Andres Gutierrez is one of the [https://phalconphp.com/en/team core developers] of Phalcon and its inspiration.<br />
|-<br />
| [https://github.com/pypa/pip pip] || Python package tool. Used by all Python projects. || Erik Rose and Jannis Leidel, Jannis is core team member ([https://www.pypa.io/ PyPA])<br />
|-<br />
| [http://piwik.org/ Piwik] || Analytic software that gives you the control and respects privacy || Some communities have been using it to avoid GA analytics (Ask Nukeador)<br />
|-<br />
| [http://cmusphinx.sourceforge.net/ Pocketsphinx] || Speech recognition toolkit embedded into Firefox OS|| André Natal<br />
|-<br />
| [http://www.postgresql.org/ PostgreSQL] || Open source relational DB used by many developers, adminstered by IT || Selena Deckelmann<br />
|-<br />
| [https://github.com/PrismJS/prism Prism.js] || Syntax highlighting on code samples on MDN || <br />
|-<br />
| [https://github.com/puppetlabs/puppet Puppet] || System administration tool || Member of Amy Rich's team<br />
|-<br />
| [https://github.com/pyflakes/pyflakes pyflakes] || Python linter. Used by Treeherder and others. || Member of Jonathan Griffin's team<br />
|-<br />
| [https://github.com/Pylons/pyramid/ Pyramid] || Python Web framework || Cloud Services team<br />
|-<br />
| [http://pytest.org/ pytest] || Python testing tool. Used by Treeherder and others. || Member of Jonathan Griffin's team<br />
|-<br />
| Python || Scripting language || [http://python.org/psf/ Python Software Foundation], Selena Deckelmann is a former board member<br />
|-<br />
| [https://pypi.python.org/pypi/pyelasticsearch/ pyelasticsearch] || Python client for elasticsearch || Erik Rose<br />
|-<br />
| [https://www.rabbitmq.com/ RabbitMQ] || Distributed Queue, used by Socorro, Pulse (all our publicly available build/test/commit information flows through this), Treeherder, addons.mozilla.org (with Celery), marketplace.mozilla.org (with Celery) || Selena Deckelmann<br />
|-<br />
| [http://facebook.github.io/react/index.html ReactJS] || Javascript library for building user interfaces. Used by Firefox Hello & DevTools || Mark Banner<br />
|-<br />
| [https://readthedocs.org/ Read the Docs] || Hosted automatically-built documentation, used by Cloud Services and a wide variety of mozilla Github projects || Ben Bangert, Jannis Leidel, Gervase Markham<br />
|-<br />
| [http://redis.io/ Redis] || Really fast data structure store, cache and message broker || Cloud Services Tarek Ziade's team, Loop Server (Hello) team<br />
|-<br />
| [http://python-requests.org/ Requests] || "Python HTTP Requests for Humans". Used by many many Mozilla Python projects. || Member of Jonathan Griffin's team<br />
|-<br />
| [https://www.reviewboard.org/ Review Board] || The base of MozReview, the new review tool being developed to replace Splinter || Steven MacLeod, Mike Conley<br />
|-<br />
| [http://www.seleniumhq.org/ Selenium] || Browser test driver || stephend/AutomatedTester or jrgm/vladikoff<br />
|-<br />
| [http://sinonjs.org/ Sinon] || JavaScript mock library || Cloud Services, Tarek Ziade's team (kinto.js); Firefox Hello team<br />
|-<br />
| [https://slimerjs.org/ SlimerJS] || Scriptable browser, based on Gecko, used for functional tests in some few Mozilla projects ( [[PluotSorbet]], some FxOS apps ? and others ?) || Myk Melez<br />
|-<br />
| [https://www.sqlite.org/ SQLite] || File-based database || khuey<br />
|-<br />
| [http://learnboost.github.io/stylus/ Stylus] || CSS Pre-processor on several sites || webdev<br />
|-<br />
| [https://subversion.apache.org/ Subversion] || https://svn.mozilla.org ''(Planning to decommission in near future)'' || Unknown<br />
|-<br />
| [http://http://suricata-ids.org/ suricata] || IDS / IPS / NSM engine || Michal Purzynski<br />
|-<br />
| [https://travis-ci.org/ Travis] || Continuous integration system used by several teams (eg Treeherder) || Jonathan Griffin's team <br />
|-<br />
| [https://github.com/mitchellh/vagrant Vagrant]|| Build and distribute dev envs, used by Treeherder and others || Member of Jonathan Griffin's team<br />
|-<br />
| [http://valgrind.org/ Valgrind] || Memory error detection and profiling of C and C++ code || jseward, njn<br />
|-<br />
| [http://vim.org/ vim] || editor used by many developers || —<br />
|-<br />
| [https://github.com/w3c/web-platform-tests web-platform-tests] || Testcases and tooling for cross-browser testing of web-platform APIs || jgraham<br />
|-<br />
| [http://www.webrtc.org WebRTC.org] || Components to support real-time communication in browsers and mobile applications || Randell Jesup <br />
|-<br />
| [https://github.com/mitsuhiko/werkzeug Wekzeug] || Component for server-side Python applications, used to detect bottlenecks || Cloud Services Tarek Ziade's team <br />
|-<br />
| [http://www.wordpress.org WordPress] || Powers our blogs, blog.mozilla.org || Craig Cook <br />
|-<br />
| [https://xiph.org Xiph.Org] || Media codecs ship in Firefox, encoding tools || Ralph Giles<br />
<br />
|}</div>Standard8https://wiki.mozilla.org/index.php?title=Loop/Development&diff=1099494Loop/Development2015-10-07T08:20:54Z<p>Standard8: /* Windows Specific */ Fix command to insert the path into the profile file.</p>
<hr />
<div>== Bug Tracking and Repositories ==<br />
<br />
=== Need Help, want to discuss with Loop developers? ===<br />
<br />
If you need help or want to discuss something with the Loop developers, then visit us on [irc://irc.mozilla.org/loop #loop on irc.mozilla.org] - if you need more information about IRC, see our [[IRC]] page.<br />
<br />
=== Tracking ===<br />
Bugs are stored in [https://github.com/mozilla/gecko-dev bugzilla]:<br />
<br />
* Desktop & Standalone (aka 'link generator' and 'link clicker', respectively): 'Loop' product, 'Client' component<br />
* Server: 'Loop' product, 'Server' component<br />
<br />
==== Looking for bugs? ====<br />
<br />
Try one of the [https://bugzilla.mozilla.org/buglist.cgi?f1=status_whiteboard&o1=substring&resolution=---&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&v1=good%20first%20bug&component=Client&component=General&product=Hello%20(Loop)&list_id=12141660 good first bugs] (simple bugs that are easy to fix) or a [https://bugzilla.mozilla.org/buglist.cgi?f1=status_whiteboard&o1=substring&resolution=---&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&v1=good%20next%20bug&component=Client&component=General&product=Hello%20(Loop)&list_id=12141660 good next bug].<br />
<br />
There's also [https://bugzilla.mozilla.org/buglist.cgi?f1=bug_mentor&list_id=12141679&o1=isnotempty&resolution=---&emailtype1=exact&query_format=advanced&emailassigned_to1=1&email1=nobody%40mozilla.org&product=Hello%20(Loop) mentored bugs] where are developers have signed up to help you fix the bugs. Most of these will be in the good first and next bug groups above.<br />
<br />
Or if not, take a look at our [[Firefox/Iterative_Hello_Development#Product_Backlog|ranked priority list]] and choose one from there.<br />
<br />
=== Repositories ===<br />
Loop is contained across several repositories:<br />
<br />
* Master repository for Desktop and Standalone UI: [http://hg.mozilla.org/mozilla-central/ mozilla-central] (there's a [https://github.com/mozilla/gecko-dev git mirror] of it as well)<br />
* [https://github.com/mozilla-services/loop-server Loop server]<br />
<br />
=== Directories ===<br />
<br />
All files, apart from desktop locales are in [http://hg.mozilla.org/mozilla-central/ mozilla-central], under <code>browser/components/loop/</code>. Within that directory there is:<br />
<br />
* *.jsm - Various modules used within Firefox desktop<br />
* build-jsx used to build the required jsx files<br />
* content/ - These files are all used on the desktop for the Loop panel and conversation window. They are loaded into content space rather than chrome<br />
* content/shared - Used for Firefox desktop, but also used for the standalone UI<br />
* standalone/ - Files used by the standalone application, including commands to make and run a standalone server (see below)<br />
* standalone/content - The content files for the standalone application<br />
* ui/ - A UI showcase, used to aid development and layout of styles for the various parts of the UI<br />
<br />
A small bit of integration code with Firefox can be found in [https://dxr.mozilla.org/mozilla-central/source/browser/base/content/browser-loop.js browser-loop.js].<br />
<br />
=== Loop Software Architecture ===<br />
<br />
More details on the structure coming soon. We have parts of Loop that run in a web-content space (those typically below a <code>content</code> directory), and other parts that work in a gecko privileged space (these are typically in the root directory of <code>browser/components/loop</code>).<br />
<br />
A lot of the content files use a Flux based architecture, [https://blog.mozilla.org/standard8/2015/02/09/firefox-hello-desktop-behind-the-scenes-flux-and-react/ read more about that here].<br />
<br />
== Getting started with Firefox Desktop and Standalone development ==<br />
<br />
=== Additional Requirements ===<br />
<br />
For Loop development, there's currently a couple of extra requirements on top of the [https://developer.mozilla.org/en-US/docs/Simple_Firefox_build#Build_prerequisites Firefox desktop build requirements]. <br />
<br />
These are [https://nodejs.org/ NodeJS] (note, though, that you MUST currently use an old version, 0.10), react-tools and eslint.<br />
<br />
Note that when building Firefox itself, be sure to set <pre>ac_add_options --enable-optimize</pre> in your mozconfig to avoid problems with automated tests timing out.<br />
<br />
Install NodeJS 0.10 first, then follow the instructions below<br />
<br />
==== Mac installation of node 0.10 ====<br />
<br />
brew install homebrew/versions/node010<br />
<br />
==== Windows Specific ====<br />
<br />
There's a little bit more set-up required specific to Windows.<br />
<br />
* Start up the mozilla-build shell via one of the start-shell-msvc*.bat files<br />
* Work out your APPDATA path:<br />
<br />
echo $APPDATA<br />
<br />
* In your APPDATA, you'll need to replace various parts, so:<br />
<br />
c:\Users\moztest\AppData\Roaming<br />
<br />
becomes:<br />
<br />
/c/Users/moztest/AppData/Roaming<br />
<br />
* Now setup your profile file, replace the <code><path to APPDATA></code> with the path you just worked out.<br />
<br />
echo PATH=$PATH:/c/Program\ Files/nodejs:<path to APPDATA>/npm >> ~/.profile<br />
<br />
* Now exit your shell/console and re-enter it.<br />
* Complete the steps in the "All Platforms" section<br />
<br />
If you need to change the path later, you can edit the ~/.profile file.<br />
<br />
==== All Platforms ====<br />
<br />
Once you have Node installed, use npm (which comes with it) to globally install the extra required items:<br />
<br />
npm install -g react-tools@0.12.2<br />
npm install -g eslint<br />
npm install -g eslint-plugin-react<br />
<br />
=== Standalone server - Link-clicker UI and unit test development ===<br />
<br />
We have a server that helps running the unit tests manually, there's also the ui-showcase which helps with previewing layouts before starting Firefox.<br />
<br />
cd browser/components/loop/standalone<br />
make install<br />
make runserver<br />
<br />
You only need to do <code>make runserver</code> on subsequent runs. Although <code>make install</code> may be required occasionally if dependencies get updated.<br />
<br />
==== Visiting test pages ====<br />
<br />
To view the unit tests visit:<br />
<br />
http://localhost:3000/test/<br />
<br />
To view the UI-showcase, visit:<br />
<br />
http://localhost:3000/ui/<br />
<br />
==== Testing out changes to the standalone UI ====<br />
<br />
The standalone part of Loop (also known as the link-clicker UI) can be viewed in any web browser, and is hosted on a server. You can hook the development server up to talk to one of the servers to be able to test changes to the standalone UI.<br />
<br />
To do this, setup the standalone server as described above, then rather than a simple <code>make runserver</code>, do:<br />
<br />
LOOP_SERVER=https://path/to/server make runserver<br />
<br />
Replace the server path with one of:<br />
<br />
* Development server: https://loop-dev.stage.mozaws.net<br />
* Production server: https://loop.services.mozilla.com<br />
<br />
(Generally its better to use the development server than the production one to avoid affecting the stats of production usage).<br />
<br />
For the desktop side (also known as the link-generator):<br />
<br />
* You may wish to create a new profile for testing purposes (since changing the pref below will loose your previously created conversations), e.g:<br />
<br />
/path/to/firefox -createProfile myTestProfile<br />
./mach run -P myTestProfile -purgecaches<br />
<br />
* Visit about:config, change the <code>loop.server</code> preference to be <code>https://loop-dev.stage.mozaws.net/v0</code><br />
* Restart Firefox after changing the pref<br />
* From the Hello panel, select "Start a conversation"<br />
* Copy the url, and paste it into a browser window, but change the url<br />
** <code>https://hello.firefox.com/1234567890a#dfkjekrltykyleoefirek</code> would become <code>http://localhost:3000/content/1234567890ab#dfkjekrltykyleoefirek</code><br />
<br />
You should now be able to join the room with that instance.<br />
<br />
=== Developing ===<br />
If you're altering any of the javascript files, you need to make sure you alter the jsx versions if they exist.<br />
<br />
You can start up the jsx compiler so that it watches the files and continuously updates them whilst the jsx is left running:<br />
<br />
cd browser/components/loop<br />
./build-jsx -w<br />
<br />
To stop watching files and quit jsx, just use <code>ctrl-c</code><br />
<br />
{{note|Note: On windows, build-jsx doesn't currently do the version check for the react version, so please keep an eye on the suggested version in case it is updated.}}<br />
<br />
=== Linting ===<br />
We use [http://eslint.org/ eslint] to parse the Loop files and check them for correctness before landing.<br />
<br />
See the [http://mxr.mozilla.org/mozilla-central/source/browser/components/loop/README.txt README.txt] for how to run it.<br />
<br />
=== UI-showcase ===<br />
<br />
If you've got the standalone server running, you can view this by visiting http://localhost:3000/ui/ . This lets you layout the content pages (the parts displayed in the panel and conversation view) in a web context before loading and testing them in Firefox itself.<br />
<br />
This can save you a considerable amount of time, because you don't have to (re-)build each time you made a change to see what effect it had.<br />
<br />
=== Running Tests ===<br />
<br />
There's a file located at <code>[http://mxr.mozilla.org/mozilla-central/source/browser/components/loop/run-all-loop-tests.sh browser/components/loop/run-all-loop-tests.sh]</code> which allows all loop related tests to be run at the same time.<br />
<br />
For information on running the tests individually, see the <code>[http://mxr.mozilla.org/mozilla-central/source/browser/components/loop/README.txt README.txt]</code> file.<br />
<br />
== Creating Patches ==<br />
<br />
Creating patches happens in exactly the same manner as for the rest of Firefox. See our documentation on the Mozilla Developer Network for [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/How_to_Submit_a_Patch how to create and submit a patch.]<br />
<br />
[[Category:Firefox Hello]]<br />
[[Category:Loop]]</div>Standard8https://wiki.mozilla.org/index.php?title=Loop/Loop-client_Release_Process&diff=1099162Loop/Loop-client Release Process2015-10-05T10:56:43Z<p>Standard8: Major reformat/relayout to bring it up to date</p>
<hr />
<div>= Background =<br />
<br />
Loop-client is the "standalone" part of Firefox Hello. It consists of hosted pages that can be accessed from any browser.<br />
<br />
The definitive source files are in [http://mxr.mozilla.org/mozilla-central/source/browser/components/loop/ mozilla-central], mainly under the [http://mxr.mozilla.org/mozilla-central/source/browser/components/loop/standalone/ standalone directory], however some of the files are shared with desktop.<br />
<br />
The source files for the standalone are automatically extracted into the [https://github.com/mozilla/loop-client loop-client] repository every hour.<br />
<br />
== Automatic updating of loop-client ==<br />
<br />
The master branch of Loop-client is automatically updated from mozilla-central by a script each hour.<br />
<br />
The script lives in loop-client repository and is called [https://github.com/mozilla/loop-client/blob/master/extract_from_hg.py extract_from_hg.py].<br />
<br />
The [[CloudServices/Loop/Deploy#Dev|development server]] runs a cronjob ever hour which runs the script on the loop-client directory on the server (using the mozilla-central hg clone as a base). This also ensures that the development server is automatically updated as well.<br />
<br />
= Release Cycle =<br />
loop-client releases happen when necessary. If strings have changed, there is typically an approximately 2 week cycle to allow them to translate. Current release schedules are tracked on the [[Loop#Cross-Team_Project_Calendar cross-team|calendar]].<br />
<br />
== What to Release? ==<br />
<br />
* If no string changes have occurred since the previous release:<br />
** [[#Releasing loop-client for staging|Release from latest master]].<br />
* If string changes have occurred, either:<br />
** [[#Start an L10n release|Start an L10n release]] with over a 2 to 3 week cycle<br />
** or, if there are small bug fixes to ship sooner, create/use branch from previous release and port only the minor changes<br />
<br />
= Automatic updating of loop-client =<br />
<br />
The master branch of Loop-client is automatically updated from mozilla-central by a script each hour.<br />
<br />
The script lives in loop-client repository and is called [https://github.com/mozilla/loop-client/blob/master/extract_from_hg.py extract_from_hg.py].<br />
<br />
The [[CloudServices/Loop/Deploy#Dev|development server]] runs a cronjob ever hour which runs the script on the loop-client directory on the server (using the mozilla-central hg clone as a base). This also ensures that the development server is automatically updated as well.<br />
= Start an L10n release =<br />
<br />
* Ensure CHANGELOG is up to date on latest master.<br />
* Next talk to mathjazz in #l10n; confirm that all the strings for Hello are checked in, ready for an L10n release.<br />
* Pull the [[#How to merge latest L10n changesets|latest l10n strings into loop-client]]<br />
* Then copy the en-US files to the verbatim directory.<br />
<br />
# Clone or update as needed<br />
git clone git@github.com:mozilla/loop-client-l10n.git<br />
<br />
# Copy the en-US file (note the change from - to _)<br />
cp loop-client/content/l10n/en-US/loop.properties loop-client-l10n/l10n/en_US/loop.properties<br />
<br />
# Verbatim also needs it in the templates directory<br />
cp loop-client/content/l10n/en-US/loop.properties loop-client-l10n/l10n/templates/loop.properties<br />
<br />
# Now commit and push<br />
cd loop-client-l10n<br />
git commit -m "Merge latest en-US strings from loop-client commit <revision>" -a<br />
git push origin master<br />
<br />
* Tell mathjazz the push is complete<br />
* mathjazz will then ensure verbatim gets updated.<br />
* Decide on the version number<br />
** Version numbers are generally arbitrary, however, we've so far been following the major.minor.sub version scheme. For releases from the same branch, major and minor stay the same. When a new release occurs with string changes, the minor version gets bumped.<br />
* Create a branch from the latest revision of loop-client's master, i.e. the where the loop.properties for en-US is the same as what was copied to loop-client-l10n.<br />
<br />
git checkout -b 0.14.x<br />
git push origin 0.14.x<br />
<br />
* Send an email to mozilla.dev.l10n, with a '''deadline that is at least 2 weeks in the future, including 2 weekends'''.<br />
** Subject: "Several new strings for Firefox Hello Standalone now in verbatim"<br />
** Body template:<br />
<br />
<pre><br />
Hi All,<br />
<br />
We've added a few new strings to the Firefox Hello standalone app. They are in verbatim and pontoon and ready for you to localise.<br />
<br />
[Add information about what the strings will relate to]<br />
<br />
Deadline: [Insert date]<br />
<br />
Updated words: [This can be obtained from verbatim once its synced - look for old previously completed locales, and see what the defect number now is]<br />
<br />
Verbatim:<br />
https://localize.mozilla.org/projects/loop/<br />
</pre><br />
<br />
= How to merge latest L10n changesets =<br />
<br />
This is required for the sections below.<br />
<br />
* Pull in the latest L10n changes:<br />
<br />
# Update the L10n repository<br />
cd loop-client-l10n<br />
git pull origin master<br />
<br />
# Change back to loop-client repo<br />
cd ../loop-client<br />
# Pull across L10n changes<br />
./locale-update.py<br />
<br />
At this stage, check:<br />
<br />
# Diffs - to check the changes look sane<br />
# git status - to check for any added locales (and if so, "git add" them)<br />
<br />
# Commit the L10n changes<br />
git commit -m "Update L10n from changeset <revision>" -a<br />
<br />
= Releasing loop-client for staging =<br />
If there's no branch for the current release:<br />
<br />
* Check to see if there were any string changes since the previous release.<br />
* If there were, cut a branch before the string changes, and if required, merge/port across any additional (non-string) changesets.<br />
* If not, then the release can be done from master.<br />
<br />
To do the actual release:<br />
<br />
* Decide on the version number<br />
** Version numbers are generally arbitrary, however, we've so far been following the major.minor.sub version scheme. For releases from the same branch, major and minor stay the same. When a new release occurs with string changes, the minor version gets bumped.<br />
* Check out the required changeset or branch<br />
* Merge [[#How to merge latest L10n changesets|latest L10n changesets]]<br />
* Update the CHANGELOG file:<br />
** Add version and date<br />
** Add bug references<br />
** Indicate if L10n were updated<br />
** Note any configuration option changes/additions<br />
* Commit the CHANGELOG file<br />
<br />
git commit -m "Update changelog for <version>" CHANGELOG<br />
<br />
* Push the changes<br />
<br />
git push origin <branch><br />
<br />
* Create the release<br />
<br />
# Replace <version> with whatever the version is, e.g. 0.14.0<br />
./create_release.sh <version><br />
<br />
* File a bug, use one of the previous bugs as a template:<br />
** https://bugzilla.mozilla.org/buglist.cgi?list_id=12590497&short_desc=loop-client%20stage&resolution=FIXED&query_format=advanced&short_desc_type=allwordssubstr&component=Operations%3A%20Deployment%20Requests&product=Cloud%20Services<br />
** (This will hopefully be automated soon)<br />
* Update the bug with the specifics of any configuration changes if needed.<br />
<br />
[[Category:Firefox Hello]]</div>Standard8https://wiki.mozilla.org/index.php?title=Loop/Library_Upgrades&diff=1098902Loop/Library Upgrades2015-10-02T13:32:55Z<p>Standard8: Add eslint link</p>
<hr />
<div>Frequently we update Loop's libraries so that we don't fall a long way behind.<br />
<br />
These links allow us to easily create bugs for upgrading the libraries. Please only create bugs if you work on the team!<br />
<br />
When submitting the bugs, please add the library version numbers to the bug summary.<br />
<br />
* [https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_backlog=---&cf_feature_b2g=---&cf_fx_iteration=---&cf_fx_points=---&cf_status_firefox41=---&cf_status_firefox42=---&cf_status_firefox43=---&cf_status_firefox44=---&cf_status_firefox_esr38=---&cf_tracking_e10s=---&cf_tracking_firefox41=---&cf_tracking_firefox42=---&cf_tracking_firefox43=---&cf_tracking_firefox44=---&cf_tracking_firefox_esr38=---&cf_tracking_firefox_relnote=---&comment=-%20Libraries%20live%20in%20browser%2Fcomponents%2Floop%2Ftest%2Fshared%2Fvendor%2F%0D%0A%0D%0AFor%20each%20library%3A%0D%0A%0D%0A-%20Review%20the%20ChangeLog%2Frelease%20notes%20from%20the%20current%20library%20version%20to%20the%20new%20version.%0D%0A--%20Look%20out%20for%20any%20significant%20changes%2Fadditions%0D%0A-%20Download%20the%20library%0D%0A-%20Replace%20the%20old%20library%20with%20the%20new%20one.%0D%0A-%20Do%20a%20repository%20mv%20%28e.g.%20hg%20mv%20or%20git%20mv%29%20to%20change%20the%20name%20of%20the%20library%20to%20include%20the%20new%20version%20number%2C%20e.g.%20sinon-1.16.1.js%20to%20sinon-1.17.1.js%29%0D%0A-%20Grep%20for%20the%20old%20library%20filename%20in%20the%20loop%2F%20directory%20and%20replace%20references%20with%20the%20new%20filename.%0D%0A-%20Run%20unit%20tests%0D%0A-%20Ensure%20no%20errors%20occur%2C%20fixing%20them%20if%20they%20do%20occur.%0D%0A%0D%0AOccasionally%20a%20library%20will%20have%20an%20error%20that%27s%20an%20actual%20regression%2C%20and%20if%20so%20it%20then%20needs%20filing%20with%20the%20library%2C%20and%20typically%20we%20hold%20off%20the%20upgrade%20until%20it%20is%20fixed.%0D%0A%0D%0A-%20Once%20all%20of%20the%20test%20libraries%20are%20updated%2C%20submit%20the%20patch%20for%20review%2C%20reference%20any%20of%20the%20major%20changes%20spotted.%0D%0A-%20When%20it%20lands%2C%20send%20notification%20of%20any%20major%20changes%20to%20loop-frontend-dev.%0D%0A%0D%0AChangelogs%20%26%20downloads%3A%0D%0A%0D%0ASinon%0D%0A-%20http%3A%2F%2Fsinonjs.org%2F%0D%0A-%20http%3A%2F%2Fsinonjs.org%2FChangelog.txt%0D%0A%0D%0AMocha%0D%0A-%20http%3A%2F%2Fmochajs.org%2F%20%28install%20somewhere%20via%20npm%2C%20and%20copy%20from%20node_modules%29%0D%0A-%20https%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha%2Fblob%2Fmaster%2FHISTORY.md%0D%0A%0D%0AChai%0D%0A-%20http%3A%2F%2Fchaijs.com%2F%20%28select%20%22browser%22%29%0D%0A-%20https%3A%2F%2Fgithub.com%2Fchaijs%2Fchai%2Fblob%2Fmaster%2FHistory.md%0D%0A%0D%0AChai-as-promised%0D%0A-%20http%3A%2F%2Fchaijs.com%2Fplugins%2Fchai-as-promised%0D%0A-%20https%3A%2F%2Fgithub.com%2Fdomenic%2Fchai-as-promised%2Freleases&component=Client&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&defined_groups=1&flag_type-203=X&flag_type-37=X&flag_type-4=X&flag_type-607=X&flag_type-720=X&flag_type-721=X&flag_type-737=X&flag_type-781=X&flag_type-787=X&flag_type-791=X&flag_type-800=X&flag_type-846=X&flag_type-856=X&flag_type-864=X&flag_type-875=X&flag_type-889=X&flag_type-892=X&form_name=enter_bug&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=--&product=Hello%20%28Loop%29&rep_platform=All&short_desc=Update%20Loop%27s%20vendor%20libraries%20for%20unit%20tests%20%28sinon%20version%20%2C%20mocha%20version%20%2C%20chai%20version%20%2C%20chai-as-promised%20version%20%29&target_milestone=---&version=unspecified Unit test library upgrade]<br />
* [https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_backlog=---&cf_feature_b2g=---&cf_fx_iteration=---&cf_fx_points=---&cf_status_firefox41=---&cf_status_firefox42=---&cf_status_firefox43=---&cf_status_firefox44=---&cf_status_firefox_esr38=---&cf_tracking_e10s=---&cf_tracking_firefox41=---&cf_tracking_firefox42=---&cf_tracking_firefox43=---&cf_tracking_firefox44=---&cf_tracking_firefox_esr38=---&cf_tracking_firefox_relnote=---&comment=For%20each%20library%3A%0D%0A%0D%0A-%20Library%20versions%20are%20maintained%20in%20browser%2Fcomponents%2Floop%2Fstandalone%2Fpackage.json%0D%0A-%20Review%20the%20release%20notes%20from%20the%20current%20library%20version%20to%20the%20new%20version%0D%0A--%20Look%20out%20for%20any%20significant%20changes%2Fadditions%2Fbreaking%20changes%0D%0A--%20Eslint%20release%20notes%20listed%20on%20blog%3A%20http%3A%2F%2Feslint.org%2Fblog%2F%0D%0A--%20Eslint-plugin-react%20list%20at%3A%20https%3A%2F%2Fgithub.com%2Fyannickcr%2Feslint-plugin-react%2Freleases%0D%0A-%20Update%20the%20library%20versions%20in%20the%20package.json%20file%0D%0A-%20Run%20%60make%20install%60%20in%20the%20standalone%20directory%20to%20install%20the%20new%20library%20version%0D%0A-%20Run%20eslint%3A%0D%0A--%20%60cd%20browser%2Fcomponents%2Floop%60%0D%0A--%20%60standalone%2Fnode_modules%2F.bin%2Feslint%20--ext%20.js%20--ext%20.jsm%20--ext%20.jsx%20.%0D%0A%0D%0A-%20Ensure%20no%20errors%20occur%2C%20fixing%20them%20if%20they%20do%20occur.%0D%0A%0D%0AOccasionally%20a%20library%20will%20have%20an%20error%20that%27s%20an%20actual%20regression%2C%20and%20if%20so%20it%20then%20needs%20filing%20with%20the%20library%2C%20and%20typically%20we%20hold%20off%20the%20upgrade%20until%20it%20is%20fixed.%0D%0A%0D%0A-%20Submit%20the%20patch%20for%20review%2C%20reference%20any%20of%20the%20major%20changes%20spotted.%0D%0A-%20When%20it%20lands%2C%20send%20notification%20of%20any%20major%20changes%20to%20loop-frontend-dev.%20For%20new%20features%2C%20we%27re%20generally%20only%20enabling%20them%20if%20we%20know%20we%20really%20want%20them%20to%20aid%20review%20etc.&component=Client&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&defined_groups=1&flag_type-203=X&flag_type-37=X&flag_type-4=X&flag_type-607=X&flag_type-720=X&flag_type-721=X&flag_type-737=X&flag_type-781=X&flag_type-787=X&flag_type-791=X&flag_type-800=X&flag_type-846=X&flag_type-856=X&flag_type-864=X&flag_type-875=X&flag_type-889=X&flag_type-892=X&form_name=enter_bug&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=--&product=Hello%20%28Loop%29&rep_platform=All&short_desc=Upgrade%20Loop%27s%20use%20of%20eslint%20%28eslint%20version%20%2C%20eslint-plugin-react%20version%20%29&target_milestone=---&version=unspecified Eslint libraries upgrade]</div>Standard8https://wiki.mozilla.org/index.php?title=Loop/Library_Upgrades&diff=1098895Loop/Library Upgrades2015-10-02T12:56:27Z<p>Standard8: Add a note about what to do.</p>
<hr />
<div>Frequently we update Loop's libraries so that we don't fall a long way behind.<br />
<br />
These links allow us to easily create bugs for upgrading the libraries. Please only create bugs if you work on the team!<br />
<br />
* [https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_backlog=---&cf_feature_b2g=---&cf_fx_iteration=---&cf_fx_points=---&cf_status_firefox41=---&cf_status_firefox42=---&cf_status_firefox43=---&cf_status_firefox44=---&cf_status_firefox_esr38=---&cf_tracking_e10s=---&cf_tracking_firefox41=---&cf_tracking_firefox42=---&cf_tracking_firefox43=---&cf_tracking_firefox44=---&cf_tracking_firefox_esr38=---&cf_tracking_firefox_relnote=---&comment=-%20Libraries%20live%20in%20browser%2Fcomponents%2Floop%2Ftest%2Fshared%2Fvendor%2F%0D%0A%0D%0AFor%20each%20library%3A%0D%0A%0D%0A-%20Review%20the%20ChangeLog%2Frelease%20notes%20from%20the%20current%20library%20version%20to%20the%20new%20version.%0D%0A--%20Look%20out%20for%20any%20significant%20changes%2Fadditions%0D%0A-%20Download%20the%20library%0D%0A-%20Replace%20the%20old%20library%20with%20the%20new%20one.%0D%0A-%20Do%20a%20repository%20mv%20%28e.g.%20hg%20mv%20or%20git%20mv%29%20to%20change%20the%20name%20of%20the%20library%20to%20include%20the%20new%20version%20number%2C%20e.g.%20sinon-1.16.1.js%20to%20sinon-1.17.1.js%29%0D%0A-%20Grep%20for%20the%20old%20library%20filename%20in%20the%20loop%2F%20directory%20and%20replace%20references%20with%20the%20new%20filename.%0D%0A-%20Run%20unit%20tests%0D%0A-%20Ensure%20no%20errors%20occur%2C%20fixing%20them%20if%20they%20do%20occur.%0D%0A%0D%0AOccasionally%20a%20library%20will%20have%20an%20error%20that%27s%20an%20actual%20regression%2C%20and%20if%20so%20it%20then%20needs%20filing%20with%20the%20library%2C%20and%20typically%20we%20hold%20off%20the%20upgrade%20until%20it%20is%20fixed.%0D%0A%0D%0A-%20Once%20all%20of%20the%20test%20libraries%20are%20updated%2C%20submit%20the%20patch%20for%20review%2C%20reference%20any%20of%20the%20major%20changes%20spotted.%0D%0A-%20When%20it%20lands%2C%20send%20notification%20of%20any%20major%20changes%20to%20loop-frontend-dev.%0D%0A%0D%0AChangelogs%20%26%20downloads%3A%0D%0A%0D%0ASinon%0D%0A-%20http%3A%2F%2Fsinonjs.org%2F%0D%0A-%20http%3A%2F%2Fsinonjs.org%2FChangelog.txt%0D%0A%0D%0AMocha%0D%0A-%20http%3A%2F%2Fmochajs.org%2F%20%28install%20somewhere%20via%20npm%2C%20and%20copy%20from%20node_modules%29%0D%0A-%20https%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha%2Fblob%2Fmaster%2FHISTORY.md%0D%0A%0D%0AChai%0D%0A-%20http%3A%2F%2Fchaijs.com%2F%20%28select%20%22browser%22%29%0D%0A-%20https%3A%2F%2Fgithub.com%2Fchaijs%2Fchai%2Fblob%2Fmaster%2FHistory.md%0D%0A%0D%0AChai-as-promised%0D%0A-%20http%3A%2F%2Fchaijs.com%2Fplugins%2Fchai-as-promised%0D%0A-%20https%3A%2F%2Fgithub.com%2Fdomenic%2Fchai-as-promised%2Freleases&component=Client&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&defined_groups=1&flag_type-203=X&flag_type-37=X&flag_type-4=X&flag_type-607=X&flag_type-720=X&flag_type-721=X&flag_type-737=X&flag_type-781=X&flag_type-787=X&flag_type-791=X&flag_type-800=X&flag_type-846=X&flag_type-856=X&flag_type-864=X&flag_type-875=X&flag_type-889=X&flag_type-892=X&form_name=enter_bug&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=--&product=Hello%20%28Loop%29&rep_platform=All&short_desc=Update%20Loop%27s%20vendor%20libraries%20for%20unit%20tests%20%28sinon%20version%20%2C%20mocha%20version%20%2C%20chai%20version%20%2C%20chai-as-promised%20version%20%29&target_milestone=---&version=unspecified Unit test library upgrade] (add versions in subject before submitting)</div>Standard8https://wiki.mozilla.org/index.php?title=Loop/Library_Upgrades&diff=1098894Loop/Library Upgrades2015-10-02T12:52:21Z<p>Standard8: Use better link</p>
<hr />
<div>Frequently we update Loop's libraries so that we don't fall a long way behind.<br />
<br />
These links allow us to easily create bugs for upgrading the libraries. Please only create bugs if you work on the team!<br />
<br />
* [https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_backlog=---&cf_feature_b2g=---&cf_fx_iteration=---&cf_fx_points=---&cf_status_firefox41=---&cf_status_firefox42=---&cf_status_firefox43=---&cf_status_firefox44=---&cf_status_firefox_esr38=---&cf_tracking_e10s=---&cf_tracking_firefox41=---&cf_tracking_firefox42=---&cf_tracking_firefox43=---&cf_tracking_firefox44=---&cf_tracking_firefox_esr38=---&cf_tracking_firefox_relnote=---&comment=-%20Libraries%20live%20in%20browser%2Fcomponents%2Floop%2Ftest%2Fshared%2Fvendor%2F%0D%0A%0D%0AFor%20each%20library%3A%0D%0A%0D%0A-%20Review%20the%20ChangeLog%2Frelease%20notes%20from%20the%20current%20library%20version%20to%20the%20new%20version.%0D%0A--%20Look%20out%20for%20any%20significant%20changes%2Fadditions%0D%0A-%20Download%20the%20library%0D%0A-%20Replace%20the%20old%20library%20with%20the%20new%20one.%0D%0A-%20Do%20a%20repository%20mv%20%28e.g.%20hg%20mv%20or%20git%20mv%29%20to%20change%20the%20name%20of%20the%20library%20to%20include%20the%20new%20version%20number%2C%20e.g.%20sinon-1.16.1.js%20to%20sinon-1.17.1.js%29%0D%0A-%20Grep%20for%20the%20old%20library%20filename%20in%20the%20loop%2F%20directory%20and%20replace%20references%20with%20the%20new%20filename.%0D%0A-%20Run%20unit%20tests%0D%0A-%20Ensure%20no%20errors%20occur%2C%20fixing%20them%20if%20they%20do%20occur.%0D%0A%0D%0AOccasionally%20a%20library%20will%20have%20an%20error%20that%27s%20an%20actual%20regression%2C%20and%20if%20so%20it%20then%20needs%20filing%20with%20the%20library%2C%20and%20typically%20we%20hold%20off%20the%20upgrade%20until%20it%20is%20fixed.%0D%0A%0D%0A-%20Once%20all%20of%20the%20test%20libraries%20are%20updated%2C%20submit%20the%20patch%20for%20review%2C%20reference%20any%20of%20the%20major%20changes%20spotted.%0D%0A-%20When%20it%20lands%2C%20send%20notification%20of%20any%20major%20changes%20to%20loop-frontend-dev.%0D%0A%0D%0AChangelogs%20%26%20downloads%3A%0D%0A%0D%0ASinon%0D%0A-%20http%3A%2F%2Fsinonjs.org%2F%0D%0A-%20http%3A%2F%2Fsinonjs.org%2FChangelog.txt%0D%0A%0D%0AMocha%0D%0A-%20http%3A%2F%2Fmochajs.org%2F%20%28install%20somewhere%20via%20npm%2C%20and%20copy%20from%20node_modules%29%0D%0A-%20https%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha%2Fblob%2Fmaster%2FHISTORY.md%0D%0A%0D%0AChai%0D%0A-%20http%3A%2F%2Fchaijs.com%2F%20%28select%20%22browser%22%29%0D%0A-%20https%3A%2F%2Fgithub.com%2Fchaijs%2Fchai%2Fblob%2Fmaster%2FHistory.md%0D%0A%0D%0AChai-as-promised%0D%0A-%20http%3A%2F%2Fchaijs.com%2Fplugins%2Fchai-as-promised%0D%0A-%20https%3A%2F%2Fgithub.com%2Fdomenic%2Fchai-as-promised%2Freleases&component=Client&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&defined_groups=1&flag_type-203=X&flag_type-37=X&flag_type-4=X&flag_type-607=X&flag_type-720=X&flag_type-721=X&flag_type-737=X&flag_type-781=X&flag_type-787=X&flag_type-791=X&flag_type-800=X&flag_type-846=X&flag_type-856=X&flag_type-864=X&flag_type-875=X&flag_type-889=X&flag_type-892=X&form_name=enter_bug&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=--&product=Hello%20%28Loop%29&rep_platform=All&short_desc=Update%20Loop%27s%20vendor%20libraries%20for%20unit%20tests%20%28sinon%20version%20%2C%20mocha%20version%20%2C%20chai%20version%20%2C%20chai-as-promised%20version%20%29&target_milestone=---&version=unspecified Unit test library upgrade]</div>Standard8https://wiki.mozilla.org/index.php?title=Loop/Library_Upgrades&diff=1098893Loop/Library Upgrades2015-10-02T12:50:55Z<p>Standard8: Add new page</p>
<hr />
<div>Frequently we update Loop's libraries so that we don't fall a long way behind.<br />
<br />
These links allow us to easily create bugs for upgrading the libraries. Please only create bugs if you work on the team!<br />
<br />
* [https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_backlog=---&cf_feature_b2g=---&cf_fx_iteration=---&cf_fx_points=---&cf_status_firefox41=---&cf_status_firefox42=---&cf_status_firefox43=---&cf_status_firefox44=---&cf_status_firefox_esr38=---&cf_tracking_e10s=---&cf_tracking_firefox41=---&cf_tracking_firefox42=---&cf_tracking_firefox43=---&cf_tracking_firefox44=---&cf_tracking_firefox_esr38=---&cf_tracking_firefox_relnote=---&cf_user_story=-%20Libraries%20live%20in%20browser%2Fcomponents%2Floop%2Ftest%2Fshared%2Fvendor%2F%0D%0A%0D%0AFor%20each%20library%3A%0D%0A%0D%0A-%20Review%20the%20ChangeLog%2Frelease%20notes%20from%20the%20current%20library%20version%20to%20the%20new%20version.%0D%0A--%20Look%20out%20for%20any%20significant%20changes%2Fadditions%0D%0A-%20Download%20the%20library%0D%0A-%20Replace%20the%20old%20library%20with%20the%20new%20one.%0D%0A-%20Do%20a%20repository%20mv%20%28e.g.%20hg%20mv%20or%20git%20mv%29%20to%20change%20the%20name%20of%20the%20library%20to%20include%20the%20new%20version%20number%2C%20e.g.%20sinon-1.16.1.js%20to%20sinon-1.17.1.js%29%0D%0A-%20Grep%20for%20the%20old%20library%20filename%20in%20the%20loop%2F%20directory%20and%20replace%20references%20with%20the%20new%20filename.%0D%0A-%20Run%20unit%20tests%0D%0A-%20Ensure%20no%20errors%20occur%2C%20fixing%20them%20if%20they%20do%20occur.%0D%0A%0D%0AOccasionally%20a%20library%20will%20have%20an%20error%20that%27s%20an%20actual%20regression%2C%20and%20if%20so%20it%20then%20needs%20filing%20with%20the%20library%2C%20and%20typically%20we%20hold%20off%20the%20upgrade%20until%20it%20is%20fixed.%0D%0A%0D%0A-%20Once%20all%20of%20the%20test%20libraries%20are%20updated%2C%20submit%20the%20patch%20for%20review%2C%20reference%20any%20of%20the%20major%20changes%20spotted.%0D%0A-%20When%20it%20lands%2C%20send%20notification%20of%20any%20major%20changes%20to%20loop-frontend-dev.&comment=See%20user%20story%20for%20items%20that%20need%20doing.%0D%0A%0D%0AChangelogs%20%26%20downloads%3A%0D%0A%0D%0ASinon%0D%0A-%20http%3A%2F%2Fsinonjs.org%2F%0D%0A-%20http%3A%2F%2Fsinonjs.org%2FChangelog.txt%0D%0A%0D%0AMocha%0D%0A-%20http%3A%2F%2Fmochajs.org%2F%20%28install%20somewhere%20via%20npm%2C%20and%20copy%20from%20node_modules%29%0D%0A-%20https%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha%2Fblob%2Fmaster%2FHISTORY.md%0D%0A%0D%0AChai%0D%0A-%20http%3A%2F%2Fchaijs.com%2F%20%28select%20%22browser%22%29%0D%0A-%20https%3A%2F%2Fgithub.com%2Fchaijs%2Fchai%2Fblob%2Fmaster%2FHistory.md%0D%0A%0D%0AChai-as-promised%0D%0A-%20http%3A%2F%2Fchaijs.com%2Fplugins%2Fchai-as-promised%0D%0A-%20https%3A%2F%2Fgithub.com%2Fdomenic%2Fchai-as-promised%2Freleases&component=Client&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&defined_groups=1&flag_type-203=X&flag_type-37=X&flag_type-4=X&flag_type-607=X&flag_type-720=X&flag_type-721=X&flag_type-737=X&flag_type-781=X&flag_type-787=X&flag_type-791=X&flag_type-800=X&flag_type-846=X&flag_type-856=X&flag_type-864=X&flag_type-875=X&flag_type-889=X&flag_type-892=X&form_name=enter_bug&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=--&product=Hello%20%28Loop%29&rep_platform=All&short_desc=Update%20Loop%27s%20vendor%20libraries%20for%20unit%20tests%20%28sinon%20version%20%2C%20mocha%20version%20%2C%20chai%20version%20%2C%20chai-as-promised%20version%20%29&target_milestone=---&version=unspecified Unit test library upgrade]</div>Standard8