<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.mozilla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Klahnakoski</id>
	<title>MozillaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mozilla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Klahnakoski"/>
	<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/Special:Contributions/Klahnakoski"/>
	<updated>2026-04-04T17:58:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208245</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208245"/>
		<updated>2019-02-27T13:46:00Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Users */ add uses&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Redash = &lt;br /&gt;
ActiveData has a Redash connector for [https://sql.telemetry.mozilla.org/ stmo] and it accepts SQL.  [https://github.com/mozilla/ActiveData/blob/dev/docs/redash.md see main doc for details]&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/End-to-End.html End to End Times] &lt;br /&gt;
|| Shows overall time from when a build is first requested to the time tests on that build are complete.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/index.html Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
|| Cross reference OrangeFactor and Bugzilla to give a list of frequent intermittents that have no bug activity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Structured Logs from Unittests&lt;br /&gt;
* Task Cluster tasks&lt;br /&gt;
** including mozharness timings&lt;br /&gt;
* PerfHerder at a per-replicate level&lt;br /&gt;
* Treeherder&lt;br /&gt;
* hg.mozilla.org branches and revisions&lt;br /&gt;
* code coverage (all tests, all files, all lines)&lt;br /&gt;
* various logs from ETL pipeline&lt;br /&gt;
* all firefox files and related components&lt;br /&gt;
* firefox testing results&lt;br /&gt;
* old buildbot jobs&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/mozilla/active-data-recipes/tree/master/adr/recipes ActiveData Recipes has a variety of use cases] &lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Task cluster test timing &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times&lt;br /&gt;
* CodeCoverage aggregates and per-file detail&lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
* [https://github.com/mozilla/ActiveData/blob/dev/docs/schemas_190227.md Listing of current schemas]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208241</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208241"/>
		<updated>2019-02-27T13:31:52Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Dependencies */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Redash = &lt;br /&gt;
ActiveData has a Redash connector for [https://sql.telemetry.mozilla.org/ stmo] and it accepts SQL.  [https://github.com/mozilla/ActiveData/blob/dev/docs/redash.md see main doc for details]&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/End-to-End.html End to End Times] &lt;br /&gt;
|| Shows overall time from when a build is first requested to the time tests on that build are complete.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/index.html Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
|| Cross reference OrangeFactor and Bugzilla to give a list of frequent intermittents that have no bug activity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Structured Logs from Unittests&lt;br /&gt;
* Task Cluster tasks&lt;br /&gt;
** including mozharness timings&lt;br /&gt;
* PerfHerder at a per-replicate level&lt;br /&gt;
* Treeherder&lt;br /&gt;
* hg.mozilla.org branches and revisions&lt;br /&gt;
* code coverage (all tests, all files, all lines)&lt;br /&gt;
* various logs from ETL pipeline&lt;br /&gt;
* all firefox files and related components&lt;br /&gt;
* firefox testing results&lt;br /&gt;
* old buildbot jobs&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Buildbot test times &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times &lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
* [https://github.com/mozilla/ActiveData/blob/dev/docs/schemas_190227.md Listing of current schemas]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208240</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208240"/>
		<updated>2019-02-27T13:31:31Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Dependencies */  fix indent&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Redash = &lt;br /&gt;
ActiveData has a Redash connector for [https://sql.telemetry.mozilla.org/ stmo] and it accepts SQL.  [https://github.com/mozilla/ActiveData/blob/dev/docs/redash.md see main doc for details]&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/End-to-End.html End to End Times] &lt;br /&gt;
|| Shows overall time from when a build is first requested to the time tests on that build are complete.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/index.html Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
|| Cross reference OrangeFactor and Bugzilla to give a list of frequent intermittents that have no bug activity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Structured Logs from Unittests&lt;br /&gt;
* Task Cluster tasks&lt;br /&gt;
** uncluding mozharness timings&lt;br /&gt;
* PerfHerder at a per-replicate level&lt;br /&gt;
* Treeherder&lt;br /&gt;
* hg.mozilla.org branches and revisions&lt;br /&gt;
* code coverage (all tests, all files, all lines)&lt;br /&gt;
* various logs from ETL pipeline&lt;br /&gt;
* all firefox files and related components&lt;br /&gt;
* firefox testing results&lt;br /&gt;
* old buildbot jobs&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Buildbot test times &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times &lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
* [https://github.com/mozilla/ActiveData/blob/dev/docs/schemas_190227.md Listing of current schemas]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208239</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208239"/>
		<updated>2019-02-27T13:30:58Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Dependencies */   add to list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Redash = &lt;br /&gt;
ActiveData has a Redash connector for [https://sql.telemetry.mozilla.org/ stmo] and it accepts SQL.  [https://github.com/mozilla/ActiveData/blob/dev/docs/redash.md see main doc for details]&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/End-to-End.html End to End Times] &lt;br /&gt;
|| Shows overall time from when a build is first requested to the time tests on that build are complete.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/index.html Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
|| Cross reference OrangeFactor and Bugzilla to give a list of frequent intermittents that have no bug activity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Structured Logs from Unittests&lt;br /&gt;
* Task Cluster tasks&lt;br /&gt;
  * uncluding mozharness timings&lt;br /&gt;
* PerfHerder at a per-replicate level&lt;br /&gt;
* Treeherder&lt;br /&gt;
* hg.mozilla.org branches and revisions&lt;br /&gt;
* code coverage (all tests, all files, all lines)&lt;br /&gt;
* various logs from ETL pipeline&lt;br /&gt;
* all firefox files and related components&lt;br /&gt;
* firefox testing results&lt;br /&gt;
* old buildbot jobs&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Buildbot test times &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times &lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
* [https://github.com/mozilla/ActiveData/blob/dev/docs/schemas_190227.md Listing of current schemas]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208237</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208237"/>
		<updated>2019-02-27T12:56:24Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Documentation */   add schema link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Redash = &lt;br /&gt;
ActiveData has a Redash connector for [https://sql.telemetry.mozilla.org/ stmo] and it accepts SQL.  [https://github.com/mozilla/ActiveData/blob/dev/docs/redash.md see main doc for details]&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/End-to-End.html End to End Times] &lt;br /&gt;
|| Shows overall time from when a build is first requested to the time tests on that build are complete.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/index.html Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
|| Cross reference OrangeFactor and Bugzilla to give a list of frequent intermittents that have no bug activity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Buildbot&lt;br /&gt;
* Mozharness&lt;br /&gt;
* Structured Logs&lt;br /&gt;
* Task Cluster (end of Q1 2016)&lt;br /&gt;
* PerfHerder&lt;br /&gt;
* hg.mozilla.org&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Buildbot test times &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times &lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
* [https://github.com/mozilla/ActiveData/blob/dev/docs/schemas_190227.md Listing of current schemas]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208236</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1208236"/>
		<updated>2019-02-27T12:54:36Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Code */  remove some misleading sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Redash = &lt;br /&gt;
ActiveData has a Redash connector for [https://sql.telemetry.mozilla.org/ stmo] and it accepts SQL.  [https://github.com/mozilla/ActiveData/blob/dev/docs/redash.md see main doc for details]&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/End-to-End.html End to End Times] &lt;br /&gt;
|| Shows overall time from when a build is first requested to the time tests on that build are complete.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/index.html Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
|| Cross reference OrangeFactor and Bugzilla to give a list of frequent intermittents that have no bug activity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Buildbot&lt;br /&gt;
* Mozharness&lt;br /&gt;
* Structured Logs&lt;br /&gt;
* Task Cluster (end of Q1 2016)&lt;br /&gt;
* PerfHerder&lt;br /&gt;
* hg.mozilla.org&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Buildbot test times &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times &lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=TestEngineering/Performance&amp;diff=1207504</id>
		<title>TestEngineering/Performance</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=TestEngineering/Performance&amp;diff=1207504"/>
		<updated>2019-02-11T15:23:34Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: fix formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What we do ==&lt;br /&gt;
&lt;br /&gt;
== What we don&#039;t do ==&lt;br /&gt;
&lt;br /&gt;
== Onboarding ==&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
* Increase regression detection &#039;&#039;&#039;coverage&#039;&#039;&#039; to page load on Android products including WebView comparisons&lt;br /&gt;
* Increase quality standards by measuring and alerting on power usage for Android and ARM64&lt;br /&gt;
* Build dashboards to improve &#039;&#039;&#039;visibility&#039;&#039;&#039; of how we are tracking against our release criteria for Android&lt;br /&gt;
* Reducing noise in test results and adding annotations to provide &#039;&#039;&#039;clarity&#039;&#039;&#039; of signal for regressions&lt;br /&gt;
* Develop measurements and mechanisms for reporting on our tools, policies and documentation for how to improve &#039;&#039;&#039;clarity&#039;&#039;&#039; and &#039;&#039;&#039;efficiency&#039;&#039;&#039; of risk assessments&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
* Dave Hunt [:davehunt]&lt;br /&gt;
* Rob Wood [:rwood]&lt;br /&gt;
* Kyle Lahnakoski [:ekyle]&lt;br /&gt;
* Stephen Donner [:stephend]&lt;br /&gt;
* Ionut Goldan [:igoldan]&lt;br /&gt;
* Florian Strugariu [:bebe]&lt;br /&gt;
* Greg Mierzwinski [:sparky]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
&lt;br /&gt;
Trello: https://trello.com/b/gc3AlyhB/firefox-performance-test-engineering&lt;br /&gt;
&lt;br /&gt;
=== Raptor ===&lt;br /&gt;
Raptor is a Python testing framework used to run browser benchmark and browser page-load performance tests. Raptor is cross-browser compatible and is currently running in Mozilla taskcluster production on Firefox Desktop, Firefox Android, and on Google Chromium.&lt;br /&gt;
&lt;br /&gt;
* Owner: Rob Wood [:rwood]&lt;br /&gt;
* Source: https://searchfox.org/mozilla-central/source/testing/raptor&lt;br /&gt;
* Good first bugs: https://codetribute.mozilla.org/projects/automation?project%3DRaptor&lt;br /&gt;
* User documentation: https://wiki.mozilla.org/Performance_sheriffing/Raptor&lt;br /&gt;
* Developer documentation: https://wiki.mozilla.org/Performance_sheriffing/Raptor&lt;br /&gt;
&lt;br /&gt;
=== Talos ===&lt;br /&gt;
Talos is a Python performance testing framework that is usable on Windows, Mac and Linux. Talos is our versatile performance testing framework we use at Mozilla. It was created to serve as a test runner for the existing performance tests that Mozilla was running back in 2007 as well as providing an extensible framework for new tests as they were created.&lt;br /&gt;
&lt;br /&gt;
* Owner: Rob Wood [:rwood], Joel Maher [:jmaher]&lt;br /&gt;
* Source: https://searchfox.org/mozilla-central/source/testing/talos&lt;br /&gt;
* Good first bugs: https://codetribute.mozilla.org/projects/automation?project%3DTalos&lt;br /&gt;
* User documentation: https://wiki.mozilla.org/Performance_sheriffing/Talos&lt;br /&gt;
* Developer documentation: https://wiki.mozilla.org/Performance_sheriffing/Talos&lt;br /&gt;
&lt;br /&gt;
=== WebPageTest ===&lt;br /&gt;
* Owner: Stephen Donner [:stephend]&lt;br /&gt;
* Source: https://github.com/mozilla/wpt-api&lt;br /&gt;
* (User and Dev) Docs: https://mozilla-wpt-api-docs.readthedocs.io/en/master/&lt;br /&gt;
* &amp;quot;help-wanted&amp;quot; labelled Issues: https://github.com/mozilla/wpt-api/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22&lt;br /&gt;
&lt;br /&gt;
=== Perfherder ===&lt;br /&gt;
&lt;br /&gt;
=== Firefox Are We Fast Yet Dashboard ===&lt;br /&gt;
&lt;br /&gt;
Shows a variety of benchmarks, run on a variety of platforms.  Meant to be a detailed view of performance.&lt;br /&gt;
&lt;br /&gt;
* Location: https://arewefastyet.com&lt;br /&gt;
* Owner: Armen Zambrano Gasparnian [:armen]&lt;br /&gt;
* Source: https://github.com/mozilla-frontend-infra/firefox-performance-dashboard&lt;br /&gt;
&lt;br /&gt;
=== Firefox Health Dashboard ===&lt;br /&gt;
&lt;br /&gt;
The health dashboard tracks metrics and statistics important for tracking performance improvements.  Meant to be a high level view.&lt;br /&gt;
&lt;br /&gt;
* Location: https://health.graphics/&lt;br /&gt;
* Owner: Armen Zambrano Gasparnian [:armen], Kyle Lahnakoski [:ekyle]&lt;br /&gt;
* Source: https://github.com/mozilla-frontend-infra/firefox-health-dashboard/&lt;br /&gt;
* Good first bugs: https://github.com/mozilla-frontend-infra/firefox-health-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=TestEngineering/Performance&amp;diff=1207503</id>
		<title>TestEngineering/Performance</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=TestEngineering/Performance&amp;diff=1207503"/>
		<updated>2019-02-11T15:22:30Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add description of two dashbaords&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What we do ==&lt;br /&gt;
&lt;br /&gt;
== What we don&#039;t do ==&lt;br /&gt;
&lt;br /&gt;
== Onboarding ==&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
* Increase regression detection &#039;&#039;&#039;coverage&#039;&#039;&#039; to page load on Android products including WebView comparisons&lt;br /&gt;
* Increase quality standards by measuring and alerting on power usage for Android and ARM64&lt;br /&gt;
* Build dashboards to improve &#039;&#039;&#039;visibility&#039;&#039;&#039; of how we are tracking against our release criteria for Android&lt;br /&gt;
* Reducing noise in test results and adding annotations to provide &#039;&#039;&#039;clarity&#039;&#039;&#039; of signal for regressions&lt;br /&gt;
* Develop measurements and mechanisms for reporting on our tools, policies and documentation for how to improve &#039;&#039;&#039;clarity&#039;&#039;&#039; and &#039;&#039;&#039;efficiency&#039;&#039;&#039; of risk assessments&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
* Dave Hunt [:davehunt]&lt;br /&gt;
* Rob Wood [:rwood]&lt;br /&gt;
* Kyle Lahnakoski [:ekyle]&lt;br /&gt;
* Stephen Donner [:stephend]&lt;br /&gt;
* Ionut Goldan [:igoldan]&lt;br /&gt;
* Florian Strugariu [:bebe]&lt;br /&gt;
* Greg Mierzwinski [:sparky]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
&lt;br /&gt;
Trello: https://trello.com/b/gc3AlyhB/firefox-performance-test-engineering&lt;br /&gt;
&lt;br /&gt;
=== Raptor ===&lt;br /&gt;
Raptor is a Python testing framework used to run browser benchmark and browser page-load performance tests. Raptor is cross-browser compatible and is currently running in Mozilla taskcluster production on Firefox Desktop, Firefox Android, and on Google Chromium.&lt;br /&gt;
&lt;br /&gt;
* Owner: Rob Wood [:rwood]&lt;br /&gt;
* Source: https://searchfox.org/mozilla-central/source/testing/raptor&lt;br /&gt;
* Good first bugs: https://codetribute.mozilla.org/projects/automation?project%3DRaptor&lt;br /&gt;
* User documentation: https://wiki.mozilla.org/Performance_sheriffing/Raptor&lt;br /&gt;
* Developer documentation: https://wiki.mozilla.org/Performance_sheriffing/Raptor&lt;br /&gt;
&lt;br /&gt;
=== Talos ===&lt;br /&gt;
Talos is a Python performance testing framework that is usable on Windows, Mac and Linux. Talos is our versatile performance testing framework we use at Mozilla. It was created to serve as a test runner for the existing performance tests that Mozilla was running back in 2007 as well as providing an extensible framework for new tests as they were created.&lt;br /&gt;
&lt;br /&gt;
* Owner: Rob Wood [:rwood], Joel Maher [:jmaher]&lt;br /&gt;
* Source: https://searchfox.org/mozilla-central/source/testing/talos&lt;br /&gt;
* Good first bugs: https://codetribute.mozilla.org/projects/automation?project%3DTalos&lt;br /&gt;
* User documentation: https://wiki.mozilla.org/Performance_sheriffing/Talos&lt;br /&gt;
* Developer documentation: https://wiki.mozilla.org/Performance_sheriffing/Talos&lt;br /&gt;
&lt;br /&gt;
=== WebPageTest ===&lt;br /&gt;
* Owner: Stephen Donner [:stephend]&lt;br /&gt;
* Source: https://github.com/mozilla/wpt-api&lt;br /&gt;
* (User and Dev) Docs: https://mozilla-wpt-api-docs.readthedocs.io/en/master/&lt;br /&gt;
* &amp;quot;help-wanted&amp;quot; labelled Issues: https://github.com/mozilla/wpt-api/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22&lt;br /&gt;
&lt;br /&gt;
=== Perfherder ===&lt;br /&gt;
&lt;br /&gt;
=== Firefox Are We Fast Yet Dashboard ===&lt;br /&gt;
&lt;br /&gt;
Shows a variety of benchmarks, run on a variety of platforms.  Meant to be a detailed view of performance.&lt;br /&gt;
&lt;br /&gt;
    Location: https://arewefastyet.com&lt;br /&gt;
    Owner: Armen Zambrano Gasparnian [:armen]&lt;br /&gt;
    Source: https://github.com/mozilla-frontend-infra/firefox-performance-dashboard&lt;br /&gt;
&lt;br /&gt;
=== Firefox Health Dashboard ===&lt;br /&gt;
&lt;br /&gt;
The health dashboard tracks metrics and statistics important for tracking performance improvements.  Meant to be a high level view.&lt;br /&gt;
&lt;br /&gt;
    Location: https://health.graphics/&lt;br /&gt;
    Owner: Armen Zambrano Gasparnian [:armen], Kyle Lahnakoski [:ekyle]&lt;br /&gt;
    Source: https://github.com/mozilla-frontend-infra/firefox-health-dashboard/&lt;br /&gt;
    Good first bugs: https://github.com/mozilla-frontend-infra/firefox-health-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Community:SummerOfCode19:Brainstorming&amp;diff=1207280</id>
		<title>Community:SummerOfCode19:Brainstorming</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Community:SummerOfCode19:Brainstorming&amp;diff=1207280"/>
		<updated>2019-02-05T20:21:20Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: strike some projects&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once again, Mozilla intends to apply to participate in Google&#039;s Summer Of Code.&lt;br /&gt;
&lt;br /&gt;
Mozilla community members, please submit proposals here for 2019 Google Summer of Code projects with Mozilla. This page is for brainstorming - as we approach the deadline, those ideas that are accepted will be transferred to the [[Community:SummerOfCode19|official list]].) &lt;br /&gt;
&lt;br /&gt;
Our application for summer of 2019 goes into Google on &#039;&#039;&#039;February 4th&#039;&#039;&#039;, so get those project ideas in well ahead of time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Are you a student looking to apply to GSoC with Mozilla?&amp;lt;/b&amp;gt; Your first stop should be the [[Community:SummerOfCode19|official list of ideas]]. This page is full of weird ideas, only some of which will make the cut. It could be that they are not properly defined, the wrong size, or don&#039;t have a mentor. That makes them less likely to get accepted. You &amp;lt;i&amp;gt;can&amp;lt;/i&amp;gt;, of course, also submit your own ideas - you don&#039;t have to put an idea on this page and get it &#039;made official&#039; in order to send in a proposal for it.&lt;br /&gt;
&lt;br /&gt;
==How To Write A Good Project Proposal==&lt;br /&gt;
&lt;br /&gt;
Before adding an proposal to this list, please consider the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Be specific&#039;&#039;&#039;. It&#039;s hard to understand the impact of, or the size of, vague proposals.&lt;br /&gt;
* &#039;&#039;&#039;Consider size&#039;&#039;&#039;. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.&lt;br /&gt;
* &#039;&#039;&#039;Do your research&#039;&#039;&#039;. Support the idea with well-researched links.&lt;br /&gt;
* &#039;&#039;&#039;Don&#039;t morph other people&#039;s ideas&#039;&#039;&#039;. If you have a related idea, place it next to the existing one, or add a comment. &lt;br /&gt;
* &#039;&#039;&#039;Insert only your own name into the Mentor column&#039;&#039;&#039;, and then only if you are willing to take on the responsibility. If you think the SoC admins won&#039;t know who you are, leave contact details.&lt;br /&gt;
* &#039;&#039;&#039;Check back regularly&#039;&#039;&#039;. The administrators may have questions about your idea that you will need to answer.&lt;br /&gt;
* &#039;&#039;&#039;Know when to give up&#039;&#039;&#039;. If you&#039;ve added the same idea for the last three years and it hasn&#039;t made it to the official page, perhaps you can predict what will happen this time.&lt;br /&gt;
&lt;br /&gt;
==Suggestion List==&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCode|Here are the ideas lists from previous years]].&lt;br /&gt;
&lt;br /&gt;
Proposals can be in almost any part of the Mozilla project, though they do need to be mostly focused on code.&lt;br /&gt;
&lt;br /&gt;
Here are the proposals. Feel free to add a new one.&lt;br /&gt;
&lt;br /&gt;
== 2019 Proposed Project List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Additional Comments&lt;br /&gt;
|-&lt;br /&gt;
| Improve Python in the browser&lt;br /&gt;
| The [https://github.com/iodide-project/pyodide pyodide] project allows the Python scientific stack to run in the browser by compiling it to WebAssembly. Help make stuff run better and faster there.&lt;br /&gt;
| Python and JavaScript. Can learn the WebAssembly parts as you go.&lt;br /&gt;
| [https://mozillians.org/en-US/u/mdboom/ Michael Droettboom]&lt;br /&gt;
| [https://mozillians.org/en-US/u/mdboom/ Michael Droettboom]&lt;br /&gt;
| There are a number of specific projects we have in mind, but are open to other proposals that are within scope and seem practical within the timeframe. (1) Implement matplotlib&#039;s display on top of Web APIs (HTML5 Canvas, etc.)  This would allow us to avoid shipping a whole separate rendering engine to the browser. (2) Build WebAssembly support into the conda packaging system to make it easier to distribute new compiled packages for Pyodide. (3) Make multi-dimensional arrays sharable between Python and Javascript. See Pyodide&#039;s [https://github.com/iodide-project/pyodide/issues list of issues] for additional ideas.  About the mentor: Michael Droettboom is a Staff Data Engineer at Mozilla, and a former lead developer of matplotlib with years of experience building the Python scientific ecosystem.&lt;br /&gt;
|-&lt;br /&gt;
| ReSpec &lt;br /&gt;
| [https://github.com/w3c/respec/ ReSpec] is a JS-based tool used to write W3C Specifications (Web Standards) that is widely used by the Web Standards Community. With 6+ years of development, it&#039;s heavily depended upon by the W3C community at large (of which Mozilla is an active participant). ReSpec&#039;s code is in need of some modernization, optimizations, and bug fixes - and we could use your help! In this project, you would have the opportunity to make ReSpec&#039;s UI more accessible, making it leaner and faster using distributed processing with Web Workers, and/or adding new features to make the lives of W3C spec Editor&#039;s better. &lt;br /&gt;
| JavaScript, HTML, CSS. &lt;br /&gt;
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]&lt;br /&gt;
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]&lt;br /&gt;
| ReSpec offers students the opportunity to work on a large code base that has extensive real world use and impact. The project offers students an extensive range of problems to tackle, from UI design, to concurrent processing (using Web Workers to do distributed text processing), dealing with accessibility and internationalization, writing and learning about unit and integration tests, security, code review, etc. - as well as exposure to the W3C and the web standards community, this project also aims at teaching students about how web standards are put together. To determine if this is a project you would like to be part of, see the [https://github.com/w3c/respec/issues/ list of issues] you could work on. It&#039;s a great opportunity to learn about all aspects of open source software development, but with the freedom to take on small to large challenges over the Summer (depending on your skill level and level of confidence). About the mentor: Marcos Caceres is a Staff Engineer at Mozilla who has been working on Web Standards for over a decade. Marcos is the lead maintainer of ReSpec. Marcos has extensive experience mentoring developers and has previously successfully mentor a GSO student. &lt;br /&gt;
|-&lt;br /&gt;
| Ship Public Suffix List (PSL) over Remote Settings&lt;br /&gt;
| The list of public domain suffixes (DNS) is shipped with every release, with no way to update it on long term releases for example.&lt;br /&gt;
Now that Remote Settings has become a solid solution to ship data, we could use it to publish updates of the PSL.&lt;br /&gt;
The task consist in migrating the current client code to read from Remote Settings instead of a file, and implement a scheduled job (like Python) to push updates automatically (most likely compiled as a DAFSA file) &lt;br /&gt;
| JavaScript and some Python basics &lt;br /&gt;
| [https://mozillians.org/en-US/u/leplatrem/ Mathieu Leplatre]&lt;br /&gt;
| [https://mozillians.org/en-US/u/leplatrem/ Mathieu Leplatre]&lt;br /&gt;
| https://bugzilla.mozilla.org/show_bug.cgi?id=1083971&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/marco-c/bugbug bugbug]&lt;br /&gt;
| A platform for machine learning projects applied on Bugzilla, VCS and other software development data.&lt;br /&gt;
| Python&lt;br /&gt;
| [https://github.com/marco-c Marco Castelluccio] (FIRST_NAME@mozilla.com)&lt;br /&gt;
| [https://github.com/marco-c Marco Castelluccio] (FIRST_NAME@mozilla.com)&lt;br /&gt;
| The project will involve one or more of:&lt;br /&gt;
i) building additional classifiers (e.g., to detect bugs with no steps to reproduce, or to suggest a developer to assign to a bug, and so on);&lt;br /&gt;
&lt;br /&gt;
ii) improving accuracy/precision/recall of the existing classifiers by implementing other machine learning techniques (e.g., by using convolutional neural networks or recurrent neural networks);&lt;br /&gt;
&lt;br /&gt;
iii) improving accuracy/precision/recall by implementing additional feature extraction steps or making the already existing ones better.&lt;br /&gt;
|-&lt;br /&gt;
| WebSocket Monitor&lt;br /&gt;
| Support for WebSocket monitoring and inspection in Firefox DevTools.&lt;br /&gt;
| JavaScript/React&lt;br /&gt;
| [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko]&lt;br /&gt;
| [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko]&lt;br /&gt;
| This project aims at providing support for WebSocket monitoring and inspection in Firefox DevTools. The feature should be built on top of the existing Network panel UI and responsible for visualizing data sent through WebSocket connection (i.e. WS frames). The user should be able to use the UI to see as well as analyse the data (search, filter, etc.).&lt;br /&gt;
* [https://docs.google.com/document/d/1ruHk-BA3cqzU7VHoVltnAwWt_2OXKOOAI4nTHwYllzk/edit# Detailed Project Description]&lt;br /&gt;
|-&lt;br /&gt;
| Helpful crash reporter&lt;br /&gt;
| The crash reporter only allows users to send crash reports but in some cases it might help the user diagnose the crash and solve it on his/her own&lt;br /&gt;
| C++, Javascript&lt;br /&gt;
| [https://mozillians.org/en-US/u/gsvelto/ Gabriele Svelto] &lt;br /&gt;
| [https://mozillians.org/en-US/u/gsvelto/ Gabriele Svelto] &lt;br /&gt;
| There&#039;s a few things that could be implemented:&lt;br /&gt;
* A quick test of the memory owned by the crashed process (such as those in [http://www.memtest.org/ memtest86+]) might catch faulty memory, a common cause for crashes&lt;br /&gt;
* The crash reporter client might try and validate Firefox files which can sometimes become corrupted (usually because of hardware issues). If they are it can prompt the user to re-install Firefox&lt;br /&gt;
* Many crashes are caused by buggy graphics drivers, while we blacklist the most egregious offenders we can&#039;t cover them all. The crash reporter might identify a faulty driver (if a bug for it has already been filed) and point the user to up-to-date drivers&lt;br /&gt;
* For crashes caused by known bugs it should be possible to point the user to the bug filed on bugzilla&lt;br /&gt;
|-&lt;br /&gt;
| Debugger Inline Variable Preview&lt;br /&gt;
| When the Firefox DevTools debugger is paused, users can hover over variables to get a useful tooltip that details the variable&#039;s value at that time.  While this popup is very informative, one valuable enhancement would be displaying relevant contextual variables values alongside the variable inline, alleviating the need for tooltips and allowing the user to more quickly get the information they need.  The applicant will work alongside the Debugger&#039;s team to implement this feature based on UX mockups and be given space to share and implement ideas of their own.&lt;br /&gt;
| Javascript&lt;br /&gt;
| [https://mozillians.org/en-US/u/davidwalsh/ David Walsh] &lt;br /&gt;
| [https://mozillians.org/en-US/u/davidwalsh/ David Walsh] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GitHub Checks Support Improvements&lt;br /&gt;
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports reporting results to the [https://github.com/taskcluster/taskcluster/pull/129/checks?check_run_id=54327344 GitHub Checks API], but only reports success or failure.  Let&#039;s add support for showing [https://developer.github.com/v3/checks/runs/ annotations] - snippets of log output, more detailed results, images, and so on.  We can even add support for additional &amp;quot;actions&amp;quot; on the task, such as re-running with debugging enabled.&lt;br /&gt;
| Server-side JS&lt;br /&gt;
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Support GitHub Logins in Taskcluster&lt;br /&gt;
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports logging in with Auth0, the Mozilla login system.  We would like to make it useful outside of Mozilla, and most other users do their development on GitHub, making GitHub logins a good solution.  This project would involve adding support for signing in with GitHub, as well as the more challenging task of assigning appropriate permissions to users based on the setup of their GitHub account.&lt;br /&gt;
| Server-side JS&lt;br /&gt;
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Improve Webdriver support in Servo&lt;br /&gt;
| [https://github.com/servo/servo/ Servo] currently supports a minimal subset of the [https://w3c.github.io/webdriver/ Webdriver standard]. We would like to improve Servo&#039;s support, and verify its correctness by passing a [https://github.com/web-platform-tests/wpt/tree/master/webdriver set of automated tests]. This project would involve writing Rust code to extend the webdriver server inside of Servo, as well as JavaScript and Python to support the [https://web-platform-tests.org/writing-tests/testdriver.html testdriver.js] testharness.&lt;br /&gt;
| Familiarity with Python &amp;amp; JavaScript; interest in learning Rust&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ Josh Bowman-Matthews] &lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ Josh Bowman-Matthews]&lt;br /&gt;
| [https://github.com/servo/servo/wiki/Support-Webdriver-based-tests-project Project description]&lt;br /&gt;
|-&lt;br /&gt;
| Support importing Instruments profiles in perf.html&lt;br /&gt;
| [https://github.com/devtools-html/perf.html/ perf.html] visualizes performance data recorded from various performance analysis tools. It is a tool designed to consume performance profiles from Gecko Profiler but can visualize any profiler able to output JSON. It currently supports Gecko, Chrome and perf profile formats. Instruments is a performance analyzer that comes with Xcode. This project would involve adding support for Instruments profile import in perf.html.&lt;br /&gt;
| Familiarity with JavaScript &amp;amp; React&lt;br /&gt;
| [https://mozillians.org/en-US/u/canaltinova/ Nazım Can Altınova]&lt;br /&gt;
| [https://mozillians.org/en-US/u/canaltinova/ Nazım Can Altınova]&lt;br /&gt;
| https://github.com/devtools-html/perf.html/issues/1138&lt;br /&gt;
|-&lt;br /&gt;
| Common Voice - WebAssembly MP3 Encoding&lt;br /&gt;
| Currently Common Voice doesn’t support Safari, which is also why we have an iOS app. The only reason being the missing MediaRecorder API. It could be polyfilled (rebuilt in “userspace”) by compiling an MP3 encoder to WebAssembly. I’ve tried that a couple of times, but never had enough time to fix the opaque bugs happening in Safari. This could also be turned into its own library and would be a nice story overall of how WASM can help with WebCompat and missing APIs.&lt;br /&gt;
| JavaScript&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://github.com/mozilla/voice-web/issues/469 This GitHub issue] lines out some thoughts around how to implement it and you can find references to closed PRs which tried implementing it in various ways.&lt;br /&gt;
|-&lt;br /&gt;
| Common Voice - Voice Wave Avatar&lt;br /&gt;
| We’d like our users to have unique(ish) avatars based either on the characteristics of their voice or a visualization of how their name (or an utterance of their choosing) is pronounced. It could also be a combination of the two ideas. We’re very open to explore this space together, though the a candidate should have some knowledge in sound theory.&lt;br /&gt;
| JavaScript, Some knowledge of sound theory&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
|-&lt;br /&gt;
| Tab Manager menu in Firefox &lt;br /&gt;
| This project will extend the tab overflow menu - which shows tabs not visible in the browser&#039;s tab strip - to allow management of all open tabs across all browser windows.  The selected student will be working directly in the Firefox codebase to add functionality and new menu structures to make this easily accessible for end users. &lt;br /&gt;
| JavaScript, CSS, and web experience&lt;br /&gt;
| [https://mozillians.org/en-US/u/sfoster/ Sam Foster], [https://mozillians.org/en-US/u/bbell/ Bryan Bell]&lt;br /&gt;
| [https://mozillians.org/en-US/u/sfoster/ Sam Foster]&lt;br /&gt;
| We have [https://mozilla.invisionapp.com/share/4SNCEPDUEZ6#/screens UX mockups] for this feature, which could be broken into two phases. We also have a [https://bugzilla.mozilla.org/show_bug.cgi?id=1480542 bug on file], where discussion has begun. While working on this you will become very familiar with the Browser Toolbox, our own &amp;quot;Inspector&amp;quot; tool for the browser user-interface, as well as writing automated tests for the new feature you&#039;re adding. The existing tab overflow code lives in our [https://searchfox.org/mozilla-central/source/browser/base/content/browser-allTabsMenu.js browser-allTabsMenu.js] file, which will be the starting point for the new tab manager.  You can look at this and the existing tab code to get an idea of how this currently works. &lt;br /&gt;
-&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Firefox Reader Redesign&lt;br /&gt;
| The design of Firefox’s Reader Mode has languished behind as Quantum has implemented the new Photon Design System. The interface needs to be rebuilt using new visual and interaction styles to match the Photon Design System.&lt;br /&gt;
| JavaScript, CSS, and web experience&lt;br /&gt;
| [https://mozillians.org/en-US/u/awallin/ Abraham Wallin]&lt;br /&gt;
| [https://mozillians.org/en-US/u/eeejay/ Eitan Isaacson]&lt;br /&gt;
| [https://mozilla.invisionapp.com/share/87N9YQYCTJZ#/315073983_Reader_View_Redesign UX Mockups] for this feature are available with visual bugs have been reported [https://bugzilla.mozilla.org/show_bug.cgi?id=1187696 here] and [https://github.com/devtools-html/ux/issues/5 here]. Functional bugs and feature enhancements have been documented [https://github.com/mozilla/readability/issues?q=is%3Aissue+is%3Aopen+label%3Areader-mode-has-issues here], [https://github.com/mozilla/readability/issues?q=is%3Aissue+is%3Aopen+label%3Ashould-be-readerable here], [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=comp%3Areader%20prod%3DToolkit%20whiteboard%3Areadability-algorithm&amp;amp;list_id=14539703 here], and [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=comp%3Areader%20prod%3DToolkit%20whiteboard%3Aisreadable&amp;amp;list_id=14539704 finally here]. The request is for an engineering student to implement the designs and tackle the queue of bugs/enhancements within the Firefox code base. Mentors will support with prioritization, design direction/assets, and technical guidance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| An Android file downloader designed for Emerging Markets&lt;br /&gt;
| A lesson learned thanks to our UX team is in Emerging Markets the data plan is dynamic: in late nights we have the most affordable bandwidth. Here&#039;s the question: Why not schedule big files and videos and have them downloaded when you&#039;re sleeping? The mvp would be an App which we can send urls to. After receiving these urls the App either downloads it directly or defer it to late night. As there are more and more background restrictions enforced on new Android APIs, this should be a fun and challenging journey.&lt;br /&gt;
&lt;br /&gt;
A stretch goal would be to embed this downloader in our browser for Emerging Markets, Firefox Lite. Firefox Lite is not satisfied with the current Android Download Manager in several ways: We&#039;d like to give users the ability to pause/resume a download, we&#039;d like to download a file directly to SDcard (opposed to download it to the main storage and move it into SDcard).&lt;br /&gt;
&lt;br /&gt;
We&#039;ve also prepared an even more ambitious mission for those who want tough challenges: Design the app and make it dynamic deliverable. With aabs we can satisfy both light and heavy users by defaulting Android Download Manager as the download tool and prepare the aforementioned downloader dynamically so that Firefox Lite itself is still minimized in terms of disk size. Nevin and mTwTm are Android developers who can provide assistance to Android App design.&lt;br /&gt;
| Android Java/Kotlin&lt;br /&gt;
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)]&lt;br /&gt;
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)] (mTwTm@mozilla.com), [https://github.com/cnevinc/ Nevin Chen] (nevin@mozilla.com)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Toolkit for sandboxing third-parties libraries in Firefox&lt;br /&gt;
| Firefox supports a long tail of infrequently used image and audio formats to&lt;br /&gt;
support the occasional website that uses them. Each such format requires the&lt;br /&gt;
Firefox decoder to use a new open source library for parsing and decoding.&lt;br /&gt;
This, unfortunately, increases the attack surface of Firefox and as we saw in&lt;br /&gt;
Pwn2Own 2018, Firefox was successfully exploited via a bugs in such libraries&lt;br /&gt;
(libogg in this case).&lt;br /&gt;
&lt;br /&gt;
This project proposes to sandbox third-party libraries in Firefox by building a&lt;br /&gt;
new software-fault isolation toolkit. Our tookit will build on the WebAssembly&lt;br /&gt;
compiler to isolate libraries in Firefox. But, as part of this toolkit we will&lt;br /&gt;
also develop and apply a library for safely interfacing with sandboxed libraries (and&lt;br /&gt;
sanitizing data coming from them). with this toolkit we can ensure that any&lt;br /&gt;
vulnerability in third-party libraries (e.g., libogg or libpng) cannot be used&lt;br /&gt;
to be used to compromise Firefox.&lt;br /&gt;
| C/C++, experience with WebAssembly&lt;br /&gt;
| [https://mozillians.org/en-US/u/erahm/ Eric Rahm]&lt;br /&gt;
| [https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Test automation our linting tools&lt;br /&gt;
| We have a several linting tools running on Firefox code base, they currently don&#039;t have a test suite. &lt;br /&gt;
The goal of this project is to make sure that tests are executed. We currently have a similar [https://bugzilla.mozilla.org/show_bug.cgi?id=1432410 test automation for static analyzer jobs]. The idea would be to extend (or replicate) this model for [https://searchfox.org/mozilla-central/source/tools/lint/ ./mach lint] (which run flake8, eslint, etc) and [https://searchfox.org/mozilla-central/source/python/mozbuild/mozbuild/mach_commands.py#2327 ./mach clang-format]&lt;br /&gt;
The bug is https://bugzilla.mozilla.org/show_bug.cgi?id=1448008&lt;br /&gt;
| Python&lt;br /&gt;
| [https://github.com/sylvestre Sylvestre] (s@mozilla.com)&lt;br /&gt;
| [https://github.com/abpostelnicu Andi Postelnicu] (andi@mozilla.com)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Firefox Account Security Dashboard&lt;br /&gt;
| Firefox Account administrators and users need an easily digestible view into the important events that have occurred on an account, providing a way to audit for irregularities.&lt;br /&gt;
| JavaScript, HTML, CSS, MySQL&lt;br /&gt;
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]&lt;br /&gt;
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]&lt;br /&gt;
| The Firefox Account platform tracks security information about an account, but does not surface this information in an easily consumable format. Users and administrators should be able to see a timeline of an account’s security related events, such as connecting devices, signing into services, changing or resetting passwords, and adding or removing 2FA. Each event in the timeline should include a timestamp, IP address, and location information when they occurred. &lt;br /&gt;
&lt;br /&gt;
This project would entail updating our security event API to ensure we track and expose the required data. The first phase is to build a script that consumes the API and pretty prints the timeline. The second phase is to provide a web interface for the security timeline.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Improving FastParquet&lt;br /&gt;
| FastParquet is a Python library that needs improvement to how it writes the parquet file format &lt;br /&gt;
| Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/klahnakoski/mo-parquet/blob/dev/docs/StudentProject%202019.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Faster Pyparsing&lt;br /&gt;
| Pyparsing is a Python library that provides a DSL for language specification. It could use some optimization. &lt;br /&gt;
| Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/moz-sql-parser/blob/dev/docs/Student%20Project%202019.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;s&amp;gt;Regression Detection&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Use machine learning to guide statistical model selection, then use the model(s) to detect regressions in future data. &amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Machine Learning, Statistics, Python&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;[https://github.com/mozilla/ActiveData/blob/dev/docs/Student%20Project%20190121.md Read more]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;s&amp;gt;Bugzilla Kanban Board&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Show bugs like [https://en.wikipedia.org/wiki/Post-it_Note post-it notes] on a [https://en.wikipedia.org/wiki/Whiteboard whiteboard]. Much like a [https://en.wikipedia.org/wiki/Kanban_board Kanban board]&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;JSX/React&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;[https://github.com/mozilla/bugzilla-tiles Read more]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;s&amp;gt;More ActiveData Recipes&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;Build out the user interface of the [https://github.com/mozilla/active-data-recipes active-data-recipes] project so that making new recipes is even easier&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;JSX/React some Python&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;[https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&amp;lt;/s&amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;[https://github.com/mozilla/active-data-recipes/pull/112/files#diff-0f126940e57c54541662345b499622f1 PR with proposal] or [https://github.com/mozilla/active-data-recipes/tree/master/docs/Student%20Project%20190130.md Read more]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TUID service improvments&lt;br /&gt;
| The TUID service handles millions of requests daily from hundreds of machines. It must go faster, and be stabilized.&lt;br /&gt;
| Python/Flask/Sqlite &lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [mailto:gmierzwinski@mozilla.com Gregory Mierzwinski]&lt;br /&gt;
| [https://github.com/mozilla/TUID/blob/dev/docs/Student%20Project%20190204.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Firefox Source Docs Infrastructure&lt;br /&gt;
| Improve the infrastructure underpinning Firefox&#039;s [https://firefox-source-docs.mozilla.org/ in-tree documentation].&lt;br /&gt;
| Python, Sphinx, Rst&lt;br /&gt;
| [https://mozillians.org/en-US/u/ahal/ Andrew Halberstadt]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ahal/ Andrew Halberstadt]&lt;br /&gt;
| Writing docs for Firefox&#039;s in-tree [https://firefox-source-docs.mozilla.org/ source docs] is time consuming and difficult and the end result is difficult to navigate.&lt;br /&gt;
&lt;br /&gt;
With [https://developer.mozilla.org/en-US/ MDN] de-prioritizing build and workflow docs, we need a suitable replacement for all of Firefox&#039;s contribution and workflow documentation. The great advantage of documentation living in-tree, is that it can be updated along with the source. Unfortunately the current system to build and generate docs is difficult to write for, slow to build and generates poorly organized documentation. These factors discourage developers from creating or updating docs.&lt;br /&gt;
&lt;br /&gt;
This project aims to improve the documentation experience via static analysis tools (e.g hint when docs might need to be updated), enabling linters, faster build times, additional language support and well structured hierarchies. Help make documentation a bigger part of our developer&#039;s day to day workflow.&lt;br /&gt;
|-&lt;br /&gt;
| Improve FixMe&lt;br /&gt;
| [http://fixme.ossn.club/ Improve FixMe], a tool for surfacing meaningful contribution opportunities to new contributors. This project started two years ago as a GSoC project and we are looking into adding more capabilities. The tool currently fetches issues only from GitHub and relays a lot into the tags project maintainers use in their repositories. We want to add gitlab support and come up with a more sophisticated way of identifying technologies and skills needed for new contributors &lt;br /&gt;
| - Backend: Go, Buffalo, Postgresql. - Front-end: React, typescript, Redux&lt;br /&gt;
| [https://mozillians.org/en-US/u/bacharakis/ Christos Bacharakis]&lt;br /&gt;
| [https://mozillians.org/en-US/u/bacharakis/ Christos Bacharakis]&lt;br /&gt;
| [https://github.com/ossn/fixme Link to] front-end source code, [https://github.com/ossn/fixme_backend link to backend] source code. [http://fixme.ossn.club/ FixMe tool in action]&lt;br /&gt;
|-&lt;br /&gt;
| ..your next idea here!&lt;br /&gt;
| some details&lt;br /&gt;
| skills/language&lt;br /&gt;
| reporter&lt;br /&gt;
| mentor&lt;br /&gt;
| comments&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Community:SummerOfCode19:Brainstorming&amp;diff=1207130</id>
		<title>Community:SummerOfCode19:Brainstorming</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Community:SummerOfCode19:Brainstorming&amp;diff=1207130"/>
		<updated>2019-02-04T14:13:24Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add tuid project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once again, Mozilla intends to apply to participate in Google&#039;s Summer Of Code.&lt;br /&gt;
&lt;br /&gt;
Mozilla community members, please submit proposals here for 2019 Google Summer of Code projects with Mozilla. This page is for brainstorming - as we approach the deadline, those ideas that are accepted will be transferred to the [[Community:SummerOfCode19|official list]].) &lt;br /&gt;
&lt;br /&gt;
Our application for summer of 2019 goes into Google on &#039;&#039;&#039;February 4th&#039;&#039;&#039;, so get those project ideas in well ahead of time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Are you a student looking to apply to GSoC with Mozilla?&amp;lt;/b&amp;gt; Your first stop should be the [[Community:SummerOfCode19|official list of ideas]]. This page is full of weird ideas, only some of which will make the cut. It could be that they are not properly defined, the wrong size, or don&#039;t have a mentor. That makes them less likely to get accepted. You &amp;lt;i&amp;gt;can&amp;lt;/i&amp;gt;, of course, also submit your own ideas - you don&#039;t have to put an idea on this page and get it &#039;made official&#039; in order to send in a proposal for it.&lt;br /&gt;
&lt;br /&gt;
==How To Write A Good Project Proposal==&lt;br /&gt;
&lt;br /&gt;
Before adding an proposal to this list, please consider the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Be specific&#039;&#039;&#039;. It&#039;s hard to understand the impact of, or the size of, vague proposals.&lt;br /&gt;
* &#039;&#039;&#039;Consider size&#039;&#039;&#039;. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.&lt;br /&gt;
* &#039;&#039;&#039;Do your research&#039;&#039;&#039;. Support the idea with well-researched links.&lt;br /&gt;
* &#039;&#039;&#039;Don&#039;t morph other people&#039;s ideas&#039;&#039;&#039;. If you have a related idea, place it next to the existing one, or add a comment. &lt;br /&gt;
* &#039;&#039;&#039;Insert only your own name into the Mentor column&#039;&#039;&#039;, and then only if you are willing to take on the responsibility. If you think the SoC admins won&#039;t know who you are, leave contact details.&lt;br /&gt;
* &#039;&#039;&#039;Check back regularly&#039;&#039;&#039;. The administrators may have questions about your idea that you will need to answer.&lt;br /&gt;
* &#039;&#039;&#039;Know when to give up&#039;&#039;&#039;. If you&#039;ve added the same idea for the last three years and it hasn&#039;t made it to the official page, perhaps you can predict what will happen this time.&lt;br /&gt;
&lt;br /&gt;
==Suggestion List==&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCode|Here are the ideas lists from previous years]].&lt;br /&gt;
&lt;br /&gt;
Proposals can be in almost any part of the Mozilla project, though they do need to be mostly focused on code.&lt;br /&gt;
&lt;br /&gt;
Here are the proposals. Feel free to add a new one.&lt;br /&gt;
&lt;br /&gt;
== 2019 Proposed Project List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Additional Comments&lt;br /&gt;
|-&lt;br /&gt;
| Improve Python in the browser&lt;br /&gt;
| The [https://github.com/iodide-project/pyodide pyodide] project allows the Python scientific stack to run in the browser by compiling it to WebAssembly. Help make stuff run better and faster there.&lt;br /&gt;
| Python and JavaScript. Can learn the WebAssembly parts as you go.&lt;br /&gt;
| [https://mozillians.org/en-US/u/mdboom/ Michael Droettboom]&lt;br /&gt;
| [https://mozillians.org/en-US/u/mdboom/ Michael Droettboom]&lt;br /&gt;
| There are a number of specific projects we have in mind, but are open to other proposals that are within scope and seem practical within the timeframe. (1) Implement matplotlib&#039;s display on top of Web APIs (HTML5 Canvas, etc.)  This would allow us to avoid shipping a whole separate rendering engine to the browser. (2) Build WebAssembly support into the conda packaging system to make it easier to distribute new compiled packages for Pyodide. (3) Make multi-dimensional arrays sharable between Python and Javascript. See Pyodide&#039;s [https://github.com/iodide-project/pyodide/issues list of issues] for additional ideas.  About the mentor: Michael Droettboom is a Staff Data Engineer at Mozilla, and a former lead developer of matplotlib with years of experience building the Python scientific ecosystem.&lt;br /&gt;
|-&lt;br /&gt;
| ReSpec &lt;br /&gt;
| [https://github.com/w3c/respec/ ReSpec] is a JS-based tool used to write W3C Specifications (Web Standards) that is widely used by the Web Standards Community. With 6+ years of development, it&#039;s heavily depended upon by the W3C community at large (of which Mozilla is an active participant). ReSpec&#039;s code is in need of some modernization, optimizations, and bug fixes - and we could use your help! In this project, you would have the opportunity to make ReSpec&#039;s UI more accessible, making it leaner and faster using distributed processing with Web Workers, and/or adding new features to make the lives of W3C spec Editor&#039;s better. &lt;br /&gt;
| JavaScript, HTML, CSS. &lt;br /&gt;
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]&lt;br /&gt;
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]&lt;br /&gt;
| ReSpec offers students the opportunity to work on a large code base that has extensive real world use and impact. The project offers students an extensive range of problems to tackle, from UI design, to concurrent processing (using Web Workers to do distributed text processing), dealing with accessibility and internationalization, writing and learning about unit and integration tests, security, code review, etc. - as well as exposure to the W3C and the web standards community, this project also aims at teaching students about how web standards are put together. To determine if this is a project you would like to be part of, see the [https://github.com/w3c/respec/issues/ list of issues] you could work on. It&#039;s a great opportunity to learn about all aspects of open source software development, but with the freedom to take on small to large challenges over the Summer (depending on your skill level and level of confidence). About the mentor: Marcos Caceres is a Staff Engineer at Mozilla who has been working on Web Standards for over a decade. Marcos is the lead maintainer of ReSpec. Marcos has extensive experience mentoring developers and has previously successfully mentor a GSO student. &lt;br /&gt;
|-&lt;br /&gt;
| Ship Public Suffix List (PSL) over Remote Settings&lt;br /&gt;
| The list of public domain suffixes (DNS) is shipped with every release, with no way to update it on long term releases for example.&lt;br /&gt;
Now that Remote Settings has become a solid solution to ship data, we could use it to publish updates of the PSL.&lt;br /&gt;
The task consist in migrating the current client code to read from Remote Settings instead of a file, and implement a scheduled job (like Python) to push updates automatically (most likely compiled as a DAFSA file) &lt;br /&gt;
| JavaScript and some Python basics &lt;br /&gt;
| [https://mozillians.org/en-US/u/leplatrem/ Mathieu Leplatre]&lt;br /&gt;
| [https://mozillians.org/en-US/u/leplatrem/ Mathieu Leplatre]&lt;br /&gt;
| https://bugzilla.mozilla.org/show_bug.cgi?id=1083971&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/marco-c/bugbug bugbug]&lt;br /&gt;
| A platform for machine learning projects applied on Bugzilla, VCS and other software development data.&lt;br /&gt;
| Python&lt;br /&gt;
| [https://github.com/marco-c Marco Castelluccio] (FIRST_NAME@mozilla.com)&lt;br /&gt;
| [https://github.com/marco-c Marco Castelluccio] (FIRST_NAME@mozilla.com)&lt;br /&gt;
| The project will involve one or more of:&lt;br /&gt;
i) building additional classifiers (e.g., to detect bugs with no steps to reproduce, or to suggest a developer to assign to a bug, and so on);&lt;br /&gt;
&lt;br /&gt;
ii) improving accuracy/precision/recall of the existing classifiers by implementing other machine learning techniques (e.g., by using convolutional neural networks or recurrent neural networks);&lt;br /&gt;
&lt;br /&gt;
iii) improving accuracy/precision/recall by implementing additional feature extraction steps or making the already existing ones better.&lt;br /&gt;
|-&lt;br /&gt;
| Make the Firefox WebAuthn Soft Token a Real Thing&lt;br /&gt;
| The Web Authentication Soft Token provides second-factor login support without needing a Security Key dongle. It would be very usable if the Soft Token were a) synchronized across an account using Sync, b) could be controlled via a Web Extension, and perhaps c) had some UI. If these things were true, most people could get quality authentication support without buying another device.&lt;br /&gt;
| C++, Javascript, Basic cryptography&lt;br /&gt;
| [https://mozillians.org/en-US/u/jcjones/ J.C. Jones] &lt;br /&gt;
| [https://mozillians.org/en-US/u/jcjones/ J.C. Jones] &lt;br /&gt;
| https://wiki.mozilla.org/Security/CryptoEngineering#Web_Authentication&lt;br /&gt;
|-&lt;br /&gt;
| WebSocket Monitor&lt;br /&gt;
| Support for WebSocket monitoring and inspection in Firefox DevTools.&lt;br /&gt;
| JavaScript/React&lt;br /&gt;
| [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko]&lt;br /&gt;
| [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko]&lt;br /&gt;
| This project aims at providing support for WebSocket monitoring and inspection in Firefox DevTools. The feature should be built on top of the existing Network panel UI and responsible for visualizing data sent through WebSocket connection (i.e. WS frames). The user should be able to use the UI to see as well as analyse the data (search, filter, etc.).&lt;br /&gt;
* [https://docs.google.com/document/d/1ruHk-BA3cqzU7VHoVltnAwWt_2OXKOOAI4nTHwYllzk/edit# Detailed Project Description]&lt;br /&gt;
|-&lt;br /&gt;
| Helpful crash reporter&lt;br /&gt;
| The crash reporter only allows users to send crash reports but in some cases it might help the user diagnose the crash and solve it on his/her own&lt;br /&gt;
| C++, Javascript&lt;br /&gt;
| [https://mozillians.org/en-US/u/gsvelto/ Gabriele Svelto] &lt;br /&gt;
| [https://mozillians.org/en-US/u/gsvelto/ Gabriele Svelto] &lt;br /&gt;
| There&#039;s a few things that could be implemented:&lt;br /&gt;
* A quick test of the memory owned by the crashed process (such as those in [http://www.memtest.org/ memtest86+]) might catch faulty memory, a common cause for crashes&lt;br /&gt;
* The crash reporter client might try and validate Firefox files which can sometimes become corrupted (usually because of hardware issues). If they are it can prompt the user to re-install Firefox&lt;br /&gt;
* Many crashes are caused by buggy graphics drivers, while we blacklist the most egregious offenders we can&#039;t cover them all. The crash reporter might identify a faulty driver (if a bug for it has already been filed) and point the user to up-to-date drivers&lt;br /&gt;
* For crashes caused by known bugs it should be possible to point the user to the bug filed on bugzilla&lt;br /&gt;
|-&lt;br /&gt;
| Debugger Inline Variable Preview&lt;br /&gt;
| When the Firefox DevTools debugger is paused, users can hover over variables to get a useful tooltip that details the variable&#039;s value at that time.  While this popup is very informative, one valuable enhancement would be displaying relevant contextual variables values alongside the variable inline, alleviating the need for tooltips and allowing the user to more quickly get the information they need.  The applicant will work alongside the Debugger&#039;s team to implement this feature based on UX mockups and be given space to share and implement ideas of their own.&lt;br /&gt;
| Javascript&lt;br /&gt;
| [https://mozillians.org/en-US/u/davidwalsh/ David Walsh] &lt;br /&gt;
| [https://mozillians.org/en-US/u/davidwalsh/ David Walsh] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GitHub Checks Support Improvements&lt;br /&gt;
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports reporting results to the [https://github.com/taskcluster/taskcluster/pull/129/checks?check_run_id=54327344 GitHub Checks API], but only reports success or failure.  Let&#039;s add support for showing [https://developer.github.com/v3/checks/runs/ annotations] - snippets of log output, more detailed results, images, and so on.  We can even add support for additional &amp;quot;actions&amp;quot; on the task, such as re-running with debugging enabled.&lt;br /&gt;
| Server-side JS&lt;br /&gt;
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Support GitHub Logins in Taskcluster&lt;br /&gt;
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports logging in with Auth0, the Mozilla login system.  We would like to make it useful outside of Mozilla, and most other users do their development on GitHub, making GitHub logins a good solution.  This project would involve adding support for signing in with GitHub, as well as the more challenging task of assigning appropriate permissions to users based on the setup of their GitHub account.&lt;br /&gt;
| Server-side JS&lt;br /&gt;
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Improve Webdriver support in Servo&lt;br /&gt;
| [https://github.com/servo/servo/ Servo] currently supports a minimal subset of the [https://w3c.github.io/webdriver/ Webdriver standard]. We would like to improve Servo&#039;s support, and verify its correctness by passing a [https://github.com/web-platform-tests/wpt/tree/master/webdriver set of automated tests]. This project would involve writing Rust code to extend the webdriver server inside of Servo, as well as JavaScript and Python to support the [https://web-platform-tests.org/writing-tests/testdriver.html testdriver.js] testharness.&lt;br /&gt;
| Familiarity with Python &amp;amp; JavaScript; interest in learning Rust&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ Josh Bowman-Matthews] &lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ Josh Bowman-Matthews]&lt;br /&gt;
| [https://github.com/servo/servo/wiki/Support-Webdriver-based-tests-project Project description]&lt;br /&gt;
|-&lt;br /&gt;
| Support importing Instruments profiles in perf.html&lt;br /&gt;
| [https://github.com/devtools-html/perf.html/ perf.html] visualizes performance data recorded from various performance analysis tools. It is a tool designed to consume performance profiles from Gecko Profiler but can visualize any profiler able to output JSON. It currently supports Gecko, Chrome and perf profile formats. Instruments is a performance analyzer that comes with Xcode. This project would involve adding support for Instruments profile import in perf.html.&lt;br /&gt;
| Familiarity with JavaScript &amp;amp; React&lt;br /&gt;
| [https://mozillians.org/en-US/u/canaltinova/ Nazım Can Altınova]&lt;br /&gt;
| [https://mozillians.org/en-US/u/canaltinova/ Nazım Can Altınova]&lt;br /&gt;
| https://github.com/devtools-html/perf.html/issues/1138&lt;br /&gt;
|-&lt;br /&gt;
| Common Voice - WebAssembly MP3 Encoding&lt;br /&gt;
| Currently Common Voice doesn’t support Safari, which is also why we have an iOS app. The only reason being the missing MediaRecorder API. It could be polyfilled (rebuilt in “userspace”) by compiling an MP3 encoder to WebAssembly. I’ve tried that a couple of times, but never had enough time to fix the opaque bugs happening in Safari. This could also be turned into its own library and would be a nice story overall of how WASM can help with WebCompat and missing APIs.&lt;br /&gt;
| JavaScript&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://github.com/mozilla/voice-web/issues/469 This GitHub issue] lines out some thoughts around how to implement it and you can find references to closed PRs which tried implementing it in various ways.&lt;br /&gt;
|-&lt;br /&gt;
| Common Voice - Voice Wave Avatar&lt;br /&gt;
| We’d like our users to have unique(ish) avatars based either on the characteristics of their voice or a visualization of how their name (or an utterance of their choosing) is pronounced. It could also be a combination of the two ideas. We’re very open to explore this space together, though the a candidate should have some knowledge in sound theory.&lt;br /&gt;
| JavaScript, Some knowledge of sound theory&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
|-&lt;br /&gt;
| Tab Manager menu in Firefox &lt;br /&gt;
| This project will extend the tab overflow menu - which shows tabs not visible in the browser&#039;s tab strip - to allow management of all open tabs across all browser windows.  The selected student will be working directly in the Firefox codebase to add functionality and new menu structures to make this easily accessible for end users. &lt;br /&gt;
| JavaScript, CSS, and web experience&lt;br /&gt;
| [https://mozillians.org/en-US/u/sfoster/ Sam Foster], [https://mozillians.org/en-US/u/bbell/ Bryan Bell]&lt;br /&gt;
| [https://mozillians.org/en-US/u/sfoster/ Sam Foster]&lt;br /&gt;
| We have [https://mozilla.invisionapp.com/share/4SNCEPDUEZ6#/screens UX mockups] for this feature, which could be broken into two phases. We also have a [https://bugzilla.mozilla.org/show_bug.cgi?id=1480542 bug on file], where discussion has begun. While working on this you will become very familiar with the Browser Toolbox, our own &amp;quot;Inspector&amp;quot; tool for the browser user-interface, as well as writing automated tests for the new feature you&#039;re adding. The existing tab overflow code lives in our [https://searchfox.org/mozilla-central/source/browser/base/content/browser-allTabsMenu.js browser-allTabsMenu.js] file, which will be the starting point for the new tab manager.  You can look at this and the existing tab code to get an idea of how this currently works. &lt;br /&gt;
-&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Firefox Reader Redesign&lt;br /&gt;
| The design of Firefox’s Reader Mode has languished behind as Quantum has implemented the new Photon Design System. The interface needs to be rebuilt using new visual and interaction styles to match the Photon Design System.&lt;br /&gt;
| JavaScript, CSS, and web experience&lt;br /&gt;
| [https://mozillians.org/en-US/u/awallin/ Abraham Wallin]&lt;br /&gt;
| [https://mozillians.org/en-US/u/eeejay/ Eitan Isaacson]&lt;br /&gt;
| [https://mozilla.invisionapp.com/share/87N9YQYCTJZ#/315073983_Reader_View_Redesign UX Mockups] for this feature are available with visual bugs have been reported [https://bugzilla.mozilla.org/show_bug.cgi?id=1187696 here] and [https://github.com/devtools-html/ux/issues/5 here]. Functional bugs and feature enhancements have been documented [https://github.com/mozilla/readability/issues?q=is%3Aissue+is%3Aopen+label%3Areader-mode-has-issues here], [https://github.com/mozilla/readability/issues?q=is%3Aissue+is%3Aopen+label%3Ashould-be-readerable here], [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=comp%3Areader%20prod%3DToolkit%20whiteboard%3Areadability-algorithm&amp;amp;list_id=14539703 here], and [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=comp%3Areader%20prod%3DToolkit%20whiteboard%3Aisreadable&amp;amp;list_id=14539704 finally here]. The request is for an engineering student to implement the designs and tackle the queue of bugs/enhancements within the Firefox code base. Mentors will support with prioritization, design direction/assets, and technical guidance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| An Android file downloader designed for Emerging Markets&lt;br /&gt;
| A lesson learned thanks to our UX team is in Emerging Markets the data plan is dynamic: in late nights we have the most affordable bandwidth. Here&#039;s the question: Why not schedule big files and videos and have them downloaded when you&#039;re sleeping? The mvp would be an App which we can send urls to. After receiving these urls the App either downloads it directly or defer it to late night. As there are more and more background restrictions enforced on new Android APIs, this should be a fun and challenging journey.&lt;br /&gt;
&lt;br /&gt;
A stretch goal would be to embed this downloader in our browser for Emerging Markets, Firefox Lite. Firefox Lite is not satisfied with the current Android Download Manager in several ways: We&#039;d like to give users the ability to pause/resume a download, we&#039;d like to download a file directly to SDcard (opposed to download it to the main storage and move it into SDcard).&lt;br /&gt;
&lt;br /&gt;
We&#039;ve also prepared an even more ambitious mission for those who want tough challenges: Design the app and make it dynamic deliverable. With aabs we can satisfy both light and heavy users by defaulting Android Download Manager as the download tool and prepare the aforementioned downloader dynamically so that Firefox Lite itself is still minimized in terms of disk size. Nevin and mTwTm are Android developers who can provide assistance to Android App design.&lt;br /&gt;
| Android Java/Kotlin&lt;br /&gt;
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)]&lt;br /&gt;
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)] (mTwTm@mozilla.com), [https://github.com/cnevinc/ Nevin Chen] (nevin@mozilla.com)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Toolkit for sandboxing third-parties libraries in Firefox&lt;br /&gt;
| Firefox supports a long tail of infrequently used image and audio formats to&lt;br /&gt;
support the occasional website that uses them. Each such format requires the&lt;br /&gt;
Firefox decoder to use a new open source library for parsing and decoding.&lt;br /&gt;
This, unfortunately, increases the attack surface of Firefox and as we saw in&lt;br /&gt;
Pwn2Own 2018, Firefox was successfully exploited via a bugs in such libraries&lt;br /&gt;
(libogg in this case).&lt;br /&gt;
&lt;br /&gt;
This project proposes to sandbox third-party libraries in Firefox by building a&lt;br /&gt;
new software-fault isolation toolkit. Our tookit will build on the WebAssembly&lt;br /&gt;
compiler to isolate libraries in Firefox. But, as part of this toolkit we will&lt;br /&gt;
also develop and apply a library for safely interfacing with sandboxed libraries (and&lt;br /&gt;
sanitizing data coming from them). with this toolkit we can ensure that any&lt;br /&gt;
vulnerability in third-party libraries (e.g., libogg or libpng) cannot be used&lt;br /&gt;
to be used to compromise Firefox.&lt;br /&gt;
| C/C++, experience with WebAssembly&lt;br /&gt;
| [https://mozillians.org/en-US/u/erahm/ Eric Rahm]&lt;br /&gt;
| [https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Test automation our linting tools&lt;br /&gt;
| We have a several linting tools running on Firefox code base, they currently don&#039;t have a test suite. &lt;br /&gt;
The goal of this project is to make sure that tests are executed. We currently have a similar [https://bugzilla.mozilla.org/show_bug.cgi?id=1432410 test automation for static analyzer jobs]. The idea would be to extend (or replicate) this model for [https://searchfox.org/mozilla-central/source/tools/lint/ ./mach lint] (which run flake8, eslint, etc) and [https://searchfox.org/mozilla-central/source/python/mozbuild/mozbuild/mach_commands.py#2327 ./mach clang-format]&lt;br /&gt;
The bug is https://bugzilla.mozilla.org/show_bug.cgi?id=1448008&lt;br /&gt;
| Python&lt;br /&gt;
| [https://github.com/sylvestre Sylvestre] (s@mozilla.com)&lt;br /&gt;
| [https://github.com/abpostelnicu Andi Postelnicu] (andi@mozilla.com)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Firefox Account Security Dashboard&lt;br /&gt;
| Firefox Account administrators and users need an easily digestible view into the important events that have occurred on an account, providing a way to audit for irregularities.&lt;br /&gt;
| JavaScript, HTML, CSS, MySQL&lt;br /&gt;
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]&lt;br /&gt;
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]&lt;br /&gt;
| The Firefox Account platform tracks security information about an account, but does not surface this information in an easily consumable format. Users and administrators should be able to see a timeline of an account’s security related events, such as connecting devices, signing into services, changing or resetting passwords, and adding or removing 2FA. Each event in the timeline should include a timestamp, IP address, and location information when they occurred. &lt;br /&gt;
&lt;br /&gt;
This project would entail updating our security event API to ensure we track and expose the required data. The first phase is to build a script that consumes the API and pretty prints the timeline. The second phase is to provide a web interface for the security timeline.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Improving FastParquet&lt;br /&gt;
| FastParquet is a Python library that needs improvement to how it writes the parquet file format &lt;br /&gt;
| Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/klahnakoski/mo-parquet/blob/dev/docs/StudentProject%202019.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Faster Pyparsing&lt;br /&gt;
| Pyparsing is a Python library that provides a DSL for language specification. It could use some optimization. &lt;br /&gt;
| Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/moz-sql-parser/blob/dev/docs/Student%20Project%202019.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Regression Detection&lt;br /&gt;
| Use machine learning to guide statistical model selection, then use the model(s) to detect regressions in future data. &lt;br /&gt;
| Machine Learning, Statistics, Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/ActiveData/blob/dev/docs/Student%20Project%20190121.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bugzilla Kanban Board&lt;br /&gt;
| Show bugs like [https://en.wikipedia.org/wiki/Post-it_Note post-it notes] on a [https://en.wikipedia.org/wiki/Whiteboard whiteboard]. Much like a [https://en.wikipedia.org/wiki/Kanban_board Kanban board]&lt;br /&gt;
| JSX/React&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/bugzilla-tiles Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| More ActiveData Recipes&lt;br /&gt;
| Build out the user interface of the [https://github.com/mozilla/active-data-recipes active-data-recipes] project so that making new recipes is even easier&lt;br /&gt;
| JSX/React some Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ahal/ Andrew Halberstadt]&lt;br /&gt;
| [https://github.com/mozilla/active-data-recipes/pull/112/files#diff-0f126940e57c54541662345b499622f1 PR with proposal] or [https://github.com/mozilla/active-data-recipes/tree/master/docs/Student%20Project%20190130.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TUID service improvments&lt;br /&gt;
| The TUID service handles millions of requests daily from hundreds of machines. It must go faster, and be stabilized.&lt;br /&gt;
| Python/Flask/Sqlite &lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [mailto:gmierzwinski@mozilla.com Gregory Mierzwinski]&lt;br /&gt;
| [https://github.com/mozilla/TUID/blob/dev/docs/Student%20Project%20190204.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ..your next idea here!&lt;br /&gt;
| some details&lt;br /&gt;
| skills/language&lt;br /&gt;
| reporter&lt;br /&gt;
| mentor&lt;br /&gt;
| comments&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Community:SummerOfCode19:Brainstorming&amp;diff=1207094</id>
		<title>Community:SummerOfCode19:Brainstorming</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Community:SummerOfCode19:Brainstorming&amp;diff=1207094"/>
		<updated>2019-02-03T17:42:33Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once again, Mozilla intends to apply to participate in Google&#039;s Summer Of Code.&lt;br /&gt;
&lt;br /&gt;
Mozilla community members, please submit proposals here for 2019 Google Summer of Code projects with Mozilla. This page is for brainstorming - as we approach the deadline, those ideas that are accepted will be transferred to the [[Community:SummerOfCode19|official list]].) &lt;br /&gt;
&lt;br /&gt;
Our application for summer of 2019 goes into Google on &#039;&#039;&#039;February 4th&#039;&#039;&#039;, so get those project ideas in well ahead of time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Are you a student looking to apply to GSoC with Mozilla?&amp;lt;/b&amp;gt; Your first stop should be the [[Community:SummerOfCode19|official list of ideas]]. This page is full of weird ideas, only some of which will make the cut. It could be that they are not properly defined, the wrong size, or don&#039;t have a mentor. That makes them less likely to get accepted. You &amp;lt;i&amp;gt;can&amp;lt;/i&amp;gt;, of course, also submit your own ideas - you don&#039;t have to put an idea on this page and get it &#039;made official&#039; in order to send in a proposal for it.&lt;br /&gt;
&lt;br /&gt;
==How To Write A Good Project Proposal==&lt;br /&gt;
&lt;br /&gt;
Before adding an proposal to this list, please consider the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Be specific&#039;&#039;&#039;. It&#039;s hard to understand the impact of, or the size of, vague proposals.&lt;br /&gt;
* &#039;&#039;&#039;Consider size&#039;&#039;&#039;. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.&lt;br /&gt;
* &#039;&#039;&#039;Do your research&#039;&#039;&#039;. Support the idea with well-researched links.&lt;br /&gt;
* &#039;&#039;&#039;Don&#039;t morph other people&#039;s ideas&#039;&#039;&#039;. If you have a related idea, place it next to the existing one, or add a comment. &lt;br /&gt;
* &#039;&#039;&#039;Insert only your own name into the Mentor column&#039;&#039;&#039;, and then only if you are willing to take on the responsibility. If you think the SoC admins won&#039;t know who you are, leave contact details.&lt;br /&gt;
* &#039;&#039;&#039;Check back regularly&#039;&#039;&#039;. The administrators may have questions about your idea that you will need to answer.&lt;br /&gt;
* &#039;&#039;&#039;Know when to give up&#039;&#039;&#039;. If you&#039;ve added the same idea for the last three years and it hasn&#039;t made it to the official page, perhaps you can predict what will happen this time.&lt;br /&gt;
&lt;br /&gt;
==Suggestion List==&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCode|Here are the ideas lists from previous years]].&lt;br /&gt;
&lt;br /&gt;
Proposals can be in almost any part of the Mozilla project, though they do need to be mostly focused on code.&lt;br /&gt;
&lt;br /&gt;
Here are the proposals. Feel free to add a new one.&lt;br /&gt;
&lt;br /&gt;
== 2019 Proposed Project List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Additional Comments&lt;br /&gt;
|-&lt;br /&gt;
| Improve Python in the browser&lt;br /&gt;
| The [https://github.com/iodide-project/pyodide pyodide] project allows the Python scientific stack to run in the browser by compiling it to WebAssembly. Help make stuff run better and faster there.&lt;br /&gt;
| Python and JavaScript. Can learn the WebAssembly parts as you go.&lt;br /&gt;
| [https://mozillians.org/en-US/u/mdboom/ Michael Droettboom]&lt;br /&gt;
| [https://mozillians.org/en-US/u/mdboom/ Michael Droettboom]&lt;br /&gt;
| There are a number of specific projects we have in mind, but are open to other proposals that are within scope and seem practical within the timeframe. (1) Implement matplotlib&#039;s display on top of Web APIs (HTML5 Canvas, etc.)  This would allow us to avoid shipping a whole separate rendering engine to the browser. (2) Build WebAssembly support into the conda packaging system to make it easier to distribute new compiled packages for Pyodide. (3) Make multi-dimensional arrays sharable between Python and Javascript. See Pyodide&#039;s [https://github.com/iodide-project/pyodide/issues list of issues] for additional ideas.  About the mentor: Michael Droettboom is a Staff Data Engineer at Mozilla, and a former lead developer of matplotlib with years of experience building the Python scientific ecosystem.&lt;br /&gt;
|-&lt;br /&gt;
| ReSpec &lt;br /&gt;
| [https://github.com/w3c/respec/ ReSpec] is a JS-based tool used to write W3C Specifications (Web Standards) that is widely used by the Web Standards Community. With 6+ years of development, it&#039;s heavily depended upon by the W3C community at large (of which Mozilla is an active participant). ReSpec&#039;s code is in need of some modernization, optimizations, and bug fixes - and we could use your help! In this project, you would have the opportunity to make ReSpec&#039;s UI more accessible, making it leaner and faster using distributed processing with Web Workers, and/or adding new features to make the lives of W3C spec Editor&#039;s better. &lt;br /&gt;
| JavaScript, HTML, CSS. &lt;br /&gt;
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]&lt;br /&gt;
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]&lt;br /&gt;
| ReSpec offers students the opportunity to work on a large code base that has extensive real world use and impact. The project offers students an extensive range of problems to tackle, from UI design, to concurrent processing (using Web Workers to do distributed text processing), dealing with accessibility and internationalization, writing and learning about unit and integration tests, security, code review, etc. - as well as exposure to the W3C and the web standards community, this project also aims at teaching students about how web standards are put together. To determine if this is a project you would like to be part of, see the [https://github.com/w3c/respec/issues/ list of issues] you could work on. It&#039;s a great opportunity to learn about all aspects of open source software development, but with the freedom to take on small to large challenges over the Summer (depending on your skill level and level of confidence). About the mentor: Marcos Caceres is a Staff Engineer at Mozilla who has been working on Web Standards for over a decade. Marcos is the lead maintainer of ReSpec. Marcos has extensive experience mentoring developers and has previously successfully mentor a GSO student. &lt;br /&gt;
|-&lt;br /&gt;
| Ship Public Suffix List (PSL) over Remote Settings&lt;br /&gt;
| The list of public domain suffixes (DNS) is shipped with every release, with no way to update it on long term releases for example.&lt;br /&gt;
Now that Remote Settings has become a solid solution to ship data, we could use it to publish updates of the PSL.&lt;br /&gt;
The task consist in migrating the current client code to read from Remote Settings instead of a file, and implement a scheduled job (like Python) to push updates automatically (most likely compiled as a DAFSA file) &lt;br /&gt;
| JavaScript and some Python basics &lt;br /&gt;
| [https://mozillians.org/en-US/u/leplatrem/ Mathieu Leplatre]&lt;br /&gt;
| [https://mozillians.org/en-US/u/leplatrem/ Mathieu Leplatre]&lt;br /&gt;
| https://bugzilla.mozilla.org/show_bug.cgi?id=1083971&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/marco-c/bugbug bugbug]&lt;br /&gt;
| A platform for machine learning projects applied on Bugzilla, VCS and other software development data.&lt;br /&gt;
| Python&lt;br /&gt;
| [https://github.com/marco-c Marco Castelluccio] (FIRST_NAME@mozilla.com)&lt;br /&gt;
| [https://github.com/marco-c Marco Castelluccio] (FIRST_NAME@mozilla.com)&lt;br /&gt;
| The project will involve one or more of:&lt;br /&gt;
i) building additional classifiers (e.g., to detect bugs with no steps to reproduce, or to suggest a developer to assign to a bug, and so on);&lt;br /&gt;
&lt;br /&gt;
ii) improving accuracy/precision/recall of the existing classifiers by implementing other machine learning techniques (e.g., by using convolutional neural networks or recurrent neural networks);&lt;br /&gt;
&lt;br /&gt;
iii) improving accuracy/precision/recall by implementing additional feature extraction steps or making the already existing ones better.&lt;br /&gt;
|-&lt;br /&gt;
| Make the Firefox WebAuthn Soft Token a Real Thing&lt;br /&gt;
| The Web Authentication Soft Token provides second-factor login support without needing a Security Key dongle. It would be very usable if the Soft Token were a) synchronized across an account using Sync, b) could be controlled via a Web Extension, and perhaps c) had some UI. If these things were true, most people could get quality authentication support without buying another device.&lt;br /&gt;
| C++, Javascript, Basic cryptography&lt;br /&gt;
| [https://mozillians.org/en-US/u/jcjones/ J.C. Jones] &lt;br /&gt;
| [https://mozillians.org/en-US/u/jcjones/ J.C. Jones] &lt;br /&gt;
| https://wiki.mozilla.org/Security/CryptoEngineering#Web_Authentication&lt;br /&gt;
|-&lt;br /&gt;
| WebSocket Monitor&lt;br /&gt;
| Support for WebSocket monitoring and inspection in Firefox DevTools.&lt;br /&gt;
| JavaScript/React&lt;br /&gt;
| [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko]&lt;br /&gt;
| [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko]&lt;br /&gt;
| This project aims at providing support for WebSocket monitoring and inspection in Firefox DevTools. The feature should be built on top of the existing Network panel UI and responsible for visualizing data sent through WebSocket connection (i.e. WS frames). The user should be able to use the UI to see as well as analyse the data (search, filter, etc.).&lt;br /&gt;
* [https://docs.google.com/document/d/1ruHk-BA3cqzU7VHoVltnAwWt_2OXKOOAI4nTHwYllzk/edit# Detailed Project Description]&lt;br /&gt;
|-&lt;br /&gt;
| Helpful crash reporter&lt;br /&gt;
| The crash reporter only allows users to send crash reports but in some cases it might help the user diagnose the crash and solve it on his/her own&lt;br /&gt;
| C++, Javascript&lt;br /&gt;
| [https://mozillians.org/en-US/u/gsvelto/ Gabriele Svelto] &lt;br /&gt;
| [https://mozillians.org/en-US/u/gsvelto/ Gabriele Svelto] &lt;br /&gt;
| There&#039;s a few things that could be implemented:&lt;br /&gt;
* A quick test of the memory owned by the crashed process (such as those in [http://www.memtest.org/ memtest86+]) might catch faulty memory, a common cause for crashes&lt;br /&gt;
* The crash reporter client might try and validate Firefox files which can sometimes become corrupted (usually because of hardware issues). If they are it can prompt the user to re-install Firefox&lt;br /&gt;
* Many crashes are caused by buggy graphics drivers, while we blacklist the most egregious offenders we can&#039;t cover them all. The crash reporter might identify a faulty driver (if a bug for it has already been filed) and point the user to up-to-date drivers&lt;br /&gt;
* For crashes caused by known bugs it should be possible to point the user to the bug filed on bugzilla&lt;br /&gt;
|-&lt;br /&gt;
| Debugger Inline Variable Preview&lt;br /&gt;
| When the Firefox DevTools debugger is paused, users can hover over variables to get a useful tooltip that details the variable&#039;s value at that time.  While this popup is very informative, one valuable enhancement would be displaying relevant contextual variables values alongside the variable inline, alleviating the need for tooltips and allowing the user to more quickly get the information they need.  The applicant will work alongside the Debugger&#039;s team to implement this feature based on UX mockups and be given space to share and implement ideas of their own.&lt;br /&gt;
| Javascript&lt;br /&gt;
| [https://mozillians.org/en-US/u/davidwalsh/ David Walsh] &lt;br /&gt;
| [https://mozillians.org/en-US/u/davidwalsh/ David Walsh] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GitHub Checks Support Improvements&lt;br /&gt;
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports reporting results to the [https://github.com/taskcluster/taskcluster/pull/129/checks?check_run_id=54327344 GitHub Checks API], but only reports success or failure.  Let&#039;s add support for showing [https://developer.github.com/v3/checks/runs/ annotations] - snippets of log output, more detailed results, images, and so on.  We can even add support for additional &amp;quot;actions&amp;quot; on the task, such as re-running with debugging enabled.&lt;br /&gt;
| Server-side JS&lt;br /&gt;
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Support GitHub Logins in Taskcluster&lt;br /&gt;
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports logging in with Auth0, the Mozilla login system.  We would like to make it useful outside of Mozilla, and most other users do their development on GitHub, making GitHub logins a good solution.  This project would involve adding support for signing in with GitHub, as well as the more challenging task of assigning appropriate permissions to users based on the setup of their GitHub account.&lt;br /&gt;
| Server-side JS&lt;br /&gt;
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Improve Webdriver support in Servo&lt;br /&gt;
| [https://github.com/servo/servo/ Servo] currently supports a minimal subset of the [https://w3c.github.io/webdriver/ Webdriver standard]. We would like to improve Servo&#039;s support, and verify its correctness by passing a [https://github.com/web-platform-tests/wpt/tree/master/webdriver set of automated tests]. This project would involve writing Rust code to extend the webdriver server inside of Servo, as well as JavaScript and Python to support the [https://web-platform-tests.org/writing-tests/testdriver.html testdriver.js] testharness.&lt;br /&gt;
| Familiarity with Python &amp;amp; JavaScript; interest in learning Rust&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ Josh Bowman-Matthews] &lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ Josh Bowman-Matthews]&lt;br /&gt;
| [https://github.com/servo/servo/wiki/Support-Webdriver-based-tests-project Project description]&lt;br /&gt;
|-&lt;br /&gt;
| Support importing Instruments profiles in perf.html&lt;br /&gt;
| [https://github.com/devtools-html/perf.html/ perf.html] visualizes performance data recorded from various performance analysis tools. It is a tool designed to consume performance profiles from Gecko Profiler but can visualize any profiler able to output JSON. It currently supports Gecko, Chrome and perf profile formats. Instruments is a performance analyzer that comes with Xcode. This project would involve adding support for Instruments profile import in perf.html.&lt;br /&gt;
| Familiarity with JavaScript &amp;amp; React&lt;br /&gt;
| [https://mozillians.org/en-US/u/canaltinova/ Nazım Can Altınova]&lt;br /&gt;
| [https://mozillians.org/en-US/u/canaltinova/ Nazım Can Altınova]&lt;br /&gt;
| https://github.com/devtools-html/perf.html/issues/1138&lt;br /&gt;
|-&lt;br /&gt;
| Common Voice - WebAssembly MP3 Encoding&lt;br /&gt;
| Currently Common Voice doesn’t support Safari, which is also why we have an iOS app. The only reason being the missing MediaRecorder API. It could be polyfilled (rebuilt in “userspace”) by compiling an MP3 encoder to WebAssembly. I’ve tried that a couple of times, but never had enough time to fix the opaque bugs happening in Safari. This could also be turned into its own library and would be a nice story overall of how WASM can help with WebCompat and missing APIs.&lt;br /&gt;
| JavaScript&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://github.com/mozilla/voice-web/issues/469 This GitHub issue] lines out some thoughts around how to implement it and you can find references to closed PRs which tried implementing it in various ways.&lt;br /&gt;
|-&lt;br /&gt;
| Common Voice - Voice Wave Avatar&lt;br /&gt;
| We’d like our users to have unique(ish) avatars based either on the characteristics of their voice or a visualization of how their name (or an utterance of their choosing) is pronounced. It could also be a combination of the two ideas. We’re very open to explore this space together, though the a candidate should have some knowledge in sound theory.&lt;br /&gt;
| JavaScript, Some knowledge of sound theory&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
|-&lt;br /&gt;
| Tab Manager menu in Firefox &lt;br /&gt;
| This project will extend the tab overflow menu - which shows tabs not visible in the browser&#039;s tab strip - to allow management of all open tabs across all browser windows.  The selected student will be working directly in the Firefox codebase to add functionality and new menu structures to make this easily accessible for end users. &lt;br /&gt;
| JavaScript, CSS, and web experience&lt;br /&gt;
| [https://mozillians.org/en-US/u/sfoster/ Sam Foster], [https://mozillians.org/en-US/u/bbell/ Bryan Bell]&lt;br /&gt;
| [https://mozillians.org/en-US/u/sfoster/ Sam Foster]&lt;br /&gt;
| We have [https://mozilla.invisionapp.com/share/4SNCEPDUEZ6#/screens UX mockups] for this feature, which could be broken into two phases. We also have a [https://bugzilla.mozilla.org/show_bug.cgi?id=1480542 bug on file], where discussion has begun. While working on this you will become very familiar with the Browser Toolbox, our own &amp;quot;Inspector&amp;quot; tool for the browser user-interface, as well as writing automated tests for the new feature you&#039;re adding. The existing tab overflow code lives in our [https://searchfox.org/mozilla-central/source/browser/base/content/browser-allTabsMenu.js browser-allTabsMenu.js] file, which will be the starting point for the new tab manager.  You can look at this and the existing tab code to get an idea of how this currently works. &lt;br /&gt;
-&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Firefox Reader Redesign&lt;br /&gt;
| The design of Firefox’s Reader Mode has languished behind as Quantum has implemented the new Photon Design System. The interface needs to be rebuilt using new visual and interaction styles to match the Photon Design System.&lt;br /&gt;
| JavaScript, CSS, and web experience&lt;br /&gt;
| [https://mozillians.org/en-US/u/awallin/ Abraham Wallin]&lt;br /&gt;
| [https://mozillians.org/en-US/u/eeejay/ Eitan Isaacson]&lt;br /&gt;
| [https://mozilla.invisionapp.com/share/87N9YQYCTJZ#/315073983_Reader_View_Redesign UX Mockups] for this feature are available with visual bugs have been reported [https://bugzilla.mozilla.org/show_bug.cgi?id=1187696 here] and [https://github.com/devtools-html/ux/issues/5 here]. Functional bugs and feature enhancements have been documented [https://github.com/mozilla/readability/issues?q=is%3Aissue+is%3Aopen+label%3Areader-mode-has-issues here], [https://github.com/mozilla/readability/issues?q=is%3Aissue+is%3Aopen+label%3Ashould-be-readerable here], [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=comp%3Areader%20prod%3DToolkit%20whiteboard%3Areadability-algorithm&amp;amp;list_id=14539703 here], and [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=comp%3Areader%20prod%3DToolkit%20whiteboard%3Aisreadable&amp;amp;list_id=14539704 finally here]. The request is for an engineering student to implement the designs and tackle the queue of bugs/enhancements within the Firefox code base. Mentors will support with prioritization, design direction/assets, and technical guidance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| An Android file downloader designed for Emerging Markets&lt;br /&gt;
| A lesson learned thanks to our UX team is in Emerging Markets the data plan is dynamic: in late nights we have the most affordable bandwidth. Here&#039;s the question: Why not schedule big files and videos and have them downloaded when you&#039;re sleeping? The mvp would be an App which we can send urls to. After receiving these urls the App either downloads it directly or defer it to late night. As there are more and more background restrictions enforced on new Android APIs, this should be a fun and challenging journey.&lt;br /&gt;
&lt;br /&gt;
A stretch goal would be to embed this downloader in our browser for Emerging Markets, Firefox Lite. Firefox Lite is not satisfied with the current Android Download Manager in several ways: We&#039;d like to give users the ability to pause/resume a download, we&#039;d like to download a file directly to SDcard (opposed to download it to the main storage and move it into SDcard).&lt;br /&gt;
&lt;br /&gt;
We&#039;ve also prepared an even more ambitious mission for those who want tough challenges: Design the app and make it dynamic deliverable. With aabs we can satisfy both light and heavy users by defaulting Android Download Manager as the download tool and prepare the aforementioned downloader dynamically so that Firefox Lite itself is still minimized in terms of disk size. Nevin and mTwTm are Android developers who can provide assistance to Android App design.&lt;br /&gt;
| Android Java/Kotlin&lt;br /&gt;
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)]&lt;br /&gt;
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)] (mTwTm@mozilla.com), [https://github.com/cnevinc/ Nevin Chen] (nevin@mozilla.com)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Toolkit for sandboxing third-parties libraries in Firefox&lt;br /&gt;
| Firefox supports a long tail of infrequently used image and audio formats to&lt;br /&gt;
support the occasional website that uses them. Each such format requires the&lt;br /&gt;
Firefox decoder to use a new open source library for parsing and decoding.&lt;br /&gt;
This, unfortunately, increases the attack surface of Firefox and as we saw in&lt;br /&gt;
Pwn2Own 2018, Firefox was successfully exploited via a bugs in such libraries&lt;br /&gt;
(libogg in this case).&lt;br /&gt;
&lt;br /&gt;
This project proposes to sandbox third-party libraries in Firefox by building a&lt;br /&gt;
new software-fault isolation toolkit. Our tookit will build on the WebAssembly&lt;br /&gt;
compiler to isolate libraries in Firefox. But, as part of this toolkit we will&lt;br /&gt;
also develop and apply a library for safely interfacing with sandboxed libraries (and&lt;br /&gt;
sanitizing data coming from them). with this toolkit we can ensure that any&lt;br /&gt;
vulnerability in third-party libraries (e.g., libogg or libpng) cannot be used&lt;br /&gt;
to be used to compromise Firefox.&lt;br /&gt;
| C/C++, experience with WebAssembly&lt;br /&gt;
| [https://mozillians.org/en-US/u/erahm/ Eric Rahm]&lt;br /&gt;
| [https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Test automation our linting tools&lt;br /&gt;
| We have a several linting tools running on Firefox code base, they currently don&#039;t have a test suite. &lt;br /&gt;
The goal of this project is to make sure that tests are executed. We currently have a similar [https://bugzilla.mozilla.org/show_bug.cgi?id=1432410 test automation for static analyzer jobs]. The idea would be to extend (or replicate) this model for [https://searchfox.org/mozilla-central/source/tools/lint/ ./mach lint] (which run flake8, eslint, etc) and [https://searchfox.org/mozilla-central/source/python/mozbuild/mozbuild/mach_commands.py#2327 ./mach clang-format]&lt;br /&gt;
The bug is https://bugzilla.mozilla.org/show_bug.cgi?id=1448008&lt;br /&gt;
| Python&lt;br /&gt;
| [https://github.com/sylvestre Sylvestre] (s@mozilla.com)&lt;br /&gt;
| [https://github.com/abpostelnicu Andi Postelnicu] (andi@mozilla.com)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Firefox Account Security Dashboard&lt;br /&gt;
| Firefox Account administrators and users need an easily digestible view into the important events that have occurred on an account, providing a way to audit for irregularities.&lt;br /&gt;
| JavaScript, HTML, CSS, MySQL&lt;br /&gt;
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]&lt;br /&gt;
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]&lt;br /&gt;
| The Firefox Account platform tracks security information about an account, but does not surface this information in an easily consumable format. Users and administrators should be able to see a timeline of an account’s security related events, such as connecting devices, signing into services, changing or resetting passwords, and adding or removing 2FA. Each event in the timeline should include a timestamp, IP address, and location information when they occurred. &lt;br /&gt;
&lt;br /&gt;
This project would entail updating our security event API to ensure we track and expose the required data. The first phase is to build a script that consumes the API and pretty prints the timeline. The second phase is to provide a web interface for the security timeline.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Improving FastParquet&lt;br /&gt;
| FastParquet is a Python library that needs improvement to how it writes the parquet file format &lt;br /&gt;
| Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/klahnakoski/mo-parquet/blob/dev/docs/StudentProject%202019.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Faster Pyparsing&lt;br /&gt;
| Pyparsing is a Python library that provides a DSL for language specification. It could use some optimization. &lt;br /&gt;
| Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/moz-sql-parser/blob/dev/docs/Student%20Project%202019.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Regression Detection&lt;br /&gt;
| Use machine learning to guide statistical model selection, then use the model(s) to detect regressions in future data. &lt;br /&gt;
| Machine Learning, Statistics, Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/ActiveData/blob/dev/docs/Student%20Project%20190121.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bugzilla Kanban Board&lt;br /&gt;
| Show bugs like [https://en.wikipedia.org/wiki/Post-it_Note post-it notes] on a [https://en.wikipedia.org/wiki/Whiteboard whiteboard]. Much like a [https://en.wikipedia.org/wiki/Kanban_board Kanban board]&lt;br /&gt;
| JSX/React&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/bugzilla-tiles Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| More ActiveData Recipes&lt;br /&gt;
| Build out the user interface of the [https://github.com/mozilla/active-data-recipes active-data-recipes] project so that making new recipes is even easier&lt;br /&gt;
| JSX/React some Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ahal/ Andrew Halberstadt]&lt;br /&gt;
| [https://github.com/mozilla/active-data-recipes/pull/112/files#diff-0f126940e57c54541662345b499622f1 PR with proposal] or [https://github.com/mozilla/active-data-recipes/tree/master/docs/Student%20Project%20190130.md Read more]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ..your next idea here!&lt;br /&gt;
| some details&lt;br /&gt;
| skills/language&lt;br /&gt;
| reporter&lt;br /&gt;
| mentor&lt;br /&gt;
| comments&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Community:SummerOfCode19:Brainstorming&amp;diff=1207092</id>
		<title>Community:SummerOfCode19:Brainstorming</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Community:SummerOfCode19:Brainstorming&amp;diff=1207092"/>
		<updated>2019-02-03T15:42:10Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once again, Mozilla intends to apply to participate in Google&#039;s Summer Of Code.&lt;br /&gt;
&lt;br /&gt;
Mozilla community members, please submit proposals here for 2019 Google Summer of Code projects with Mozilla. This page is for brainstorming - as we approach the deadline, those ideas that are accepted will be transferred to the [[Community:SummerOfCode19|official list]].) &lt;br /&gt;
&lt;br /&gt;
Our application for summer of 2019 goes into Google on &#039;&#039;&#039;February 4th&#039;&#039;&#039;, so get those project ideas in well ahead of time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Are you a student looking to apply to GSoC with Mozilla?&amp;lt;/b&amp;gt; Your first stop should be the [[Community:SummerOfCode19|official list of ideas]]. This page is full of weird ideas, only some of which will make the cut. It could be that they are not properly defined, the wrong size, or don&#039;t have a mentor. That makes them less likely to get accepted. You &amp;lt;i&amp;gt;can&amp;lt;/i&amp;gt;, of course, also submit your own ideas - you don&#039;t have to put an idea on this page and get it &#039;made official&#039; in order to send in a proposal for it.&lt;br /&gt;
&lt;br /&gt;
==How To Write A Good Project Proposal==&lt;br /&gt;
&lt;br /&gt;
Before adding an proposal to this list, please consider the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Be specific&#039;&#039;&#039;. It&#039;s hard to understand the impact of, or the size of, vague proposals.&lt;br /&gt;
* &#039;&#039;&#039;Consider size&#039;&#039;&#039;. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.&lt;br /&gt;
* &#039;&#039;&#039;Do your research&#039;&#039;&#039;. Support the idea with well-researched links.&lt;br /&gt;
* &#039;&#039;&#039;Don&#039;t morph other people&#039;s ideas&#039;&#039;&#039;. If you have a related idea, place it next to the existing one, or add a comment. &lt;br /&gt;
* &#039;&#039;&#039;Insert only your own name into the Mentor column&#039;&#039;&#039;, and then only if you are willing to take on the responsibility. If you think the SoC admins won&#039;t know who you are, leave contact details.&lt;br /&gt;
* &#039;&#039;&#039;Check back regularly&#039;&#039;&#039;. The administrators may have questions about your idea that you will need to answer.&lt;br /&gt;
* &#039;&#039;&#039;Know when to give up&#039;&#039;&#039;. If you&#039;ve added the same idea for the last three years and it hasn&#039;t made it to the official page, perhaps you can predict what will happen this time.&lt;br /&gt;
&lt;br /&gt;
==Suggestion List==&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCode|Here are the ideas lists from previous years]].&lt;br /&gt;
&lt;br /&gt;
Proposals can be in almost any part of the Mozilla project, though they do need to be mostly focused on code.&lt;br /&gt;
&lt;br /&gt;
Here are the proposals. Feel free to add a new one.&lt;br /&gt;
&lt;br /&gt;
== 2019 Proposed Project List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Additional Comments&lt;br /&gt;
|-&lt;br /&gt;
| Improve Python in the browser&lt;br /&gt;
| The [https://github.com/iodide-project/pyodide pyodide] project allows the Python scientific stack to run in the browser by compiling it to WebAssembly. Help make stuff run better and faster there.&lt;br /&gt;
| Python and JavaScript. Can learn the WebAssembly parts as you go.&lt;br /&gt;
| [https://mozillians.org/en-US/u/mdboom/ Michael Droettboom]&lt;br /&gt;
| [https://mozillians.org/en-US/u/mdboom/ Michael Droettboom]&lt;br /&gt;
| There are a number of specific projects we have in mind, but are open to other proposals that are within scope and seem practical within the timeframe. (1) Implement matplotlib&#039;s display on top of Web APIs (HTML5 Canvas, etc.)  This would allow us to avoid shipping a whole separate rendering engine to the browser. (2) Build WebAssembly support into the conda packaging system to make it easier to distribute new compiled packages for Pyodide. (3) Make multi-dimensional arrays sharable between Python and Javascript. See Pyodide&#039;s [https://github.com/iodide-project/pyodide/issues list of issues] for additional ideas.  About the mentor: Michael Droettboom is a Staff Data Engineer at Mozilla, and a former lead developer of matplotlib with years of experience building the Python scientific ecosystem.&lt;br /&gt;
|-&lt;br /&gt;
| ReSpec &lt;br /&gt;
| [https://github.com/w3c/respec/ ReSpec] is a JS-based tool used to write W3C Specifications (Web Standards) that is widely used by the Web Standards Community. With 6+ years of development, it&#039;s heavily depended upon by the W3C community at large (of which Mozilla is an active participant). ReSpec&#039;s code is in need of some modernization, optimizations, and bug fixes - and we could use your help! In this project, you would have the opportunity to make ReSpec&#039;s UI more accessible, making it leaner and faster using distributed processing with Web Workers, and/or adding new features to make the lives of W3C spec Editor&#039;s better. &lt;br /&gt;
| JavaScript, HTML, CSS. &lt;br /&gt;
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]&lt;br /&gt;
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]&lt;br /&gt;
| ReSpec offers students the opportunity to work on a large code base that has extensive real world use and impact. The project offers students an extensive range of problems to tackle, from UI design, to concurrent processing (using Web Workers to do distributed text processing), dealing with accessibility and internationalization, writing and learning about unit and integration tests, security, code review, etc. - as well as exposure to the W3C and the web standards community, this project also aims at teaching students about how web standards are put together. To determine if this is a project you would like to be part of, see the [https://github.com/w3c/respec/issues/ list of issues] you could work on. It&#039;s a great opportunity to learn about all aspects of open source software development, but with the freedom to take on small to large challenges over the Summer (depending on your skill level and level of confidence). About the mentor: Marcos Caceres is a Staff Engineer at Mozilla who has been working on Web Standards for over a decade. Marcos is the lead maintainer of ReSpec. Marcos has extensive experience mentoring developers and has previously successfully mentor a GSO student. &lt;br /&gt;
|-&lt;br /&gt;
| Ship Public Suffix List (PSL) over Remote Settings&lt;br /&gt;
| The list of public domain suffixes (DNS) is shipped with every release, with no way to update it on long term releases for example.&lt;br /&gt;
Now that Remote Settings has become a solid solution to ship data, we could use it to publish updates of the PSL.&lt;br /&gt;
The task consist in migrating the current client code to read from Remote Settings instead of a file, and implement a scheduled job (like Python) to push updates automatically (most likely compiled as a DAFSA file) &lt;br /&gt;
| JavaScript and some Python basics &lt;br /&gt;
| [https://mozillians.org/en-US/u/leplatrem/ Mathieu Leplatre]&lt;br /&gt;
| [https://mozillians.org/en-US/u/leplatrem/ Mathieu Leplatre]&lt;br /&gt;
| https://bugzilla.mozilla.org/show_bug.cgi?id=1083971&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/marco-c/bugbug bugbug]&lt;br /&gt;
| A platform for machine learning projects applied on Bugzilla, VCS and other software development data.&lt;br /&gt;
| Python&lt;br /&gt;
| [https://github.com/marco-c Marco Castelluccio] (FIRST_NAME@mozilla.com)&lt;br /&gt;
| [https://github.com/marco-c Marco Castelluccio] (FIRST_NAME@mozilla.com)&lt;br /&gt;
| The project will involve one or more of:&lt;br /&gt;
i) building additional classifiers (e.g., to detect bugs with no steps to reproduce, or to suggest a developer to assign to a bug, and so on);&lt;br /&gt;
&lt;br /&gt;
ii) improving accuracy/precision/recall of the existing classifiers by implementing other machine learning techniques (e.g., by using convolutional neural networks or recurrent neural networks);&lt;br /&gt;
&lt;br /&gt;
iii) improving accuracy/precision/recall by implementing additional feature extraction steps or making the already existing ones better.&lt;br /&gt;
|-&lt;br /&gt;
| Make the Firefox WebAuthn Soft Token a Real Thing&lt;br /&gt;
| The Web Authentication Soft Token provides second-factor login support without needing a Security Key dongle. It would be very usable if the Soft Token were a) synchronized across an account using Sync, b) could be controlled via a Web Extension, and perhaps c) had some UI. If these things were true, most people could get quality authentication support without buying another device.&lt;br /&gt;
| C++, Javascript, Basic cryptography&lt;br /&gt;
| [https://mozillians.org/en-US/u/jcjones/ J.C. Jones] &lt;br /&gt;
| [https://mozillians.org/en-US/u/jcjones/ J.C. Jones] &lt;br /&gt;
| https://wiki.mozilla.org/Security/CryptoEngineering#Web_Authentication&lt;br /&gt;
|-&lt;br /&gt;
| WebSocket Monitor&lt;br /&gt;
| Support for WebSocket monitoring and inspection in Firefox DevTools.&lt;br /&gt;
| JavaScript/React&lt;br /&gt;
| [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko]&lt;br /&gt;
| [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko]&lt;br /&gt;
| This project aims at providing support for WebSocket monitoring and inspection in Firefox DevTools. The feature should be built on top of the existing Network panel UI and responsible for visualizing data sent through WebSocket connection (i.e. WS frames). The user should be able to use the UI to see as well as analyse the data (search, filter, etc.).&lt;br /&gt;
* [https://docs.google.com/document/d/1ruHk-BA3cqzU7VHoVltnAwWt_2OXKOOAI4nTHwYllzk/edit# Detailed Project Description]&lt;br /&gt;
|-&lt;br /&gt;
| Helpful crash reporter&lt;br /&gt;
| The crash reporter only allows users to send crash reports but in some cases it might help the user diagnose the crash and solve it on his/her own&lt;br /&gt;
| C++, Javascript&lt;br /&gt;
| [https://mozillians.org/en-US/u/gsvelto/ Gabriele Svelto] &lt;br /&gt;
| [https://mozillians.org/en-US/u/gsvelto/ Gabriele Svelto] &lt;br /&gt;
| There&#039;s a few things that could be implemented:&lt;br /&gt;
* A quick test of the memory owned by the crashed process (such as those in [http://www.memtest.org/ memtest86+]) might catch faulty memory, a common cause for crashes&lt;br /&gt;
* The crash reporter client might try and validate Firefox files which can sometimes become corrupted (usually because of hardware issues). If they are it can prompt the user to re-install Firefox&lt;br /&gt;
* Many crashes are caused by buggy graphics drivers, while we blacklist the most egregious offenders we can&#039;t cover them all. The crash reporter might identify a faulty driver (if a bug for it has already been filed) and point the user to up-to-date drivers&lt;br /&gt;
* For crashes caused by known bugs it should be possible to point the user to the bug filed on bugzilla&lt;br /&gt;
|-&lt;br /&gt;
| Debugger Inline Variable Preview&lt;br /&gt;
| When the Firefox DevTools debugger is paused, users can hover over variables to get a useful tooltip that details the variable&#039;s value at that time.  While this popup is very informative, one valuable enhancement would be displaying relevant contextual variables values alongside the variable inline, alleviating the need for tooltips and allowing the user to more quickly get the information they need.  The applicant will work alongside the Debugger&#039;s team to implement this feature based on UX mockups and be given space to share and implement ideas of their own.&lt;br /&gt;
| Javascript&lt;br /&gt;
| [https://mozillians.org/en-US/u/davidwalsh/ David Walsh] &lt;br /&gt;
| [https://mozillians.org/en-US/u/davidwalsh/ David Walsh] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GitHub Checks Support Improvements&lt;br /&gt;
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports reporting results to the [https://github.com/taskcluster/taskcluster/pull/129/checks?check_run_id=54327344 GitHub Checks API], but only reports success or failure.  Let&#039;s add support for showing [https://developer.github.com/v3/checks/runs/ annotations] - snippets of log output, more detailed results, images, and so on.  We can even add support for additional &amp;quot;actions&amp;quot; on the task, such as re-running with debugging enabled.&lt;br /&gt;
| Server-side JS&lt;br /&gt;
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Support GitHub Logins in Taskcluster&lt;br /&gt;
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports logging in with Auth0, the Mozilla login system.  We would like to make it useful outside of Mozilla, and most other users do their development on GitHub, making GitHub logins a good solution.  This project would involve adding support for signing in with GitHub, as well as the more challenging task of assigning appropriate permissions to users based on the setup of their GitHub account.&lt;br /&gt;
| Server-side JS&lt;br /&gt;
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Improve Webdriver support in Servo&lt;br /&gt;
| [https://github.com/servo/servo/ Servo] currently supports a minimal subset of the [https://w3c.github.io/webdriver/ Webdriver standard]. We would like to improve Servo&#039;s support, and verify its correctness by passing a [https://github.com/web-platform-tests/wpt/tree/master/webdriver set of automated tests]. This project would involve writing Rust code to extend the webdriver server inside of Servo, as well as JavaScript and Python to support the [https://web-platform-tests.org/writing-tests/testdriver.html testdriver.js] testharness.&lt;br /&gt;
| Familiarity with Python &amp;amp; JavaScript; interest in learning Rust&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ Josh Bowman-Matthews] &lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ Josh Bowman-Matthews]&lt;br /&gt;
| [https://github.com/servo/servo/wiki/Support-Webdriver-based-tests-project Project description]&lt;br /&gt;
|-&lt;br /&gt;
| Support importing Instruments profiles in perf.html&lt;br /&gt;
| [https://github.com/devtools-html/perf.html/ perf.html] visualizes performance data recorded from various performance analysis tools. It is a tool designed to consume performance profiles from Gecko Profiler but can visualize any profiler able to output JSON. It currently supports Gecko, Chrome and perf profile formats. Instruments is a performance analyzer that comes with Xcode. This project would involve adding support for Instruments profile import in perf.html.&lt;br /&gt;
| Familiarity with JavaScript &amp;amp; React&lt;br /&gt;
| [https://mozillians.org/en-US/u/canaltinova/ Nazım Can Altınova]&lt;br /&gt;
| [https://mozillians.org/en-US/u/canaltinova/ Nazım Can Altınova]&lt;br /&gt;
| https://github.com/devtools-html/perf.html/issues/1138&lt;br /&gt;
|-&lt;br /&gt;
| Common Voice - WebAssembly MP3 Encoding&lt;br /&gt;
| Currently Common Voice doesn’t support Safari, which is also why we have an iOS app. The only reason being the missing MediaRecorder API. It could be polyfilled (rebuilt in “userspace”) by compiling an MP3 encoder to WebAssembly. I’ve tried that a couple of times, but never had enough time to fix the opaque bugs happening in Safari. This could also be turned into its own library and would be a nice story overall of how WASM can help with WebCompat and missing APIs.&lt;br /&gt;
| JavaScript&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://github.com/mozilla/voice-web/issues/469 This GitHub issue] lines out some thoughts around how to implement it and you can find references to closed PRs which tried implementing it in various ways.&lt;br /&gt;
|-&lt;br /&gt;
| Common Voice - Voice Wave Avatar&lt;br /&gt;
| We’d like our users to have unique(ish) avatars based either on the characteristics of their voice or a visualization of how their name (or an utterance of their choosing) is pronounced. It could also be a combination of the two ideas. We’re very open to explore this space together, though the a candidate should have some knowledge in sound theory.&lt;br /&gt;
| JavaScript, Some knowledge of sound theory&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
|-&lt;br /&gt;
| Tab Manager menu in Firefox &lt;br /&gt;
| This project will extend the tab overflow menu - which shows tabs not visible in the browser&#039;s tab strip - to allow management of all open tabs across all browser windows.  The selected student will be working directly in the Firefox codebase to add functionality and new menu structures to make this easily accessible for end users. &lt;br /&gt;
| JavaScript, CSS, and web experience&lt;br /&gt;
| [https://mozillians.org/en-US/u/sfoster/ Sam Foster], [https://mozillians.org/en-US/u/bbell/ Bryan Bell]&lt;br /&gt;
| [https://mozillians.org/en-US/u/sfoster/ Sam Foster]&lt;br /&gt;
| We have [https://mozilla.invisionapp.com/share/4SNCEPDUEZ6#/screens UX mockups] for this feature, which could be broken into two phases. We also have a [https://bugzilla.mozilla.org/show_bug.cgi?id=1480542 bug on file], where discussion has begun. While working on this you will become very familiar with the Browser Toolbox, our own &amp;quot;Inspector&amp;quot; tool for the browser user-interface, as well as writing automated tests for the new feature you&#039;re adding. The existing tab overflow code lives in our [https://searchfox.org/mozilla-central/source/browser/base/content/browser-allTabsMenu.js browser-allTabsMenu.js] file, which will be the starting point for the new tab manager.  You can look at this and the existing tab code to get an idea of how this currently works. &lt;br /&gt;
-&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Firefox Reader Redesign&lt;br /&gt;
| The design of Firefox’s Reader Mode has languished behind as Quantum has implemented the new Photon Design System. The interface needs to be rebuilt using new visual and interaction styles to match the Photon Design System.&lt;br /&gt;
| JavaScript, CSS, and web experience&lt;br /&gt;
| [https://mozillians.org/en-US/u/awallin/ Abraham Wallin]&lt;br /&gt;
| [https://mozillians.org/en-US/u/eeejay/ Eitan Isaacson]&lt;br /&gt;
| [https://mozilla.invisionapp.com/share/87N9YQYCTJZ#/315073983_Reader_View_Redesign UX Mockups] for this feature are available with visual bugs have been reported [https://bugzilla.mozilla.org/show_bug.cgi?id=1187696 here] and [https://github.com/devtools-html/ux/issues/5 here]. Functional bugs and feature enhancements have been documented [https://github.com/mozilla/readability/issues?q=is%3Aissue+is%3Aopen+label%3Areader-mode-has-issues here], [https://github.com/mozilla/readability/issues?q=is%3Aissue+is%3Aopen+label%3Ashould-be-readerable here], [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=comp%3Areader%20prod%3DToolkit%20whiteboard%3Areadability-algorithm&amp;amp;list_id=14539703 here], and [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=comp%3Areader%20prod%3DToolkit%20whiteboard%3Aisreadable&amp;amp;list_id=14539704 finally here]. The request is for an engineering student to implement the designs and tackle the queue of bugs/enhancements within the Firefox code base. Mentors will support with prioritization, design direction/assets, and technical guidance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| An Android file downloader designed for Emerging Markets&lt;br /&gt;
| A lesson learned thanks to our UX team is in Emerging Markets the data plan is dynamic: in late nights we have the most affordable bandwidth. Here&#039;s the question: Why not schedule big files and videos and have them downloaded when you&#039;re sleeping? The mvp would be an App which we can send urls to. After receiving these urls the App either downloads it directly or defer it to late night. As there are more and more background restrictions enforced on new Android APIs, this should be a fun and challenging journey.&lt;br /&gt;
&lt;br /&gt;
A stretch goal would be to embed this downloader in our browser for Emerging Markets, Firefox Lite. Firefox Lite is not satisfied with the current Android Download Manager in several ways: We&#039;d like to give users the ability to pause/resume a download, we&#039;d like to download a file directly to SDcard (opposed to download it to the main storage and move it into SDcard).&lt;br /&gt;
&lt;br /&gt;
We&#039;ve also prepared an even more ambitious mission for those who want tough challenges: Design the app and make it dynamic deliverable. With aabs we can satisfy both light and heavy users by defaulting Android Download Manager as the download tool and prepare the aforementioned downloader dynamically so that Firefox Lite itself is still minimized in terms of disk size. Nevin and mTwTm are Android developers who can provide assistance to Android App design.&lt;br /&gt;
| Android Java/Kotlin&lt;br /&gt;
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)]&lt;br /&gt;
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)] (mTwTm@mozilla.com), [https://github.com/cnevinc/ Nevin Chen] (nevin@mozilla.com)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Toolkit for sandboxing third-parties libraries in Firefox&lt;br /&gt;
| Firefox supports a long tail of infrequently used image and audio formats to&lt;br /&gt;
support the occasional website that uses them. Each such format requires the&lt;br /&gt;
Firefox decoder to use a new open source library for parsing and decoding.&lt;br /&gt;
This, unfortunately, increases the attack surface of Firefox and as we saw in&lt;br /&gt;
Pwn2Own 2018, Firefox was successfully exploited via a bugs in such libraries&lt;br /&gt;
(libogg in this case).&lt;br /&gt;
&lt;br /&gt;
This project proposes to sandbox third-party libraries in Firefox by building a&lt;br /&gt;
new software-fault isolation toolkit. Our tookit will build on the WebAssembly&lt;br /&gt;
compiler to isolate libraries in Firefox. But, as part of this toolkit we will&lt;br /&gt;
also develop and apply a library for safely interfacing with sandboxed libraries (and&lt;br /&gt;
sanitizing data coming from them). with this toolkit we can ensure that any&lt;br /&gt;
vulnerability in third-party libraries (e.g., libogg or libpng) cannot be used&lt;br /&gt;
to be used to compromise Firefox.&lt;br /&gt;
| C/C++, experience with WebAssembly&lt;br /&gt;
| [https://mozillians.org/en-US/u/erahm/ Eric Rahm]&lt;br /&gt;
| [https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Test automation our linting tools&lt;br /&gt;
| We have a several linting tools running on Firefox code base, they currently don&#039;t have a test suite. &lt;br /&gt;
The goal of this project is to make sure that tests are executed. We currently have a similar [https://bugzilla.mozilla.org/show_bug.cgi?id=1432410 test automation for static analyzer jobs]. The idea would be to extend (or replicate) this model for [https://searchfox.org/mozilla-central/source/tools/lint/ ./mach lint] (which run flake8, eslint, etc) and [https://searchfox.org/mozilla-central/source/python/mozbuild/mozbuild/mach_commands.py#2327 ./mach clang-format]&lt;br /&gt;
The bug is https://bugzilla.mozilla.org/show_bug.cgi?id=1448008&lt;br /&gt;
| Python&lt;br /&gt;
| [https://github.com/sylvestre Sylvestre] (s@mozilla.com)&lt;br /&gt;
| [https://github.com/abpostelnicu Andi Postelnicu] (andi@mozilla.com)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Firefox Account Security Dashboard&lt;br /&gt;
| Firefox Account administrators and users need an easily digestible view into the important events that have occurred on an account, providing a way to audit for irregularities.&lt;br /&gt;
| JavaScript, HTML, CSS, MySQL&lt;br /&gt;
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]&lt;br /&gt;
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]&lt;br /&gt;
| The Firefox Account platform tracks security information about an account, but does not surface this information in an easily consumable format. Users and administrators should be able to see a timeline of an account’s security related events, such as connecting devices, signing into services, changing or resetting passwords, and adding or removing 2FA. Each event in the timeline should include a timestamp, IP address, and location information when they occurred. &lt;br /&gt;
&lt;br /&gt;
This project would entail updating our security event API to ensure we track and expose the required data. The first phase is to build a script that consumes the API and pretty prints the timeline. The second phase is to provide a web interface for the security timeline.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Improving FastParquet&lt;br /&gt;
| FastParquet is a Python library that needs improvement to how it writes the parquet file format &lt;br /&gt;
| Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/klahnakoski/mo-parquet/blob/dev/docs/StudentProject%202019.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Faster Pyparsing&lt;br /&gt;
| Pyparsing is a Python library that provides a DSL for language specification. It could use some optimization. &lt;br /&gt;
| Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/moz-sql-parser/blob/dev/docs/Student%20Project%202019.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Regression Detection&lt;br /&gt;
| Use machine learning to guide statistical model selection, then use the model(s) to detect regressions in future data. &lt;br /&gt;
| Machine Learning, Statistics, Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/ActiveData/blob/dev/docs/Student%20Project%20190121.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Bugzilla Kanban Board&lt;br /&gt;
| Show bugs like [https://en.wikipedia.org/wiki/Post-it_Note post-it notes] on a [https://en.wikipedia.org/wiki/Whiteboard whiteboard]. Much like a [https://en.wikipedia.org/wiki/Kanban_board Kanban board]&lt;br /&gt;
| JSX/React&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/bugzilla-tiles Read more]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ..your next idea here!&lt;br /&gt;
| some details&lt;br /&gt;
| skills/language&lt;br /&gt;
| reporter&lt;br /&gt;
| mentor&lt;br /&gt;
| comments&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Community:SummerOfCode19:Brainstorming&amp;diff=1207091</id>
		<title>Community:SummerOfCode19:Brainstorming</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Community:SummerOfCode19:Brainstorming&amp;diff=1207091"/>
		<updated>2019-02-03T15:07:07Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: Add more projects&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Once again, Mozilla intends to apply to participate in Google&#039;s Summer Of Code.&lt;br /&gt;
&lt;br /&gt;
Mozilla community members, please submit proposals here for 2019 Google Summer of Code projects with Mozilla. This page is for brainstorming - as we approach the deadline, those ideas that are accepted will be transferred to the [[Community:SummerOfCode19|official list]].) &lt;br /&gt;
&lt;br /&gt;
Our application for summer of 2019 goes into Google on &#039;&#039;&#039;February 4th&#039;&#039;&#039;, so get those project ideas in well ahead of time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Are you a student looking to apply to GSoC with Mozilla?&amp;lt;/b&amp;gt; Your first stop should be the [[Community:SummerOfCode19|official list of ideas]]. This page is full of weird ideas, only some of which will make the cut. It could be that they are not properly defined, the wrong size, or don&#039;t have a mentor. That makes them less likely to get accepted. You &amp;lt;i&amp;gt;can&amp;lt;/i&amp;gt;, of course, also submit your own ideas - you don&#039;t have to put an idea on this page and get it &#039;made official&#039; in order to send in a proposal for it.&lt;br /&gt;
&lt;br /&gt;
==How To Write A Good Project Proposal==&lt;br /&gt;
&lt;br /&gt;
Before adding an proposal to this list, please consider the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Be specific&#039;&#039;&#039;. It&#039;s hard to understand the impact of, or the size of, vague proposals.&lt;br /&gt;
* &#039;&#039;&#039;Consider size&#039;&#039;&#039;. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.&lt;br /&gt;
* &#039;&#039;&#039;Do your research&#039;&#039;&#039;. Support the idea with well-researched links.&lt;br /&gt;
* &#039;&#039;&#039;Don&#039;t morph other people&#039;s ideas&#039;&#039;&#039;. If you have a related idea, place it next to the existing one, or add a comment. &lt;br /&gt;
* &#039;&#039;&#039;Insert only your own name into the Mentor column&#039;&#039;&#039;, and then only if you are willing to take on the responsibility. If you think the SoC admins won&#039;t know who you are, leave contact details.&lt;br /&gt;
* &#039;&#039;&#039;Check back regularly&#039;&#039;&#039;. The administrators may have questions about your idea that you will need to answer.&lt;br /&gt;
* &#039;&#039;&#039;Know when to give up&#039;&#039;&#039;. If you&#039;ve added the same idea for the last three years and it hasn&#039;t made it to the official page, perhaps you can predict what will happen this time.&lt;br /&gt;
&lt;br /&gt;
==Suggestion List==&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCode|Here are the ideas lists from previous years]].&lt;br /&gt;
&lt;br /&gt;
Proposals can be in almost any part of the Mozilla project, though they do need to be mostly focused on code.&lt;br /&gt;
&lt;br /&gt;
Here are the proposals. Feel free to add a new one.&lt;br /&gt;
&lt;br /&gt;
== 2019 Proposed Project List ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Additional Comments&lt;br /&gt;
|-&lt;br /&gt;
| Improve Python in the browser&lt;br /&gt;
| The [https://github.com/iodide-project/pyodide pyodide] project allows the Python scientific stack to run in the browser by compiling it to WebAssembly. Help make stuff run better and faster there.&lt;br /&gt;
| Python and JavaScript. Can learn the WebAssembly parts as you go.&lt;br /&gt;
| [https://mozillians.org/en-US/u/mdboom/ Michael Droettboom]&lt;br /&gt;
| [https://mozillians.org/en-US/u/mdboom/ Michael Droettboom]&lt;br /&gt;
| There are a number of specific projects we have in mind, but are open to other proposals that are within scope and seem practical within the timeframe. (1) Implement matplotlib&#039;s display on top of Web APIs (HTML5 Canvas, etc.)  This would allow us to avoid shipping a whole separate rendering engine to the browser. (2) Build WebAssembly support into the conda packaging system to make it easier to distribute new compiled packages for Pyodide. (3) Make multi-dimensional arrays sharable between Python and Javascript. See Pyodide&#039;s [https://github.com/iodide-project/pyodide/issues list of issues] for additional ideas.  About the mentor: Michael Droettboom is a Staff Data Engineer at Mozilla, and a former lead developer of matplotlib with years of experience building the Python scientific ecosystem.&lt;br /&gt;
|-&lt;br /&gt;
| ReSpec &lt;br /&gt;
| [https://github.com/w3c/respec/ ReSpec] is a JS-based tool used to write W3C Specifications (Web Standards) that is widely used by the Web Standards Community. With 6+ years of development, it&#039;s heavily depended upon by the W3C community at large (of which Mozilla is an active participant). ReSpec&#039;s code is in need of some modernization, optimizations, and bug fixes - and we could use your help! In this project, you would have the opportunity to make ReSpec&#039;s UI more accessible, making it leaner and faster using distributed processing with Web Workers, and/or adding new features to make the lives of W3C spec Editor&#039;s better. &lt;br /&gt;
| JavaScript, HTML, CSS. &lt;br /&gt;
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]&lt;br /&gt;
| [https://mozillians.org/en-US/u/mcaceres/ Marcos Caceres]&lt;br /&gt;
| ReSpec offers students the opportunity to work on a large code base that has extensive real world use and impact. The project offers students an extensive range of problems to tackle, from UI design, to concurrent processing (using Web Workers to do distributed text processing), dealing with accessibility and internationalization, writing and learning about unit and integration tests, security, code review, etc. - as well as exposure to the W3C and the web standards community, this project also aims at teaching students about how web standards are put together. To determine if this is a project you would like to be part of, see the [https://github.com/w3c/respec/issues/ list of issues] you could work on. It&#039;s a great opportunity to learn about all aspects of open source software development, but with the freedom to take on small to large challenges over the Summer (depending on your skill level and level of confidence). About the mentor: Marcos Caceres is a Staff Engineer at Mozilla who has been working on Web Standards for over a decade. Marcos is the lead maintainer of ReSpec. Marcos has extensive experience mentoring developers and has previously successfully mentor a GSO student. &lt;br /&gt;
|-&lt;br /&gt;
| Ship Public Suffix List (PSL) over Remote Settings&lt;br /&gt;
| The list of public domain suffixes (DNS) is shipped with every release, with no way to update it on long term releases for example.&lt;br /&gt;
Now that Remote Settings has become a solid solution to ship data, we could use it to publish updates of the PSL.&lt;br /&gt;
The task consist in migrating the current client code to read from Remote Settings instead of a file, and implement a scheduled job (like Python) to push updates automatically (most likely compiled as a DAFSA file) &lt;br /&gt;
| JavaScript and some Python basics &lt;br /&gt;
| [https://mozillians.org/en-US/u/leplatrem/ Mathieu Leplatre]&lt;br /&gt;
| [https://mozillians.org/en-US/u/leplatrem/ Mathieu Leplatre]&lt;br /&gt;
| https://bugzilla.mozilla.org/show_bug.cgi?id=1083971&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/marco-c/bugbug bugbug]&lt;br /&gt;
| A platform for machine learning projects applied on Bugzilla, VCS and other software development data.&lt;br /&gt;
| Python&lt;br /&gt;
| [https://github.com/marco-c Marco Castelluccio] (FIRST_NAME@mozilla.com)&lt;br /&gt;
| [https://github.com/marco-c Marco Castelluccio] (FIRST_NAME@mozilla.com)&lt;br /&gt;
| The project will involve one or more of:&lt;br /&gt;
i) building additional classifiers (e.g., to detect bugs with no steps to reproduce, or to suggest a developer to assign to a bug, and so on);&lt;br /&gt;
&lt;br /&gt;
ii) improving accuracy/precision/recall of the existing classifiers by implementing other machine learning techniques (e.g., by using convolutional neural networks or recurrent neural networks);&lt;br /&gt;
&lt;br /&gt;
iii) improving accuracy/precision/recall by implementing additional feature extraction steps or making the already existing ones better.&lt;br /&gt;
|-&lt;br /&gt;
| Make the Firefox WebAuthn Soft Token a Real Thing&lt;br /&gt;
| The Web Authentication Soft Token provides second-factor login support without needing a Security Key dongle. It would be very usable if the Soft Token were a) synchronized across an account using Sync, b) could be controlled via a Web Extension, and perhaps c) had some UI. If these things were true, most people could get quality authentication support without buying another device.&lt;br /&gt;
| C++, Javascript, Basic cryptography&lt;br /&gt;
| [https://mozillians.org/en-US/u/jcjones/ J.C. Jones] &lt;br /&gt;
| [https://mozillians.org/en-US/u/jcjones/ J.C. Jones] &lt;br /&gt;
| https://wiki.mozilla.org/Security/CryptoEngineering#Web_Authentication&lt;br /&gt;
|-&lt;br /&gt;
| WebSocket Monitor&lt;br /&gt;
| Support for WebSocket monitoring and inspection in Firefox DevTools.&lt;br /&gt;
| JavaScript/React&lt;br /&gt;
| [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko]&lt;br /&gt;
| [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko]&lt;br /&gt;
| This project aims at providing support for WebSocket monitoring and inspection in Firefox DevTools. The feature should be built on top of the existing Network panel UI and responsible for visualizing data sent through WebSocket connection (i.e. WS frames). The user should be able to use the UI to see as well as analyse the data (search, filter, etc.).&lt;br /&gt;
* [https://docs.google.com/document/d/1ruHk-BA3cqzU7VHoVltnAwWt_2OXKOOAI4nTHwYllzk/edit# Detailed Project Description]&lt;br /&gt;
|-&lt;br /&gt;
| Helpful crash reporter&lt;br /&gt;
| The crash reporter only allows users to send crash reports but in some cases it might help the user diagnose the crash and solve it on his/her own&lt;br /&gt;
| C++, Javascript&lt;br /&gt;
| [https://mozillians.org/en-US/u/gsvelto/ Gabriele Svelto] &lt;br /&gt;
| [https://mozillians.org/en-US/u/gsvelto/ Gabriele Svelto] &lt;br /&gt;
| There&#039;s a few things that could be implemented:&lt;br /&gt;
* A quick test of the memory owned by the crashed process (such as those in [http://www.memtest.org/ memtest86+]) might catch faulty memory, a common cause for crashes&lt;br /&gt;
* The crash reporter client might try and validate Firefox files which can sometimes become corrupted (usually because of hardware issues). If they are it can prompt the user to re-install Firefox&lt;br /&gt;
* Many crashes are caused by buggy graphics drivers, while we blacklist the most egregious offenders we can&#039;t cover them all. The crash reporter might identify a faulty driver (if a bug for it has already been filed) and point the user to up-to-date drivers&lt;br /&gt;
* For crashes caused by known bugs it should be possible to point the user to the bug filed on bugzilla&lt;br /&gt;
|-&lt;br /&gt;
| Debugger Inline Variable Preview&lt;br /&gt;
| When the Firefox DevTools debugger is paused, users can hover over variables to get a useful tooltip that details the variable&#039;s value at that time.  While this popup is very informative, one valuable enhancement would be displaying relevant contextual variables values alongside the variable inline, alleviating the need for tooltips and allowing the user to more quickly get the information they need.  The applicant will work alongside the Debugger&#039;s team to implement this feature based on UX mockups and be given space to share and implement ideas of their own.&lt;br /&gt;
| Javascript&lt;br /&gt;
| [https://mozillians.org/en-US/u/davidwalsh/ David Walsh] &lt;br /&gt;
| [https://mozillians.org/en-US/u/davidwalsh/ David Walsh] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GitHub Checks Support Improvements&lt;br /&gt;
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports reporting results to the [https://github.com/taskcluster/taskcluster/pull/129/checks?check_run_id=54327344 GitHub Checks API], but only reports success or failure.  Let&#039;s add support for showing [https://developer.github.com/v3/checks/runs/ annotations] - snippets of log output, more detailed results, images, and so on.  We can even add support for additional &amp;quot;actions&amp;quot; on the task, such as re-running with debugging enabled.&lt;br /&gt;
| Server-side JS&lt;br /&gt;
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Support GitHub Logins in Taskcluster&lt;br /&gt;
| [https://github.com/taskcluster/taskcluster Taskcluster] currently supports logging in with Auth0, the Mozilla login system.  We would like to make it useful outside of Mozilla, and most other users do their development on GitHub, making GitHub logins a good solution.  This project would involve adding support for signing in with GitHub, as well as the more challenging task of assigning appropriate permissions to users based on the setup of their GitHub account.&lt;br /&gt;
| Server-side JS&lt;br /&gt;
| [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko], [https://mozillians.org/en-US/u/djmitche/ Dustin Mitchell] &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Improve Webdriver support in Servo&lt;br /&gt;
| [https://github.com/servo/servo/ Servo] currently supports a minimal subset of the [https://w3c.github.io/webdriver/ Webdriver standard]. We would like to improve Servo&#039;s support, and verify its correctness by passing a [https://github.com/web-platform-tests/wpt/tree/master/webdriver set of automated tests]. This project would involve writing Rust code to extend the webdriver server inside of Servo, as well as JavaScript and Python to support the [https://web-platform-tests.org/writing-tests/testdriver.html testdriver.js] testharness.&lt;br /&gt;
| Familiarity with Python &amp;amp; JavaScript; interest in learning Rust&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ Josh Bowman-Matthews] &lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ Josh Bowman-Matthews]&lt;br /&gt;
| [https://github.com/servo/servo/wiki/Support-Webdriver-based-tests-project Project description]&lt;br /&gt;
|-&lt;br /&gt;
| Support importing Instruments profiles in perf.html&lt;br /&gt;
| [https://github.com/devtools-html/perf.html/ perf.html] visualizes performance data recorded from various performance analysis tools. It is a tool designed to consume performance profiles from Gecko Profiler but can visualize any profiler able to output JSON. It currently supports Gecko, Chrome and perf profile formats. Instruments is a performance analyzer that comes with Xcode. This project would involve adding support for Instruments profile import in perf.html.&lt;br /&gt;
| Familiarity with JavaScript &amp;amp; React&lt;br /&gt;
| [https://mozillians.org/en-US/u/canaltinova/ Nazım Can Altınova]&lt;br /&gt;
| [https://mozillians.org/en-US/u/canaltinova/ Nazım Can Altınova]&lt;br /&gt;
| https://github.com/devtools-html/perf.html/issues/1138&lt;br /&gt;
|-&lt;br /&gt;
| Common Voice - WebAssembly MP3 Encoding&lt;br /&gt;
| Currently Common Voice doesn’t support Safari, which is also why we have an iOS app. The only reason being the missing MediaRecorder API. It could be polyfilled (rebuilt in “userspace”) by compiling an MP3 encoder to WebAssembly. I’ve tried that a couple of times, but never had enough time to fix the opaque bugs happening in Safari. This could also be turned into its own library and would be a nice story overall of how WASM can help with WebCompat and missing APIs.&lt;br /&gt;
| JavaScript&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://github.com/mozilla/voice-web/issues/469 This GitHub issue] lines out some thoughts around how to implement it and you can find references to closed PRs which tried implementing it in various ways.&lt;br /&gt;
|-&lt;br /&gt;
| Common Voice - Voice Wave Avatar&lt;br /&gt;
| We’d like our users to have unique(ish) avatars based either on the characteristics of their voice or a visualization of how their name (or an utterance of their choosing) is pronounced. It could also be a combination of the two ideas. We’re very open to explore this space together, though the a candidate should have some knowledge in sound theory.&lt;br /&gt;
| JavaScript, Some knowledge of sound theory&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
| [https://mozillians.org/u/gweber/ Gregor Weber]&lt;br /&gt;
|-&lt;br /&gt;
| Tab Manager menu in Firefox &lt;br /&gt;
| This project will extend the tab overflow menu - which shows tabs not visible in the browser&#039;s tab strip - to allow management of all open tabs across all browser windows.  The selected student will be working directly in the Firefox codebase to add functionality and new menu structures to make this easily accessible for end users. &lt;br /&gt;
| JavaScript, CSS, and web experience&lt;br /&gt;
| [https://mozillians.org/en-US/u/sfoster/ Sam Foster], [https://mozillians.org/en-US/u/bbell/ Bryan Bell]&lt;br /&gt;
| [https://mozillians.org/en-US/u/sfoster/ Sam Foster]&lt;br /&gt;
| We have [https://mozilla.invisionapp.com/share/4SNCEPDUEZ6#/screens UX mockups] for this feature, which could be broken into two phases. We also have a [https://bugzilla.mozilla.org/show_bug.cgi?id=1480542 bug on file], where discussion has begun. While working on this you will become very familiar with the Browser Toolbox, our own &amp;quot;Inspector&amp;quot; tool for the browser user-interface, as well as writing automated tests for the new feature you&#039;re adding. The existing tab overflow code lives in our [https://searchfox.org/mozilla-central/source/browser/base/content/browser-allTabsMenu.js browser-allTabsMenu.js] file, which will be the starting point for the new tab manager.  You can look at this and the existing tab code to get an idea of how this currently works. &lt;br /&gt;
-&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Firefox Reader Redesign&lt;br /&gt;
| The design of Firefox’s Reader Mode has languished behind as Quantum has implemented the new Photon Design System. The interface needs to be rebuilt using new visual and interaction styles to match the Photon Design System.&lt;br /&gt;
| JavaScript, CSS, and web experience&lt;br /&gt;
| [https://mozillians.org/en-US/u/awallin/ Abraham Wallin]&lt;br /&gt;
| [https://mozillians.org/en-US/u/eeejay/ Eitan Isaacson]&lt;br /&gt;
| [https://mozilla.invisionapp.com/share/87N9YQYCTJZ#/315073983_Reader_View_Redesign UX Mockups] for this feature are available with visual bugs have been reported [https://bugzilla.mozilla.org/show_bug.cgi?id=1187696 here] and [https://github.com/devtools-html/ux/issues/5 here]. Functional bugs and feature enhancements have been documented [https://github.com/mozilla/readability/issues?q=is%3Aissue+is%3Aopen+label%3Areader-mode-has-issues here], [https://github.com/mozilla/readability/issues?q=is%3Aissue+is%3Aopen+label%3Ashould-be-readerable here], [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=comp%3Areader%20prod%3DToolkit%20whiteboard%3Areadability-algorithm&amp;amp;list_id=14539703 here], and [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=comp%3Areader%20prod%3DToolkit%20whiteboard%3Aisreadable&amp;amp;list_id=14539704 finally here]. The request is for an engineering student to implement the designs and tackle the queue of bugs/enhancements within the Firefox code base. Mentors will support with prioritization, design direction/assets, and technical guidance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| An Android file downloader designed for Emerging Markets&lt;br /&gt;
| A lesson learned thanks to our UX team is in Emerging Markets the data plan is dynamic: in late nights we have the most affordable bandwidth. Here&#039;s the question: Why not schedule big files and videos and have them downloaded when you&#039;re sleeping? The mvp would be an App which we can send urls to. After receiving these urls the App either downloads it directly or defer it to late night. As there are more and more background restrictions enforced on new Android APIs, this should be a fun and challenging journey.&lt;br /&gt;
&lt;br /&gt;
A stretch goal would be to embed this downloader in our browser for Emerging Markets, Firefox Lite. Firefox Lite is not satisfied with the current Android Download Manager in several ways: We&#039;d like to give users the ability to pause/resume a download, we&#039;d like to download a file directly to SDcard (opposed to download it to the main storage and move it into SDcard).&lt;br /&gt;
&lt;br /&gt;
We&#039;ve also prepared an even more ambitious mission for those who want tough challenges: Design the app and make it dynamic deliverable. With aabs we can satisfy both light and heavy users by defaulting Android Download Manager as the download tool and prepare the aforementioned downloader dynamically so that Firefox Lite itself is still minimized in terms of disk size. Nevin and mTwTm are Android developers who can provide assistance to Android App design.&lt;br /&gt;
| Android Java/Kotlin&lt;br /&gt;
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)]&lt;br /&gt;
| [https://github.com/mTwTm/ mTwTm(Teng-pao Yu)] (mTwTm@mozilla.com), [https://github.com/cnevinc/ Nevin Chen] (nevin@mozilla.com)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Toolkit for sandboxing third-parties libraries in Firefox&lt;br /&gt;
| Firefox supports a long tail of infrequently used image and audio formats to&lt;br /&gt;
support the occasional website that uses them. Each such format requires the&lt;br /&gt;
Firefox decoder to use a new open source library for parsing and decoding.&lt;br /&gt;
This, unfortunately, increases the attack surface of Firefox and as we saw in&lt;br /&gt;
Pwn2Own 2018, Firefox was successfully exploited via a bugs in such libraries&lt;br /&gt;
(libogg in this case).&lt;br /&gt;
&lt;br /&gt;
This project proposes to sandbox third-party libraries in Firefox by building a&lt;br /&gt;
new software-fault isolation toolkit. Our tookit will build on the WebAssembly&lt;br /&gt;
compiler to isolate libraries in Firefox. But, as part of this toolkit we will&lt;br /&gt;
also develop and apply a library for safely interfacing with sandboxed libraries (and&lt;br /&gt;
sanitizing data coming from them). with this toolkit we can ensure that any&lt;br /&gt;
vulnerability in third-party libraries (e.g., libogg or libpng) cannot be used&lt;br /&gt;
to be used to compromise Firefox.&lt;br /&gt;
| C/C++, experience with WebAssembly&lt;br /&gt;
| [https://mozillians.org/en-US/u/erahm/ Eric Rahm]&lt;br /&gt;
| [https://mozillians.org/en-US/u/froydnj/ Nathan Froyd]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Test automation our linting tools&lt;br /&gt;
| We have a several linting tools running on Firefox code base, they currently don&#039;t have a test suite. &lt;br /&gt;
The goal of this project is to make sure that tests are executed. We currently have a similar [https://bugzilla.mozilla.org/show_bug.cgi?id=1432410 test automation for static analyzer jobs]. The idea would be to extend (or replicate) this model for [https://searchfox.org/mozilla-central/source/tools/lint/ ./mach lint] (which run flake8, eslint, etc) and [https://searchfox.org/mozilla-central/source/python/mozbuild/mozbuild/mach_commands.py#2327 ./mach clang-format]&lt;br /&gt;
The bug is https://bugzilla.mozilla.org/show_bug.cgi?id=1448008&lt;br /&gt;
| Python&lt;br /&gt;
| [https://github.com/sylvestre Sylvestre] (s@mozilla.com)&lt;br /&gt;
| [https://github.com/abpostelnicu Andi Postelnicu] (andi@mozilla.com)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Firefox Account Security Dashboard&lt;br /&gt;
| Firefox Account administrators and users need an easily digestible view into the important events that have occurred on an account, providing a way to audit for irregularities.&lt;br /&gt;
| JavaScript, HTML, CSS, MySQL&lt;br /&gt;
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]&lt;br /&gt;
| [https://mozillians.org/u/vbudhram/ Vijay Budhram], [https://mozillians.org/u/stomlinson/ Shane Tomlinson]&lt;br /&gt;
| The Firefox Account platform tracks security information about an account, but does not surface this information in an easily consumable format. Users and administrators should be able to see a timeline of an account’s security related events, such as connecting devices, signing into services, changing or resetting passwords, and adding or removing 2FA. Each event in the timeline should include a timestamp, IP address, and location information when they occurred. &lt;br /&gt;
&lt;br /&gt;
This project would entail updating our security event API to ensure we track and expose the required data. The first phase is to build a script that consumes the API and pretty prints the timeline. The second phase is to provide a web interface for the security timeline.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Improving FastParquet&lt;br /&gt;
| FastParquet is a Python library that needs improvement to how it writes the parquet file format &lt;br /&gt;
| Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/klahnakoski/mo-parquet/blob/dev/docs/StudentProject%202019.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Faster Pyparsing&lt;br /&gt;
| Pyparsing is a Python library that provides a DSL for language specification. It could use some optimization. &lt;br /&gt;
| Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/moz-sql-parser/blob/dev/docs/Student%20Project%202019.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Regression Detection&lt;br /&gt;
| Use machine learning to guide statistical model selection, then use the model(s) to detect regressions in future data. &lt;br /&gt;
| Machine Learning, Statistics, Python&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski]&lt;br /&gt;
| [https://github.com/mozilla/ActiveData/blob/dev/docs/Student%20Project%20190121.md Read more]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ..your next idea here!&lt;br /&gt;
| some details&lt;br /&gt;
| skills/language&lt;br /&gt;
| reporter&lt;br /&gt;
| mentor&lt;br /&gt;
| comments&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1189244</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1189244"/>
		<updated>2018-02-21T00:11:58Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: mention redash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Redash = &lt;br /&gt;
ActiveData has a Redash connector for [https://sql.telemetry.mozilla.org/ stmo] and it accepts SQL.  [https://github.com/mozilla/ActiveData/blob/dev/docs/redash.md see main doc for details]&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/End-to-End.html End to End Times] &lt;br /&gt;
|| Shows overall time from when a build is first requested to the time tests on that build are complete.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/index.html Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
|| Cross reference OrangeFactor and Bugzilla to give a list of frequent intermittents that have no bug activity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Buildbot&lt;br /&gt;
* Mozharness&lt;br /&gt;
* Structured Logs&lt;br /&gt;
* Task Cluster (end of Q1 2016)&lt;br /&gt;
* PerfHerder&lt;br /&gt;
* hg.mozilla.org&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Buildbot test times &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times &lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
== Tests ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/master/tests/test_unittests.py testing code which sends some unittest-specific queries]&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
Bug are tracked in [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=activedata Bugzilla].  The open issues are shown here:&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;quicksearch&amp;quot;:&amp;quot;activedata&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1175181</id>
		<title>Auto-tools/Projects/DevelopmentMetrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1175181"/>
		<updated>2017-07-06T18:04:25Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: fix links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
These charts serve two purposes.  The first is to satisfy one of the specific needs of the [[Bugzilla Anthropology|Bugzilla Anthropology Project]] which was to provide a view into patch review times.  The second is to prove&lt;br /&gt;
ElasticSearch can be used a performant [http://en.wikipedia.org/wiki/Data_warehouse data warehouse].&lt;br /&gt;
More on the project and conclusions can be found at the [https://wiki.mozilla.org/index.php?title=Bugzilla_Anthropology/2013-01-29 Jan 2013 project summary].&lt;br /&gt;
There is also my [https://github.com/klahnakoski/Bugzilla-ETL/blob/v2/docs/Bugzilla%20Lightning%20161207.pdf DashCon presentation]( [https://github.com/klahnakoski/Bugzilla-ETL/blob/v2/docs/Bugzilla%20Lightning%20161207.ppt PPT])&lt;br /&gt;
&lt;br /&gt;
== Bug Counts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/metrics/Bug-Counts.html Bug Counts] || Open bug count over time, with open/close rates, and median age.  Filter bugs by time range, components, and common program markups.  This dashboard is meant as a rough-first-step to building something more process specific.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/metrics/Bug-CloseRate.html#sampleInterval=week&amp;amp;sampleMax=2014-01-25&amp;amp;sampleMin=2012-05-27 Bug Close Rate] || Counts bug closures, and requires writing Elasticsearch filters to limit view to desired category of bugs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patch Reviews==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Reviews are broken [https://bugzilla.mozilla.org/show_bug.cgi?id=1344253 see bug 1344253]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/review/Review-byTop.html Top 30 Reviewers]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allow mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Shows the top reviewers from the past 6 weeks, the number of reviews they did, and the number in their queue right now.  The original objective of this dashboard is to confirm some engineers have too many reviews. This dashboard is fine for identifying egregious differences, but poor for individual comparison; it seems personal style, team style, and code under review all impact the size and number of reviews done. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/review/ReviewIntensity_First.html Time to First Incoming Review]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allow mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Counts review requests and review completion rates.  Also breaks down aggregate review age.  The first review has been shown to take the longest, probably due to people synchronization issues.  Subsequent reviews were almost instantaneous, so we exclude them.  This dashboard is not good for fine grained comparison of teams because the nature of the bugs, and the process used, is often too different.  The response time INCLUDES WEEKENDS.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/review/Review-byReviewer.html Incoming Review by Individual]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allow mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Top reviewers, but this time with some breakdown by week and component.  Interesting, but not actionable.&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [https://charts.mozilla.org/review/ReviewIntensity.html Incoming Reviews]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allow mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Statistics for all reviews.  Subsequent reviews of a bug happen much faster than the first.  Maybe the fast review speed is an administrative anomaly; reviews are added after the fact, and marked as reviewed.  Maybe, the requester and reviewer are working closely to remove the remaining nits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/review/Reviews_Pending_18.html Reviews Requested in the Past 18 weeks]&lt;br /&gt;
| An attempt to better understand the aggregate response time; while treating &amp;quot;old&amp;quot; reviews (those over 18weeks), as something else entirely.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Engineering Dashboards==&lt;br /&gt;
&lt;br /&gt;
Dashboards for use by developers, or our own team &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
| List of current, intermittent test failures, and have seen no bug activity in the past week.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/platform/dashboard.html Management Dashboard]&lt;br /&gt;
| View of all bugs for a particular team, in priority order, and categorized to help understand scope. This prototype was designed in 2015 for the categories important to the JS team.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Release Management Dashboards==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.mozilla.org/Release_Management Release Management] are responsible for quality, security, and stability. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/platform/releases.html Release Dashboard]&lt;br /&gt;
| All outstanding bugs tracked by the Release Management&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/platform-history/release-history.html Release Uplifts]&lt;br /&gt;
| Count the number of patches that have been uplifted to the Aurora and Beta branches. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/contributors/dashboard.html# Contributors Dashboard]&lt;br /&gt;
| [https://wiki.mozilla.org/EngineeringProductivity Engineering Productivity&#039;s] list of contributor bugs that may benefit from some action on our part.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Project Dashboards and Burndown==&lt;br /&gt;
&lt;br /&gt;
These dashboards are for showing general project state and burndown.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/quantum/blockers.html Quantum Flow tiles]&amp;lt;br&amp;gt;&lt;br /&gt;
| All components with Quantum Flow bugs (qf:p1), color-coded by age&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/QuantumFlow2/QuantumFlowBurndown.html Quantum Flow Burndown]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Quantum Flow bugs (qf:p1) over time, with projected complete date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/metrics/Dashboard_byProject.html Project Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Lists assigned bugs, patches in review, and patches awaiting landing&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/metrics/Predictive_Simple.html#programFilter=B2G+1.3 Burndown Prediction]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Uses average new bug rate, and average close rate to estimate the time it takes&lt;br /&gt;
to close all bugs in the given category.  Compares to close rates necessary to meet due date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/metrics/Dashboard-FinalBurndown.html Final Burndown Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Basic burndown chart.  Showing current bugs over time compared to ideal (linear) burndown&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1175180</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1175180"/>
		<updated>2017-07-06T17:54:47Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: fix links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/End-to-End.html End to End Times] &lt;br /&gt;
|| Shows overall time from when a build is first requested to the time tests on that build are complete.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/index.html Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://charts.mozilla.org/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
|| Cross reference OrangeFactor and Bugzilla to give a list of frequent intermittents that have no bug activity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Buildbot&lt;br /&gt;
* Mozharness&lt;br /&gt;
* Structured Logs&lt;br /&gt;
* Task Cluster (end of Q1 2016)&lt;br /&gt;
* PerfHerder&lt;br /&gt;
* hg.mozilla.org&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Buildbot test times &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times &lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
== Tests ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/master/tests/test_unittests.py testing code which sends some unittest-specific queries]&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
Bug are tracked in [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=activedata Bugzilla].  The open issues are shown here:&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;quicksearch&amp;quot;:&amp;quot;activedata&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=BMO/ElasticSearch/History&amp;diff=1175179</id>
		<title>BMO/ElasticSearch/History</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=BMO/ElasticSearch/History&amp;diff=1175179"/>
		<updated>2017-07-06T17:46:43Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: fix link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= History =&lt;br /&gt;
Martin Best started the [https://wiki.mozilla.org/Bugzilla_Anthropology Bugzilla Anthropology Project], which initiated a need for dashboarding the vast repository of information contained in Bugzilla.  Metrics has setup an ElasticSearch cluster with all the historical meta data on the bugs in Bugzilla.  This includes data on security bugs.  [https://wiki.mozilla.org/Auto-tools/Projects/DevelopmentMetrics Mozilla now has views of this data]&lt;br /&gt;
&lt;br /&gt;
== Existing Code ==&lt;br /&gt;
&lt;br /&gt;
We would like to increment on [https://github.com/mozilla-metrics/bugzilla_etl existing ETL].  Unfortunately, the complexity of the installation may reduce the number of interested community members.  There are six languages involved:&lt;br /&gt;
&lt;br /&gt;
* Manual Process - Running a few command line functions to setup the index, and redirect the alias pointer when done&lt;br /&gt;
* bash - For the main ETL loop: Grouping the bugs into 10K groups&lt;br /&gt;
* Spoon - A visual programming tool to connect ETL code snippets, data sources, and data sinks &lt;br /&gt;
* SQL - To pull data from Bugzilla database directly&lt;br /&gt;
* Javascript - Used to write convert the fine-grained delta objects into bug version snapshot records&lt;br /&gt;
* Java - Used to push the bug version records into ElasticSearch cluster&lt;br /&gt;
&lt;br /&gt;
== New Design ==&lt;br /&gt;
&lt;br /&gt;
[[File:BMO_ElasticSearch_Architecture.png|300px|thumb|right|Updated June 2014]] &lt;br /&gt;
&lt;br /&gt;
=== Two Clusters: One Public and One Private ===&lt;br /&gt;
&lt;br /&gt;
The new ETL will manage two separate clusters:  &lt;br /&gt;
* &#039;&#039;&#039;Private&#039;&#039;&#039; - The first is like the original; containing non-identifying information on all bugs, including security bugs.  This cluster will remain behind Mozilla&#039;s LDAP.  &lt;br /&gt;
* &#039;&#039;&#039;Public&#039;&#039;&#039; - The second is new, and will include all information (including comments) on public bugs.  It will be made available to the public for analysis.&lt;br /&gt;
&lt;br /&gt;
=== Justification for Python ===&lt;br /&gt;
&lt;br /&gt;
I believe a Python re-implementation of the existing code benefits community involvement by making the installation procedure simpler, and benefits the ongoing enhancement to code base by enabling unit and functional testing:&lt;br /&gt;
&lt;br /&gt;
* The manual process only exists because the outer loop of ETL is in bash, and it is difficult to perform a dynamic state analysis to fully automate the process.  A full Python version will make it easier to probe the existing index state and setup indexes and aliases automatically.&lt;br /&gt;
* Kettle (Spoon) is a 700Meg piece of software that is specialized for ETL jobs.  Many of it&#039;s features are not used in this project.  The record-level functions provided by this tool must be learnt to fully interpret the other languages&#039; code. &lt;br /&gt;
* The heavy lifting is being done with the main Javascript routine.  This can be converted, line-by-line to Python.&lt;br /&gt;
* SQL can be imported, without change, to the Python version&lt;br /&gt;
* The Java code to push rows to ES is significantly simpler in Python, and easier to maintain&lt;br /&gt;
* The current design has no debugging facilities, the Python version will allow stepping through code and easily inspecting intermediate states&lt;br /&gt;
* The Python version works better with source control; Spoon uses single-large-XML files which are not split by functional group (but admittedly are well behaved with source control)&lt;br /&gt;
* Be able to add tests, with a familiar test framework, and verify correctness&lt;br /&gt;
&lt;br /&gt;
== Update (23 October 2013) ==&lt;br /&gt;
&lt;br /&gt;
The Python ETL is a now functional enough for use.  The various servers for the public facing bugs has yet to be setup.&lt;br /&gt;
&lt;br /&gt;
This project took more effort than expected.  Here are some of the complications that slowed down development.  Please keep in mind I only had a couple months of Python before doing this conversion, feel free to take pleasure at my ignorance:&lt;br /&gt;
&lt;br /&gt;
=== ETL Issues ===&lt;br /&gt;
* Python and Javascript property access is different enough to cause a multitude of bugs when just performing naive conversion:  For example, converting Javascript &amp;lt;tt&amp;gt;if (!a.b){ ... }&amp;lt;/tt&amp;gt; to Python &amp;lt;tt&amp;gt;if not a[&amp;quot;b&amp;quot;]:  ....&amp;lt;/tt&amp;gt; can emit key exceptions and simply take the wrong path when dealing with empty sets.&lt;br /&gt;
* Alias analysis is error prone:  Users&#039; email addresses can be changed, and there is no record of those changes.  The bug activity table has recorded changes for emails that &amp;quot;apparently&amp;quot; do not exist.  Well, they do exist, but are aliased.  The old ETL used reviews to do some matching.  The new version uses the CC lists which have more information.  The problem is fundamental corruption in the history caused by (possible) direct poking of the database.  This corruption must be mitigated with fuzzy logic.&lt;br /&gt;
* It took a while to build up a library of tests that could be used to verify future changes.  More tests =&amp;gt; more test code =&amp;gt; more bugs in test code =&amp;gt; more bugs found in production code =&amp;gt; more tests.  Sometimes it seemed endless.&lt;br /&gt;
&lt;br /&gt;
=== Python Issues ===&lt;br /&gt;
* Python is slow.  Python speed comes from the C libraries it uses, spending time in the Python interpreter is a bad idea.  For example, going through the characters in all strings to check for invalid Unicode turned a slow program into an unusable one.  The solution was to find a builtin library that did the work for me (or would raise an exception if the conditions were false).  This ETL program has significant data structure transformations that can only be done in Python.  The solution was to use the PyPy interpreter.&lt;br /&gt;
* PyPy does not work well with C libraries.  The C libraries had to be removed in favor of pure Python versions of the same.  This was not too hard, except when it came to JSON libraries&lt;br /&gt;
* JSON generation is slow: The built-in JSON emitter used generators to convert data structures to a JSON string, but the PyPy optimizer is terrible at analyzing generator code.  Furthermore, the JSON libraries available to CPython are incredibly fast (Ujson is by almost 2 orders of magnitude faster!)  This made the PyPy version appear inferior despite the speed up in the ETL portion of the code.  Part of the solution was to use PyPy&#039;s own JSON emitter, but also realize PyPy&#039;s default JSON emitter (no pretty printing, no sub-classing, etc) has Ujson speeds.  The fastest solution I found so far, is to copy the data structure (with sets, Decimal, and other special types) to one with simple dicts, lists and floats and pass it to the default PyPy JSON emitter[https://github.com/klahnakoski/pyLibrary/blob/61928e3c9b01b823d666bafcc68b90ab2e4199e3/tests/util/test_json_speed.py].&lt;br /&gt;
* Python has old-school, unintuitive, routine names (strftime, mktime, randrange, etc) these take time to find, and time to confirm there isn&#039;t a better library that should be used instead.  I opted to add a facade to most of them to re-envowel their names, and isolate myself from the risk of using the wrong lib (or have it behave in unexpected ways).&lt;br /&gt;
* Python2.7 strings are confusing: str() can be either Latin1 or UTF8 encoded, but without any typing to indicate which encoding is used.  There are also unicode() strings, which look like strings until you try to compare them: &amp;lt;tt&amp;gt;&amp;quot;é&amp;quot; != u&amp;quot;é&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Multithreading was necessary so we can handle multiple network requests at one time, while keeping the code easy to read.  Python&#039;s threading library is still immature: It has no high level threading constructs to deal with common use cases in an environment that raises exceptions.&lt;br /&gt;
* Python2.7 has no exception chaining - added it&lt;br /&gt;
&lt;br /&gt;
In the end we have a high speed ETL solution that is easy to install and execute.  There are plenty of improvements that can be made, and definitely in the area of more threads and more multiple processes.  But those can wait while we deploy.&lt;br /&gt;
&lt;br /&gt;
== SecReview (20 November 2013) ==&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
Public Bugzilla data in a publicly accessible ElasticSearch cluster!&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Overview&#039;&#039;&#039; https://wiki.mozilla.org/Auto-tools/Projects/PublicES&lt;br /&gt;
* &#039;&#039;&#039;Architecture&#039;&#039;&#039; &lt;br /&gt;
** PowerPoint https://bugzilla.mozilla.org/attachment.cgi?id=828667&lt;br /&gt;
** png version [https://github.com/klahnakoski/Bugzilla-ETL/blob/v2/docs/Architecture.png]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; https://github.com/klahnakoski/Bugzilla-ETL/tree/bzAliases&lt;br /&gt;
** &#039;&#039;&#039;Main Routine&#039;&#039;&#039; https://github.com/klahnakoski/Bugzilla-ETL/blob/bzAliases/bzETL/bz_etl.py#L310&lt;br /&gt;
* &#039;&#039;&#039;History&#039;&#039;&#039; https://wiki.mozilla.org/index.php?title=Bugzilla_Anthropology/2013-01-29&lt;br /&gt;
&lt;br /&gt;
==== Goal of Feature, what is trying to be achieved (problem solved, use cases, etc) ====&lt;br /&gt;
* Provide &#039;&#039;&#039;public&#039;&#039;&#039; fast cache of BZ data to:&lt;br /&gt;
*# demonstrate current work&lt;br /&gt;
*# allow community to build tools&lt;br /&gt;
*#* https://github.com/okononen/dash ([http://videos.mozilla.org/uploads/air_mozilla/public/brownbags/2013_11_13_DashboardsUsingElasticSearch.mp4 video])&lt;br /&gt;
*#* http://www.joshmatthews.net/bugsahoy/&lt;br /&gt;
*#* http://harthur.github.io/bzhome/&lt;br /&gt;
*#* http://pike.github.io/beta-dash/&lt;br /&gt;
*# allow community to analyze trends, patterns&lt;br /&gt;
&lt;br /&gt;
==== What solutions/approaches were considered other than the proposed solution? ====&lt;br /&gt;
* Tried to publicize the existing ES cluster information (private bugs with no comments or summary), but there was concern the CC list may reveal the bug&#039;s security category (https://bugzilla.mozilla.org/show_bug.cgi?id=823303)&lt;br /&gt;
* Using the BZ-API directly requires sophisticated caching, which appears to stall attempts at making snappy dashboards.&lt;br /&gt;
&lt;br /&gt;
==== Why was this solution chosen? ====&lt;br /&gt;
* ElasticSearch is very fast&lt;br /&gt;
* Direct DB access leverages existing code&lt;br /&gt;
* Direct DB access puts no load on Bugzilla app&lt;br /&gt;
* Proven to work with business intelligence queries, which demand fast aggregate data over thousands of bugs (https://wiki.mozilla.org/Bugzilla_Anthropology/2013-01-29)&lt;br /&gt;
&lt;br /&gt;
==== Any security threats already considered in the design and why? ====&lt;br /&gt;
* Private bug data leaking into public cluster&lt;br /&gt;
* ElasticSearch was not meant for direct public access, proxy added (https://bugzilla.mozilla.org/show_bug.cgi?id=879833)&lt;br /&gt;
&lt;br /&gt;
== Update (January 9th, 2014) ==&lt;br /&gt;
&lt;br /&gt;
Over this past couple of months security reviews have been completed, and the suggested enhancements have been implemented.  &lt;br /&gt;
&lt;br /&gt;
=== ETL Highlights ===&lt;br /&gt;
&lt;br /&gt;
==== Alias Analysis ====&lt;br /&gt;
&lt;br /&gt;
All bugs have a carbon copy (CC) list of users that are mailed when the bug changes.  The historical record of this list is kept as a list of added and removed email addresses, with timestamps of course.  An issue arises when the user changes their email address: The next change in the historical record will refer to the new email address, and not the old, looking something like this:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;Time&#039;&#039;&#039;||&#039;&#039;&#039;Removed&#039;&#039;&#039;||&#039;&#039;&#039;Added&#039;&#039;&#039;||&#039;&#039;&#039;Resulting CC List&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Jan 2nd|| ||klahnakoski@mozilla.com||klahnakoski@mozilla.com&lt;br /&gt;
|-&lt;br /&gt;
|Jan 3rd|| ||mcote@mozilla.com||klahnakoski@mozilla.com, mcote@mozilla.com&lt;br /&gt;
|-&lt;br /&gt;
|Jan 4th||kyle@lahnakoski.com|| ||mcote@mozilla.com&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As humans, we know what happened here:  Kyle (me) changed his email address (somewhere between Jan2nd and Jan4th), and then removed himself from the CC list for the bug.  The ETL script has no such domain knowledge, and simply sees an inconsistency.  A naive rebuilding of the CC list history would have to assume &#039;&#039;&#039;kyle@lahnakoski.com&#039;&#039;&#039; was in the CC list since the beginning (which is a legitimate situation, but uncommon, for the first snapshot of a bug).  In aggregate, with all these mismatches, the naive rebuilding of historical record resulted in concluding many bugs started with long CC lists, that were eventually paired down over time to what currently exists.  This pattern is quite opposite of reality; where a bug starts with usually few people and the list grows.&lt;br /&gt;
&lt;br /&gt;
I implemented an alias analysis that uses the inconsistency in the history, specifically &#039;&#039;&#039;klahnakoski@mozilla.com&#039;&#039;&#039; was added to the CC (+1) but does not exist in the current bug state (+0).  &#039;&#039;&#039;mcote@mozilla.com&#039;&#039;&#039; was added (+1) and exists (+1), so the logic is consistent.  We must conclude removal is &#039;&#039;&#039;kyle@lahnakoski.com&#039;&#039;&#039; (-1) matches to addition of &#039;&#039;&#039;klahnakoski@mozilla.com&#039;&#039;&#039; (+1) to zero effect (0).  Really, we are solving a simple equation:&lt;br /&gt;
&lt;br /&gt;
     + k1 + m - k2 == m&lt;br /&gt;
  =&amp;gt;       k1 - k2 == 0&lt;br /&gt;
  =&amp;gt;            k2 == k1&lt;br /&gt;
&lt;br /&gt;
More complex cases involving simply more equations and more unknowns:  Then we solve the system of equations.  Lucky for us this is not as hard as algebra class because we have many more equations than we have variables to solve for:  Finding a solution does not require all equations, and this helps us with the problem of corrupt history.&lt;br /&gt;
&lt;br /&gt;
Corrupt history?  - Yes, the older Bugzilla history is slightly corrupted, which can effect the solutions to these equations.  To mitigate this problem, the solutions go through a voting stage to help determine what is the truth.  In the case of this alias analysis: I found at least three systems of equations where a solution is found, &#039;&#039;&#039;and&#039;&#039;&#039; that same solution has been found twice as often as any other, then I know there&#039;s enough evidence to conclude I have the right solution (one email address matches another).&lt;br /&gt;
&lt;br /&gt;
With alias analysis done, the CC list history looks like they should:  Small CC list at the start of a bug&#039;s life, growing over time.  The alias mapping that results is also used to match review flags (which is another story).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/klahnakoski/Bugzilla-ETL/blob/711810f08951a731dc543c10a0973fc34ed17c6b/bzETL/alias_analysis.py Alias Analysis Code]&lt;br /&gt;
&lt;br /&gt;
==== Proving Correctness ====&lt;br /&gt;
&lt;br /&gt;
Bugzilla contains some bugs that should not be made public.  These include bugs with specific security concerns, but also infrastructure specific details and other sensitive items.  It is important that these do not leak.  Making unit and functional tests is not enough because they can only test the known unknowns.  The unknown unknowns are inevitable in any code with reasonable complexity and you can not test for those explicitly.  Instead I want to perform the easier task of testing against invariants:&lt;br /&gt;
&lt;br /&gt;
# Private bugs should not be in public cluster&lt;br /&gt;
# Private comments should not be in public cluster&lt;br /&gt;
# Private attachments should not be in public cluster&lt;br /&gt;
&lt;br /&gt;
To check these tautologies I require datasource that knows what is &amp;quot;private&amp;quot; -- the private cluster has this!  It is a simple matter of writing queries that ask for all private entities and check if any are in the public cluster.  These queries are computationally expensive because they scan the whole datastore, but the queries are simple enough to be proven correct.  Furthermore, these queries can be run outside the main ETL program, allowing us to phase out these expensive checks when we are confident the ETL code is correct.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/klahnakoski/Bugzilla-ETL/blob/88b8d0249cdb4aca1884bd30bed9d11977fc98a9/tests/resources/python/look_for_leaks.py Code to Look for Leaks]&lt;br /&gt;
&lt;br /&gt;
== Reflections (February 5th 2014) ==&lt;br /&gt;
&lt;br /&gt;
My biggest mistakes were in time estimation.  Generally, I underestimated communication/coordination overhead, which can be significant:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Security reviews take time&#039;&#039;&#039; - The security team was fast and responsive, but it still took time to schedule meetings, and fix the design.&lt;br /&gt;
* &#039;&#039;&#039;Not much gets done during holidays&#039;&#039;&#039; - The holidays are for family and good food, not for production deployment.  Assume nothing will get done for two weeks.&lt;br /&gt;
* &#039;&#039;&#039;Production deployment takes time&#039;&#039;&#039; - The IT group responded quickly, but it took time to setup the app, the machines and the configurations.  This can be a couple of weeks at least, much of it communication delay and context switching overhead.&lt;br /&gt;
* &#039;&#039;&#039;Debugging production code is hard&#039;&#039;&#039; - If something goes wrong in production, it can be hard to debug.  &lt;br /&gt;
** Inspecting code for possible bugs that match the problem&#039;s signature, &lt;br /&gt;
** making a test to validate, &lt;br /&gt;
** adding more logging in case you fixed some other bug instead, &lt;br /&gt;
** running the battery of tests, and &lt;br /&gt;
** scheduling IT to push the next version&lt;br /&gt;
: all takes time; a couple of days at least.  Compare this to development: where you can squash a bug in an hour.&lt;br /&gt;
&lt;br /&gt;
Another issue, mentioned above, is the extra effort in adding tests to the code-base:  More tests =&amp;gt; more test code =&amp;gt; more bugs in test code =&amp;gt; more bugs found in production code =&amp;gt; more tests.  A very good thing for sure, but I should have recalled from my past that tests account for 2/3 of coding effort.  I should have tried to estimate the effort to rewrite the existing code, then doubled it to get an estimate for writing the testing code.  I had lazily glossed over that non-trivial amount of effort.&lt;br /&gt;
&lt;br /&gt;
Finally, Python has idiosyncrasies, and the bugs caused by utf8/latin1 were the most time consuming.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Stockwell/Meetings/2017-05-23&amp;diff=1171831</id>
		<title>EngineeringProductivity/Projects/Stockwell/Meetings/2017-05-23</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Stockwell/Meetings/2017-05-23&amp;diff=1171831"/>
		<updated>2017-05-23T15:48:52Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add some links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Previous Action Items =&lt;br /&gt;
&lt;br /&gt;
= Status =&lt;br /&gt;
* OF:&lt;br /&gt;
** last week: 7.81&lt;br /&gt;
** 4 weeks ago: 6.64&lt;br /&gt;
&lt;br /&gt;
* high frequency intermittents&lt;br /&gt;
** last week: 41&lt;br /&gt;
** 4 weeks ago: 31&lt;br /&gt;
&lt;br /&gt;
* if all high frequencies were fixed, OF would be...? &lt;br /&gt;
** last week: 4.65&lt;br /&gt;
** 4 weeks ago: 4.75&lt;br /&gt;
&lt;br /&gt;
* year to date: 233 fixed, 122 disabled (disabled is 34.3% vs 35.15% 2 weeks ago)&lt;br /&gt;
= Discussion Topics =&lt;br /&gt;
* Talk about Orange Factor, NeglectedOranges&lt;br /&gt;
** https://people-mozilla.org/~klahnakoski/NeglectedOranges/index.html&lt;br /&gt;
** https://people-mozilla.org/~klahnakoski/testfailures/test.html#search=devtools/client/netmonitor/test/browser_net_statistics-02.js&amp;amp;sampleMax=2017-05-23&amp;amp;sampleMin=2017-05-10&lt;br /&gt;
** https://people-mozilla.org/~klahnakoski/testfailures/test.html#search=/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-screenx-screeny.html&amp;amp;sampleMax=2017-05-23&amp;amp;sampleMin=2017-05-10&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= New Ideas to investigate =&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
* Discussion topics for next time&lt;br /&gt;
** &lt;br /&gt;
** &lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Stockwell/Meetings/2017-04-25&amp;diff=1169358</id>
		<title>EngineeringProductivity/Projects/Stockwell/Meetings/2017-04-25</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Stockwell/Meetings/2017-04-25&amp;diff=1169358"/>
		<updated>2017-04-25T20:34:26Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add intermittent counts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Previous Action Items =&lt;br /&gt;
&lt;br /&gt;
= Status =&lt;br /&gt;
* OF:&lt;br /&gt;
** last week: 6.64&lt;br /&gt;
** 4 weeks ago: 10.08&lt;br /&gt;
&lt;br /&gt;
* high frequency intermittents&lt;br /&gt;
** last week 31&lt;br /&gt;
** 4 weeks ago 55&lt;br /&gt;
&lt;br /&gt;
* if all high frequencies were fixed, OF would be...? &lt;br /&gt;
** 4.75&lt;br /&gt;
** 5.13&lt;br /&gt;
&lt;br /&gt;
* year to date: 198 fixed, 110 disabled (disabled is 35.7% vs 34.9% 1 month ago)&lt;br /&gt;
&lt;br /&gt;
= Discussion Topics =&lt;br /&gt;
* [gbrown] Starting to look at &amp;quot;new/modified test verification&amp;quot; - {{bug|1357513}}&lt;br /&gt;
** overall great idea, web-platform does this on upstream new tests, 10x per test&lt;br /&gt;
** keep it small, don&#039;t do dependent files, or run randomization/high resource programs in the background&lt;br /&gt;
** how to track the effectiveness of this:&lt;br /&gt;
*** whiteboard tags for intermittents related to test changes&lt;br /&gt;
*** build a dashboard for recent changes which are 5+ intermittents in a week&lt;br /&gt;
* [gbrown] Trying to enable eslint on more tests - {{bug|1357557}}&lt;br /&gt;
** will spend a few days hacking on this to see how easy this is to make a big sweep through the tree&lt;br /&gt;
** might be tough to whitelist existing failures or only run on new changes.&lt;br /&gt;
* [jmaher] Lifecycle of managing intermittents today&lt;br /&gt;
** 3 sources:&lt;br /&gt;
*** [https://brasstacks.mozilla.com/orangefactor/index.html overall OF] (looking for missing stockwell tags)&lt;br /&gt;
*** [https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html neglected]&lt;br /&gt;
*** [https://bugzilla.mozilla.org/buglist.cgi?resolution=---&amp;amp;resolution=FIXED&amp;amp;resolution=INVALID&amp;amp;resolution=WONTFIX&amp;amp;resolution=DUPLICATE&amp;amp;resolution=WORKSFORME&amp;amp;status_whiteboard_type=allwordssubstr&amp;amp;query_format=advanced&amp;amp;status_whiteboard=%5Bstockwell%20needswork%5D&amp;amp;list_id=13546073 needswork]&lt;br /&gt;
*** [gbrown] reduced OF to the last day or two to find most recent troublemakers&lt;br /&gt;
** is there value to retriggering to identify the root cause&lt;br /&gt;
* [jmaher] Roadmap for autoclassification in Q2/Q3 ?  (how can we track what is auto classified vs not)&lt;br /&gt;
** query the treeherder db for what is autoclassified- should experiment with this and propose an api&lt;br /&gt;
**  Show all intermittents, with auto-classify count, for past week: https://activedata.allizom.org/tools/query.html#query_id=QaxkaHye&lt;br /&gt;
 &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;from&amp;quot;:&amp;quot;treeherder&amp;quot;,&lt;br /&gt;
    &amp;quot;select&amp;quot;:[&lt;br /&gt;
        {&amp;quot;aggregate&amp;quot;:&amp;quot;count&amp;quot;},&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;name&amp;quot;:&amp;quot;is_auto&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;:{&lt;br /&gt;
                &amp;quot;when&amp;quot;:{&amp;quot;in&amp;quot;:[&lt;br /&gt;
                    {&amp;quot;literal&amp;quot;:&amp;quot;autoclassified intermittent&amp;quot;},&lt;br /&gt;
                    &amp;quot;failure.notes.failure_classification&amp;quot;&lt;br /&gt;
                ]},&lt;br /&gt;
                &amp;quot;then&amp;quot;:1,&lt;br /&gt;
                &amp;quot;else&amp;quot;:0&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;aggregate&amp;quot;:&amp;quot;sum&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;edges&amp;quot;:&amp;quot;bugs.bug_id&amp;quot;,&lt;br /&gt;
    &amp;quot;where&amp;quot;:{&amp;quot;and&amp;quot;:[&lt;br /&gt;
        {&amp;quot;eq&amp;quot;:{&amp;quot;failure.notes.failure_classification&amp;quot;:&amp;quot;intermittent&amp;quot;}},&lt;br /&gt;
        {&amp;quot;gt&amp;quot;:{&amp;quot;last_modified&amp;quot;:{&amp;quot;date&amp;quot;:&amp;quot;today-week&amp;quot;}}},&lt;br /&gt;
        {&amp;quot;ne&amp;quot;:{&amp;quot;repo.branch.name&amp;quot;:&amp;quot;try&amp;quot;}}&lt;br /&gt;
    ]},&lt;br /&gt;
    &amp;quot;limit&amp;quot;:10000&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= New Ideas to investigate =&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
* Discussion topics for next time&lt;br /&gt;
** &lt;br /&gt;
** &lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1169214</id>
		<title>Auto-tools/Projects/DevelopmentMetrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1169214"/>
		<updated>2017-04-24T22:19:53Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: less words&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
These charts serve two purposes.  The first is to satisfy one of the specific needs of the [[Bugzilla Anthropology|Bugzilla Anthropology Project]] which was to provide a view into patch review times.  The second is to prove&lt;br /&gt;
ElasticSearch can be used a performant [http://en.wikipedia.org/wiki/Data_warehouse data warehouse].&lt;br /&gt;
More on the project and conclusions can be found at the [https://wiki.mozilla.org/index.php?title=Bugzilla_Anthropology/2013-01-29 Jan 2013 project summary].&lt;br /&gt;
There is also my [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pdf DashCon presentation]( [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pptx PPT])&lt;br /&gt;
&lt;br /&gt;
== Bug Counts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html Bug Counts] || Open bug count over time, with open/close rates, and median age.  Filter bugs by time range, components, and common program markups.  This dashboard is meant as a rough-first-step to building something more process specific.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-CloseRate.html#sampleInterval=week&amp;amp;sampleMax=2014-01-25&amp;amp;sampleMin=2012-05-27 Bug Close Rate] || Counts bug closures, and requires writing Elasticsearch filters to limit view to desired category of bugs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patch Reviews==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Reviews are broken [https://bugzilla.mozilla.org/show_bug.cgi?id=1344253 see bug 1344253]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byTop.html Top 30 Reviewers]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allow mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Shows the top reviewers from the past 6 weeks, the number of reviews they did, and the number in their queue right now.  The original objective of this dashboard is to confirm some engineers have too many reviews. This dashboard is fine for identifying egregious differences, but poor for individual comparison; it seems personal style, team style, and code under review all impact the size and number of reviews done. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity_First.html Time to First Incoming Review]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allow mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Counts review requests and review completion rates.  Also breaks down aggregate review age.  The first review has been shown to take the longest, probably due to people synchronization issues.  Subsequent reviews were almost instantaneous, so we exclude them.  This dashboard is not good for fine grained comparison of teams because the nature of the bugs, and the process used, is often too different.  The response time INCLUDES WEEKENDS.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byReviewer.html Incoming Review by Individual]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allow mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Top reviewers, but this time with some breakdown by week and component.  Interesting, but not actionable.&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity.html Incoming Reviews]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allow mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Statistics for all reviews.  Subsequent reviews of a bug happen much faster than the first.  Maybe the fast review speed is an administrative anomaly; reviews are added after the fact, and marked as reviewed.  Maybe, the requester and reviewer are working closely to remove the remaining nits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Reviews_Pending_18.html Reviews Requested in the Past 18 weeks]&lt;br /&gt;
| An attempt to better understand the aggregate response time; while treating &amp;quot;old&amp;quot; reviews (those over 18weeks), as something else entirely.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Engineering Dashboards==&lt;br /&gt;
&lt;br /&gt;
Dashboards for use by developers, or our own team &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
| List of current, intermittent test failures, and have seen no bug activity in the past week.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/platform/dashboard.html Management Dashboard]&lt;br /&gt;
| View of all bugs for a particular team, in priority order, and categorized to help understand scope. This prototype was designed in 2015 for the categories important to the JS team.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Release Management Dashboards==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.mozilla.org/Release_Management Release Management] are responsible for quality, security, and stability. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform/releases.html Release Dashboard]&lt;br /&gt;
| All outstanding bugs tracked by the Release Management&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform-history/release-history.html Release Uplifts]&lt;br /&gt;
| Count the number of patches that have been uplifted to the Aurora and Beta branches. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/contributors/dashboard.html# Contributors Dashboard]&lt;br /&gt;
| [https://wiki.mozilla.org/EngineeringProductivity Engineering Productivity&#039;s] list of contributor bugs that may benefit from some action on our part.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Project Dashboards and Burndown==&lt;br /&gt;
&lt;br /&gt;
These dashboards are for showing general project state and burndown.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/quantum/blockers.html Quantum Flow tiles]&amp;lt;br&amp;gt;&lt;br /&gt;
| All components with Quantum Flow bugs (qf:p1), color-coded by age&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/QuantumFlow2/QuantumFlowBurndown.html Quantum Flow Burndown]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Quantum Flow bugs (qf:p1) over time, with projected complete date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard_byProject.html Project Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Lists assigned bugs, patches in review, and patches awaiting landing&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Predictive_Simple.html#programFilter=B2G+1.3 Burndown Prediction]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Uses average new bug rate, and average close rate to estimate the time it takes&lt;br /&gt;
to close all bugs in the given category.  Compares to close rates necessary to meet due date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard-FinalBurndown.html Final Burndown Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Basic burndown chart.  Showing current bugs over time compared to ideal (linear) burndown&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1169213</id>
		<title>Auto-tools/Projects/DevelopmentMetrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1169213"/>
		<updated>2017-04-24T22:17:46Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: mention the reviews are broken&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
These charts serve two purposes.  The first is to satisfy one of the specific needs of the [[Bugzilla Anthropology|Bugzilla Anthropology Project]] which was to provide a view into patch review times.  The second is to prove&lt;br /&gt;
ElasticSearch can be used a performant [http://en.wikipedia.org/wiki/Data_warehouse data warehouse].&lt;br /&gt;
More on the project and conclusions can be found at the [https://wiki.mozilla.org/index.php?title=Bugzilla_Anthropology/2013-01-29 Jan 2013 project summary].&lt;br /&gt;
There is also my [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pdf DashCon presentation]( [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pptx PPT])&lt;br /&gt;
&lt;br /&gt;
== Bug Counts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html Bug Counts] || Open bug count over time, with open/close rates, and median age.  Filter bugs by time range, components, and common program markups.  This dashboard is meant as a rough-first-step to building something more process specific.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-CloseRate.html#sampleInterval=week&amp;amp;sampleMax=2014-01-25&amp;amp;sampleMin=2012-05-27 Bug Close Rate] || Counts bug closures, and requires writing Elasticsearch filters to limit view to desired category of bugs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patch Reviews==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Reviews are broken [https://bugzilla.mozilla.org/show_bug.cgi?id=1344253 see bug 1344253]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byTop.html Top 30 Reviewers]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Shows the top reviewers from the past 6 weeks, the number of reviews they did, and the number in their queue right now.  The original objective of this dashboard is to confirm some engineers have too many reviews. This dashboard is fine for identifying egregious differences, but poor for individual comparison; it seems personal style, team style, and code under review all impact the size and number of reviews done. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity_First.html Time to First Incoming Review]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Counts review requests and review completion rates.  Also breaks down aggregate review age.  The first review has been shown to take the longest, probably due to people synchronization issues.  Subsequent reviews were almost instantaneous, so we exclude them.  This dashboard is not good for fine grained comparison of teams because the nature of the bugs, and the process used, is often too different.  The response time INCLUDES WEEKENDS.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byReviewer.html Incoming Review by Individual]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Top reviewers, but this time with some breakdown by week and component.  Interesting, but not actionable.&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity.html Incoming Reviews]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Statistics for all reviews.  Subsequent reviews of a bug happen much faster than the first.  Maybe the fast review speed is an administrative anomaly; reviews are added after the fact, and marked as reviewed.  Maybe, the requester and reviewer are working closely to remove the remaining nits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Reviews_Pending_18.html Reviews Requested in the Past 18 weeks]&lt;br /&gt;
| An attempt to better understand the aggregate response time; while treating &amp;quot;old&amp;quot; reviews (those over 18weeks), as something else entirely.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Engineering Dashboards==&lt;br /&gt;
&lt;br /&gt;
Dashboards for use by developers, or our own team &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
| List of current, intermittent test failures, and have seen no bug activity in the past week.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/platform/dashboard.html Management Dashboard]&lt;br /&gt;
| View of all bugs for a particular team, in priority order, and categorized to help understand scope. This prototype was designed in 2015 for the categories important to the JS team.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Release Management Dashboards==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.mozilla.org/Release_Management Release Management] are responsible for quality, security, and stability. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform/releases.html Release Dashboard]&lt;br /&gt;
| All outstanding bugs tracked by the Release Management&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform-history/release-history.html Release Uplifts]&lt;br /&gt;
| Count the number of patches that have been uplifted to the Aurora and Beta branches. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/contributors/dashboard.html# Contributors Dashboard]&lt;br /&gt;
| [https://wiki.mozilla.org/EngineeringProductivity Engineering Productivity&#039;s] list of contributor bugs that may benefit from some action on our part.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Project Dashboards and Burndown==&lt;br /&gt;
&lt;br /&gt;
These dashboards are for showing general project state and burndown.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/quantum/blockers.html Quantum Flow tiles]&amp;lt;br&amp;gt;&lt;br /&gt;
| All components with Quantum Flow bugs (qf:p1), color-coded by age&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/QuantumFlow2/QuantumFlowBurndown.html Quantum Flow Burndown]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Quantum Flow bugs (qf:p1) over time, with projected complete date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard_byProject.html Project Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Lists assigned bugs, patches in review, and patches awaiting landing&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Predictive_Simple.html#programFilter=B2G+1.3 Burndown Prediction]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Uses average new bug rate, and average close rate to estimate the time it takes&lt;br /&gt;
to close all bugs in the given category.  Compares to close rates necessary to meet due date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard-FinalBurndown.html Final Burndown Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Basic burndown chart.  Showing current bugs over time compared to ideal (linear) burndown&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1169212</id>
		<title>Auto-tools/Projects/DevelopmentMetrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1169212"/>
		<updated>2017-04-24T22:12:34Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add dashboard link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
These charts serve two purposes.  The first is to satisfy one of the specific needs of the [[Bugzilla Anthropology|Bugzilla Anthropology Project]] which was to provide a view into patch review times.  The second is to prove&lt;br /&gt;
ElasticSearch can be used a performant [http://en.wikipedia.org/wiki/Data_warehouse data warehouse].&lt;br /&gt;
More on the project and conclusions can be found at the [https://wiki.mozilla.org/index.php?title=Bugzilla_Anthropology/2013-01-29 Jan 2013 project summary].&lt;br /&gt;
There is also my [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pdf DashCon presentation]( [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pptx PPT])&lt;br /&gt;
&lt;br /&gt;
== Bug Counts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html Bug Counts] || Open bug count over time, with open/close rates, and median age.  Filter bugs by time range, components, and common program markups.  This dashboard is meant as a rough-first-step to building something more process specific.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-CloseRate.html#sampleInterval=week&amp;amp;sampleMax=2014-01-25&amp;amp;sampleMin=2012-05-27 Bug Close Rate] || Counts bug closures, and requires writing Elasticsearch filters to limit view to desired category of bugs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patch Reviews==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byTop.html Top 30 Reviewers]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Shows the top reviewers from the past 6 weeks, the number of reviews they did, and the number in their queue right now.  The original objective of this dashboard is to confirm some engineers have too many reviews. This dashboard is fine for identifying egregious differences, but poor for individual comparison; it seems personal style, team style, and code under review all impact the size and number of reviews done. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity_First.html Time to First Incoming Review]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Counts review requests and review completion rates.  Also breaks down aggregate review age.  The first review has been shown to take the longest, probably due to people synchronization issues.  Subsequent reviews were almost instantaneous, so we exclude them.  This dashboard is not good for fine grained comparison of teams because the nature of the bugs, and the process used, is often too different.  The response time INCLUDES WEEKENDS.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byReviewer.html Incoming Review by Individual]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Top reviewers, but this time with some breakdown by week and component.  Interesting, but not actionable.&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity.html Incoming Reviews]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Statistics for all reviews.  Subsequent reviews of a bug happen much faster than the first.  Maybe the fast review speed is an administrative anomaly; reviews are added after the fact, and marked as reviewed.  Maybe, the requester and reviewer are working closely to remove the remaining nits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Reviews_Pending_18.html Reviews Requested in the Past 18 weeks]&lt;br /&gt;
| An attempt to better understand the aggregate response time; while treating &amp;quot;old&amp;quot; reviews (those over 18weeks), as something else entirely.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Engineering Dashboards==&lt;br /&gt;
&lt;br /&gt;
Dashboards for use by developers, or our own team &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
| List of current, intermittent test failures, and have seen no bug activity in the past week.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/platform/dashboard.html Management Dashboard]&lt;br /&gt;
| View of all bugs for a particular team, in priority order, and categorized to help understand scope. This prototype was designed in 2015 for the categories important to the JS team.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Release Management Dashboards==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.mozilla.org/Release_Management Release Management] are responsible for quality, security, and stability. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform/releases.html Release Dashboard]&lt;br /&gt;
| All outstanding bugs tracked by the Release Management&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform-history/release-history.html Release Uplifts]&lt;br /&gt;
| Count the number of patches that have been uplifted to the Aurora and Beta branches. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/contributors/dashboard.html# Contributors Dashboard]&lt;br /&gt;
| [https://wiki.mozilla.org/EngineeringProductivity Engineering Productivity&#039;s] list of contributor bugs that may benefit from some action on our part.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Project Dashboards and Burndown==&lt;br /&gt;
&lt;br /&gt;
These dashboards are for showing general project state and burndown.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/quantum/blockers.html Quantum Flow tiles]&amp;lt;br&amp;gt;&lt;br /&gt;
| All components with Quantum Flow bugs (qf:p1), color-coded by age&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/QuantumFlow2/QuantumFlowBurndown.html Quantum Flow Burndown]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Quantum Flow bugs (qf:p1) over time, with projected complete date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard_byProject.html Project Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Lists assigned bugs, patches in review, and patches awaiting landing&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Predictive_Simple.html#programFilter=B2G+1.3 Burndown Prediction]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Uses average new bug rate, and average close rate to estimate the time it takes&lt;br /&gt;
to close all bugs in the given category.  Compares to close rates necessary to meet due date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard-FinalBurndown.html Final Burndown Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Basic burndown chart.  Showing current bugs over time compared to ideal (linear) burndown&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1169211</id>
		<title>Auto-tools/Projects/DevelopmentMetrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1169211"/>
		<updated>2017-04-24T22:07:45Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add more links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
These charts serve two purposes.  The first is to satisfy one of the specific needs of the [[Bugzilla Anthropology|Bugzilla Anthropology Project]] which was to provide a view into patch review times.  The second is to prove&lt;br /&gt;
ElasticSearch can be used a performant [http://en.wikipedia.org/wiki/Data_warehouse data warehouse].&lt;br /&gt;
More on the project and conclusions can be found at the [https://wiki.mozilla.org/index.php?title=Bugzilla_Anthropology/2013-01-29 Jan 2013 project summary].&lt;br /&gt;
There is also my [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pdf DashCon presentation]( [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pptx PPT])&lt;br /&gt;
&lt;br /&gt;
== Bug Counts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html Bug Counts] || Open bug count over time, with open/close rates, and median age.  Filter bugs by time range, components, and common program markups.  This dashboard is meant as a rough-first-step to building something more process specific.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-CloseRate.html#sampleInterval=week&amp;amp;sampleMax=2014-01-25&amp;amp;sampleMin=2012-05-27 Bug Close Rate] || Counts bug closures, and requires writing Elasticsearch filters to limit view to desired category of bugs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patch Reviews==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byTop.html Top 30 Reviewers]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Shows the top reviewers from the past 6 weeks, the number of reviews they did, and the number in their queue right now.  The original objective of this dashboard is to confirm some engineers have too many reviews. This dashboard is fine for identifying egregious differences, but poor for individual comparison; it seems personal style, team style, and code under review all impact the size and number of reviews done. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity_First.html Time to First Incoming Review]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Counts review requests and review completion rates.  Also breaks down aggregate review age.  The first review has been shown to take the longest, probably due to people synchronization issues.  Subsequent reviews were almost instantaneous, so we exclude them.  This dashboard is not good for fine grained comparison of teams because the nature of the bugs, and the process used, is often too different.  The response time INCLUDES WEEKENDS.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byReviewer.html Incoming Review by Individual]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Top reviewers, but this time with some breakdown by week and component.  Interesting, but not actionable.&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity.html Incoming Reviews]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Statistics for all reviews.  Subsequent reviews of a bug happen much faster than the first.  Maybe the fast review speed is an administrative anomaly; reviews are added after the fact, and marked as reviewed.  Maybe, the requester and reviewer are working closely to remove the remaining nits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Reviews_Pending_18.html Reviews Requested in the Past 18 weeks]&lt;br /&gt;
| An attempt to better understand the aggregate response time; while treating &amp;quot;old&amp;quot; reviews (those over 18weeks), as something else entirely.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Engineering Dashboards==&lt;br /&gt;
&lt;br /&gt;
Dashboards for use by developers, or our own team &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
| List of current, intermittent test failures, and have een no bug activity in the past week.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Release Management Dashboards==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.mozilla.org/Release_Management Release Management] are responsible for quality, security, and stability. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform/releases.html Release Dashboard]&lt;br /&gt;
| All outstanding bugs tracked by the Release Management&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform-history/release-history.html Release Uplifts]&lt;br /&gt;
| Count the number of patches that have been uplifted to the Aurora and Beta branches. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/contributors/dashboard.html# Contributors Dashboard]&lt;br /&gt;
| [https://wiki.mozilla.org/EngineeringProductivity Engineering Productivity&#039;s] list of contributor bugs that may benefit from some action on our part.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Project Dashboards and Burndown==&lt;br /&gt;
&lt;br /&gt;
These dashboards are for showing general project state and burndown.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/quantum/blockers.html Quantum Flow tiles]&amp;lt;br&amp;gt;&lt;br /&gt;
| All components with Quantum Flow bugs (qf:p1), color-coded by age&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people-mozilla.org/~klahnakoski/QuantumFlow2/QuantumFlowBurndown.html Quantum Flow Burndown]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Quantum Flow bugs (qf:p1) over time, with projected complete date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard_byProject.html Project Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Lists assigned bugs, patches in review, and patches awaiting landing&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Predictive_Simple.html#programFilter=B2G+1.3 Burndown Prediction]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Uses average new bug rate, and average close rate to estimate the time it takes&lt;br /&gt;
to close all bugs in the given category.  Compares to close rates necessary to meet due date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard-FinalBurndown.html Final Burndown Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN. Allowed mixed content.&amp;lt;/span&amp;gt;&lt;br /&gt;
| Basic burndown chart.  Showing current bugs over time compared to ideal (linear) burndown&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Outreachy&amp;diff=1165321</id>
		<title>Outreachy</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Outreachy&amp;diff=1165321"/>
		<updated>2017-03-10T14:26:31Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add link to the live document&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Admon/note|Attention Round 14 Applicants:|Projects are now open and taking submissions. Check out the projects below and contact the project mentor, if interested in making a contribution. The application period closes March 30. Visit [https://wiki.gnome.org/Outreachy/2017/MayAugust#Participating_Organizations The GNOME wiki] for more program information.}} &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mozilla has participated in the Outreachy program for several years.  The goals of the program are to increase participation from under-represented groups in free and open source software. Participation is open:&lt;br /&gt;
* internationally to all women (cis and trans), trans men, and genderqueer people&lt;br /&gt;
* also open in the U.S. to all Black/African American, Hispanic/Latin@, American Indian, Alaska Native, Native Hawaiian, and Pacific Islander people&lt;br /&gt;
&lt;br /&gt;
We provide a supportive community for beginning to contribute any time throughout the year and offer three month paid contribution opportunities twice a year.&lt;br /&gt;
&lt;br /&gt;
==Useful links for More Information==&lt;br /&gt;
* https://wiki.gnome.org/OutreachProgramForWomen&lt;br /&gt;
* https://gnome.org/opw/&lt;br /&gt;
* [[GNOME OPW Handbook]]&lt;br /&gt;
* [http://kernelnewbies.org/OPWMentor Information for mentors, from Linux Kernel project]&lt;br /&gt;
&lt;br /&gt;
==Outreachy Program Cohort: Round 14 (May 30 -Aug 30, 2017)==&lt;br /&gt;
&lt;br /&gt;
====Page Shot / Screenshotting in Firefox====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/ianbicking/ Ian Bicking] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; ianbicking (usually online 8am-3pm Pacific time) &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC channel:&#039;&#039;&#039; [https://kiwiirc.com/client/irc.mozilla.org/pageshot #pageshot]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
[https://github.com/mozilla-services/pageshot/ Page Shot], a screenshot tool for Firefox, will be shipping with Firefox mid-June.    Our small team&#039;s focus during the time of the internship will be running A/B tests on the product and refining the experience based on what we learn.&lt;br /&gt;
&lt;br /&gt;
There&#039;s several areas that can be impactful to the project: &lt;br /&gt;
* We are collecting behavioral data on how people use the tool, and plan to make changes through the summer based on what we learn.  Someone with skills and interest in analyzing this kind of data (in our case Google Analytics and survey data) would be great.  Some of what we want to learn from the data may require data analysis outside of Google Analytics.&lt;br /&gt;
* We have many product goals.  Page Shot is built as a WebExtension using pretty straight-forward JavaScript.  The server is built with Node.js and React.  Someone with knowledge of JavaScript together with HTML/CSS can get in and make positive changes quickly.&lt;br /&gt;
* Our basic experience will be in place by the summer, but there will be many opportunities for optimizing the performance and size of the screenshots and pages that we&#039;re delivering, including offline access.  In addition to development skills this will require research and experimentation to plan out the best approach.&lt;br /&gt;
&lt;br /&gt;
If you are interested please [https://github.com/mozilla-services/pageshot/ check out the repository] and try to follow the instructions.  If you have problems that&#039;s okay!  We want to make setup easy for everyone, but we still have work to do.  Come to the [https://kiwiirc.com/client/irc.mozilla.org/pageshot IRC channel] so we can help get you setup and improve the experience for future people.  We have a [https://github.com/mozilla-services/pageshot/labels/good%20first%20bug list of good first bugs].  If you want to start on one, please get your development environment setup first, and after that comment on a bug that you intend to work on it.&lt;br /&gt;
&lt;br /&gt;
Note that the Page Shot developers work during the day, in timezones from UTC-8 to UTC-5.  If an applicant can&#039;t work during many of those hours it is unlikely to be a good fit.&lt;br /&gt;
&lt;br /&gt;
====HTML+CSS demos of our new browser engine====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039;[https://mozillians.org/en-US/u/linclark/ Lin Clark] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; linclark&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
At Mozilla, we&#039;re making our browser faster. This started as a research effort, building a next generation browser engine called Servo. Now parts of Servo are being merged into Firefox with Project Quantum.&lt;br /&gt;
&lt;br /&gt;
The numbers are promising. For example, the new CSS style system (Stylo) can reduce the time it takes to render a page (like Barack Obama&#039;s wikipedia page) from 130ms to 30ms.&lt;br /&gt;
&lt;br /&gt;
We want to show this off. In this internship, you&#039;d be making demos that catch people&#039;s attention and show off these performance improvements.&lt;br /&gt;
&lt;br /&gt;
For this internship, you will need HTML and CSS skills. We would love to see demos or prototypes you have created in the past that delight and surprise. An understanding of web page performance and how to analyze performance in the browser is preferred but not required.&lt;br /&gt;
&lt;br /&gt;
====Security audit of Firefox code====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/arroway/ Stéphanie Ouillon] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; arroway&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
The Security Engineering team works on building and ensuring security into Firefox. Part of this work involves conducting security audits of the code shipped in Firefox. The candidate should be comfortable reading C++ and JavaScript Firefox code, and have an interest in learning about security engineering.&lt;br /&gt;
&lt;br /&gt;
The scope of this project includes two main areas we&#039;re putting focus on:&lt;br /&gt;
&lt;br /&gt;
1) Security auditing of third-party libraries used in Firefox&lt;br /&gt;
Firefox relies on a vast amount of third-party Open Source libraries. Code review and security practices vary from one library to another, or new releases with security fixes might go unnoticed. We want to reduce the risk of including unsafe code in Firefox and auditing more thoroughly the most critical libraries we use.&lt;br /&gt;
&lt;br /&gt;
Tasks include:&lt;br /&gt;
* Identifying libraries with security concerns&lt;br /&gt;
* Identifying code paths for additional fuzzing&lt;br /&gt;
* Documenting the current process for using a new third-party library in mozilla-central&lt;br /&gt;
* Setting security metrics (e.g number of security bugs related to the lib) to measure risk associated with a certain lib&lt;br /&gt;
&lt;br /&gt;
2) Sandbox auditing&lt;br /&gt;
Firefox is getting a security sandbox (https://wiki.mozilla.org/Security/Sandbox/Process_model). Hardening Firefox against attacks involves: &lt;br /&gt;
* Checking IPC mechanisms are safe&lt;br /&gt;
* Fuzzing IPC for bugs&lt;br /&gt;
* Reviewing Firefox components with respect to sandbox controls&lt;br /&gt;
&lt;br /&gt;
To get started, please visit this page: [https://wiki.mozilla.org/SecOutreachy https://wiki.mozilla.org/SecOutreachy]&lt;br /&gt;
&lt;br /&gt;
====Implement Telemetry health ping====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/gfritzsche/ Georg Fritzsche] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; gfritzsche&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;&lt;br /&gt;
Firefox Telemetry enables engineers and decision-makers to measure how Firefox behaves in the real world. As you use Firefox, Telemetry measures and collects non-personal information, such as performance, hardware, usage and customizations.&lt;br /&gt;
&lt;br /&gt;
To more reliably monitor the quality of our incoming data and error conditions, we want to implement a small &amp;amp; minimal Telemetry health ping. This will be small enough to be sent without bandwidth concerns and include essential information about failures.&lt;br /&gt;
&lt;br /&gt;
For this project, you will need:&lt;br /&gt;
* JavaScript for the Firefox implementation&lt;br /&gt;
* Python for processing and validating the incoming data using PySpark&lt;br /&gt;
&lt;br /&gt;
This project will involve:&lt;br /&gt;
* working with team members on the design of the health reporting&lt;br /&gt;
* implementing the new design on the client, including test coverage&lt;br /&gt;
* working with QA on a test plan for the reporting&lt;br /&gt;
* validating incoming data&lt;br /&gt;
* working with team members to make the data available in our re:dash instance&lt;br /&gt;
&lt;br /&gt;
You can find more details on the [[Telemetry/Outreachy:HealthPing|project page]].&lt;br /&gt;
&lt;br /&gt;
====Improve cross-browser and functional testing for webcompat.com====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/miketaylr/ Mike Taylor] (Note: will be on PTO from March 9 - 19, but will check email sporadically. @karlcow has agreed to help with PRs and in issues). &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; miketaylr (I can be found in the #webcompat channel. If my nick is zz_miketaylr, I&#039;m away but will get your messages when I come back!).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
webcompat.com is an open source project and website with the ambitious goal of making the web work for all users, in any browser. We want to improve our functional and cross-browser testing capabilities.&lt;br /&gt;
&lt;br /&gt;
In this project, the Outreachy participant will work on the following:&lt;br /&gt;
&lt;br /&gt;
* Define a cross-browser testing matrix&lt;br /&gt;
* Get functional tests running in non-Firefox browsers&lt;br /&gt;
* Make improvements to BrowserStack - Travis CI Integration (this may or may not be done by the time this Outreachy round starts, we&#039;ll see!)&lt;br /&gt;
* Create a working sub-set of tests for external contributors without access to authentication secrets.&lt;br /&gt;
* Create a script to &amp;quot;bootstrap&amp;quot; a test repo to meet current functional test expectations&lt;br /&gt;
* Improve test coverage (writing new functional tests, refactoring existing ones)&lt;br /&gt;
* Implement a solution for mocking GitHub authentication&lt;br /&gt;
* Investigate intermittent Intern failures&lt;br /&gt;
* Explore unit testing with Intern&lt;br /&gt;
&lt;br /&gt;
To be successful, the participant will need to be comfortable writing JavaScript and configuring 3rd party testing services. Some Python and Node.js experience will prove useful, but the rest can be learned!&lt;br /&gt;
&lt;br /&gt;
To get started: &lt;br /&gt;
&lt;br /&gt;
  1. [https://github.com/webcompat/webcompat.com/ Clone the repo]&lt;br /&gt;
  2. [https://github.com/webcompat/webcompat.com/blob/master/CONTRIBUTING.md Set up a local development environment]&lt;br /&gt;
  3. [https://github.com/webcompat/webcompat.com/blob/master/CONTRIBUTING.md#running-tests Get functional tests running locally]&lt;br /&gt;
  4. [http://github.com/webcompat/webcompat.com/issues/new Report any bugs or problems you ran into with that process], if any. &lt;br /&gt;
  5. Send an email to miket@mozilla.com with a screenshot showing tests have completed locally. We&#039;ll talk about next contribution steps!&lt;br /&gt;
  (Note: it&#039;s OK if many of them are failing, as long as they all run!)&lt;br /&gt;
&lt;br /&gt;
====Site permission management UI====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/johannh/ Johann Hofmann] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; johannh&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
&amp;quot;We would like to add a section to Firefox preferences that allows users to manage their saved site permissions (Geolocation, Camera, Microphone, ...). Our UX team is currently designing a nice-looking UI for this. Features include viewing and removing permissions and globally disabling access to a certain permission for all sites. Your task would be to implement this UI inside the Firefox preferences using JavaScript, HTML and CSS and wire up any missing pieces in the Firefox internals (moderate JavaScript experience is recommended).&lt;br /&gt;
&lt;br /&gt;
You might enjoy this project if you like working on user interfaces, care about privacy and security and want to have a sizeable impact on the privacy and security of millions of Firefox users.&lt;br /&gt;
&lt;br /&gt;
You can get started by solving any good first Firefox bug:&lt;br /&gt;
* Get Firefox up and running (https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_build)&lt;br /&gt;
* Find a bug to work on (https://www.joshmatthews.net/bugsahoy/?ff=1&amp;amp;unowned=1&amp;amp;simple=1)&lt;br /&gt;
* Leave a comment that you want to be assigned and ask about anything that is unclear to you&lt;br /&gt;
* Submit your patch (https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/How_to_Submit_a_Patch)&lt;br /&gt;
&lt;br /&gt;
More details can be found in our contributing guide: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Introduction&lt;br /&gt;
&lt;br /&gt;
It is highly recommended that you hop on IRC (https://wiki.mozilla.org/IRC) and join the #fx-team channel. Feel free to ask for help there (ping johannh).&lt;br /&gt;
&lt;br /&gt;
====CSS Layout Bug Squasher====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/jdm/ Josh Matthews] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; jdm&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
Servo is a new, experimental web browser engine written in the Rust programming language (http://www.rust-lang.org/). It also has lots of bugs in its implementation of CSS layout. Some of these bugs are filed in the issue tracker with minimized test cases (https://github.com/servo/servo/issues/14947), while others have not been investigated yet (https://github.com/servo/servo/issues/15432). We’re looking for someone who is:&lt;br /&gt;
&lt;br /&gt;
* comfortable writing code in any programming language&lt;br /&gt;
* experienced in reading and understanding the effects of CSS&lt;br /&gt;
&lt;br /&gt;
We want to teach you how to write Rust code so you can channel that experience into squashing CSS layout implementation bugs in Servo. You will gain experience in:&lt;br /&gt;
&lt;br /&gt;
* reducing problems into minimal test cases&lt;br /&gt;
* developing in a low-level programming language&lt;br /&gt;
* using debugging strategies to determine the cause of problems in complex code&lt;br /&gt;
* contributing to a large open-source project as part of a distributed team&lt;br /&gt;
&lt;br /&gt;
To get involved:&lt;br /&gt;
&lt;br /&gt;
*  clone and build the code (https://github.com/servo/servo/)&lt;br /&gt;
*  find an issue that looks interesting (https://starters.servo.org)&lt;br /&gt;
*  leave a comment stating that you&#039;re working on it, and ask any questions necessary to make progress&lt;br /&gt;
*  introduce yourself on IRC (https://wiki.mozilla.org/IRC in #servo) or on the mailing list (https://groups.google.com/forum/#!forum/mozilla.dev.servo)&lt;br /&gt;
&lt;br /&gt;
====Automate web accessibility testing====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/mbrandt/ Matt Brandt] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; mbrandt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
The internship entails researching how to test for web accessibility standards and then the application of that knowledge by reviewing several open source automated testing frameworks. Once they have chosen the framework that best suits our needs, that minimizes false positives, they will be responsible for codifying a suite of tests that are able to run within our Jenkins CI.&lt;br /&gt;
&lt;br /&gt;
The project requires the intern to spend a short amount of time reading about web accessibility testing to help them gain domain knowledge. Prior experience with Javascript and Python is helpful but not required. Experience with an object oriented programing language is required, but can be gained by taking one of the many freely available online courses. An interest and aptitude in software engineering is encouraged.&lt;br /&gt;
&lt;br /&gt;
As the intern pieces together a solution and implements the tests, they’ll help cleanup and update documentation. A willingness to reach out to members of the Firefox Test Engineering team as well as the Accessibility team for clarification will help round out the internship experience.&lt;br /&gt;
&lt;br /&gt;
====Rust: Web Assembly showcase====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/brson/ Brian Anderson] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; brson&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
[https://www.rust-lang.org Rust] is a new systems programming language that is fast and memory&lt;br /&gt;
safe. It is growing quickly, is pleasant to contribute to, and is in&lt;br /&gt;
need of contributions in many areas!&lt;br /&gt;
&lt;br /&gt;
In this project you will be developing a showcase application to&lt;br /&gt;
demonstrate Rust compiled to [http://webassembly.org/ WebAssembly], a new bytecode that runs&lt;br /&gt;
in the web browser. With WebAssembly, authors can write software that&lt;br /&gt;
runs on the web with near-native performance. It will unlock new&lt;br /&gt;
capabilities for the web, and Rust, with it&#039;s focus on low-level&lt;br /&gt;
performance, is one of the best-positioned languages to take advantage of WebAssembly.&lt;br /&gt;
&lt;br /&gt;
This is a self-contained project where creativity and persistence will&lt;br /&gt;
lead to success. Design and implement a client-side web application,&lt;br /&gt;
written in Rust, that demonstrates the promise of running Rust&lt;br /&gt;
software on the web, by compiling to WebAssembly. Publish and blog&lt;br /&gt;
about the result.&lt;br /&gt;
&lt;br /&gt;
This serves two important purposes: firstly, as a teaching tool, the&lt;br /&gt;
project demonstrates two bleeding-edge technologies used successfully&lt;br /&gt;
together. You will be at the forefront of this technology and people&lt;br /&gt;
will be looking to your early experience as they try it themselves.&lt;br /&gt;
Second, by writing a real application we will discover new bugs and&lt;br /&gt;
other problems with the stack. You will report these bugs to their&lt;br /&gt;
upstream projects, and even fix them yourself. This process of&lt;br /&gt;
validating our products by actually using them is called &amp;quot;dogfooding&amp;quot;,&lt;br /&gt;
and it&#039;s an important part of product development.&lt;br /&gt;
&lt;br /&gt;
At the end of this project you will have your own Rust-language web&lt;br /&gt;
application, will have new experience with Rust, WebAssembly,&lt;br /&gt;
JavaScript, and with collaboration in an active and friendly open&lt;br /&gt;
source community.&lt;br /&gt;
&lt;br /&gt;
The project will run in 3 phases: in the first weeks you will&lt;br /&gt;
familiarize yourself with the tools: Rust, WebAssembly, emscripten,&lt;br /&gt;
and their development environment in and out of the web&lt;br /&gt;
browser. You&#039;ll work with your coach to identify a few key features&lt;br /&gt;
that the project will demonstrate and plan how to create them.  The&lt;br /&gt;
second phase is where you will do planned implementation work.&lt;br /&gt;
Finally, with a few weeks left to spare, we will evaluate our&lt;br /&gt;
progress, decide how to present it most effectively, and then spend&lt;br /&gt;
the remaining time polishing and documenting it for release.&lt;br /&gt;
&lt;br /&gt;
Good candidates will have moderate programming experience, either in&lt;br /&gt;
JavaScript or in a systems language like C, C++ or Rust. This work&lt;br /&gt;
will involve investigating and even debugging new compiler and web&lt;br /&gt;
browser features - much time will probably be spent examining the Rust&lt;br /&gt;
compiler&#039;s WebAssembly output and comparing it to expectations.&lt;br /&gt;
Interns will not be expected to fix bugs the Rust compiler itself on&lt;br /&gt;
their own, though they are certainly welcome to - their task is to&lt;br /&gt;
write an interesting web applications.&lt;br /&gt;
&lt;br /&gt;
====Unsafe Code Linting Tool for Rust====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/nmatsakis/ Nicholas Matsakis] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; nmatsakis&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description&#039;&#039;&#039;:&lt;br /&gt;
Rust is a new systems programming language that is fast and memory safe. It is growing quickly, is pleasant to contribute to, and is in need of contributions in many areas!&lt;br /&gt;
&lt;br /&gt;
A crucial part of Rust&#039;s design is the ability for authors to use &amp;quot;&amp;quot;unsafe code&amp;quot;&amp;quot; to build up new abstractions and libraries. Unsafe code allows you to locally suspend some of the Rust type system rules, effectively giving you a lower-level language closer to C. The idea is that these lower-level details are encapsulated within a library that exports a safe interface. For example, the Rayon library exposes very convenient, simple primitives for writing threaded programs. If you stick to those primitives, your program will be free of data-races and other nasty parallel programming bugs. But internally the Rayon library makes use of traditional C-style threads to implement this abstraction.&lt;br /&gt;
&lt;br /&gt;
At present, Rust doesn&#039;t give you very fine-grained tools for reasoning about unsafe code. Once you start writing an unsafely implemented library, it&#039;s entirely up to you to track whether a given pointer is safe to use and so forth. Just as when writing C code, this can easily go awry, particularly as code is updated. It could easily happen, for example, that an array index i is known to be in-bounds, and hence an unsafe array access (no bounds check) like vec[i] is safe. But as the program is updated, perhaps that assumption no longer holds -- now the array access could be out of bounds, leading to memory safety errors.&lt;br /&gt;
&lt;br /&gt;
The goal with this internship is to develop a lint tool that would integrate with the rustc front-end to help improve the experience of writing unsafe code. This tool would allow unsafe code authors to write out and check more of their reasoning automatically: for example, they might document that why they believe that the variable i is in bounds (e.g., because it is compared against the length of the array, and the variable vec is not updated in the meantime). Then the tool can help check whether any of these assumptions stops being true (e.g., perhaps vec is changed to point to a different vector).&lt;br /&gt;
&lt;br /&gt;
The project will involve both design and implementation. There is a general plan for how the linting tool should work, but part of the fun will be iterating on the tool once we try to put it to use and see how well it works. If all goes to plan, we can release the tool to the public.&lt;br /&gt;
&lt;br /&gt;
Good candidates will have moderate programming experience in some language; experience with C, C++, or Rust specifically is not required. This work will primarily involve building a lint, which interfaces with the front-end of the Rust compiler, but will also involve learning a bit about the Rayon codebase (or some other suitable example of an unsafely implemented library).&lt;br /&gt;
&lt;br /&gt;
====Push Notifications for Signin Confirmation====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/seanmonstar/ Sean McArthur] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; seanmonstar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
You will be implementing a form of 2FA in Firefox Accounts. Once completed, if a user has multiple devices connected to their Firefox Account, they will be able to receive a push notification to one of their other devices asking for confirmation when trying to log in to their Firefox Account.&lt;br /&gt;
&lt;br /&gt;
Skills required: Git, JavaScript (node and browser)&lt;br /&gt;
&lt;br /&gt;
As part of your application please try to fix a ‘good first bug’ at: https://waffle.io/mozilla/fxa?label=good-first-bug&lt;br /&gt;
&lt;br /&gt;
To get started with Firefox Accounts servers please visit: https://github.com/mozilla/fxa-local-dev&lt;br /&gt;
&lt;br /&gt;
To learn more about Firefox Accounts project check out: https://fxa.readthedocs.io/en/latest/ &lt;br /&gt;
&lt;br /&gt;
====bugzilla.mozilla.org improvements====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/emceeaich/ Emma Humphries] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039;  emceeaich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
1) [BMO RESKIN] Mozilla recently rebranded, and BMO doesn&#039;t match this re-branding at all. It would be nice to reskin it to look like the central Mozilla property it is. &lt;br /&gt;
&lt;br /&gt;
Skills: CSS, HTML Templates, Perl&lt;br /&gt;
&lt;br /&gt;
2) [BZ KANBAN] There is a kanban board that works using bugzilla APIs: https://github.com/leif81/bzkanban it would be very nice for (some teams, anyway) if this was integrated into BMO.&lt;br /&gt;
&lt;br /&gt;
Skills: JavaScript, CSS, HTML, Perl&lt;br /&gt;
&lt;br /&gt;
3) [METRICS GRAPHICS @ BMO] We have a very old reporting infrastructure that generates reports server-side and looks ugly. Meanwhile, another part of Mozilla has created the metrics graphics library. At minimum, replacing our existing reporting system with this would look spiffy.&lt;br /&gt;
&lt;br /&gt;
====Implement UI Automated Tests for Treeherder using Selenium and Jasmine====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/camd/ Cameron Dawson] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; camd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
Treeherder is a mission-critical product used by our core developers as well as our team of Sheriffs that help protect the quality of our code base.  We have a very small number of automated tests for the UI.  The rest must be done manually before each push to production.&lt;br /&gt;
&lt;br /&gt;
This project would involve writing User Interface tests with Jasmine and Karma as well as Selenium.  They would be executed automatically in Travis CI on each push to the master branch of the code-base and provide quick results on whether it is safe to push the new version of Treeherder to production.&lt;br /&gt;
&lt;br /&gt;
====DevRel Website: Technical Content Creation/Management====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/havi/ Havi Hoffman] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; havi &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
This internship will be focused on content migration, content management, and multimedia content creation for a large complex website built in Drupal 8. &lt;br /&gt;
&lt;br /&gt;
The Developer Relations team is building a site that speaks to developers, designers, and all those who build the Web. This project serves many goals: &lt;br /&gt;
*to update and modernize our blog, Mozilla Hacks (hacks.mozilla.org), and our Mozhacks YouTube channel&lt;br /&gt;
*to aggregate and share valuable content that is now spread across a host of websites and Mozilla wikis&lt;br /&gt;
*to raise awareness of the DevRel team and all the Mozillians who do outreach with people around the world who build the web&lt;br /&gt;
*to make it easy to discover all the ways Mozilla interacts with developers, designers, technologists. &lt;br /&gt;
&lt;br /&gt;
In this role, you will help build out and maintain the new website over the course of our launch. Deliverables will be very tactical with hours focused on manual migration of content.  In addition, there will be great opportunities to participate in content and asset creation for the new site. &lt;br /&gt;
&lt;br /&gt;
The website will showcase key technologies being built by the Emerging Technologies group and evangelized by the DevRel team. The site will support many types of current and evergreen content: articles, videos, presentations, demos, events, and more, as well as profile pages for staff and contributors. &lt;br /&gt;
&lt;br /&gt;
We think it&#039;s a great opportunity for someone seeking &#039;real-world&#039; experience in: &lt;br /&gt;
*technical communications and media creation for the developer community&lt;br /&gt;
*in-depth, hands-on content management experience&lt;br /&gt;
*developing skills as an editor, technical communicator, and media creator&lt;br /&gt;
*working with a geo-distributed team of developer and designer advocates. &lt;br /&gt;
&lt;br /&gt;
You’re a strong fit for this role if you have:&lt;br /&gt;
*basic experience and familiarity with online publishing in a variety of media formats&lt;br /&gt;
*working knowledge of HTML&lt;br /&gt;
*familiarity with WordPress, Drupal, or other content management systems&lt;br /&gt;
*experience with media creation tools are desirable (screencasts, video, codepens)&lt;br /&gt;
*Someone with skills to create demos in HTML, CSS, or to make videos is a plus. &lt;br /&gt;
*Javascript or Drupal site building skills an additional plus.&lt;br /&gt;
&lt;br /&gt;
Please be detail-oriented, comfortable in written and spoken English.  As a site editor/content manager, we’ll ask you to help others set up accounts and load their content.&lt;br /&gt;
&lt;br /&gt;
====Upgrade ActiveData to use Elasticsearch v5+====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/ekyle/ Kyle Lahnakoski] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; ekyle&lt;br /&gt;
&lt;br /&gt;
[https://github.com/klahnakoski/ActiveData/blob/dev/docs/Outreachy%20Proposal.md LIVE DOCUMENT WITH ANSWERS]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;About ActiveData&#039;&#039; &amp;lt;br /&amp;gt;&lt;br /&gt;
ActiveData is a publicly accessible data warehouse holding many billions of records, for some dozen+ datasets concerning Mozilla&#039;s testing infrastructure: This includes test results, job results, code coverage, and extracts from other systems. The ActiveData code itself is really only a stateless query translation layer; leaving the hard work of high speed filtering and aggregation to Elasticsearch.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Background&#039;&#039; &amp;lt;br /&amp;gt;&lt;br /&gt;
Elasticsearch is designed for text search, but can also serve as an extremely fast data warehouse. The speed comes from using [inverted indices](https://www.elastic.co/guide/en/elasticsearch/guide/current/inverted-index.html) to provide high performance data filtering and aggregation. Elasticsearch can index almost any JSON document, perform schema merging, and index all its properties, with almost no human intervention. By letting the machine manage the schema, we can query the JSON without transforming it &lt;br /&gt;
&lt;br /&gt;
Elasticsearch does have a drawback: Its query language is designed for text search and is painful to use in a data warehouse context. Hence the need for ActiveData. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Problem&#039;&#039; &amp;lt;br /&amp;gt;&lt;br /&gt;
Elasticsearch 1.7.x was the last version that did a reasonable job of schema merging. Newer versions (2.0+) have disallowed schema merging, preventing ingestion of JSON documents that have a schema that conflicts with previous documents. We would like to use newer, faster, and more stable versions of Elasticsearch, but they can not handle varied data.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Solution&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Build a translator will convert a variety of JSON formats into a single, strictly-typed, schema. The translator will use schema merging and property-renaming to perform a translation on documents before they go Elasticsearch.    &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Benefits&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
ElasticSearch&#039;s schema merging is great, but has always been incomplete: 1. It could not merge inner objects `{&amp;quot;a&amp;quot;:{&amp;quot;b&amp;quot;:1}}` with nested objects `{&amp;quot;a&amp;quot;:[{&amp;quot;b&amp;quot;:0}]}`, and  2. Merging numbers `{&amp;quot;a&amp;quot;: 1}` with strings `{&amp;quot;b&amp;quot;: &amp;quot;1&amp;quot;}` did not cause failure, but did leave the schema ambiguous, and made the queries clumsy.  This upgrade will make ActiveData more flexible, improve service stability, and provide a step towards promoting this project to production.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Required Skills&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Some particular experience will make this task easier (most important first):  &lt;br /&gt;
* Python  &lt;br /&gt;
* SQL and query languages &lt;br /&gt;
* Database normalization and functional dependencies  &lt;br /&gt;
* Denormalization and data warehousing  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;References&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
1. Similar project for smaller data: [Mapping JSON to strict DB schema](https://github.com/klahnakoski/JSONQueryExpressionTests/blob/master/docs/GSOC%20Proposal.md) &amp;lt;br /&amp;gt;&lt;br /&gt;
2. [ELT](https://en.wikipedia.org/wiki/Extract,_transform,_load) Links: [A](http://hexanika.com/why-shift-from-etl-to-elt/), [B](https://www.ironsidegroup.com/2015/03/01/etl-vs-elt-whats-the-big-difference/) &amp;lt;br /&amp;gt;&lt;br /&gt;
3. [data cubes](https://en.wikipedia.org/wiki/OLAP_cube) &amp;lt;br /&amp;gt;&lt;br /&gt;
4. [fact tables](https://en.wikipedia.org/wiki/Fact_table) in a [data warehouse](https://en.wikipedia.org/wiki/Data_warehouse).&amp;lt;br /&amp;gt;&lt;br /&gt;
5. [MDX](https://en.wikipedia.org/wiki/MultiDimensional_eXpressions). &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Upgrade Lightbeam====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [Paul Theriault https://mozillians.org/en-US/u/pauljt/]&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; pauljt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039; &lt;br /&gt;
The Mozilla Lightbeam extension is a key tool for Mozilla to educate the public about privacy and it’s due for an upgrade. It needs to be rewritten as a Web Extension and we will take this opportunity to investigate potential new features or integrations with Firefox. We are seeking a candidate with web development skills to work with the security engineering team to make this happen. We are looking for a front-end web developer who is passionate about privacy on the web. They should have an interest in design and visualization as the key part of this upgrade would be exploring how we can convey complex privacy &amp;amp; security concepts to the all Firefox users. Experience working with Web Extensions is a bonus but not required.&lt;br /&gt;
&lt;br /&gt;
====Improve DevTools Network Monitor====&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [https://mozillians.org/en-US/u/odvarko/ Jan Odvarko] &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;IRC:&#039;&#039;&#039; Honza&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Project Description:&#039;&#039;&#039;&lt;br /&gt;
&amp;quot;Firefox Developer tools can be used to intercept all HTTP requests and responses executed by a page. This feature is represented by a Network panel that shows list of all HTTP requests and related details (like e.g. headers, formatted response body, timings, etc.)&lt;br /&gt;
&lt;br /&gt;
In order to improve value of the panel we&#039;d like to connect the existing UI to other backends performing HTTP activity (for example, Chrome browser or NodeJS) and adapt our current remote protocol (RDP) to a new environment.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Outreachy Program Cohort: Round 13 (Dec 2016-March 2017)==&lt;br /&gt;
&lt;br /&gt;
==== Improve the first-run experience of Firefox&#039;s location bar ====&lt;br /&gt;
Mentor: [https://mozillians.org/u/gijs/ Gijs Kruitbosch] &amp;lt;br /&amp;gt;&lt;br /&gt;
Participant: Svetlana Orlik&lt;br /&gt;
&lt;br /&gt;
Firefox&#039;s location bar currently uses your bookmarks, history and search engine to provide you with useful search results. When you&#039;re a new Firefox user, your bookmarks and history are empty, and so the initial experience can feel disorienting and unhelpful.&lt;br /&gt;
&lt;br /&gt;
We&#039;d like to provide users with an initial set of &amp;quot;autocompletion&amp;quot; results that provide domains that they are likely to navigate to. So that even when you&#039;re a new user, if you type in &amp;quot;face&amp;quot;, we autocomplete to &amp;quot;facebook.com&amp;quot;, and so on.&lt;br /&gt;
&lt;br /&gt;
====Make WebExtension Development More Awesome====&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/kumar/ Kumar McMillan] &amp;lt;br /&amp;gt;&lt;br /&gt;
Participants: [https://mozillians.org/en-US/u/sj/ Shubheksha Jalan] and Elvina Valieva &amp;lt;br /&amp;gt;&lt;br /&gt;
[https://medium.com/@shubheksha Shubhesksha&#039;s Blog] &amp;lt;br /&amp;gt;&lt;br /&gt;
[https://saintsebastian.github.io/ Elvina&#039;s Blog] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://developer.mozilla.org/en-US/Add-ons/WebExtensions WebExtensions] let anyone extend and customize their web browser, such as blocking ads on every website they visit. This is an exciting time for the API because it’s now possible to write a single extension that works in both Firefox, [https://developer.chrome.com/extensions Chrome], [https://dev.opera.com/extensions/ Opera], and soon IE. At Mozilla we provide several tools and resources to make developing extensions fun and easy but we’d like to make this development experience even better.&lt;br /&gt;
&lt;br /&gt;
The participant will improve the productivity of WebExtension developers in the following ways. Most of these tasks involve changing the [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext web-ext] command line tool but others may involve writing documentation or example code.&lt;br /&gt;
&lt;br /&gt;
* Utilize common web developer tools when building extensions.&lt;br /&gt;
** Craft examples that show how to use [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import ES6 imports] and other features that typically require code transpilation with [http://babeljs.io/ babel] or [http://rollupjs.org/ rollup]. [https://github.com/mdn/webextensions-examples/issues/97 More info].&lt;br /&gt;
* Automatically keep the web-ext tool up to date to avoid bugs.&lt;br /&gt;
** Alert the developer if their version of web-ext is out of date. [https://github.com/mozilla/web-ext/issues/142 More info].&lt;br /&gt;
* Offer extension “linting” in code editors&lt;br /&gt;
** Integrate web-ext&#039;s existing [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext#Checking_for_code_lint lint checking feature] into popular editors such as [https://atom.io/ Atom], [http://www.vim.org/ Vim], and [https://www.gnu.org/software/emacs/ Emacs]. [https://github.com/mozilla/web-ext/issues/539 More info].&lt;br /&gt;
* Add a new web-ext command that lays out a directory structure for an extension&lt;br /&gt;
** This command would automatically generate a manifest.json file and other common files to help the developer get started on a new extension. [https://github.com/mozilla/web-ext/issues/540 More info].&lt;br /&gt;
* Build a mock WebExtension API for use in automated tests&lt;br /&gt;
** Invent a JavaScript library that developers can use to execute tests for their extension without having to launch a web browser. [https://github.com/mozilla/web-ext/issues/497 More info].&lt;br /&gt;
&lt;br /&gt;
====Build a Library of Inclusion Best Practices and Case Studies====&lt;br /&gt;
Mentors: [https://mozillians.org/en-US/u/lshapiro/ Larissa Shapiro] and [https://mozillians.org/en-US/u/lmn/ Lizz Noonan] &amp;lt;br /&amp;gt;&lt;br /&gt;
Participants: Bee Padalkar, [https://mozillians.org/en-US/u/kristi.progri/ Kristi Progri], and Nasma Ahmed &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://networksfordata.wordpress.com/ Bee&#039;s Blog] &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://kristiprogri.com/ Kristi&#039;s Website] &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.nasmaahmed.ca Nasma&#039;s Website] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This project is a community research project to identify and document examples of successful inclusive teams and communities within Mozilla, in order to amplify successes and highlight bright spots. The Outreachy participant will assess programs for suitability, and then interview participants, and then document case studies, referencing appropriate research and industry/community best practices. This is a great opportunity for a person interested in Diversity and Inclusion, Community Building, or User/Community research.&lt;br /&gt;
&lt;br /&gt;
====Improving user experience of Firefox Accounts==== &lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/vladikoff/ Vlad Filippov] &amp;lt;br /&amp;gt;&lt;br /&gt;
Participant: Divya Biyani &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://divyabiyani.strikingly.com/ Divya&#039;s Website] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are several pending initiatives that are focused on improving the user experience of Firefox Sync and Firefox Accounts. As part of this Outreachy internship project, the participant will be involved in improving user interaction, running experiments, and measuring success of certain features. &lt;br /&gt;
&lt;br /&gt;
Her software engineering skills will assist in the following:&lt;br /&gt;
* Developing new application improvements to reduce the number of user errors on password reset, password change, and sign up flows. &lt;br /&gt;
* Improving the verification rate and speed of new users signing up for Firefox Accounts.&lt;br /&gt;
&lt;br /&gt;
To learn more about Firefox Accounts project check out: [https://fxa.readthedocs.io/en/latest/ fxa.readthedocs.io/en/latest/]&lt;br /&gt;
&lt;br /&gt;
==== Add support for OpenAPI to Kinto ====&lt;br /&gt;
&lt;br /&gt;
Mentors: [https://mozillians.org/en-US/u/ethan.glasser.camp/ Ethan Glasser-Camp] and [https://mozillians.org/en-US/u/natim/ Rémy Hubscher] &amp;lt;br /&amp;gt;&lt;br /&gt;
Participants: Mansimar Kaur and Gabriela Surita &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://mansimar.com Mansimar&#039;s Website] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kinto has a fairly comprehensive set of documentation that describes its API. However, the cool new thing is OpenAPIs (formerly known as Swagger). Documenting our API using this specification would facilitate the implementation of client libraries in other languages as well as open the door to lots of other projects, including &amp;quot;interactive&amp;quot; documentation which has buttons that launch requests against a live server.&lt;br /&gt;
&lt;br /&gt;
The Kinto team&#039;s participants will work on developing OpenAPI support in Kinto. The reservoir of tasks includes:&lt;br /&gt;
* Document the existing API by writing an OpenAPI specification. This will involve reading the existing documentation and experimenting with the Kinto server.&lt;br /&gt;
* Add runnable examples to the documentation. This will involve comparative analyses of available tools as well as working with our Sphinx-based documentation.&lt;br /&gt;
* Add an automated test that detects when the spec is out-of-date. This would involve working with our py.test-based unit testing suite.&lt;br /&gt;
* Write a mechanism to generate an OpenAPI specification from the Kinto source code. This would require writing Python code that hooks into the server code to identify APIs.&lt;br /&gt;
* Investigate the use of the OpenAPI specification to do fuzz-testing against the Kinto server. This would require an investigation of fuzzing tools and learning how to use them in a customized way.&lt;br /&gt;
&lt;br /&gt;
==== Azure Blob Storage client library ====&lt;br /&gt;
Mentors: [https://mozillians.org/en-US/u/jhford/ John Ford] &amp;lt;br /&amp;gt;&lt;br /&gt;
Participant: Elena Solomon &amp;lt;br /&amp;gt;&lt;br /&gt;
[https://gabsurita.wordpress.com Elena&#039;s Blog]&lt;br /&gt;
&lt;br /&gt;
The Taskcluster team at Mozilla builds an automation platform, similar in scope&lt;br /&gt;
to Buildbot and Jenkins.  The project is built to support the continuous&lt;br /&gt;
integration testing of Mozilla projects like Firefox and Rust as well as&lt;br /&gt;
projects that Mozilla participates in like NSS.  Taskcluster is a built&lt;br /&gt;
using distributed &#039;cloud&#039; computing services where possible.  We use the Azure&lt;br /&gt;
Storage framework for storing a lot of things.  This library has Queue storage,&lt;br /&gt;
Table Storage.  We have a wrapper that we like a lot called [https://www.npmjs.com/package/azure-entities &#039;azure-entities&#039;] in NPM.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to write a library to wrap the Azure Blob Storage&lt;br /&gt;
service.  A preliminary effort has [https://github.com/taskcluster/aws-provisioner/blob/master/src/container.js already been done].  This project&#039;s participants will take this work and extend it to cover the majority of the&lt;br /&gt;
[https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/ Blob Storage API].  &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We specifically would like to have the following:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
1. All Rest API endpoints [https://msdn.microsoft.com/library/dd135733.aspx implemented] using input validation to ensure that only valid data makes it to the API.  [http://json-schema.org/ JSON Schema] is a great tool for this &amp;lt;br /&amp;gt;&lt;br /&gt;
2. Ability to specify a JSON Schema to validate objects that we&#039;ll store or append to blobs, and also that we read out from them &amp;lt;br /&amp;gt;&lt;br /&gt;
3. Ability to use [https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-shared-access-signature-part-1/ Shared Access Secrets (SAS)] as authentication &amp;lt;br /&amp;gt;&lt;br /&gt;
4. Stretch goal of adding SAS for Blob storage to our [https://github.com/taskcluster/taskcluster-auth authorization service] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Improve Template Logic for Taskcluster-Github ====&lt;br /&gt;
&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/bstack/ Brian Stack] and [https://mozillians.org/en-US/u/dustin/ Dustin Mitchell] &amp;lt;br /&amp;gt;&lt;br /&gt;
Participant: [https://mozillians.org/en-US/u/ireneOwl/ Irene Storozhko] &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Taskcluster team at Mozilla builds an automation platform, similar in scope&lt;br /&gt;
to Buildbot and Jenkins.  The project is built to support the continuous&lt;br /&gt;
integration testing of Mozilla projects like Firefox and Rust as well as&lt;br /&gt;
projects that Mozilla participates in like NSS.  Many of these projects&lt;br /&gt;
are developed on Github, and the Taskcluster-Github service acts as&lt;br /&gt;
the interface&lt;br /&gt;
between the two systems, creating tasks in response to Github events and&lt;br /&gt;
posting status updates back to Github.  As other Mozillians have started using&lt;br /&gt;
Taskcluster-Github, they have identified some issues and missing features&lt;br /&gt;
in the service.  With those fixed, more Mozillians can use TaskCluster&lt;br /&gt;
to improve the web.&lt;br /&gt;
&lt;br /&gt;
This project involves addressing some of the more pressing user-identified issues with TaskCluster.  &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is a collection of smaller projects:&amp;lt;br /&amp;gt;&lt;br /&gt;
* Add support for creating tasks in response to new Git tags.  This would allow users to run &amp;quot;release&amp;quot; tasks when they push a new version tag, for example. &amp;lt;br /&amp;gt;&lt;br /&gt;
* Make the repository enrollment process &amp;quot;self-serve&amp;quot;.  Currently, if a team wants to use Taskcluster-Github, they must ask a person on the Taskcluster team to set that up for them.  That can be slow and discourages experimentation.  With this project completed, users can set up a new repository with a few clicks. &amp;lt;br /&amp;gt;&lt;br /&gt;
* Add &amp;quot;build shields&amp;quot;, similar to http://shields.io/ that will show the latest status of a Taskcluster-Github build or test run.&lt;br /&gt;
&lt;br /&gt;
====Webcompat.com Content &amp;amp; Participation Experience Researcher====&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/astevenson/ Adam Stevenson] &amp;lt;br /&amp;gt;&lt;br /&gt;
Participant: Mesha Lockett &amp;lt;br /&amp;gt;&lt;br /&gt;
[http://meshalockett.com/ Mesha&#039;s website]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mozilla&#039;s Web Compatibility team builds and maintains a website called webcompat.com that allows individuals to easily report site compatibility issues - and to allow us to better understand the larger picture of compatibility issues affecting Firefox users on the web.&lt;br /&gt;
&lt;br /&gt;
In this Outreachy project, the participant will commit to one or more of the following projects to help us improve our on-boarding process for new contributors:&lt;br /&gt;
&lt;br /&gt;
*Review &amp;amp; update web compatibility documentation&lt;br /&gt;
*Identify and promote good features and bugs that need a contributor on social networks&lt;br /&gt;
*Make creative assets to be used on webcompat.com&lt;br /&gt;
*Review the user experience for contributors to webcompat.com&lt;br /&gt;
*Help redesign the contributors page on webcompat.com&lt;br /&gt;
*Create screencasts or scripts for screencasts that explain how to contribute to webcompat.com&lt;br /&gt;
*Assess the current workflow and suggest areas for improvement&lt;br /&gt;
&lt;br /&gt;
====Make Treeherder faster with ReactJS====&lt;br /&gt;
&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/camd/ Cameron Dawson] &amp;lt;br /&amp;gt;&lt;br /&gt;
Participant: Casey Williams&lt;br /&gt;
&lt;br /&gt;
Treeherder is growing.  More people are using it every day.  And the amount of data it displays is also growing.  So we need to expand its ability to scale to more and more data.  Treeherder is primarily written in AngularJS on the front-end.  However, we display thousands of small objects on the main landing page.  Using Angular’s ng-repeat for this proved unacceptably slow.  It was converted to using JQuery and raw JavaScript DOM manipulation which has been acceptably fast for a while, but is harder to maintain.  ReactJS has been used in other parts of the product to significantly improve performance and is easier to read and edit.  The participant will convert the existing job matrix rendering to use ReactJS.&lt;br /&gt;
&lt;br /&gt;
= For Future Applicants = &lt;br /&gt;
* Next Outreachy round is Winter 2016-17. Keep in touch by reading here or on gnome.org/outreachy to learn application deadlines.&lt;br /&gt;
&lt;br /&gt;
== Application Process ==&lt;br /&gt;
Applicants and mentors, please review the [https://wiki.gnome.org/Outreachy#Program_Details Outreachy Eligibility and Application Information page] to learn more about applying for Outreachy.&lt;br /&gt;
&lt;br /&gt;
First steps for applicants to Mozilla:&lt;br /&gt;
# Set up [https://developer.mozilla.org/en-US/docs/Mozilla/QA/Getting_Started_with_IRC IRC].&lt;br /&gt;
# Set up a [https://bugzilla.mozilla.org Bugzilla] account and a [https://mozillians.org Mozillians] profile. Please include your IRC nickname in both of these accounts so mentors can work with you more easily. For example, Eve Smith would set their Bugzilla name to &amp;quot;Eve Smith (:esmith)&amp;quot;, where esmith is their IRC nick.&lt;br /&gt;
# Please look at the projects below, consider your options, and chat with Mozilla mentors on IRC. You need to make a small contribution to the area you wish to apply for. &lt;br /&gt;
#* To chat with Mozilla mentors, join the #outreachy channel on &#039;&#039;&#039;irc.mozilla.org&#039;&#039;&#039;.&lt;br /&gt;
#* To ask general questions about Outreachy or the application process, you can also try #outreachy IRC channel on irc.gnome.org.&lt;br /&gt;
&lt;br /&gt;
==Projects to Apply for==&lt;br /&gt;
Outreachy Round 13 applications have closed, but we encourage you to apply to the next round of projects in April. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Got Questions? Ask:&lt;br /&gt;
* Outreachy Coordinator: [https://mozillians.org/en-US/u/lmn/ Lizz Noonan]&lt;br /&gt;
* IRC: #outreachy&lt;br /&gt;
&lt;br /&gt;
=Past Outreachy/OPW internships=&lt;br /&gt;
&lt;br /&gt;
{{#subpages:}}&lt;br /&gt;
&lt;br /&gt;
==Complete List of Participants==&lt;br /&gt;
===ROUND 12===&lt;br /&gt;
====Ana Ribero====&lt;br /&gt;
* Mentor: [https://mozillians.org/en-US/u/davehunt/ Dave Hunt]&lt;br /&gt;
* Project: Enhancements to Python testing tool plugin for generation of HTML reports&lt;br /&gt;
* [https://mozillians.org/en-US/u/anaribeiro/ Mozillians Profile]&lt;br /&gt;
* [http://outreachy.anaplusplus.com/ Participant Blog]&lt;br /&gt;
&lt;br /&gt;
====Rakhi Sharma====&lt;br /&gt;
* Mentor: [https://mozillians.org/en-US/u/Gijs/ Gijs Kruitbosch]&lt;br /&gt;
* Project: Make Firefox look great on desktop!&lt;br /&gt;
* [https://mozillians.org/en-US/u/Rakhi/ Mozillians Profile]&lt;br /&gt;
* [http://rakhish.wordpress.com/ Participant Blog]&lt;br /&gt;
&lt;br /&gt;
====Manel Rhaiem====&lt;br /&gt;
* Mentors: [https://mozillians.org/en-US/u/kglazko/ Kate Glazko] and [https://mozillians.org/en-US/u/marcia/ Marcia Knous]&lt;br /&gt;
* Project: Project SmartHome prototyping &lt;br /&gt;
* [https://mozillians.org/en-US/u/Mermi/ Mozillians Profile]&lt;br /&gt;
* [mermi.xyz Participant Blog]&lt;br /&gt;
&lt;br /&gt;
====Deepthi Venkitaramanan====&lt;br /&gt;
* Mentor: [https://mozillians.org/en-US/u/miketaylr/ Mike Taylor]&lt;br /&gt;
* Project: Webcompat.com Web Application Engineer &lt;br /&gt;
* [https://mozillians.org/en-US/u/venkid/ Mozillians Profile]&lt;br /&gt;
* [http://venkid.com/portfolio.html#Outreachy Participant Blog]&lt;br /&gt;
&lt;br /&gt;
====Benjamin &amp;quot;Benny&amp;quot; Forehand, Jr.====&lt;br /&gt;
* Mentor: John Dorlus &amp;lt;jdorlus@mozilla.com&amp;gt;, Silne30 on IRC&lt;br /&gt;
* Project: Convert Mozmill tests to Marionette &lt;br /&gt;
* [https://mozillians.org/en-US/u/bennyjr35/ Mozillians Profile] &lt;br /&gt;
* [https://www.bennyjr.xyz/blog and https://benjaminfjr.blogspot.com/ Participant Blog]&lt;br /&gt;
&lt;br /&gt;
====Ipsha Bhidonia====&lt;br /&gt;
* Mentor: [https://mozillians.org/en-US/u/natim/ Remy Hubscher]&lt;br /&gt;
* Project: Realtime Push Notifications for Kinto &lt;br /&gt;
* [https://mozillians.org/en-US/u/ipsha21/ Mozillians Profile]&lt;br /&gt;
* [https://ipsha218.wordpress.com/feed/ Participant Blog]&lt;br /&gt;
&lt;br /&gt;
====Anjana Vakil====&lt;br /&gt;
* Mentor: [https://mozillians.org/en-US/u/maja_zf/ Maja Frydrychowicz]&lt;br /&gt;
* Participant: Test-driven Refactoring of Marionette&#039;s Python Test Runner&lt;br /&gt;
* [https://mozillians.org/en-US/u/vakila/ Mozillians Profile]&lt;br /&gt;
&lt;br /&gt;
====Rutuja Surve====&lt;br /&gt;
* Mentor: [https://mozillians.org/en-US/u/mconley/ Mike Conley]&lt;br /&gt;
* Project: Content Process Management Tool&lt;br /&gt;
* [https://mozillians.org/en-US/u/Rutuja/ Mozillians Profile]&lt;br /&gt;
* [https://rutujasurveblog.wordpress.com/2016/05/17/outreachy-2016-my-first-post/ Participant Blog]&lt;br /&gt;
&lt;br /&gt;
====Andrea Del Rio Lazo====&lt;br /&gt;
* Mentors: [https://mozillians.org/en-US/u/wcosta/ Wander Lairson Costa] and [https://mozillians.org/en-US/u/dustin/ Dustin J. Mitchell] &amp;lt;br /&amp;gt;&lt;br /&gt;
* Project: Taskcluster tools UI/UX improvements&lt;br /&gt;
* [https://mozillians.org/en-US/u/andreadelrio/ Mozillians Profile]&lt;br /&gt;
&lt;br /&gt;
====Kristel Teng====&lt;br /&gt;
* Mentor: [https://mozillians.org/en-US/u/jonasfj/ Jonas Finnemann Jensen] and [mailto:bstack@mozilla.com Brian Stack] &amp;lt;br /&amp;gt;&lt;br /&gt;
* Project: Automation of Taskcluster Documentation&lt;br /&gt;
* [https://mozillians.org/en-US/u/kt/ Mozillians Profile]&lt;br /&gt;
&lt;br /&gt;
====Katie Broida====&lt;br /&gt;
* Mentor: [https://mozillians.org/en-US/u/jaws/ Jared Wein]&lt;br /&gt;
* Project: Fixing some papercuts in the Firefox desktop user interface&lt;br /&gt;
* [https://mozillians.org/en-US/u/kbroida/ Mozillians Profile]&lt;br /&gt;
* [http://blog.katiebroida.com/ Participant Blog]&lt;br /&gt;
&lt;br /&gt;
====Decky Coss====&lt;br /&gt;
* Mentor: [https://mozillians.org/en-US/u/ehsan/ Ehsan Akhgari]&lt;br /&gt;
* Project: Web Platform Test Crime Scene Investigation&lt;br /&gt;
* [https://mozillians.org/en-US/u/deckycoss/ Mozillians Profile]&lt;br /&gt;
* [http://cosstropolis.com/blog/ Participant Blog]&lt;br /&gt;
&lt;br /&gt;
====Jen Kagan====&lt;br /&gt;
* Mentors: [https://mozillians.org/en-US/u/6a68/ Jared Hirsch] (_6a68 on IRC) and [https://mozillians.org/en-US/u/djustice/ Dave Justice] (JSON_voorhees on IRC) &amp;lt;br /&amp;gt;&lt;br /&gt;
* Project: Prototype new Firefox features with the Test Pilot team&lt;br /&gt;
* [https://mozillians.org/en-US/u/kaganjd/ Mozillians Profile]&lt;br /&gt;
&lt;br /&gt;
===ROUND 11===&lt;br /&gt;
&lt;br /&gt;
==== Lauren Conrad ====&lt;br /&gt;
&lt;br /&gt;
Participant: [https://mozillians.org/en-US/u/laurenconrad1993/ Lauren Conrad]&lt;br /&gt;
&lt;br /&gt;
Based in: Rye Brook, New York USA. (For anyone who doesn&#039;t know, that&#039;s a suburb right outside New York City!)&lt;br /&gt;
&lt;br /&gt;
Mentor: Joni Savage &lt;br /&gt;
&lt;br /&gt;
&amp;quot;I am thrilled to be working for such a well known company and to be translating my writing skills into the tech world.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Project:  [https://wiki.mozilla.org/Outreachy/2016/December_to_March#SUMO_-_Build_a_tutorial_or_training_tool_for_new_technical_writers SUMO - Build a tutorial or training tool for new technical writers]&lt;br /&gt;
&lt;br /&gt;
Project blog: [http://www.laureneconrad.com www.laureneconrad.com]&lt;br /&gt;
&lt;br /&gt;
==== Roxana Ilie ====&lt;br /&gt;
Participant: [https://mozillians.org/en-US/u/roxana.ilie23/ Roxana Ilie]&lt;br /&gt;
&lt;br /&gt;
Based in: Bucharest, Romania&lt;br /&gt;
&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/pmcmanus/ Patrick McManus]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I am very excited to be joining the Mozilla Outreach Program because after enjoying so much using the browser, I will have the opportunity to give something back and use my knowledge in order to help the community to improve Mozilla Firefox.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Project: [https://wiki.mozilla.org/Outreachy/2016/December_to_March#Battery_Friendly_Platform_Networking_Deadline_Scheduler Battery Friendly Platform Networking Deadline Scheduler]&lt;br /&gt;
&lt;br /&gt;
==== Richa Rupela ====&lt;br /&gt;
&lt;br /&gt;
Participant: Richa Rupela&lt;br /&gt;
&lt;br /&gt;
Based in: Bikaner, Rajasthan, India&lt;br /&gt;
&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/annevk/ Anne van Kesteren]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Super excited to work on Whatwg project, mentored by Anne van Kesteren. Mozilla Outreach program has given me a great opportunity of working with a such a elite community. Looking forward to an awesome winter where I will work on the HTML standards!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Richa&#039;s project blog: https://richarupela.wordpress.com/&lt;br /&gt;
&lt;br /&gt;
Project: [https://wiki.mozilla.org/Outreachy/2016/December_to_March#Contribute_to_the_HTML_Standard.21 Contribute to the HTML Standard!]&lt;br /&gt;
&lt;br /&gt;
==== Shweta Oak ====&lt;br /&gt;
Based in: Mumbai, India&lt;br /&gt;
&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/alexis/ Alexis Metaireau]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I am extremely excited to be a part of an organization that is so instrumental in the development of the open web and get a chance to make contributions that enrich the lives of people.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[https://wiki.mozilla.org/Outreachy/2016/December_to_March#Kinto_.E2.80.94_Make_instances_discoverable Project: Kinto — Make instances discoverable]&lt;br /&gt;
&lt;br /&gt;
==== Jullie Utsch ====&lt;br /&gt;
Participant: [https://mozillians.org/en-US/u/jullieutsch/ Jullie Utsch]&lt;br /&gt;
&lt;br /&gt;
Based in: Belo Horizonte - MG Brazil&lt;br /&gt;
&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/ilana/ Ilana Segall]&lt;br /&gt;
&lt;br /&gt;
“What makes me excited about Outreachy: Being part of a great community, sharing with incredible people and taking part in making the tech industry a little more diverse. :)”&lt;br /&gt;
&lt;br /&gt;
Project: [https://wiki.mozilla.org/Outreachy/2016/December_to_March#Visual_Design_with_Research_Data_.5Bno_longer_taking_applications.5D Visual Design with Research Data]&lt;br /&gt;
&lt;br /&gt;
==== Cynthia Anyango ====&lt;br /&gt;
Participant: [https://mozillians.org/en-US/u/acynthiaanyango/ Cynthia Anyango]&lt;br /&gt;
Based in: Nairobi , Kenya&lt;br /&gt;
&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/kthiessen/ Karl Thiessen]&lt;br /&gt;
 &lt;br /&gt;
&amp;quot;I am excited to join Mozilla for the outreach program especially the project I am attached to because I get to contribute to open source Mozilla services that make lives better&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Project: [https://wiki.mozilla.org/Outreachy/2016/December_to_March#Enumerate_.28and_Dockerize.29_the_tests.21_.28Quality_Assurance Enumerate (and Dockerize) the tests! (Quality Assurance)]&lt;br /&gt;
&lt;br /&gt;
==== Nikki Bee ====&lt;br /&gt;
Participant: [https://mozillians.org/en-US/u/nikkicubed/ Nikki Bee]&lt;br /&gt;
&lt;br /&gt;
Based in: Alberta, Canada&lt;br /&gt;
&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/jdm/ Josh Matthews]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I&#039;m excited at the chance to learn Rust and contribute to a major FOSS project, especially for an organization that has been as welcoming as Mozilla.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Project:  [https://wiki.mozilla.org/Outreachy/2016/December_to_March#Servo:_Complete_implementation_of_Fetch_standard Servo: Complete implementation of Fetch standard]&lt;br /&gt;
&lt;br /&gt;
==== My Lê ==== &lt;br /&gt;
Based in: Paris - France&lt;br /&gt;
&lt;br /&gt;
Mentor: [https://mozillians.org/en-US/u/ricardo/ Ricardo Vazquez]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Proud to be part of Mozilla Outreachy Program, sharing knowledge and contributing to the Open Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Project: [https://wiki.mozilla.org/Outreachy/2016/December_to_March#Open_Source_Designer.2C_Mozilla_Foundation Open Source Designer, Mozilla Foundation]&lt;br /&gt;
&lt;br /&gt;
===ROUND 10===&lt;br /&gt;
&lt;br /&gt;
https://wiki.gnome.org/Outreachy/2015/MayAugust#Participating_Organizations&lt;br /&gt;
&lt;br /&gt;
Thalia Chan (Tchanders), London, UK - Socorro crash statistics front-end development - Adrian Gaudebert&lt;br /&gt;
&lt;br /&gt;
Alice Duarte Scarpa (adusca), Rio de Janeiro, Brazil - Integrate the ability to arbitrarily retrigger jobs into functional tools &amp;amp; production quality code - Armen Zambrano Gasparnian&lt;br /&gt;
&lt;br /&gt;
Gloria Dwomoh (blossomica), Piraeus, Greece - Air Mozilla web design and development - Peter Bengtsson &lt;br /&gt;
&lt;br /&gt;
===ROUND 9===&lt;br /&gt;
&lt;br /&gt;
https://wiki.gnome.org/OutreachProgramForWomen/2014/DecemberMarch#Participating_Organizations&lt;br /&gt;
&lt;br /&gt;
Lisa Hewus Fresh Portland, OR, USA - Air Mozilla Web Design and Development - Peter Bengtsson&lt;br /&gt;
&lt;br /&gt;
Tessy Joseph (tessy), Kerala, India - One and Done - Rebecca Billings&lt;br /&gt;
&lt;br /&gt;
Barbara Miller (galgeek), Portland, OR, USA - QA/Automation - Henrik Skupin&lt;br /&gt;
&lt;br /&gt;
Adam Okoye (aokoye), Portland, OR, USA - SUMO/Input Web Design and Development - Will Kahn-Greene &lt;br /&gt;
&lt;br /&gt;
===ROUND 8===&lt;br /&gt;
&lt;br /&gt;
https://wiki.gnome.org/OutreachProgramForWomen/2014/MayAugust#Participating_Organizations&lt;br /&gt;
&lt;br /&gt;
Francesca Ciceri (MadameZou), Massa, Italy - Bug wrangling - Liz Henry&lt;br /&gt;
&lt;br /&gt;
Joelle Fleurantin (Queeniebee), New York, NY, USA - Maintaining the Gateway: Improving Mozilla Wiki through updating Information Architecture and Theme - Christie Koehler&lt;br /&gt;
&lt;br /&gt;
Maja Frydrychowicz (maja_zf), Montreal, Quebec, Canada - Django development for One and Done - Liz Henry&lt;br /&gt;
&lt;br /&gt;
Sara Mansouri (sara_mansouri), Saskatoon, Saskatchewan, Canada - Redevelopment of badges.mozilla.org and other contributor gamification infrastructure - Larissa Shapiro &lt;br /&gt;
&lt;br /&gt;
===ROUND 7===&lt;br /&gt;
&lt;br /&gt;
https://wiki.gnome.org/OutreachProgramForWomen/2013/DecemberMarch#Participating_Organizations&lt;br /&gt;
&lt;br /&gt;
Isabelle Carter (ibnc), Springfield, MO, USA - Servo - Lars Bergstrom&lt;br /&gt;
&lt;br /&gt;
Jennie Rose Halperin (jennierose), Carrboro, NC, USA - Community building - Larissa Shapiro&lt;br /&gt;
&lt;br /&gt;
Jennifer &amp;quot;Nif&amp;quot; Ward (nif), Oberlin, OH, USA - Rust - Tim Chevalier&lt;br /&gt;
&lt;br /&gt;
Sabina Brown (binab), Santa Cruz, CA, USA - SUMO (Support.Mozilla.org) community building - Ibai Garcia &lt;br /&gt;
&lt;br /&gt;
===ROUND 6===&lt;br /&gt;
&lt;br /&gt;
https://wiki.gnome.org/OutreachProgramForWomen/2013/JuneSeptember#Participating_Organizations&lt;br /&gt;
&lt;br /&gt;
coordinators: Selena Deckelmann and Liz Henry&lt;br /&gt;
&lt;br /&gt;
Gabriela Salvador Thumé (gabithume), São Carlos, São Paulo, Brazil - Socorro - Selena Deckelmann&lt;br /&gt;
&lt;br /&gt;
Tiziana Sellitto (tiziana), Salerno, Italy - Bug wrangling - Liz Henry &lt;br /&gt;
&lt;br /&gt;
===ROUND 5===&lt;br /&gt;
&lt;br /&gt;
https://wiki.gnome.org/OutreachProgramForWomen/2013/JanuaryApril#Participating_Organizations&lt;br /&gt;
&lt;br /&gt;
Lianne Lee (llmelon), Sydney, Australia - Release metrics dashboard - Lukas Blakk&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Community:SummerOfCode17&amp;diff=1164339</id>
		<title>Community:SummerOfCode17</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Community:SummerOfCode17&amp;diff=1164339"/>
		<updated>2017-03-02T16:11:52Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Automation &amp;amp; Tools */ add email&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is Mozilla&#039;s list of green-lit project proposals for the 2017 Google Summer of Code. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Are you a student looking to apply to GSoC with Mozilla?&amp;lt;/b&amp;gt; You&#039;re in the right place. This page lists all the confirmed [[SummerOfCode|Google Summer of Code]] projects. New suggestions can be made on [[Community:SummerOfCode17:Brainstorming|the Brainstorming page]]. Do not edit this page yourself; contact Mike Hoye or Florian for edits.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re interested in participating in Mozilla&#039;s GSoC program, you can choose from the list below, &#039;&#039;&#039;but you do not have to&#039;&#039;&#039;. You can submit a proposal for your own idea. You should look at the [[Community:SummerOfCode17:Brainstorming|guidelines]], though, and discuss your ideas or application in the #introduction channel on IRC.Mozilla.org. This is important, as GSoC projects &#039;&#039;&#039;must have&#039;&#039;&#039; a supporting member of the Mozilla community to evaluate and mentor them, named in the application.&lt;br /&gt;
&lt;br /&gt;
===Application Advice===&lt;br /&gt;
&lt;br /&gt;
You should do the following:&lt;br /&gt;
&lt;br /&gt;
* Talk to the mentor. Contact details are on this page; if all you have is a nickname, reach out to them on IRC.&lt;br /&gt;
* Read the [https://flossmanuals.net/GSoCStudentGuide/ GSoC Student Guide] and follow its advice.&lt;br /&gt;
* Read [http://blog.gerv.net/2006/05/how_not_to_apply_for_summer_of/ How Not To Apply For Summer Of Code] and avoid doing the things listed there.&lt;br /&gt;
* Read our examples of good applications: [[SummerOfCode/SampleApplications/1|1]], [[SummerOfCode/SampleApplications/2|2]], [[SummerOfCode/SampleApplications/3|3]].&lt;br /&gt;
* Apply on [https://summerofcode.withgoogle.com/ the GSoC site] (note that we have an [[SummerOfCode/ApplicationTemplate|application template]]).&lt;br /&gt;
* It is entirely acceptable to apply for 2 or 3 projects, if more than one catches your eye; if the applications are high quality, that can improve your chances. Applying to more than that will seem like spam.&lt;br /&gt;
&lt;br /&gt;
Questions about individual projects are best addressed to the potential mentor of that project. These should be listed in the table below. If you want to contact a mentor and contact details are not here, ask people in the #introduction channel on IRC: irc://irc.mozilla.org/#introduction. If you have questions of any other sort, send mail to [mailto:mhoye@mozilla.com Mike Hoye]. He will try and respond promptly and direct your questions to the right person.  &lt;br /&gt;
&lt;br /&gt;
===Project List===&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCode|Here are the ideas lists from previous years]].&lt;br /&gt;
&lt;br /&gt;
Proposals can be in almost any part of the Mozilla project - don&#039;t be fooled by the &amp;quot;Code&amp;quot; in &amp;quot;Summer of Code&amp;quot;. If there is no category below for your part of Mozilla, add one!&lt;br /&gt;
&lt;br /&gt;
== Mozilla Platform (Gecko) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| TaskCluster JSON Parameterization&lt;br /&gt;
| Build a powerful JSON parameterization system and use it everywhere&lt;br /&gt;
| JavaScript, Python&lt;br /&gt;
| :dustin&lt;br /&gt;
| :dustin&lt;br /&gt;
| The json-e language supports complex transformations of JSON data.  The project involves completing the specification, implementation (in two languages), and documentation of this language, then using it to support Gecko action and decision task and users of taskcluster-github and taskcluster-hooks.  Success here means that the language is complete and in active use in at least one of the listed contexts.&lt;br /&gt;
|-&lt;br /&gt;
| Livelog Proxy &lt;br /&gt;
| Write a server that privileged-clients can open a HTTPS connection to in-order to expose a webhook that http-clients can call.&lt;br /&gt;
When normal http-clients access the exposed webhooks the connection will be reverse proxied to the&lt;br /&gt;
privileged-clients over their out-going connection.&lt;br /&gt;
| golang, github, http, web sockets, node.js&lt;br /&gt;
| :jonasfj&lt;br /&gt;
| :jonasfj&lt;br /&gt;
| This is like to ngrok and localtunnel.me, read up on those. For performance reasons server should be written in golang, with client libraries in golang and node.js.&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Details&lt;br /&gt;
! Skills Needed&lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| about:telemetry redesign&lt;br /&gt;
| about:telemetry is present on all builds of Firefox as a way for users to view the data being stored and sent via Telemetry. It was built before Firefox had multi-process Telemetry and without a clear design. This has resulted in a confusing HTML UI and barely-comprehensible JS.&lt;br /&gt;
| webtech (HTML+CSS+JS) and Design&lt;br /&gt;
| :chutten&lt;br /&gt;
| chutten@mozilla.com&lt;br /&gt;
| [[Telemetry/GSoC17:AboutTelemetry|Some information]]&lt;br /&gt;
|-&lt;br /&gt;
| Boost Session Restore performance&lt;br /&gt;
| Session (Re)store is important as a key feature of Firefox. Many people rely on it to re-open a tab from the past or recover from an unfortunate power outage. But making it blazing fast has not been our primary focus, until now. Your goal will be to help us make restoring any session snappy and blazing fast. Expect to learn a lot about the Firefox internals and interact with many core engineers during the SoC course.&lt;br /&gt;
| JavaScript&lt;br /&gt;
| :mikedeboer&lt;br /&gt;
| :mikedeboer, :dao&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox for Android ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Implement WebExtension APIs&lt;br /&gt;
| [https://developer.mozilla.org/en-US/Add-ons/WebExtensions WebExtensions] are a cross-browser system for developing browser add-ons. [http://arewewebextensionsyet.com/ Not all APIs are supported] by Firefox for Android yet.&lt;br /&gt;
The goal of this project is to:&lt;br /&gt;
* Implement some of the missing APIs ([https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/contextMenus contextMenus], [https://developer.chrome.com/extensions/browsingData browsingData], [identity?], [proxy?])&lt;br /&gt;
* Add automated test for those APIs&lt;br /&gt;
* Improve the tooling for building WebExtensions for Firefox for Android.&lt;br /&gt;
| Java, JavaScript, Android&lt;br /&gt;
| [https://mozillians.org/en-US/u/sebastian.kaspari/ :sebastian]&lt;br /&gt;
| [https://mozillians.org/en-US/u/sebastian.kaspari/ :sebastian]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Automation &amp;amp; Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
! JS static analysis &lt;br /&gt;
! Bring some static analysis in our Firefox Javascript code&lt;br /&gt;
! Javascript experience, FLOW(?)&lt;br /&gt;
! [mailto:s@mozilla.com Sylvestre]&lt;br /&gt;
! [mailto:s@mozilla.com Sylvestre] &lt;br /&gt;
! This project aims to evaluate and integrate more static analysis for Javascript code into some key sections of the Firefox code. We will focus on deploying [https://github.com/facebook/flow FLOW] on some part of the code as a proof of concept. Depending on the results, this will be extended to more components and/or integration in the developer workflow.&lt;br /&gt;
|-&lt;br /&gt;
! C++ static analysis &lt;br /&gt;
! Add new checkers specific to our base code&lt;br /&gt;
! Strong C++ experience, clang&lt;br /&gt;
! [mailto:s@mozilla.com Sylvestre]&lt;br /&gt;
! [mailto:andi@mozilla.com Andi]&lt;br /&gt;
! In order to tackle issues during the development phase, Mozilla wrote a [https://hg.mozilla.org/mozilla-central/file/tip/build/clang-plugin bunch of static analyzers checkers] based on [http://clang.llvm.org/extra/clang-tidy/ clang-tidy]. In this project, we will focus on writing more checkers (either generic to C/C++ or specific to Gecko programming patterns).&lt;br /&gt;
|-&lt;br /&gt;
! JSON in Sqlite&lt;br /&gt;
! Query JSON Documents stored in Sqlite&lt;br /&gt;
! Database, SQL, Python &lt;br /&gt;
! [mailto:klahnakoski@mozilla.com Kyle Lahnakoski]&lt;br /&gt;
! [mailto:klahnakoski@mozilla.com Kyle Lahnakoski]&lt;br /&gt;
! [https://github.com/klahnakoski/JSONQueryExpressionTests/blob/master/docs/GSOC%20Proposal.md Details]&lt;br /&gt;
|-&lt;br /&gt;
! View details of performance test results&lt;br /&gt;
! At the moment, Perfherder provides summarized views of results of Talos tests and others, but not the individual test results, athough the supporting data exists. This project will be about creating an easy-to-use web interface for visualizing this data that integrates well with the existing Perfherder views&lt;br /&gt;
! HTML, CSS, JS, AngularJS&lt;br /&gt;
! Will Lachance (:wlach)&lt;br /&gt;
! Will Lachance (:wlach), Robert Wood (:rwood)&lt;br /&gt;
!  [https://wiki.mozilla.org/Auto-tools/Projects/Perfherder Perfherder wiki] / [https://bugzilla.mozilla.org/show_bug.cgi?id=1164891 bug] (don&#039;t be fooled by the fact that there is just one bug, there is easily enough work here to fill a gsoc project)&lt;br /&gt;
|-&lt;br /&gt;
! Regression localization from stack traces&lt;br /&gt;
! Tool to blame a patch for causing a newly introduced crash.&lt;br /&gt;
! C++, Python&lt;br /&gt;
! [mailto:marco@mozilla.com Marco]&lt;br /&gt;
! [mailto:marco@mozilla.com Marco]&lt;br /&gt;
! The project would involve creating a tool that analyzes a set of stack traces, performing the intersection with the Firefox call graph (which can be generated using Clang) and a set of recently committed patches.&lt;br /&gt;
|-&lt;br /&gt;
! Improvements for crash clustering&lt;br /&gt;
! Build a tool to improve crash clustering, currently based on the top method of the stack trace.&lt;br /&gt;
! Python, C++&lt;br /&gt;
! [mailto:marco@mozilla.com Marco]&lt;br /&gt;
! [mailto:marco@mozilla.com Marco]&lt;br /&gt;
! The project would involve finalizing https://github.com/marco-c/crashsimilarity; testing it more thoroughly; putting it in production.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mozilla Developer Network ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| MDN Documentation Tester WebExtension&lt;br /&gt;
| Rewrite the [https://github.com/Elchi3/mdn-doc-tests MDN doc tester add-on] as a (well-tested, modern, documented) WebExtension that runs in Firefox, Chrome, Opera, and possibly Edge. Ideally reach feature parity with the existing Add-on SDK add-on and if time allows work on new test ideas that run against the MDN documentation. &lt;br /&gt;
| Add-On/WebExtension experience (JavaScript, HTML, CSS)&lt;br /&gt;
| Florian Scholz&lt;br /&gt;
| Florian Scholz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Release Engineering ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Improve Balrog&#039;s Admin API&lt;br /&gt;
| Make Balrog&#039;s Admin API simpler and easier for clients to work with by moving to a [http://swagger.io/ Swagger]-based approach.&lt;br /&gt;
| python,rest apis&lt;br /&gt;
| Ben Hearsum (bhearsum@mozilla.com)&lt;br /&gt;
| Ben Hearsum (bhearsum@mozilla.com)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Rust ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
! Rust + WebAssembly showcase&lt;br /&gt;
! Rust and WebAssembly are going to be a great pair. Design and implement a simple and attractive web application, in Rust, that demonstrates the power of Rust on the web. Make fixes to upstream projects as necessary. Write a blog post about it.&lt;br /&gt;
! Rust, web development&lt;br /&gt;
! brson&lt;br /&gt;
! brson, badboy&lt;br /&gt;
! cc https://users.rust-lang.org/t/compiling-to-the-web-with-rust-and-emscripten/7627. Full proposal: https://gist.github.com/brson/c936d0f5e5ec8c806a41e23e87455665#file-rust-proj-1-md&lt;br /&gt;
|-&lt;br /&gt;
! Rust dashboard updates&lt;br /&gt;
! Update rusty-dash.com to include additional metrics important to the project. This tool is vital to the day-to-day management of Rust, but it needs some dedicated attention to fulfill its promise.&lt;br /&gt;
! Rust&lt;br /&gt;
! brson&lt;br /&gt;
! brson, aturon?, dikaiosune?&lt;br /&gt;
! Follow on work to https://internals.rust-lang.org/t/the-rust-project-needs-much-better-visibility-into-important-metrics/3367&lt;br /&gt;
|-&lt;br /&gt;
! Rust reproducible builds&lt;br /&gt;
! Make the Rust build process produce the identical binaries when run with identical configurations. This improves the security of the Rust ecosystem by allowing others to&lt;br /&gt;
double-check the official Rust builds&lt;br /&gt;
! Rust, compilers, systems programming&lt;br /&gt;
! brson&lt;br /&gt;
! brson, mw, Manishearth&lt;br /&gt;
! https://internals.rust-lang.org/t/verifying-rustc-releases-with-reproducible-builds/4502. Full proposal: https://gist.github.com/brson/c936d0f5e5ec8c806a41e23e87455665#file-rust-proj-2-md&lt;br /&gt;
|-&lt;br /&gt;
! Abstract the Rust standard library&lt;br /&gt;
! The Rust standard library is very portable, but can be very, very portable. Refactor the&lt;br /&gt;
standard library to pull out a platform abstraction layer.&lt;br /&gt;
! Moderate Rust experience&lt;br /&gt;
! brson&lt;br /&gt;
! brson&lt;br /&gt;
! https://internals.rust-lang.org/t/refactoring-std-for-ultimate-portability/4301&lt;br /&gt;
|-&lt;br /&gt;
! Rust cross-platform showcase project&lt;br /&gt;
! Rust is very portable. Create a single showcase demo project that compiles for Windows, OS X, Linux, Android, iOS, wasm, and microcontrollers. Use real crates to accomplish some real task. Set up CI for all platforms on Travis. To be used as a teaching tool and for regression testing. Write a blog post.&lt;br /&gt;
! Moderate Rust experience&lt;br /&gt;
! brson&lt;br /&gt;
! brson&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! rustc micro-optimization bonanza&lt;br /&gt;
! Just go hog wild finding microoptimizations in rustc. Write a blog post bragging about it.&lt;br /&gt;
! Performance optimization&lt;br /&gt;
! brson&lt;br /&gt;
! brson, nnethercote?&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! Rust-specific benchmark suite&lt;br /&gt;
! Today Rust uses perf.rust-lang.org to track _compile time_ performance, but nothing to track _runtime_ performance. Work with the Rust developers to create a benchmark suite specific to Rust.&lt;br /&gt;
! Programming&lt;br /&gt;
! brson&lt;br /&gt;
! brson&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! Rust crate semver compatibility tool&lt;br /&gt;
! Rust libraries follow the semver spec for indicating API compatibility, but conformance to semver is not enforced in any way - it is up to crate authors to guarantee their crates can be upgraded correctly. With Rust&#039;s strong type system it should be possible to mechanically check whether crates&lt;br /&gt;
are obeying semver. This would be a huge boon to the stability of the Rust ecosystem.&lt;br /&gt;
! Static analysis&lt;br /&gt;
! brson&lt;br /&gt;
! brson, badboy&lt;br /&gt;
! https://users.rust-lang.org/t/warnings-for-breaking-semver/1415 https://users.rust-lang.org/t/signature-based-api-comparison/2377 . Full proposal: https://gist.github.com/brson/c936d0f5e5ec8c806a41e23e87455665#file-rust-proj-3-md&lt;br /&gt;
|-&lt;br /&gt;
! Reconstruct the Rust bootstrap chain&lt;br /&gt;
! Rust is a self-hosted compiler, originally bootstrapped from OCaml, then self-bootstrapped several hundred times over the years. Today there is only one Rust &#039;lineage&#039; of any note, the official compiler, but with compilers diversity of implementation is a security issue. If another party could replicate the&lt;br /&gt;
Rust compiler it would provide assurance that the official isn&#039;t compromised by, or can recover from, a &amp;quot;trusting trust&amp;quot; attack. Although the historical information needed to rebootstrap Rust is mostly complete, it is not trivial to do. Construct a script that can reconstruct the modern Rust compiler from the original OCaml implementation, run it to completion, write a blog post.&lt;br /&gt;
! Scripting, build systems&lt;br /&gt;
! brson&lt;br /&gt;
! acrichto&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Servo ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Off-main thread HTML parsing&lt;br /&gt;
| [https://github.com/servo/servo/wiki/Off-main-thread-HTML-parsing-project Project page]&lt;br /&gt;
| Enthusiasm to learn Rust, comfortable reading/writing JavaScript&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ jdm]&lt;br /&gt;
| Anthony Ramine (nox)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Extend ServiceWorker implementation&lt;br /&gt;
| [https://github.com/servo/servo/wiki/More-ServiceWorker-support-project Project page]&lt;br /&gt;
| Enthusiasm to learn Rust, comfortable reading/writing JavaScript&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ jdm]&lt;br /&gt;
| [https://mozillians.org/en-US/u/jdm/ jdm]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security Engineering ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Tor Experiment&lt;br /&gt;
| Create a an experimental extension that bundles and launches Tor. Benchmark and report the amount of data transferred, time-to-first-byte, bandwidth differentials.&lt;br /&gt;
| Add-On creation experience, Programming in C/Javascript.&lt;br /&gt;
| Tom Ritter&lt;br /&gt;
| Tom Ritter&lt;br /&gt;
|-&lt;br /&gt;
| StopTrackware.org&lt;br /&gt;
| Create a clearinghouse of trackware lists like StopBadware.org, by creating a Track-the-trackers add-on that uses data [http://www2016.net/proceedings/proceedings/p121.pdf &amp;quot;safeness&amp;quot; approach like Cliqz]&lt;br /&gt;
| Add-On creation experience (JavaScript, HTML, CSS, Networking), Cloud Service experience (python or node.js)&lt;br /&gt;
| Luke Crouch&lt;br /&gt;
| Luke Crouch&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Details&lt;br /&gt;
! Skills Needed&lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Design screenshot-based localization interface in [https://pontoon.mozilla.org/ Pontoon]&lt;br /&gt;
| We&#039;d like to explore the feasibility of screenshot-based localization process in [https://pontoon.mozilla.org/ Pontoon] - Mozilla&#039;s translation tool. To provide more translation context, each string will be accompanied by a screenshot showing how the string is used in the application. Additionally, localizers will have the ability to navigate and filter strings by screenshots, as well as preview their translations in the localized screenshots.&lt;br /&gt;
| Web standards and Design. Django is a plus.&lt;br /&gt;
| [[User:Mathjazz|:mathjazz]]&lt;br /&gt;
| [[User:Mathjazz|:mathjazz]]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security Assurance ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
TLS 1.3 scanning in Mozilla TLS Observatory&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/mozilla/tls-observatory Mozilla TLS Observatory] is a hosted service that provides hindsight and compliance checking on the configuration of HTTPS servers. The goal of this project is to improve the service to support scanning TLS 1.3 enabled endpoints, either by improving the [https://github.com/mozilla/cipherscan existing scanner] or writing an entirely new scanner.&lt;br /&gt;
|&lt;br /&gt;
Programming skills in C, Bash and Go. Strong understanding of TLS and micro-services architectures.&lt;br /&gt;
|&lt;br /&gt;
Julien Vehent&lt;br /&gt;
|&lt;br /&gt;
Julien Vehent&lt;br /&gt;
|&lt;br /&gt;
None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mozilla Science Lab ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| science.mozilla.org phase 2&lt;br /&gt;
| Start phase 2 of the Mozilla Science Lab website by implementing&lt;br /&gt;
* [https://github.com/mozilla/science.mozilla.org/issues/135 github authentication], &lt;br /&gt;
* [https://github.com/mozilla/science.mozilla.org/issues/311 members homepage],&lt;br /&gt;
* [https://github.com/mozilla/science.mozilla.org/issues/536 improve blog post readability], and add the&lt;br /&gt;
* [https://github.com/mozilla/science.mozilla.org/issues/518 ability to join projects]&lt;br /&gt;
| js, html, css, react, django, python&lt;br /&gt;
| [https://mozillians.org/en-US/u/Abby/ abbycabs]&lt;br /&gt;
| [https://mozillians.org/en-US/u/alanmoo/ alanmoo]&lt;br /&gt;
| Detailed list and breakdown of all phase 2 work (only the tasks mentioned in details are expected to be completed by the student):&lt;br /&gt;
* Phase 2.1 https://github.com/mozilla/science.mozilla.org/milestone/11&lt;br /&gt;
* Phase 2.2 https://github.com/mozilla/science.mozilla.org/milestone/12 &lt;br /&gt;
|-&lt;br /&gt;
| Paper Badger - badgr migration &amp;amp; publisher integration&lt;br /&gt;
| * Issuing badges to credit authors for their work on academic papers.&lt;br /&gt;
* In the final steps of our badgekit to Badgr migration, add tests to make sure we have feature parity and make the switch to Badgr in production.&lt;br /&gt;
* Implement a [https://github.com/mozillascience/PaperBadger/issues/160 journal submission system integration] with paper badger. This way, journals won&#039;t have to manually enter new badges in our system.&lt;br /&gt;
| js, Badgr, APIs, authentication, node.js, react&lt;br /&gt;
| [https://mozillians.org/en-US/u/Abby/ abbycabs]&lt;br /&gt;
| [https://mozillians.org/en-US/u/Abby/ abbycabs]&lt;br /&gt;
| github: https://github.com/mozillascience/paperbadger&lt;br /&gt;
|-&lt;br /&gt;
| Study Group participation visualization&lt;br /&gt;
| [https://github.com/mozillascience/studyGroup study groups] meet all over the world, running regular events share skills, co-work and create community around open science. Right now there&#039;s no easy way to see all the study group events.&lt;br /&gt;
* Write a script to collect data for all study group events happening world wide. Each study group is a [https://github.com/mozillascience/studyGroup fork of this template repo]. Each event is an issue in the repo ([https://github.com/UofTCoders/Events/issues example of events as issues]). [https://github.com/mozillascience/studyGroup/blob/gh-pages/scripts/updateCalendar.py here is a script] that collects all events for a specific repo. Please update this to collect data from all forks.&lt;br /&gt;
* Visualize this data in a way that shows study group activity all around the world! viz: calendar, map&lt;br /&gt;
| js, html, css, python (or another scripting language), data visualization&lt;br /&gt;
| [https://mozillians.org/en-US/u/zannah/ Zannah]&lt;br /&gt;
| [https://mozillians.org/en-US/u/aurelia/ Aurelia]&lt;br /&gt;
| main study group repo: https://github.com/mozillascience/studyGroup&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Thimble ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Address stability issues within Thimble&lt;br /&gt;
| Main task: Get Thimble to write directly to AWS instead of writing to a database first.&lt;br /&gt;
| js, html, css&lt;br /&gt;
| [https://mozillians.org/en-US/u/gideon/ gideon]&lt;br /&gt;
| [https://mozillians.org/en-US/u/gideon/ gideon]&lt;br /&gt;
| Full list of issues affecting thimble&#039;s stability: https://github.com/mozilla/thimble.mozilla.org/issues?utf8=%E2%9C%93&amp;amp;q=is%3Aissue%20is%3Aopen%20label%3A%22good%20first%20bug%22%20-label%3A%22assigned%20to%20contributor%22&lt;br /&gt;
|-&lt;br /&gt;
| Integrating VR capabilities into Thimble&lt;br /&gt;
| Goal: Thimble makes it easy to create multi user VR experiences, allowing the whole classroom to take virtual field trips through student projects.&lt;br /&gt;
This is made possible by doing any of these:&lt;br /&gt;
* Integration of the A-frame visual inspector, which gives the user lots of control over an object properties in a custom UI&lt;br /&gt;
* Custom Quick-Edit UI for different types of objects&lt;br /&gt;
* Develop large, visual menu of 3D objects make it easy to build interesting scenes quickly&lt;br /&gt;
* A wide range of starter projects&lt;br /&gt;
| js, html, css&lt;br /&gt;
| [https://mozillians.org/en-US/u/gideon/ gideon]&lt;br /&gt;
| [https://mozillians.org/en-US/u/gideon/ gideon]&lt;br /&gt;
| This work would be done in parallel with work done by [https://cdot.senecacollege.ca/ CDOT] on making Thimble a VR experience building tool&lt;br /&gt;
thimble repo: https://github.com/mozilla/thimble.mozilla.org&lt;br /&gt;
|-&lt;br /&gt;
| Thimble and Remote Mentorship&lt;br /&gt;
| Goal: Use together.js to enable a multi-user environment on Thimble that is tailored to work as a virtual teaching environment for HTML/CSS/JS&lt;br /&gt;
Details:&lt;br /&gt;
* Fixing issues in together.js to make it functional&lt;br /&gt;
* working on ways to sync state between Thimble&#039;s editor and the remote Thimble editor(s&lt;br /&gt;
* Syncing filesystems across Thimble editors with WebRTC&lt;br /&gt;
| js, html, css&lt;br /&gt;
| [https://mozillians.org/en-US/u/gideon/ gideon]&lt;br /&gt;
| [https://mozillians.org/en-US/u/gideon/ gideon]&lt;br /&gt;
| thimble repo: https://github.com/mozilla/thimble.mozilla.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bugzilla ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Bugzilla Reskin&lt;br /&gt;
| Goal: Mozilla recently rebranded, and BMO doesn&#039;t match this re-branding at all. &lt;br /&gt;
Details:&lt;br /&gt;
* This work would be 80% CSS, 15% templating, and 5% perl. &lt;br /&gt;
| js, html, css&lt;br /&gt;
| :dylan&lt;br /&gt;
| [mailto:dylan@mozilla.com dylan]&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/CodeCoverage&amp;diff=1164260</id>
		<title>EngineeringProductivity/Projects/CodeCoverage</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/CodeCoverage&amp;diff=1164260"/>
		<updated>2017-03-02T01:05:31Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Code Coverage */  add note about updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=Code Coverage=&lt;br /&gt;
&lt;br /&gt;
March 1st, 2017 - This project is active, but this page is stale.  Email me after Mar 8th if this message is still here: mailto://klahnakoski@mozilla.org&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The objective of the Code Coverage project is to provide daily code coverage details and summary statistics. The assumption is that &lt;br /&gt;
code coverage statistics and details can help judge code quality.  We expect this information to be useful to &lt;br /&gt;
* Release managers - Provide them with another metric to help measure risk a particular changeset, or family of changesets, adds to a release&lt;br /&gt;
* Module owners - Provide drill down coverage statistics so test coverage is focused on the most important part of the code&lt;br /&gt;
* Individual developers - To see if their new code require new tests to cover it, or if tests already cover their new code&lt;br /&gt;
* Our own test-infrastructure team - We can reduce the number of machines dedicated to testing, if we know where tests overlap, and focus on tests that cover recent changes.&lt;br /&gt;
&lt;br /&gt;
Generally, we would like to know &lt;br /&gt;
* Is code coverage going up or down?&lt;br /&gt;
* If code coverage is going down, what new code is not being covered?  Is it OK to not be covered?&lt;br /&gt;
* If code coverage is going down, what tests have been dropped?  Is that OK?&lt;br /&gt;
* Should we alert when code coverage goes down &amp;quot;significantly&amp;quot;? &lt;br /&gt;
* When adding or change code in source file S, what tests cover that source file?  What tests should we run?&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
* Getting Started with Code Coverage - https://public.etherpad-mozilla.org/p/coverage_quickstart&lt;br /&gt;
&lt;br /&gt;
==User Interface==&lt;br /&gt;
&lt;br /&gt;
* GUI objective - http://people.mozilla.org/~choller/firefox/coverage/mc-coverage-20130210-29dd80c95b7d/&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
* &#039;&#039;&#039;UI&#039;&#039;&#039; - https://github.com/chinhodado/codecoverage_presenter&lt;br /&gt;
* &#039;&#039;&#039;ETL&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData-ETL/blob/dev/activedata_etl/transforms/jscov_to_es.py&lt;br /&gt;
&lt;br /&gt;
==Contacts==&lt;br /&gt;
&lt;br /&gt;
* jmaher@mozilla.com&lt;br /&gt;
* klahnakoski@mozilla.com&lt;br /&gt;
* gmierz1@live.ca&lt;br /&gt;
* chmanchester@mozilla.com&lt;br /&gt;
&lt;br /&gt;
Many of us are live at #ateam @ irc.mozilla.org during usual North American work hours.&lt;br /&gt;
&lt;br /&gt;
==Reference docs ==&lt;br /&gt;
&lt;br /&gt;
The following is optional reading, for reference purposes only.&lt;br /&gt;
&lt;br /&gt;
* Previous term CodeCoverage meeting notes (optional, reference only) - https://public.etherpad-mozilla.org/p/ucosp_meeting_notes&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Stockwell/Meetings/2017-02-14&amp;diff=1162928</id>
		<title>EngineeringProductivity/Projects/Stockwell/Meetings/2017-02-14</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Stockwell/Meetings/2017-02-14&amp;diff=1162928"/>
		<updated>2017-02-14T16:59:40Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: fix link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Previous Action Items =&lt;br /&gt;
&lt;br /&gt;
= Status =&lt;br /&gt;
&lt;br /&gt;
* [jmaher] - P1 intermittent trend:&lt;br /&gt;
** [https://docs.google.com/spreadsheets/d/1PFE_BTw1qmln4EvxVLQZSjCjlNa-uRQOC79XFbpMA0o/edit?usp=sharing last 6 weeks]&lt;br /&gt;
** last week: 61 bugs&lt;br /&gt;
** 4 weeks ago: 74 bugs&lt;br /&gt;
&lt;br /&gt;
Project updates:&lt;br /&gt;
* {{bug|1328351}} - [jmaher] add BUG_COMPONENT to all files in-tree- maybe 55% done&lt;br /&gt;
* {{bug|1323044}} - [malayaleecoder] add a lint job for mochitest (about 60% done)&lt;br /&gt;
* {{bug|1322433}} - [wlach] - make it easier to retrigger a job with options (precursor to rr-chaos in a test-lint job)&lt;br /&gt;
* &amp;lt;s&amp;gt;{{bug|1324470}} - [gbrown] - add a mach command to display test results from activedata - up for review (landed)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;[ekyle] - updated [https://people-mozilla.org/~klahnakoski/NeglectedOranges/index.html neglected oranges]&amp;lt;/s&amp;gt;&lt;br /&gt;
* TODO:&lt;br /&gt;
** dashboard of test by component&lt;br /&gt;
** better way to track disabled tests (test-informant might work)&lt;br /&gt;
** create common workflows for intermittents and data - specifically what triagers should do and what is expected of test owners.&lt;br /&gt;
&lt;br /&gt;
= Discussion Topics =&lt;br /&gt;
* much higher orangefactor and high frequency bugs this week- how to spot this early on and find the root causes?&lt;br /&gt;
* Auto classification&lt;br /&gt;
* https://people-mozilla.org/~klahnakoski/testfailures&lt;br /&gt;
&lt;br /&gt;
= New Ideas to investigate =&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
* Discussion topics for next time&lt;br /&gt;
** &lt;br /&gt;
** &lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Stockwell/Meetings/2017-02-14&amp;diff=1162925</id>
		<title>EngineeringProductivity/Projects/Stockwell/Meetings/2017-02-14</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Stockwell/Meetings/2017-02-14&amp;diff=1162925"/>
		<updated>2017-02-14T16:57:04Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Previous Action Items =&lt;br /&gt;
&lt;br /&gt;
= Status =&lt;br /&gt;
&lt;br /&gt;
* [jmaher] - P1 intermittent trend:&lt;br /&gt;
** [https://docs.google.com/spreadsheets/d/1PFE_BTw1qmln4EvxVLQZSjCjlNa-uRQOC79XFbpMA0o/edit?usp=sharing last 6 weeks]&lt;br /&gt;
** last week: 61 bugs&lt;br /&gt;
** 4 weeks ago: 74 bugs&lt;br /&gt;
&lt;br /&gt;
Project updates:&lt;br /&gt;
* {{bug|1328351}} - [jmaher] add BUG_COMPONENT to all files in-tree- maybe 55% done&lt;br /&gt;
* {{bug|1323044}} - [malayaleecoder] add a lint job for mochitest (about 60% done)&lt;br /&gt;
* {{bug|1322433}} - [wlach] - make it easier to retrigger a job with options (precursor to rr-chaos in a test-lint job)&lt;br /&gt;
* &amp;lt;s&amp;gt;{{bug|1324470}} - [gbrown] - add a mach command to display test results from activedata - up for review (landed)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;[ekyle] - updated [https://people-mozilla.org/~klahnakoski/NeglectedOranges/index.html neglected oranges]&amp;lt;/s&amp;gt;&lt;br /&gt;
* TODO:&lt;br /&gt;
** dashboard of test by component&lt;br /&gt;
** better way to track disabled tests (test-informant might work)&lt;br /&gt;
** create common workflows for intermittents and data - specifically what triagers should do and what is expected of test owners.&lt;br /&gt;
&lt;br /&gt;
= Discussion Topics =&lt;br /&gt;
* much higher orangefactor and high frequency bugs this week- how to spot this early on and find the root causes?&lt;br /&gt;
* Auto classification&lt;br /&gt;
* https://people-mozilla.org/~klahnakoski/testfailures/#sampleMax=2017-02-14&amp;amp;sampleMin=2017-01-15&lt;br /&gt;
&lt;br /&gt;
= New Ideas to investigate =&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
* Discussion topics for next time&lt;br /&gt;
** &lt;br /&gt;
** &lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=MOSS/Foundational_Technology/Projects_We_Use&amp;diff=1162416</id>
		<title>MOSS/Foundational Technology/Projects We Use</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=MOSS/Foundational_Technology/Projects_We_Use&amp;diff=1162416"/>
		<updated>2017-02-09T15:18:13Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add ES person, me!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
Note that presence on this list isn&#039;t the same as, nor is it a prerequisite for, applying for the MOSS &amp;quot;Foundational Technology&amp;quot; track - projects have to make an application using the process on the [[MOSS/Foundational Technology|Foundational Technology]] page.&lt;br /&gt;
&lt;br /&gt;
This is a work in progress - please contribute to this list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Project !! Description !! Contact within Mozilla&lt;br /&gt;
|-&lt;br /&gt;
| [https://angularjs.org/ angular.js]           || Used by A-Team for web apps (eg Treeherder) || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://httpd.apache.org Apache Server]      || Used by A-Team for web apps || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ansible/ansible Ansible]  || Used by IT (netops) and A-Team to manage deployments || jbarnell , Webops, GPS?&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/h4writer/arewefastyet AreWeFastYet]  || Compare JS performance across JS engines and platforms || Hannes Verschore&lt;br /&gt;
|-&lt;br /&gt;
| [https://atom.io/ Atom]                       || Used (either vanilla or e.g. as [https://github.com/Microsoft/vscode] ) by various developers ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://babeljs.io/ BabelJS]                 || JavaScript compiler, Used by Gaia, TaskCluster team || Selena Deckelmann&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.isc.org/downloads/bind/ BIND] || DNS Server || Brian Hourigan&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/bleach/ Bleach] || HTML sanitizing library that escapes or strips markup and attributes used by MDN and a bunch of Mozilla sites || Will Kahn-Greene&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/blessings/ Blessings] || Terminal formatting lib used by mozilla-central build process || Erik Rose&lt;br /&gt;
|-&lt;br /&gt;
| [http://getbootstrap.com/ Bootstrap] || HTML/CSS/JS framework, used by many of Mozilla&#039;s sites. || Webdev&lt;br /&gt;
|-&lt;br /&gt;
| [http://brew.sh/ brew / Homebrew] || Mac OS X packaging system, used to install dev tools || Sam Penrose&lt;br /&gt;
|-&lt;br /&gt;
| [https://bro.org bro]                    || The Bro Network Security Monitor || Michal Purzynski&lt;br /&gt;
|-&lt;br /&gt;
| [http://browserify.org Browserify]                    || Build JS dependencies for the browser || mozilla-services (kinto.js)&lt;br /&gt;
|-&lt;br /&gt;
| [http://buildbot.net/ BuildBot]               || The base system currently in use for release || Dustin J. Mitchell&lt;br /&gt;
|-&lt;br /&gt;
| [http://bugzilla.org/ Bugzilla] (upstream)    || The base Bugzilla on that we customize for Mozilla&#039;s use || Mark Côté&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.celeryproject.org/ Celery] || Distributed task queue. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://ckeditor.com/ CKEditor] || WYSIWYG editor on MDN || &lt;br /&gt;
|-&lt;br /&gt;
| [http://chaijs.com/ Chai] || JavaScript test and assertion library || Cloud Services, Tarek Ziade&#039;s team (kinto.js), Firefox Hello team&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.llvm.org Clang/LLVM]           || C/C++ compiler and infrastructure || Ehsan Akhgari &amp;amp; Sylvestre Ledru&lt;br /&gt;
|-&lt;br /&gt;
| [https://codemirror.net/ CodeMirror]           || Used in DevTools, [https://thimble.mozilla.org Thimble], and other online code tools || David Humphrey/Simon Wex&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/cookiecutter/ Cookiecutter] || Templating system used to clone our [https://github.com/mozilla/sugardough Sugardough] Django template || Giorgos Logiotatidis&lt;br /&gt;
|-&lt;br /&gt;
| [https://conemu.github.io/ ConEmu] || Console emulator for Windows. Used by devs running Windows. || Ed Morley&lt;br /&gt;
|-&lt;br /&gt;
| [http://curl.haxx.se/ curl] || internet transfer tool and library, used by crashreporter and FirefoxOS || Daniel Stenberg&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.debian.org/ Debian] || Used on many developer boxes || Sylvestre Ledru or glandium&lt;br /&gt;
|-&lt;br /&gt;
| [http://deis.io Deis] || Open Source Heroku-like PaaS platform. Hosts www.mozilla.org, masterfirefoxos.mozilla.org, etc. || Member of Benjamin Sternthal&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://disconnect.me/trackerprotection Disconnect.me ] || Open, transparent, neutral Tracking Protection blocklist used in Firefox Private Browsing Windows || Marshall Erwin, Javaun Moradi, Francois Marier&lt;br /&gt;
|-&lt;br /&gt;
| [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)&lt;br /&gt;
|-&lt;br /&gt;
| [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&lt;br /&gt;
|-&lt;br /&gt;
| [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&lt;br /&gt;
|-&lt;br /&gt;
| [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&#039;s team  &lt;br /&gt;
|-&lt;br /&gt;
| [https://eclipse.org/ Eclipse] || Integrated Development Environment used by many developers || —&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.elastic.co/products/elasticsearch elasticsearch] || Search engine for various web sites and analytics || Erik Rose (dxr), Kyle Lahnakoski (ActiveData) &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gnu.org/software/emacs/ emacs] || Programmable editor used by many developers || —&lt;br /&gt;
|-&lt;br /&gt;
| [http://eslint.org/ eslint] || Pluggable linting utiltity used by Firefox Hello, DevTools and Firefox Android || Mark Banner&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/ether/etherpad-lite Etherpad]     || Used for meeting notes, etc || JP Schneider&lt;br /&gt;
|-&lt;br /&gt;
| [https://flake8.readthedocs.org/ flake8] || Wrapper around Python linters. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://flask.pocoo.org/ Flask]               || Python web framework || Erik Rose&lt;br /&gt;
|-&lt;br /&gt;
| [https://fortawesome.github.io/Font-Awesome/ Font Awesome] || Font and CSS toolkit, used by many of Mozilla&#039;s sites. || Webdev&lt;br /&gt;
|-&lt;br /&gt;
| [http://foundation.zurb.com/ Foundation Framework] || Responsive front-end framework, used by some Mozilla sites and add-ons || Luke Crouch&lt;br /&gt;
|-&lt;br /&gt;
| [http://gcc.gnu.org GCC]                      || C/C++ compiler and infrastructure || Nathan Froyd&lt;br /&gt;
|-&lt;br /&gt;
| [https://git-scm.com/ Git]                    || Version control system - https://git.mozilla.org || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| [http://gunicorn.org/ gunicorn] || Python WSGI HTTP Server. Used by Treeherder, Socorro, Pontoon. || Webdev&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.freedesktop.org/wiki/Software/HarfBuzz/ HarfBuzz] || International text shaping engine used in Firefox/Servo || Platform team&lt;br /&gt;
|-&lt;br /&gt;
| [http://hunspell.sourceforge.net/ Hunspell]  || Spellchecking engine || Ehsan Akhgari&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/hunspell/hyphen/ Hyphen]  || Hyphenation library || Jonathan Kew&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/jkbrzt/httpie HTTPie]  || HTTP command-line client || Cloud Services (among many others), Tarek Ziade&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [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&lt;br /&gt;
|-&lt;br /&gt;
| [http://canonware.com/jemalloc/ jemalloc]     || Memory allocation library || We can ask glandium&lt;br /&gt;
|-&lt;br /&gt;
| [http://jenkins-ci.org/ Jenkins CI]                    || Continuous integration system used by WebQA and EE || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [https://jquery.com/ jQuery] || JavaScript library, used by many of Mozilla&#039;s sites. || Webdev&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/tmpvar/jsdom jsdom] || DOM implementation in full JS || Test suites in Cloud Services, Tarek Ziade&#039;s team (kinto.js)&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/open-source-parsers/jsoncpp jsoncpp] || A C++ library for interacting with JSON, used by the crashreporter client and Socorro. || Gabriele Svelto&lt;br /&gt;
|-&lt;br /&gt;
| [https://kafka.apache.org/ Kafka] || Distributed transaction log, used for hg.mozilla.org replication. || gps&lt;br /&gt;
|-&lt;br /&gt;
| [http://kombu.readthedocs.org/ Kombu] || Messaging library for Python. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| libbz2                                        || Compression library for .bz2 format || Julian Seward&lt;br /&gt;
|-&lt;br /&gt;
| libjpeg-turbo                                 || JPEG decoding library || Jeff Muizelaar &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.libpng.org/pub/png/libpng.html libpng] || PNG decoding library || Jeff Muizelaar &lt;br /&gt;
|-&lt;br /&gt;
| libvpx (Google)                               || Library for support of Google’s VP* family of codecs || Tim Terriberry &lt;br /&gt;
|-&lt;br /&gt;
| Linux                                         || OS kernel used in Firefox OS || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| LLVM || Compiler foundation for ASAN, static analysis tools, Rust || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [https://lodash.com/ lodash] || JavaScript utility library, used by many of Mozilla&#039;s sites. || Webdev &amp;amp; Firefox Hello&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/macvim-dev/macvim MacVim] || Mac wrapper around Vim || -&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.list.org/ Mailman]     || [https://mail.mozilla.org/listinfo Mailing lists] || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.mediawiki.org/wiki/MediaWiki MediaWiki]     || You are reading this on a wiki || Sheeri Cabral&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.mercurial-scm.org/ Mercurial]    || Version control system and source code management || GPS &lt;br /&gt;
|-&lt;br /&gt;
| [http://mochajs.org/ Mocha] || JavaScript test runner || Cloud Services, Tarek Ziade&#039;s team (kinto.js); Firefox Hello team&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/kumar303/mohawk Mohawk] ||  Python library for Hawk HTTP authorization. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://mozdef.com mozdef]                    || Security event monitoring and incident response || Jeff Bryner&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.mingw.org/wiki/msys msys]         || Used to build Firefox on Windows. Note: It&#039;s likely best we support the newer MSYS2 project instead: https://github.com/msys2 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.mysql.com/ MySQL]                || Open source relational DB used by many developers, including AMO, SUMO, Input, bugzilla, releng, adminstered by IT || Sheeri Cabral&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.nagios.org/ Nagios]              || IT management system. Used for notifications of system failures || Sheeri Cabral, Ashish V.&lt;br /&gt;
|-&lt;br /&gt;
| [http://netsniff-ng.org/ netsniff-ng]                    || Linux networking toolkit || Michal Purzynski&lt;br /&gt;
|-&lt;br /&gt;
| nICEr                                         || Library for traversing firewalls || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| [https://nixos.org NixOS]                     || Reproducible Linux distribution. Used by some developers || Nicolas B. Pierron&lt;br /&gt;
|-&lt;br /&gt;
| [https://nodejs.org Node.js]                  || JavaScript runtime for server side applications, command line utilities || Nick Desaulniers&lt;br /&gt;
|-&lt;br /&gt;
| nrappkit                                      || Toolkit for building standalone applications || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| OpenH264 (Cisco)                              || H.264 video library || Unknown &lt;br /&gt;
|-&lt;br /&gt;
| [http://openresty.org OpenResty]              || a fast web app server by extending nginx, used by cloudops || Benson Wong (mostlygeek)&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.openssh.com/ OpenSSH]                 || Remote server management, secure transport for Git and Mercurial || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.openstreetmap.org OpenStreetMap]     || Online/offline maps, used by the location service and on mozilla.org || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.openLDAP.org/ OpenLDAP]                 || User management used by Infra || :jabba?&lt;br /&gt;
|-&lt;br /&gt;
| [https://openvpn.net/ Openvpn]                 || VPN used by Infra || :jabba?&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.inspircd.org/ inspircd]                 || Irc server used by mozilla || :ashish&lt;br /&gt;
|-&lt;br /&gt;
| [http://openssl.org/ OpenSSL]                 || Cryptograpahy and TLS Toolkit || Nick Desaulniers&lt;br /&gt;
|-&lt;br /&gt;
| [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 &lt;br /&gt;
|-&lt;br /&gt;
| [https://www.owasp.org/index.php/ZAP OWASP ZAP]                 || Web security testing tool used by security and QA teams || Simon Bennetts (psiinon)&lt;br /&gt;
|-&lt;br /&gt;
| [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)&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/parsimonious/ Parsimonious] || Parsing lib used by DXR and a few other sites (I think) || Erik Rose&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/mozilla/pdf.js PDF.js]                  || Used as the PDF Viewer in Firefox and Firefox OS || Brendan Dahl, Yury Delendik&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/PyCQA/pep8 pep8] || Python linter. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.perl.org/ Perl]                  || Used by Bugzilla || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://python-pillow.org/ pillow] || Python Imaging library || Member of Webcompat team&lt;br /&gt;
|-&lt;br /&gt;
| [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])&lt;br /&gt;
|-&lt;br /&gt;
| [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)&lt;br /&gt;
|-&lt;br /&gt;
| [http://cmusphinx.sourceforge.net/ Pocketsphinx]       ||  Speech recognition toolkit embedded into Firefox OS|| André Natal&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.postgresql.org/ PostgreSQL]       || Open source relational DB used by many developers, adminstered by IT || Selena Deckelmann&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/PrismJS/prism Prism.js]       || Syntax highlighting on code samples on MDN || &lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/puppetlabs/puppet Puppet] || System administration tool || Member of Amy Rich&#039;s team, Corey Shield&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/pyflakes/pyflakes pyflakes] || Python linter. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://pypy.org/ PyPy]                                        || Python language runtime. Used by Web Push service. || Cloud Services, esp. Ben Bangert&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/Pylons/pyramid/ Pyramid] || Python Web framework || Cloud Services team&lt;br /&gt;
|-&lt;br /&gt;
| [http://pytest.org/ pytest] || Python testing tool. Used by Treeherder and others. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| Python                                        || Scripting language || [http://python.org/psf/ Python Software Foundation], Selena Deckelmann is a former board member&lt;br /&gt;
|-&lt;br /&gt;
| [https://pypi.python.org/pypi/pyelasticsearch/ pyelasticsearch] || Python client for elasticsearch || Erik Rose&lt;br /&gt;
|-&lt;br /&gt;
| [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&lt;br /&gt;
|-&lt;br /&gt;
| [http://facebook.github.io/react/index.html ReactJS] || Javascript library for building user interfaces. Used by Firefox Hello &amp;amp; DevTools || Mark Banner&lt;br /&gt;
|-&lt;br /&gt;
| [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&lt;br /&gt;
|-&lt;br /&gt;
| [http://redis.io/ Redis]         || Really fast data structure store, cache and message broker || Cloud Services Tarek Ziade&#039;s team, Loop Server (Hello) team&lt;br /&gt;
|-&lt;br /&gt;
| [http://python-requests.org/ Requests] || &amp;quot;Python HTTP Requests for Humans&amp;quot;. Used by many many Mozilla Python projects. || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.reviewboard.org/ Review Board]   || The base of MozReview, the new review tool being developed to replace Splinter || Steven MacLeod, Mike Conley&lt;br /&gt;
|-&lt;br /&gt;
| [http://wordlist.aspell.net/ SCOWL]         || en-US word list used for spell checking. || ehsan&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.seleniumhq.org/ Selenium]         || Browser test driver || stephend/AutomatedTester or jrgm/vladikoff&lt;br /&gt;
|-&lt;br /&gt;
| [http://sinonjs.org/ Sinon] || JavaScript mock library || Cloud Services, Tarek Ziade&#039;s team (kinto.js); Firefox Hello team&lt;br /&gt;
|-&lt;br /&gt;
| [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&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.sqlalchemy.org/ SQLAlchemy]] || Database Toolkit and ORM for Python || bhearsum&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.sqlite.org/ SQLite]              || File-based database || khuey&lt;br /&gt;
|-&lt;br /&gt;
| [http://learnboost.github.io/stylus/ Stylus]              || CSS Pre-processor on several sites || webdev&lt;br /&gt;
|-&lt;br /&gt;
| [https://subversion.apache.org/ Subversion]   || https://svn.mozilla.org &#039;&#039;(Planning to decommission in near future)&#039;&#039; || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [http://http://suricata-ids.org/ suricata]                    || IDS / IPS / NSM engine || Michal Purzynski&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.squid-cache.org/ Squid]           || Caching proxy || Brian Hourigan&lt;br /&gt;
|-&lt;br /&gt;
| [https://tox.readthedocs.org/en/latest/ Tox]  || Test automation || Tarek Ziade&#039;s Team&lt;br /&gt;
|-&lt;br /&gt;
| [https://travis-ci.org/ Travis]               || Continuous integration system used by several teams (eg Treeherder) || Jonathan Griffin&#039;s team &lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/mitchellh/vagrant Vagrant]|| Build and distribute dev envs, used by Treeherder and others || Member of Jonathan Griffin&#039;s team&lt;br /&gt;
|-&lt;br /&gt;
| [http://valgrind.org/ Valgrind]               || Memory error detection and profiling of C and C++ code || jseward, njn&lt;br /&gt;
|-&lt;br /&gt;
| [http://vim.org/ vim] || editor used by many developers || —&lt;br /&gt;
|-&lt;br /&gt;
| [https://waffle.io/mozilla/ waffle.io] || github project management used by various teams || &lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/w3c/web-platform-tests web-platform-tests]  ||  Testcases and tooling for cross-browser testing of web-platform APIs                                             || jgraham&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.webrtc.org WebRTC.org]            || Components to support real-time communication in browsers and mobile applications || Randell Jesup &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.wordpress.org WordPress]          || Powers our blogs, blog.mozilla.org || Craig Cook &lt;br /&gt;
|-&lt;br /&gt;
| [https://xiph.org Xiph.Org]                   || Media codecs ship in Firefox, encoding tools || Ralph Giles&lt;br /&gt;
|-&lt;br /&gt;
| [http://zlib.net zlib]                   || Streaming compression and decompression for HTTP, PNG, etc. ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://zookeeper.apache.org/ ZooKeeper] || Distributed synchronization, use by hg.mozilla.org replication || gps&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Meetings/2017-01-09&amp;diff=1158963</id>
		<title>EngineeringProductivity/Meetings/2017-01-09</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Meetings/2017-01-09&amp;diff=1158963"/>
		<updated>2017-01-09T16:44:25Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Notices, Highlights, Roundtable */ add links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notices, Highlights, Roundtable =&lt;br /&gt;
* Significant Contributions&lt;br /&gt;
* Welcome Israel Madueme!&lt;br /&gt;
* Google Summer of Code, https://wiki.mozilla.org/Community:SummerOfCode17:Brainstorming&lt;br /&gt;
** Deadline to submit proposals is February 6&lt;br /&gt;
* Deadline to submit Global Wellness expenses is this Friday, January 13&lt;br /&gt;
* Deliverables and OKR&#039;s in 2017&lt;br /&gt;
** [https://docs.google.com/document/d/1OcQWksoBXmjXTTUXMqfqtlEQj4nQefXXV2kz7areUWs/edit Release &amp;amp; Productivity OKR&#039;s for 2017]&lt;br /&gt;
** [https://docs.google.com/spreadsheets/d/1xGa5tc0Ies5Hz6JTxv6FhD2bxy_JLUFF3uR7EXBDR7w/edit#gid=0 Engineering Productivity OKR&#039;s for Q1]&lt;br /&gt;
* Looking for 2-3 more JS interviewers to help choose an A-Team summer intern:&lt;br /&gt;
** [https://careers.mozilla.org/position/gh/500057 Internship offer] (look for &amp;quot;Engineering Productivity Intern&amp;quot;)&lt;br /&gt;
** Jan will mentor, Maja and Will already volunteered for interviews (thanks!)&lt;br /&gt;
* [end of meeting] ActiveData - Kyle presents ActiveData, what is it?, what should the future be?&lt;br /&gt;
** [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Data%20Strategy%20170109.md Detailed document]&lt;br /&gt;
** [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Data%20Strategy%20170109.pdf Presentation (PDF)]&lt;br /&gt;
&lt;br /&gt;
= Newsgroup and Blog Posts =&lt;br /&gt;
&lt;br /&gt;
* [https://groups.google.com/forum/#!topic/mozilla.tools.bmo/YLGLdzdNucI Changing the default bug view for BMO] (dkl) (also [https://groups.google.com/forum/#!topic/mozilla.dev.platform/_AFaUi3JQhs cross-posted to dev.platform])&lt;br /&gt;
* [https://emceeaich.dreamwidth.org/198575.html How To Tag Comments in Bugzilla So We Can Respond Appropriately] (emceeaich)&lt;br /&gt;
* [https://groups.google.com/forum/#!topic/mozilla.governance/q9B3gPKq4uI Changes to etiquette.html in bugzilla.mozilla.org] (emceeaich)&lt;br /&gt;
* [https://emceeaich.dreamwidth.org/199563.html BMO Roadmap for the 1st Half of 2017] (emceeaich)&lt;br /&gt;
* [https://mrcote.info/ BMO in 2016] (mcote)&lt;br /&gt;
* [https://groups.google.com/forum/#!topic/mozilla.tools.bmo/tp4dSwUfKSA Moratorium on custom bug-entry form development] (mcote)&lt;br /&gt;
* [https://groups.google.com/forum/#!topic/mozilla.tools/KihdAlunkvo New process for Release &amp;amp; Productivity in 2017: RFCs] (wlach)&lt;br /&gt;
&lt;br /&gt;
= Goal Updates =&lt;br /&gt;
&lt;br /&gt;
= Other Project Updates =&lt;br /&gt;
&lt;br /&gt;
= Holidays and Trips =&lt;br /&gt;
&lt;br /&gt;
= Misc =&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Meetings/2017-01-09&amp;diff=1158949</id>
		<title>EngineeringProductivity/Meetings/2017-01-09</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Meetings/2017-01-09&amp;diff=1158949"/>
		<updated>2017-01-09T13:10:41Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Notices, Highlights, Roundtable */ activedata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notices, Highlights, Roundtable =&lt;br /&gt;
* Significant Contributions&lt;br /&gt;
* Welcome Israel Madueme!&lt;br /&gt;
* Google Summer of Code, https://wiki.mozilla.org/Community:SummerOfCode17:Brainstorming&lt;br /&gt;
** Deadline to submit proposals is February 6&lt;br /&gt;
* Deadline to submit Global Wellness expenses is this Friday, January 13&lt;br /&gt;
* Deliverables and OKR&#039;s in 2017&lt;br /&gt;
** [https://docs.google.com/document/d/1OcQWksoBXmjXTTUXMqfqtlEQj4nQefXXV2kz7areUWs/edit Release &amp;amp; Productivity OKR&#039;s for 2017]&lt;br /&gt;
** [https://docs.google.com/spreadsheets/d/1xGa5tc0Ies5Hz6JTxv6FhD2bxy_JLUFF3uR7EXBDR7w/edit#gid=0 Engineering Productivity OKR&#039;s for Q1]&lt;br /&gt;
* Looking for 2-3 more JS interviewers to help choose an A-Team summer intern:&lt;br /&gt;
** [https://careers.mozilla.org/position/gh/500057 Internship offer] (look for &amp;quot;Engineering Productivity Intern&amp;quot;)&lt;br /&gt;
** Jan will mentor, Maja and Will already volunteered for interviews (thanks!)&lt;br /&gt;
* [end of meeting] ActiveData - Kyle presents ActiveData, what is it?, what should the future be?&lt;br /&gt;
&lt;br /&gt;
= Newsgroup and Blog Posts =&lt;br /&gt;
&lt;br /&gt;
* [https://groups.google.com/forum/#!topic/mozilla.tools.bmo/YLGLdzdNucI Changing the default bug view for BMO] (dkl) (also [https://groups.google.com/forum/#!topic/mozilla.dev.platform/_AFaUi3JQhs cross-posted to dev.platform])&lt;br /&gt;
* [https://emceeaich.dreamwidth.org/198575.html How To Tag Comments in Bugzilla So We Can Respond Appropriately] (emceeaich)&lt;br /&gt;
* [https://groups.google.com/forum/#!topic/mozilla.governance/q9B3gPKq4uI Changes to etiquette.html in bugzilla.mozilla.org] (emceeaich)&lt;br /&gt;
* [https://emceeaich.dreamwidth.org/199563.html BMO Roadmap for the 1st Half of 2017] (emceeaich)&lt;br /&gt;
* [https://mrcote.info/ BMO in 2016] (mcote)&lt;br /&gt;
* [https://groups.google.com/forum/#!topic/mozilla.tools.bmo/tp4dSwUfKSA Moratorium on custom bug-entry form development] (mcote)&lt;br /&gt;
* [https://groups.google.com/forum/#!topic/mozilla.tools/KihdAlunkvo New process for Release &amp;amp; Productivity in 2017: RFCs] (wlach)&lt;br /&gt;
&lt;br /&gt;
= Goal Updates =&lt;br /&gt;
&lt;br /&gt;
= Other Project Updates =&lt;br /&gt;
&lt;br /&gt;
= Holidays and Trips =&lt;br /&gt;
&lt;br /&gt;
= Misc =&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Community:SummerOfCode17:Brainstorming&amp;diff=1158831</id>
		<title>Community:SummerOfCode17:Brainstorming</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Community:SummerOfCode17:Brainstorming&amp;diff=1158831"/>
		<updated>2017-01-07T20:06:01Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: /* Automation &amp;amp; Tools */ add proposal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mozilla community members - submit proposals here for 2017 Google Summer of Code projects with Mozilla. (If this page looks empty, it&#039;s because accepted ideas have already been transferred to the [[Community:SummerOfCode17|official list]].) &#039;&#039;&#039;The&#039;&#039;&#039; absolute last &#039;&#039;&#039;deadline for submitting ideas&#039;&#039;&#039; in time to help us get accepted by Google &#039;&#039;&#039;is February 9th&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Are you a student looking to apply to SoC with Mozilla?&amp;lt;/b&amp;gt; Your first stop should be the [[Community:SummerOfCode17|official list of ideas]]. This page is full of weird and whacky ideas, some of which are still on here for a reason - it could be that they are not properly defined, the wrong size, or don&#039;t have a mentor. That makes them less likely to get accepted. You &amp;lt;i&amp;gt;can&amp;lt;/i&amp;gt;, of course, also submit your own ideas - you don&#039;t have to put an idea on this page and get it &#039;made official&#039; in order to send in a proposal for it.&lt;br /&gt;
&lt;br /&gt;
==How To Write A Good Project Proposal==&lt;br /&gt;
&lt;br /&gt;
Before adding an proposal to this list, please consider the following:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Be specific&#039;&#039;&#039;. It&#039;s hard to understand the impact of, or the size of, vague proposals.&lt;br /&gt;
* &#039;&#039;&#039;Consider size&#039;&#039;&#039;. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.&lt;br /&gt;
* &#039;&#039;&#039;Do your research&#039;&#039;&#039;. Support the idea with well-researched links.&lt;br /&gt;
* &#039;&#039;&#039;Don&#039;t morph other people&#039;s ideas&#039;&#039;&#039;. If you have a related idea, place it next to the existing one, or add a comment. &lt;br /&gt;
* &#039;&#039;&#039;Insert only your own name into the Mentor column&#039;&#039;&#039;, and then only if you are willing to take on the responsibility. If you think the SoC admins won&#039;t know who you are, leave contact details.&lt;br /&gt;
* &#039;&#039;&#039;Check back regularly&#039;&#039;&#039;. The administrators may have questions about your idea that you will need to answer.&lt;br /&gt;
* &#039;&#039;&#039;Know when to give up&#039;&#039;&#039;. If you&#039;ve added the same idea for the last three years and it hasn&#039;t made it to the official page, perhaps you can predict what will happen this time.&lt;br /&gt;
&lt;br /&gt;
==Suggestion List==&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCode|Here are the ideas lists from previous years]].&lt;br /&gt;
&lt;br /&gt;
Proposals can be in almost any part of the Mozilla project - don&#039;t be fooled by the &amp;quot;Code&amp;quot; in &amp;quot;Summer of Code&amp;quot;. If there is no category below for your part of Mozilla, add one!&lt;br /&gt;
&lt;br /&gt;
== Mozilla Platform (Gecko) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
! TaskCluster Improvements &lt;br /&gt;
! (placeholder)&lt;br /&gt;
! Backend (Node) JS, Github&lt;br /&gt;
! :dustin&lt;br /&gt;
! :dustin&lt;br /&gt;
! (will be something from [[TaskCluster/Round Tuit Box]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title&lt;br /&gt;
! Details&lt;br /&gt;
! Skills Needed&lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| about:telemetry redesign&lt;br /&gt;
| about:telemetry is present on all builds of Firefox as a way for users to view the data being stored and sent via Telemetry. It was built before Firefox had multi-process Telemetry and without a clear design. This has resulted in a confusing HTML UI and barely-comprehensible JS.&lt;br /&gt;
| webtech (HTML+CSS+JS) and Design&lt;br /&gt;
| :chutten&lt;br /&gt;
| :chutten&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox Developer Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox for Android ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Thunderbird ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Instantbird ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Calendar ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SeaMonkey ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Bugzilla ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Firefox Support (SUMO) ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== QA ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Automation &amp;amp; Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
! JS static analysis &lt;br /&gt;
! Bring some static analysis in our Firefox Javascript code&lt;br /&gt;
! Javascript experience, FLOW(?)&lt;br /&gt;
! Sylvestre&lt;br /&gt;
! same &lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! C++ static analysis &lt;br /&gt;
! Add new checkers specific to our base code&lt;br /&gt;
! Strong C++ experience, clang&lt;br /&gt;
! Sylvestre&lt;br /&gt;
! Andi&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! JSON in Sqlite&lt;br /&gt;
! Query JSON Documents stored in Sqlite&lt;br /&gt;
! Database, SQL, Python &lt;br /&gt;
! Kyle Lahnakoski&lt;br /&gt;
! Kyle Lahnakoski&lt;br /&gt;
! [https://github.com/klahnakoski/JSONQueryExpressionTests/blob/master/docs/GSOC%20Proposal.md Details]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mozilla Developer Network ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mozilla IT and Infrastructure ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sync / Services ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Developer Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Add-on SDK ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Foundation ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenArt ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release Engineering ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Emscripten ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Rust ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
! Rust + WebAssembly showcase&lt;br /&gt;
! Rust and WebAssembly are going to be a great pair. Design and implement a simple and attractive web application, in Rust, that demonstrates the power of Rust on the web. Make fixes to upstream projects as necessary. Write a blog post about it.&lt;br /&gt;
! Rust, web development&lt;br /&gt;
! brson&lt;br /&gt;
! brson&lt;br /&gt;
! cc https://users.rust-lang.org/t/compiling-to-the-web-with-rust-and-emscripten/7627&lt;br /&gt;
|-&lt;br /&gt;
! Rust dashboard updates&lt;br /&gt;
! Update rusty-dash.com to include additional metrics important to the project. This tool is vital to the day-to-day management of Rust, but it needs some dedicated attention to fulfill its promise.&lt;br /&gt;
! Rust&lt;br /&gt;
! brson&lt;br /&gt;
! brson&lt;br /&gt;
! Follow on work to https://internals.rust-lang.org/t/the-rust-project-needs-much-better-visibility-into-important-metrics/3367&lt;br /&gt;
|-&lt;br /&gt;
! Rust reproducible builds&lt;br /&gt;
! Make the Rust build process produce the identical binaries when run with identical configurations. This improves the security of the Rust ecosystem by allowing others to&lt;br /&gt;
double-check the official Rust builds&lt;br /&gt;
! Rust, compilers, systems programming&lt;br /&gt;
! brson&lt;br /&gt;
! brson&lt;br /&gt;
! https://internals.rust-lang.org/t/verifying-rustc-releases-with-reproducible-builds/4502&lt;br /&gt;
|-&lt;br /&gt;
! Abstract the Rust standard library&lt;br /&gt;
! The Rust standard library is very portable, but can be very, very portable. Refactor the&lt;br /&gt;
standard library to pull out a platform abstraction layer.&lt;br /&gt;
! Moderate Rust experience&lt;br /&gt;
! brson&lt;br /&gt;
! brson&lt;br /&gt;
! https://internals.rust-lang.org/t/refactoring-std-for-ultimate-portability/4301&lt;br /&gt;
|-&lt;br /&gt;
! Rust cross-platform showcase project&lt;br /&gt;
! Rust is very portable. Create a single showcase demo project that compiles for Windows, OS X, Linux, Android, iOS, wasm, and microcontrollers. Use real crates to accomplish some real task. Set up CI for all platforms on Travis. To be used as a teaching tool and for regression testing.&lt;br /&gt;
! Moderate Rust experience&lt;br /&gt;
! brson&lt;br /&gt;
! brson&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! rustc micro-optimization bonanza&lt;br /&gt;
! Just go hog wild finding microoptimizations in rustc. Write a blog post bragging about it.&lt;br /&gt;
! Performance optimization&lt;br /&gt;
! brson&lt;br /&gt;
! brson&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
! Rust-specific benchmark suite&lt;br /&gt;
! Today Rust uses perf.rust-lang.org to track _compile time_ performance, but nothing to track _runtime_ performance. Work with the Rust developers to create a benchmark suite specific to Rust.&lt;br /&gt;
! Programming&lt;br /&gt;
! brson&lt;br /&gt;
! brson, nrc?&lt;br /&gt;
! &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Servo ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security Engineering ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Build system ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security Assurance ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== WADI ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mozilla Science Lab ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Skills Needed &lt;br /&gt;
! Reporter &lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== MozVR ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Reporter&lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Connected Devices ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard-table&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Title &lt;br /&gt;
! Details &lt;br /&gt;
! Reporter&lt;br /&gt;
! Mentor(s) &lt;br /&gt;
! Comments &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1156705</id>
		<title>Auto-tools/Projects/DevelopmentMetrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1156705"/>
		<updated>2016-12-10T22:30:39Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: more alert fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
These charts serve two purposes.  The first is to satisfy one of the specific needs of the [[Bugzilla Anthropology|Bugzilla Anthropology Project]] which was to provide a view into patch review times.  The second is to prove&lt;br /&gt;
ElasticSearch can be used a performant [http://en.wikipedia.org/wiki/Data_warehouse data warehouse].&lt;br /&gt;
More on the project and conclusions can be found at the [https://wiki.mozilla.org/index.php?title=Bugzilla_Anthropology/2013-01-29 Jan 2013 project summary].&lt;br /&gt;
There is also my [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pdf DashCon presentation]( [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pptx PPT])&lt;br /&gt;
&lt;br /&gt;
== Bug Counts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html Bug Counts] || Open bug count over time, with open/close rates, and median age.  Filter bugs by time range, components, and common program markups.  This dashboard is meant as a rough-first-step to building something more process specific.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-CloseRate.html#sampleInterval=week&amp;amp;sampleMax=2014-01-25&amp;amp;sampleMin=2012-05-27 Bug Close Rate] || Counts bug closures, and requires writing Elasticsearch filters to limit view to desired category of bugs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patch Reviews==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byTop.html Top 30 Reviewers]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Shows the top reviewers from the past 6 weeks, the number of reviews they did, and the number in their queue right now.  The original objective of this dashboard is to confirm some engineers have too many reviews. This dashboard is fine for identifying egregious differences, but poor for individual comparison; it seems personal style, team style, and code under review all impact the size and number of reviews done. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity_First.html Time to First Incoming Review]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Counts review requests and review completion rates.  Also breaks down aggregate review age.  The first review has been shown to take the longest, probably due to people synchronization issues.  Subsequent reviews were almost instantaneous, so we exclude them.  This dashboard is not good for fine grained comparison of teams because the nature of the bugs, and the process used, is often too different.  The response time INCLUDES WEEKENDS.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byReviewer.html Incoming Review by Individual]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Top reviewers, but this time with some breakdown by week and component.  Interesting, but not actionable.&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity.html Incoming Reviews]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN and disabled mixed content blocking&amp;lt;/span&amp;gt;&lt;br /&gt;
| Statistics for all reviews.  Subsequent reviews of a bug happen much faster than the first.  Maybe the fast review speed is an administrative anomaly; reviews are added after the fact, and marked as reviewed.  Maybe, the requester and reviewer are working closely to remove the remaining nits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Reviews_Pending_18.html Reviews Requested in the Past 18 weeks]&lt;br /&gt;
| An attempt to better understand the aggregate response time; while treating &amp;quot;old&amp;quot; reviews (those over 18weeks), as something else entirely.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Engineering Dashboards==&lt;br /&gt;
&lt;br /&gt;
Dashboards for use by developers, or our own team &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
| List of current, intermittent test failures, and have een no bug activity in the past week.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Release Management Dashboards==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.mozilla.org/Release_Management Release Management] are responsible for quality, security, and stability. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform/releases.html Release Dashboard]&lt;br /&gt;
| All outstanding bugs tracked by the Release Management&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform-history/release-history.html Release Uplifts]&lt;br /&gt;
| Count the number of patches that have been uplifted to the Aurora and Beta branches. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/contributors/dashboard.html# Contributors Dashboard]&lt;br /&gt;
| [https://wiki.mozilla.org/EngineeringProductivity Engineering Productivity&#039;s] list of contributor bugs that may benefit from some action on our part.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Project Dashboards and Burndown==&lt;br /&gt;
&lt;br /&gt;
These dashboards are for showing general project state and burndown.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard_byProject.html Project Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Lists assigned bugs, patches in review, and patches awaiting landing&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Predictive_Simple.html#programFilter=B2G+1.3 Burndown Prediction]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Uses average new bug rate, and average close rate to estimate the time it takes&lt;br /&gt;
to close all bugs in the given category.  Compares to close rates necessary to meet due date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard-FinalBurndown.html Final Burndown Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Basic burndown chart.  Showing current bugs over time compared to ideal (linear) burndown&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1156704</id>
		<title>Auto-tools/Projects/DevelopmentMetrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1156704"/>
		<updated>2016-12-10T22:20:28Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: remove vpn indicator&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
These charts serve two purposes.  The first is to satisfy one of the specific needs of the [[Bugzilla Anthropology|Bugzilla Anthropology Project]] which was to provide a view into patch review times.  The second is to prove&lt;br /&gt;
ElasticSearch can be used a performant [http://en.wikipedia.org/wiki/Data_warehouse data warehouse].&lt;br /&gt;
More on the project and conclusions can be found at the [https://wiki.mozilla.org/index.php?title=Bugzilla_Anthropology/2013-01-29 Jan 2013 project summary].&lt;br /&gt;
There is also my [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pdf DashCon presentation]( [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pptx PPT])&lt;br /&gt;
&lt;br /&gt;
== Bug Counts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html Bug Counts] || Open bug count over time, with open/close rates, and median age.  Filter bugs by time range, components, and common program markups.  This dashboard is meant as a rough-first-step to building something more process specific.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-CloseRate.html#sampleInterval=week&amp;amp;sampleMax=2014-01-25&amp;amp;sampleMin=2012-05-27 Bug Close Rate] || Counts bug closures, and requires writing Elasticsearch filters to limit view to desired category of bugs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patch Reviews==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byTop.html Top 30 Reviewers]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Shows the top reviewers from the past 6 weeks, the number of reviews they did, and the number in their queue right now.  The original objective of this dashboard is to confirm some engineers have too many reviews. This dashboard is fine for identifying egregious differences, but poor for individual comparison; it seems personal style, team style, and code under review all impact the size and number of reviews done. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity_First.html Time to First Incoming Review]&lt;br /&gt;
| Counts review requests and review completion rates.  Also breaks down aggregate review age.  The first review has been shown to take the longest, probably due to people synchronization issues.  Subsequent reviews were almost instantaneous, so we exclude them.  This dashboard is not good for fine grained comparison of teams because the nature of the bugs, and the process used, is often too different.  The response time INCLUDES WEEKENDS.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byReviewer.html Incoming Review by Individual]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Top reviewers, but this time with some breakdown by week and component.  Interesting, but not actionable.&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity.html Incoming Reviews]&lt;br /&gt;
| Statistics for all reviews.  Subsequent reviews of a bug happen much faster than the first.  Maybe the fast review speed is an administrative anomaly; reviews are added after the fact, and marked as reviewed.  Maybe, the requester and reviewer are working closely to remove the remaining nits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Reviews_Pending_18.html Reviews Requested in the Past 18 weeks]&lt;br /&gt;
| An attempt to better understand the aggregate response time; while treating &amp;quot;old&amp;quot; reviews (those over 18weeks), as something else entirely.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Engineering Dashboards==&lt;br /&gt;
&lt;br /&gt;
Dashboards for use by developers, or our own team &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
| List of current, intermittent test failures, and have een no bug activity in the past week.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Release Management Dashboards==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.mozilla.org/Release_Management Release Management] are responsible for quality, security, and stability. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform/releases.html Release Dashboard]&lt;br /&gt;
| All outstanding bugs tracked by the Release Management&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform-history/release-history.html Release Uplifts]&lt;br /&gt;
| Count the number of patches that have been uplifted to the Aurora and Beta branches. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/contributors/dashboard.html# Contributors Dashboard]&lt;br /&gt;
| [https://wiki.mozilla.org/EngineeringProductivity Engineering Productivity&#039;s] list of contributor bugs that may benefit from some action on our part.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Project Dashboards and Burndown==&lt;br /&gt;
&lt;br /&gt;
These dashboards are for showing general project state and burndown.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard_byProject.html Project Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Lists assigned bugs, patches in review, and patches awaiting landing&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Predictive_Simple.html#programFilter=B2G+1.3 Burndown Prediction]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Uses average new bug rate, and average close rate to estimate the time it takes&lt;br /&gt;
to close all bugs in the given category.  Compares to close rates necessary to meet due date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard-FinalBurndown.html Final Burndown Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Basic burndown chart.  Showing current bugs over time compared to ideal (linear) burndown&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Meetings/2016-10-31&amp;diff=1153006</id>
		<title>EngineeringProductivity/Meetings/2016-10-31</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Meetings/2016-10-31&amp;diff=1153006"/>
		<updated>2016-10-28T19:11:01Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add question&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notices, Highlights, Roundtable =&lt;br /&gt;
* Significant Contributions&lt;br /&gt;
** Francesco Pischedda [:fpsd] - Fixed |mach lint| to ensure the same versions of flake8 are used locally as are used in automation ({{bug|1285555}})&lt;br /&gt;
* [jgriffin] Remember to submit your name for about:credits in Firefox - https://docs.google.com/forms/d/e/1FAIpQLSfgez4NGkespvSVblBkMDjWnsZm9PQQH41vbAnkOFQRGl30JQ/viewform&lt;br /&gt;
** https://www.mozilla.org/credits/&lt;br /&gt;
&lt;br /&gt;
= Newsgroup and Blog Posts =&lt;br /&gt;
&lt;br /&gt;
= Goal Updates =&lt;br /&gt;
&lt;br /&gt;
= Other Project Updates =&lt;br /&gt;
&lt;br /&gt;
= Holidays and Trips =&lt;br /&gt;
&lt;br /&gt;
= Misc =&lt;br /&gt;
&lt;br /&gt;
* [ekyle] Do we have a distributed process monitor? One with remote workers that can trigger jobs, and monitor them?  Monit?&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Stockwell/Meetings/2016-10-25&amp;diff=1152553</id>
		<title>EngineeringProductivity/Projects/Stockwell/Meetings/2016-10-25</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Stockwell/Meetings/2016-10-25&amp;diff=1152553"/>
		<updated>2016-10-25T14:32:34Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add ekyle updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Previous Action Items =&lt;br /&gt;
&lt;br /&gt;
= Status =&lt;br /&gt;
* [gbrown] - doing triage with orange factor data, determining what additional data makes triage and bug fixing easier&lt;br /&gt;
* [jmaher] - fixing a few infra intermittent bugs&lt;br /&gt;
* [jmaher] - starting to experiment with [[https://treeherder.mozilla.org/#/jobs?repo=try&amp;amp;revision=aa40ec3c1268917871b1457d7ac3309a919e5b0b&amp;amp;selectedJob=29483834&amp;amp;filter-searchStr=quarantine quarantine]] (thanks to [[https://mozillians.org/en-US/u/malayaleecoder/ :malayaleecoder]])&lt;br /&gt;
* [ekyle] - Neglected Oranges (new) https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html&lt;br /&gt;
* [ekyle] - OFv2 (not verified, on hold) https://people.mozilla.org/~klahnakoski/testfailures/&lt;br /&gt;
&lt;br /&gt;
= Discussion Topics =&lt;br /&gt;
* Classification Tasks (aka Quarantine) ideas:&lt;br /&gt;
** Purgatory (frequent intermittent tests) - what is the point of running these if the job will always be orange?  could we detect if a regression was introduced?  Would we disable tests if they stayed here too long (say 30 days)?&lt;br /&gt;
** Quarantine (new/edited tests) - All tests which are edited/added would run for 2 weeks to ensure it isn&#039;t intermittent.  If intermittent, would we move to Purgatory, backout original patch?&lt;br /&gt;
*** example [[https://treeherder.mozilla.org/#/jobs?repo=try&amp;amp;revision=9666ec40dfced1237aa6d5c269c9cfdb2f901ac9 try push]]&lt;br /&gt;
** Sanity (quick, very safe - 100% green) vs longer more complex/slightly intermittent.  How would we define these safe tests?  would we backout if any test here was intermittent? criteria for moving to main test suites (&amp;lt;10 intermittents total)?&lt;br /&gt;
** Making these changes will help keep our test jobs very green, without a purpose and workflow, these will add more confusion.&lt;br /&gt;
** are there concerns if something meets criteria on one platform, but not another?&lt;br /&gt;
** would our criteria change if this was disabled on one or more buildtypes/configs?&lt;br /&gt;
&lt;br /&gt;
* Communication Format proposals:&lt;br /&gt;
** weekly communication to dev.platform like Memshrink tracking orange factor, new bugs, bugs fixed, major and upcoming milestones, tools&lt;br /&gt;
** monthly open format meetings for 2017- discuss data from stockwell weekly updates, ideas, concerns&lt;br /&gt;
** should we announce top intermittent bug fixers?&lt;br /&gt;
** should we track by module (webrtc, dom, layout, infra, etc.)?  announce big module changes in intermittents?&lt;br /&gt;
&lt;br /&gt;
= New Ideas to investigate =&lt;br /&gt;
* [jmaher] running each test in a fresh process/profile (measure runtime, failures)&lt;br /&gt;
* [jmaher] test case review- what criteria is useful for determining a potential intermittent?&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
= Action Items =&lt;br /&gt;
* Discussion topics for next time&lt;br /&gt;
** [wlach] reproduce top oranges with &#039;rr&#039; (possibly 2 weeks out)&lt;br /&gt;
** [gbrown] summarize findings of triaging- propose changes to tools&lt;br /&gt;
**&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1152222</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1152222"/>
		<updated>2016-10-23T10:42:16Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add end to end times&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/End-to-End.html End to End Times] &lt;br /&gt;
|| Shows overall time from when a build is first requested to the time tests on that build are complete.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/testfailures/ Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
|| Cross reference OrangeFactor and Bugzilla to give a list of frequent intermittents that have no bug activity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Buildbot&lt;br /&gt;
* Mozharness&lt;br /&gt;
* Structured Logs&lt;br /&gt;
* Task Cluster (end of Q1 2016)&lt;br /&gt;
* PerfHerder&lt;br /&gt;
* hg.mozilla.org&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Buildbot test times &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times &lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
== Tests ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/master/tests/test_unittests.py testing code which sends some unittest-specific queries]&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
Bug are tracked in [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=activedata Bugzilla].  The open issues are shown here:&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;quicksearch&amp;quot;:&amp;quot;activedata&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1152221</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1152221"/>
		<updated>2016-10-23T10:28:38Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add oranges&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/testfailures/ Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
|| Cross reference OrangeFactor and Bugzilla to give a list of frequent intermittents that have no bug activity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Buildbot&lt;br /&gt;
* Mozharness&lt;br /&gt;
* Structured Logs&lt;br /&gt;
* Task Cluster (end of Q1 2016)&lt;br /&gt;
* PerfHerder&lt;br /&gt;
* hg.mozilla.org&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Buildbot test times &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times &lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
== Tests ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/master/tests/test_unittests.py testing code which sends some unittest-specific queries]&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
Bug are tracked in [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=activedata Bugzilla].  The open issues are shown here:&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;quicksearch&amp;quot;:&amp;quot;activedata&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1152220</id>
		<title>Auto-tools/Projects/DevelopmentMetrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/DevelopmentMetrics&amp;diff=1152220"/>
		<updated>2016-10-23T10:16:14Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: Add neglected oranges&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
These charts serve two purposes.  The first is to satisfy one of the specific needs of the [[Bugzilla Anthropology|Bugzilla Anthropology Project]] which was to provide a view into patch review times.  The second is to prove&lt;br /&gt;
ElasticSearch can be used a performant [http://en.wikipedia.org/wiki/Data_warehouse data warehouse].&lt;br /&gt;
More on the project and conclusions can be found at the [https://wiki.mozilla.org/index.php?title=Bugzilla_Anthropology/2013-01-29 Jan 2013 project summary].&lt;br /&gt;
There is also my [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pdf DashCon presentation]( [http://people.mozilla.org/~klahnakoski/docs/Bugs%20in%20ES.pptx PPT])&lt;br /&gt;
&lt;br /&gt;
== Bug Counts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html Bug Counts] || Open bug count over time, with open/close rates, and median age.  Filter bugs by time range, components, and common program markups.  This dashboard is meant as a rough-first-step to building something more process specific.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-CloseRate.html#sampleInterval=week&amp;amp;sampleMax=2014-01-25&amp;amp;sampleMin=2012-05-27 Bug Close Rate] || Counts bug closures, and requires writing Elasticsearch filters to limit view to desired category of bugs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Patch Reviews==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byTop.html Top 30 Reviewers]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Shows the top reviewers from the past 6 weeks, the number of reviews they did, and the number in their queue right now.  The original objective of this dashboard is to confirm some engineers have too many reviews. This dashboard is fine for identifying egregious differences, but poor for individual comparison; it seems personal style, team style, and code under review all impact the size and number of reviews done. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity_First.html Time to First Incoming Review]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Counts review requests and review completion rates.  Also breaks down aggregate review age.  The first review has been shown to take the longest, probably due to people synchronization issues.  Subsequent reviews were almost instantaneous, so we exclude them.  This dashboard is not good for fine grained comparison of teams because the nature of the bugs, and the process used, is often too different.  The response time INCLUDES WEEKENDS.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Review-byReviewer.html Incoming Review by Individual]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Top reviewers, but this time with some breakdown by week and component.  Interesting, but not actionable.&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://people.mozilla.org/~klahnakoski/review/ReviewIntensity.html Incoming Reviews]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Statistics for all reviews.  Subsequent reviews of a bug happen much faster than the first.  Maybe the fast review speed is an administrative anomaly; reviews are added after the fact, and marked as reviewed.  Maybe, the requester and reviewer are working closely to remove the remaining nits.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/review/Reviews_Pending_18.html Reviews Requested in the Past 18 weeks]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| An attempt to better understand the aggregate response time; while treating &amp;quot;old&amp;quot; reviews (those over 18weeks), as something else entirely.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Engineering Dashboards==&lt;br /&gt;
&lt;br /&gt;
Dashboards for use by developers, or our own team &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [https://people.mozilla.org/~klahnakoski/NeglectedOranges/index.html Neglected Oranges]&lt;br /&gt;
| List of current, intermittent test failures, and have een no bug activity in the past week.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Release Management Dashboards==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.mozilla.org/Release_Management Release Management] are responsible for quality, security, and stability. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform/releases.html Release Dashboard]&lt;br /&gt;
| All outstanding bugs tracked by the Release Management&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/platform-history/release-history.html Release Uplifts]&lt;br /&gt;
| Count the number of patches that have been uplifted to the Aurora and Beta branches. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/contributors/dashboard.html# Contributors Dashboard]&lt;br /&gt;
| [https://wiki.mozilla.org/EngineeringProductivity Engineering Productivity&#039;s] list of contributor bugs that may benefit from some action on our part.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Project Dashboards and Burndown==&lt;br /&gt;
&lt;br /&gt;
These dashboards are for showing general project state and burndown.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard_byProject.html Project Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Lists assigned bugs, patches in review, and patches awaiting landing&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Predictive_Simple.html#programFilter=B2G+1.3 Burndown Prediction]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Uses average new bug rate, and average close rate to estimate the time it takes&lt;br /&gt;
to close all bugs in the given category.  Compares to close rates necessary to meet due date&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/modevmetrics/Dashboard-FinalBurndown.html Final Burndown Dashboard]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Requires VPN&amp;lt;/span&amp;gt;&lt;br /&gt;
| Basic burndown chart.  Showing current bugs over time compared to ideal (linear) burndown&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1151838</id>
		<title>EngineeringProductivity/Projects/Everything</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1151838"/>
		<updated>2016-10-19T15:39:50Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Project Table ==&lt;br /&gt;
&lt;br /&gt;
There is a project table that is a short list of the most active, projects: https://wiki.mozilla.org/EngineeringProductivity/Projects&lt;br /&gt;
&lt;br /&gt;
== Motivation == &lt;br /&gt;
&lt;br /&gt;
This page exists to provide a low-maintenance list of all our projects. I do not beleive anyone knows how they &#039;&#039;&#039;all&#039;&#039;&#039; interact, but at least this list ensures here are no hidden moving parts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Template can be found below&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
&lt;br /&gt;
=== ActiveData ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Buildbot JSON logs&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
** OrangeFactor&lt;br /&gt;
** Perfherder &lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
** Structured Logs from Tests&lt;br /&gt;
** Talos&lt;br /&gt;
** Text logs (for buildbot and mozharness steps only)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Query endpoint: http://activedata.allizom.org/query&lt;br /&gt;
** Query Tool: http://activedata.allizom.org/tools/query.html&lt;br /&gt;
&lt;br /&gt;
=== AlertManager ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; -https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** mozilla.dev.tree-management alerts from graph server&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** webUI for organizing and taking action on these alerts.&lt;br /&gt;
&lt;br /&gt;
=== Autoland ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - http://mozilla-version-control-tools.readthedocs.io/en/latest/mozreview/autoland.html&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - http://hg.mozilla.org/hgcustom/version-control-tools/file/tip/autoland&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:mcote], [:glob]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** MozReview UI &amp;amp; MozReview repo&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** Commits land on the repository of record (or try)&lt;br /&gt;
** Status reported to MozReview&lt;br /&gt;
&lt;br /&gt;
=== Autophone ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/AutoPhone&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/autophone/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://phonedash.mozilla.org/ (used by who?)&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla / BMO ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bmo.readthedocs.io&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla-bteam/bmo&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Mark Cote, David Lawrence, Dylan Hardison&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Web UI&lt;br /&gt;
** WebServices API (REST, XMLRPC, JSONRPC)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://bugzilla.mozilla.org (bug reporters, developers, etc)&lt;br /&gt;
** Pulse, Bugzfeed (via the [[https://wiki.mozilla.org/BMO/ChangeNotificationSystem]])&lt;br /&gt;
** BMO Push service (custom notifications for specific applications)&lt;br /&gt;
&lt;br /&gt;
=== BugzFeed ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[BMO/ChangeNotificationSystem]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/bugzfeed&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO via [[Auto-tools/Projects/Pulse|Pulse]]&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** WebSocket servers:&lt;br /&gt;
*** bugzfeed.mozilla.org&lt;br /&gt;
*** bugzfeed-dev.allizom.org&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla/ES Cluster ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/BMO/ElasticSearch&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/Bugzilla-ETL&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** Bugzilla (direct database access)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version&lt;br /&gt;
&lt;br /&gt;
=== Buildbot ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** builder slaves&lt;br /&gt;
** tester slaves&lt;br /&gt;
** https://wiki.mozilla.org/ReleaseEngineering/BuildAPI ??&lt;br /&gt;
** JSON Logs: http://builddata.pub.build.mozilla.org/builddata/buildjson/&lt;br /&gt;
&lt;br /&gt;
=== C++ Code Coverage ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bugzilla.mozilla.org/show_bug.cgi?id=890116&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* Used to be possible to trigger code coverage builds with &#039;try: -b o -p linux64-cc -u all -t none&#039;, but I think this is broken now. Probably isn&#039;t terribly hard to revive this. Needs further investigation.&lt;br /&gt;
&lt;br /&gt;
=== charts.mozilla.org ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/charts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** BMO/ES Cluster (https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://charts.mozilla.org (for management)&lt;br /&gt;
&lt;br /&gt;
=== CodeCoverage ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/CodeCoverage&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;UI&#039;&#039;&#039; - https://github.com/chinhodado/codecoverage_presenter&lt;br /&gt;
** &#039;&#039;&#039;ETL&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData-ETL/blob/dev/activedata_etl/transforms/jscov_to_es.py&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com, klahnakoski@mozilla.com, chmanchester@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Various tests have been configured with a code coverage option&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** ActiveData - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
** http://chinhodado.github.io/codecoverage_presenter/&lt;br /&gt;
&lt;br /&gt;
=== Datazilla (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - See Treeherder&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** data pushed from Talos (see Graph Server)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** charts at https://datazilla.mozilla.org&lt;br /&gt;
** raw results at https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob&lt;br /&gt;
&lt;br /&gt;
=== DevelopmentMetrics ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/DevelopmentMetrics&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/MoDevMetrics&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Bugzilla/ES Cluster&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** various charts and dashboards&lt;br /&gt;
&lt;br /&gt;
=== DevTools Harness ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - Needs project page!&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ted.mielczarek]&lt;br /&gt;
&lt;br /&gt;
=== dzAlerts (retired)===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Alerts&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/datazilla-alerts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Datazilla web service (https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob)&lt;br /&gt;
** Eideticket web service (http://eideticker.mozilla.org)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** fxos-perf-alerts@mozilla.org (b2g sheriffs?)&lt;br /&gt;
&lt;br /&gt;
=== Eideticker (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Project_Eideticker#Documentation&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/eideticker&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - William Lachance, Dave Hunt&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Nightly/inbound b2g and android builds.&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Eideticker dashboard (http://eideticker.mozilla.org)&lt;br /&gt;
&lt;br /&gt;
=== Janitor ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://mana.mozilla.org/wiki/display/ateam/Janitor&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/jankeromnes/janitor, https://github.com/jankeromnes/dockerfiles&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Jan Keromnes [:janx]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** (none yet)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://janitor.technology&lt;br /&gt;
** BMO: new patches uploaded by users&lt;br /&gt;
** Treeherder: new pushes from users&lt;br /&gt;
** Docker Hub: image updates https://hub.docker.com/u/janx/&lt;br /&gt;
&lt;br /&gt;
=== m21s ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/m21s&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - see project page&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:whimboo]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Mozmill release tests&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** &#039;Firefox Greenlight Tests&#039; in Marionette, reporting to Treeherder&lt;br /&gt;
&lt;br /&gt;
=== Marionette ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Marionette&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:AutomatedTester][:ato]&lt;br /&gt;
* &#039;&#039;&#039;What&#039;&#039;&#039; - Mozilla&#039;s native WebDriver implementation&lt;br /&gt;
&lt;br /&gt;
=== Mozharness ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Mozharness&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/mozharness/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:armenzg]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** command-line invocation via buildbot or locally&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039; &lt;br /&gt;
** build/test logs consumed by buildbot, Treeherder, TBPL&lt;br /&gt;
&lt;br /&gt;
=== MozReview (Review Board) ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - http://mozilla-version-control-tools.readthedocs.io/en/latest/mozreview.html&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - various pieces of https://hg.mozilla.org/hgcustom/version-control-tools; see docs for more.&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote, glob, smacleod&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
** reviewboard-hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
** Various repositories via Autoland&lt;br /&gt;
&lt;br /&gt;
=== OrangeFactor ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/OrangeFactor]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/automation/orangefactor/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :jgriffin, :mcote&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** buildbot messages (using pulse)&lt;br /&gt;
** build logs&lt;br /&gt;
** comments from TBPL&lt;br /&gt;
** bugzilla bug data&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://brasstacks.mozilla.com/orangefactor/&lt;br /&gt;
** email status [War on Orange]&lt;br /&gt;
&lt;br /&gt;
=== Ouija ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Ouija&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/dminor/ouija.git&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - dminor, jmaher&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** https://hg.mozilla.org/&lt;br /&gt;
** tbpl.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://54.215.155.53&lt;br /&gt;
&lt;br /&gt;
=== Perfherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/Perfherder&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/treeherder/tree/master/treeherder/perf&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :wlach&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** PERFHERDER_DATA&lt;br /&gt;
*** schema  https://github.com/mozilla/treeherder/blob/master/schemas/performance-artifact.json&lt;br /&gt;
*** example http://wrla.ch/blog/2015/11/perfherder-onward/&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/perf.html#/graphs&lt;br /&gt;
&lt;br /&gt;
=== Pulse ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Pulse &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - development library: https://hg.mozilla.org/automation/mozillapulse&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** a multitude of other systems &lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** a multitude of other systems&lt;br /&gt;
** https://pulse.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
=== PulseGuardian ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Pulse/PulseGuardian&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/pulseguardian/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Persona (for auth) (soon to be Okta or TaskCluster auth)&lt;br /&gt;
** Pulse&lt;br /&gt;
** Web UI&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Pulse&lt;br /&gt;
** Email notifications&lt;br /&gt;
&lt;br /&gt;
=== PulseTranslator ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator/blob/master/README.md&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jgriffin@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Pulse exchange/build&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
&lt;br /&gt;
=== Structured Logging ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://mozbase.readthedocs.org/en/latest/loggingreporting.html, https://wiki.mozilla.org/Auto-tools/Projects/Structured_Logging&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:jgraham]&lt;br /&gt;
&lt;br /&gt;
=== Talos ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Buildbot/Talos&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/talos&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build for desktop or android&lt;br /&gt;
** commandline (done via mozharness now) to specify which test(s) to run&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** log file with raw data&lt;br /&gt;
** uploaded summarization of data to graph server&lt;br /&gt;
** uploaded raw data to datazilla&lt;br /&gt;
&lt;br /&gt;
Can be referred to as what is run by buildbot or by tbpl since this is the only performance test run on our per revision CI system.  Other tools are run at a different cadence.&lt;br /&gt;
&lt;br /&gt;
=== TBPL (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Sheriffing/TBPL]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/webtools/tbpl/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [[Sheriffing/TBPL#Developer_Contacts]]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Test Informant ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Test-Informant&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - See project page&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build notifications via pulse&lt;br /&gt;
** test manifests in tests.zip&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** reports at e.g., http://brasstacks.mozilla.com/testreports/weekly&lt;br /&gt;
&lt;br /&gt;
=== Treeherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder#Source_and_Docs]]&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:camd][:mdoglio][:edmorley]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Pushlog from hg.mozilla.org via json-pushes&lt;br /&gt;
** Build/tests from Buildbot via buildapi&lt;br /&gt;
** Direct pushes via ``treeherder-client``&lt;br /&gt;
** Build/tests from Taskcluster (under development)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/&lt;br /&gt;
** https://treeherder.mozilla.org/api/&lt;br /&gt;
&lt;br /&gt;
=== web-platform-tests ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wptrunner.readthedocs.org/en/latest/, Needs project page?&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** https://github.com/w3c/web-platform-tests/&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/README.md&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/tests/README.md &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:jgraham]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Use the EMPTY TEMPLATE to add more entries.  Include ones you know about, even if you can not fill them.&lt;br /&gt;
&lt;br /&gt;
=== EXAMPLE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - some wiki, or read the docs to learn more &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - link to code, if it makes sense&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - for ekyle to contact if he has questions&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; -&lt;br /&gt;
** automated resources&lt;br /&gt;
** services consumed&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** automated services provided&lt;br /&gt;
** dashboards (and teams that consume them)&lt;br /&gt;
&lt;br /&gt;
=== EMPTY TEMPLATE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1150145</id>
		<title>EngineeringProductivity/Projects/Everything</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1150145"/>
		<updated>2016-10-04T20:20:47Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: Update the motivation to reflect the reality&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Project Table ==&lt;br /&gt;
&lt;br /&gt;
There is a project table that is a short list of the most active, projects: https://wiki.mozilla.org/EngineeringProductivity/Projects&lt;br /&gt;
&lt;br /&gt;
== Motivation == &lt;br /&gt;
&lt;br /&gt;
This page exists to provide a low-maintenance list of all out projects.  I do not beleive anyone knows how they all interact, but at least this list ensures here are no hidden moving parts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Template can be found below&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
&lt;br /&gt;
=== ActiveData ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Buildbot JSON logs&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
** OrangeFactor&lt;br /&gt;
** Perfherder &lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
** Structured Logs from Tests&lt;br /&gt;
** Talos&lt;br /&gt;
** Text logs (for buildbot and mozharness steps only)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Query endpoint: http://activedata.allizom.org/query&lt;br /&gt;
** Query Tool: http://activedata.allizom.org/tools/query.html&lt;br /&gt;
&lt;br /&gt;
=== AlertManager ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; -https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** mozilla.dev.tree-management alerts from graph server&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** webUI for organizing and taking action on these alerts.&lt;br /&gt;
&lt;br /&gt;
=== Autoland ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - http://mozilla-version-control-tools.readthedocs.io/en/latest/mozreview/autoland.html&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - http://hg.mozilla.org/hgcustom/version-control-tools/file/tip/autoland&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:mcote], [:glob]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** MozReview UI &amp;amp; MozReview repo&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** Commits land on the repository of record (or try)&lt;br /&gt;
** Status reported to MozReview&lt;br /&gt;
&lt;br /&gt;
=== Autophone ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/AutoPhone&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/autophone/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://phonedash.mozilla.org/ (used by who?)&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla / BMO ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bmo.readthedocs.io&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla-bteam/bmo&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Mark Cote, David Lawrence, Dylan Hardison&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Web UI&lt;br /&gt;
** WebServices API (REST, XMLRPC, JSONRPC)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://bugzilla.mozilla.org (bug reporters, developers, etc)&lt;br /&gt;
** Pulse, Bugzfeed (via the [[https://wiki.mozilla.org/BMO/ChangeNotificationSystem]])&lt;br /&gt;
** BMO Push service (custom notifications for specific applications)&lt;br /&gt;
&lt;br /&gt;
=== BugzFeed ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[BMO/ChangeNotificationSystem]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/bugzfeed&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO via [[Auto-tools/Projects/Pulse|Pulse]]&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** WebSocket servers:&lt;br /&gt;
*** bugzfeed.mozilla.org&lt;br /&gt;
*** bugzfeed-dev.allizom.org&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla/ES Cluster ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/BMO/ElasticSearch&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/Bugzilla-ETL&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** Bugzilla (direct database access)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version&lt;br /&gt;
&lt;br /&gt;
=== Buildbot ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** builder slaves&lt;br /&gt;
** tester slaves&lt;br /&gt;
** https://wiki.mozilla.org/ReleaseEngineering/BuildAPI ??&lt;br /&gt;
** JSON Logs: http://builddata.pub.build.mozilla.org/builddata/buildjson/&lt;br /&gt;
&lt;br /&gt;
=== C++ Code Coverage ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bugzilla.mozilla.org/show_bug.cgi?id=890116&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* Used to be possible to trigger code coverage builds with &#039;try: -b o -p linux64-cc -u all -t none&#039;, but I think this is broken now. Probably isn&#039;t terribly hard to revive this. Needs further investigation.&lt;br /&gt;
&lt;br /&gt;
=== charts.mozilla.org ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/charts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** BMO/ES Cluster (https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://charts.mozilla.org (for management)&lt;br /&gt;
&lt;br /&gt;
=== CodeCoverage ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/CodeCoverage&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;UI&#039;&#039;&#039; - https://github.com/chinhodado/codecoverage_presenter&lt;br /&gt;
** &#039;&#039;&#039;ETL&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData-ETL/blob/dev/activedata_etl/transforms/jscov_to_es.py&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com, klahnakoski@mozilla.com, chmanchester@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Various tests have been configured with a code coverage option&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** ActiveData - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
** http://chinhodado.github.io/codecoverage_presenter/&lt;br /&gt;
&lt;br /&gt;
=== Datazilla (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - See Treeherder&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** data pushed from Talos (see Graph Server)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** charts at https://datazilla.mozilla.org&lt;br /&gt;
** raw results at https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob&lt;br /&gt;
&lt;br /&gt;
=== DevelopmentMetrics ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/DevelopmentMetrics&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/MoDevMetrics&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Bugzilla/ES Cluster&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** various charts and dashboards&lt;br /&gt;
&lt;br /&gt;
=== DevTools Harness ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - Needs project page!&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ted.mielczarek]&lt;br /&gt;
&lt;br /&gt;
=== dzAlerts (retired)===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Alerts&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/datazilla-alerts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Datazilla web service (https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob)&lt;br /&gt;
** Eideticket web service (http://eideticker.mozilla.org)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** fxos-perf-alerts@mozilla.org (b2g sheriffs?)&lt;br /&gt;
&lt;br /&gt;
=== Eideticker (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Project_Eideticker#Documentation&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/eideticker&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - William Lachance, Dave Hunt&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Nightly/inbound b2g and android builds.&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Eideticker dashboard (http://eideticker.mozilla.org)&lt;br /&gt;
&lt;br /&gt;
=== Janitor ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://mana.mozilla.org/wiki/display/ateam/Janitor&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/jankeromnes/janitor, https://github.com/jankeromnes/dockerfiles&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Jan Keromnes [:janx]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** (none yet)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://janitor.technology&lt;br /&gt;
** BMO: new patches uploaded by users&lt;br /&gt;
** Treeherder: new pushes from users&lt;br /&gt;
** Docker Hub: image updates https://hub.docker.com/u/janx/&lt;br /&gt;
&lt;br /&gt;
=== m21s ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/m21s&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - see project page&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:whimboo]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Mozmill release tests&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** &#039;Firefox Greenlight Tests&#039; in Marionette, reporting to Treeherder&lt;br /&gt;
&lt;br /&gt;
=== Marionette ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Marionette&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:AutomatedTester][:ato]&lt;br /&gt;
* &#039;&#039;&#039;What&#039;&#039;&#039; - Mozilla&#039;s native WebDriver implementation&lt;br /&gt;
&lt;br /&gt;
=== Mozharness ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Mozharness&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/mozharness/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:armenzg]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** command-line invocation via buildbot or locally&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039; &lt;br /&gt;
** build/test logs consumed by buildbot, Treeherder, TBPL&lt;br /&gt;
&lt;br /&gt;
=== MozReview (Review Board) ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - http://mozilla-version-control-tools.readthedocs.io/en/latest/mozreview.html&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - various pieces of https://hg.mozilla.org/hgcustom/version-control-tools; see docs for more.&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote, glob, smacleod&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
** reviewboard-hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
** Various repositories via Autoland&lt;br /&gt;
&lt;br /&gt;
=== OrangeFactor ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/OrangeFactor]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/automation/orangefactor/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :jgriffin, :mcote&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** buildbot messages (using pulse)&lt;br /&gt;
** build logs&lt;br /&gt;
** comments from TBPL&lt;br /&gt;
** bugzilla bug data&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://brasstacks.mozilla.com/orangefactor/&lt;br /&gt;
** email status [War on Orange]&lt;br /&gt;
&lt;br /&gt;
=== Ouija ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Ouija&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/dminor/ouija.git&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - dminor, jmaher&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** https://hg.mozilla.org/&lt;br /&gt;
** tbpl.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://54.215.155.53&lt;br /&gt;
&lt;br /&gt;
=== Perfherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/Perfherder&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/treeherder/tree/master/treeherder/perf&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :wlach&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** PERFHERDER_DATA&lt;br /&gt;
*** schema  https://github.com/mozilla/treeherder/blob/master/schemas/performance-artifact.json&lt;br /&gt;
*** example http://wrla.ch/blog/2015/11/perfherder-onward/&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/perf.html#/graphs&lt;br /&gt;
&lt;br /&gt;
=== Pulse ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Pulse &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - development library: https://hg.mozilla.org/automation/mozillapulse&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** a multitude of other systems &lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** a multitude of other systems&lt;br /&gt;
** https://pulse.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
=== PulseGuardian ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Pulse/PulseGuardian&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/pulseguardian/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Persona (for auth) (soon to be Okta or TaskCluster auth)&lt;br /&gt;
** Pulse&lt;br /&gt;
** Web UI&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Pulse&lt;br /&gt;
** Email notifications&lt;br /&gt;
&lt;br /&gt;
=== PulseTranslator ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator/blob/master/README.md&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jgriffin@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Pulse exchange/build&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
&lt;br /&gt;
=== Structured Logging ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://mozbase.readthedocs.org/en/latest/loggingreporting.html, https://wiki.mozilla.org/Auto-tools/Projects/Structured_Logging&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:jgraham]&lt;br /&gt;
&lt;br /&gt;
=== Talos ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Buildbot/Talos&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/talos&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build for desktop or android&lt;br /&gt;
** commandline (done via mozharness now) to specify which test(s) to run&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** log file with raw data&lt;br /&gt;
** uploaded summarization of data to graph server&lt;br /&gt;
** uploaded raw data to datazilla&lt;br /&gt;
&lt;br /&gt;
Can be referred to as what is run by buildbot or by tbpl since this is the only performance test run on our per revision CI system.  Other tools are run at a different cadence.&lt;br /&gt;
&lt;br /&gt;
=== TBPL (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Sheriffing/TBPL]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/webtools/tbpl/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [[Sheriffing/TBPL#Developer_Contacts]]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Test Informant ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Test-Informant&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - See project page&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build notifications via pulse&lt;br /&gt;
** test manifests in tests.zip&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** reports at e.g., http://brasstacks.mozilla.com/testreports/weekly&lt;br /&gt;
&lt;br /&gt;
=== Treeherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder#Source_and_Docs]]&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:camd][:mdoglio][:edmorley]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Pushlog from hg.mozilla.org via json-pushes&lt;br /&gt;
** Build/tests from Buildbot via buildapi&lt;br /&gt;
** Direct pushes via ``treeherder-client``&lt;br /&gt;
** Build/tests from Taskcluster (under development)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/&lt;br /&gt;
** https://treeherder.mozilla.org/api/&lt;br /&gt;
&lt;br /&gt;
=== web-platform-tests ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wptrunner.readthedocs.org/en/latest/, Needs project page?&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** https://github.com/w3c/web-platform-tests/&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/README.md&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/tests/README.md &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:jgraham]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Use the EMPTY TEMPLATE to add more entries.  Include ones you know about, even if you can not fill them.&lt;br /&gt;
&lt;br /&gt;
=== EXAMPLE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - some wiki, or read the docs to learn more &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - link to code, if it makes sense&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - for ekyle to contact if he has questions&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; -&lt;br /&gt;
** automated resources&lt;br /&gt;
** services consumed&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** automated services provided&lt;br /&gt;
** dashboards (and teams that consume them)&lt;br /&gt;
&lt;br /&gt;
=== EMPTY TEMPLATE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Meetings&amp;diff=1148291</id>
		<title>EngineeringProductivity/Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Meetings&amp;diff=1148291"/>
		<updated>2016-09-19T19:08:06Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: mention cancelled meetings so ekyle does not get confused&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dial-in information ==&lt;br /&gt;
  # This meeting will start at [http://www.timeanddate.com/worldclock/fixedtime.html?iso=20111107T10&amp;amp;p1=283 10AM PDT] &lt;br /&gt;
  # Guest:  https://v.mozilla.com/flex.html?roomdirect.html&amp;amp;key=43kzfyP8BDSG&lt;br /&gt;
  # Vidyo:  A-Team Vidyo Room&lt;br /&gt;
  # Phone:  650-903-0800 or 650-215-1282 x92 Conf# 98416  (US/INTL)&lt;br /&gt;
  #         1-800-707-2533 (pin 369) Conf# 98416 (free for anyone to join)&lt;br /&gt;
  # IRC:    irc://irc.mozilla.org:6697/#ateam&lt;br /&gt;
&lt;br /&gt;
== Meeting Notes ==&lt;br /&gt;
&lt;br /&gt;
Templates:&lt;br /&gt;
* 2015: [[auto-tools/Meetings/goals_meeting_template2015Q1|Q1]] / [[EngineeringProductivity/Meetings/goals_meeting_template2015Q3|Q3]] / [[EngineeringProductivity/Meetings/goals_meeting_template2015Q4|Q4]]&lt;br /&gt;
* 2014: [[auto-tools/Meetings/goals_meeting_template2014Q1|Q1]] / [[auto-tools/Meetings/goals_meeting_template2014Q2|Q2]] / [[auto-tools/Meetings/goals_meeting_template2014Q3|Q3]] / [[auto-tools/Meetings/goals_meeting_template2014Q4|Q4]]&lt;br /&gt;
* 2013: [[auto-tools/Meetings/goals_meeting_template2013Q1|Q1]] / [[auto-tools/Meetings/goals_meeting_template2013Q2|Q2]] / [[auto-tools/Meetings/goals_meeting_template2013Q3|Q3]]&lt;br /&gt;
* 2012: [[auto-tools/Meetings/goals_meeting_template|Q2]] / [[auto-tools/Meetings/goals_meeting_template2012Q3|Q3]] / [[auto-tools/Meetings/goals_meeting_template2012Q4|Q4]]&lt;br /&gt;
* 2011: [[auto-tools/Meetings/template|Q4]] / [[auto-tools/Meetings/new_template|Nov]]&lt;br /&gt;
&lt;br /&gt;
Create a new weekly agenda from the [[EngineeringProductivity/Meetings/goals_meeting_template2015Q4|2015Q4 template]]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;createbox&amp;gt;&lt;br /&gt;
align=left&lt;br /&gt;
type=create&lt;br /&gt;
preload=EngineeringProductivity/Meetings/goals_meeting_template2015Q4&lt;br /&gt;
default={{#time: Y-m-d}}&lt;br /&gt;
prefix=EngineeringProductivity/Meetings/&lt;br /&gt;
&amp;lt;/createbox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! 2016&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-09-19|Sep 19 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-09-05|Sep 05 2016]] - cancelled due to Labor Day&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-08-22|Aug 22 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-08-08|Aug 08 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-07-25|Jul 25 2016]] - cancelled due to Town Hall&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-07-11|Jul 11 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-06-27|Jun 27 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-06-06|Jun 06 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-05-16|May 16 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-05-02|May 02 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-04-18|Apr 18 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-04-04|Apr 04 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-03-21|Mar 21 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-03-07|Mar 07 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-02-22|Feb 22 2016]]&lt;br /&gt;
* Feb 08 2016 - Cancelled&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-01-25|Jan 25 2016]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2016-01-11|Jan 11 2016]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! 2015&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2015-12-21|Dec 21 2015]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2015-11-30|Nov 30 2015]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2015-11-16|Nov 16 2015]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2015-11-02|Nov 02 2015]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2015-10-19|Oct 19 2015]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2015-10-05|Oct 05 2015]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2015-09-21|Sep 21 2015]]&lt;br /&gt;
* [[EngineeringProductivity/Meetings/2015-09-14|Sep 14 2015]]&lt;br /&gt;
* Sep 7 2015 - no meeting, due to US and Canadian holidays&lt;br /&gt;
* [[Auto-tools/Meetings/2015-08-24|Aug 24 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-08-10|Aug 10 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-07-27|Jul 27 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-07-13|Jul 13 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-07-06|Jul 06 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-06-15|Jun 15 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-06-01|Jun 01 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-05-18|May 18 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-05-04|May 04 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-04-20|Apr 20 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-04-06|Apr 06 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-03-23|Mar 23 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-03-09|Mar 09 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-02-23|Feb 23 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-02-09|Feb 09 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-01-26|Jan 26 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-01-12|Jan 12 2015]]&lt;br /&gt;
* [[Auto-tools/Meetings/2015-01-05|Jan 05 2015]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! 2014&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Auto-tools/Meetings/2014-12-22|Dec 22 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-12-15|Dec 15 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-11-24|Nov 24 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-11-10|Nov 10 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-10-27|Oct 27 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-10-20|Oct 20 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-09-29|Sep 29 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-09-15|Sep 15 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-09-08|Sep 08 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-08-18|Aug 18 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-08-04|Aug 04 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-07-21|Jul 21 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-07-07|Jul 07 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-06-23|Jun 23 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-06-09|Jun 09 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-06-02|Jun 02 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-05-12|May 12 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-04-28|Apr 28 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-04-14|Apr 14 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-03-31|Mar 31 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-03-17|Mar 17 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-03-03|Mar 03 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-02-24|Feb 24 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-02-03|Feb 03 2014]]&lt;br /&gt;
* [[Auto-tools/Meetings/2014-01-06|Jan 06 2014]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! 2013&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Auto-tools/Meetings/2013-12-16|Dec 16 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-12-02|Dec 02 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-11-25|Nov 25 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-11-18|Nov 18 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-11-11|Nov 11 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-11-04|Nov 4 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-10-28|Oct 28 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-10-21|Oct 21 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-10-14|Oct 14 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-09-30|Sept 30 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-09-23|Sept 23 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-09-16|Sept 16 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-09-09|Sept 9 2013]]&lt;br /&gt;
* Sept 2 2013 - canceled due to US Holiday&lt;br /&gt;
* [[Auto-tools/Meetings/2013-08-26|Aug 26 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-08-19|Aug 19 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-08-12|Aug 12 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-07-29|Jul 29 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-07-22|Jul 22 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-07-15|Jul 15 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-07-08|Jul 08 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-07-01|Jul 01 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-06-24|Jun 24 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-06-17|Jun 17 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-06-10|Jun 10 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-06-03|Jun 03 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-05-27|May 27 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-05-20|May 20 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-05-13|May 13 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-05-06|May 06 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-04-29|Apr 29 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-04-22|Apr 22 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-04-15|Apr 15 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-04-08|Apr 08 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-04-01|Apr 01 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-03-25|Mar 25 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-03-18|Mar 18 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-03-11|Mar 11 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-03-04|Mar 04 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-02-25|Feb 25 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-02-11|Feb 11 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-02-04|Feb 04 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-01-28|Jan 28 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-01-21|Jan 21 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-01-14|Jan 14 2013]]&lt;br /&gt;
* [[Auto-tools/Meetings/2013-01-07|Jan 7 2013]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! 2012&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Auto-tools/Meetings/2012-12-17|Dec 17 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-12-10|Dec 10 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-12-03|Dec 03 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-11-26|Nov 26 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-11-19|Nov 19 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-11-12|Nov 12 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-11-05|Nov 05 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-10-29|Oct 29 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-10-22|Oct 22 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-10-15|Oct 15 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-10-08|Oct 08 2012]]&lt;br /&gt;
* [[Auto-tools/Meetings/2012-10-01|Oct 01 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-09-24|Sep 24 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-09-17|Sep 17 2012]] &lt;br /&gt;
* [[auto-tools/Meetings/2012-09-10|Sep 10 2012]] (mc: mdas)&lt;br /&gt;
* [[auto-tools/Meetings/2012-09-03|Sep 03 2012]] (No one since US/Cananda Holiday, just updates)&lt;br /&gt;
* [[auto-tools/Meetings/2012-08-27|Aug 27 2012]] (mc: tbc)&lt;br /&gt;
* [[auto-tools/Meetings/2012-08-20|Aug 20 2012]] (mc: davehunt)&lt;br /&gt;
* [[auto-tools/Meetings/2012-08-13|Aug 13 2012]] (mc: dkl)&lt;br /&gt;
* [[auto-tools/Meetings/2012-08-06|Aug 06 2012]] (mc: jhammel)&lt;br /&gt;
* [[auto-tools/Meetings/2012-07-30|Jul 30 2012]] (mc: mcote)&lt;br /&gt;
* [[auto-tools/Meetings/2012-07-23|Jul 23 2012]] (mc: ted)&lt;br /&gt;
* [[auto-tools/Meetings/2012-07-16|Jul 16 2012]] (mc: ctalbert)&lt;br /&gt;
* [[auto-tools/Meetings/2012-07-09|Jul 09 2012]] (mc: jeads)&lt;br /&gt;
* [[auto-tools/Meetings/2012-07-02|Jul 02 2012]] (mc: carljm)&lt;br /&gt;
* [[auto-tools/Meetings/2012-06-25|Jun 25 2012]] (mc: ahal)&lt;br /&gt;
* [[auto-tools/Meetings/2012-06-18|Jun 18 2012]] (mc: mcote)&lt;br /&gt;
* [[auto-tools/Meetings/2012-06-11|Jun 11 2012]] (mc: jgriffin)&lt;br /&gt;
* [[auto-tools/Meetings/2012-06-04|Jun 04 2012]] (mc: ctalbert)&lt;br /&gt;
* [[auto-tools/Meetings/2012-05-28|May 28 2012]] (no meeting due to US holiday)&lt;br /&gt;
* [[auto-tools/Meetings/2012-05-21|May 21 2012]] (mc: camd)&lt;br /&gt;
* [[auto-tools/Meetings/2012-05-14|May 14 2012]] (mc: dburns)&lt;br /&gt;
* [[auto-tools/Meetings/2012-05-07|May 07 2012]] (mc: ctalbert)&lt;br /&gt;
* [[auto-tools/Meetings/2012-04-30|Apr 30 2012]] (mc: mdas)&lt;br /&gt;
* [[auto-tools/Meetings/2012-04-23|Apr 23 2012]] (mc: bc)&lt;br /&gt;
* [[auto-tools/Meetings/2012-04-16|Apr 16 2012]] (mc: wlach)&lt;br /&gt;
* [[auto-tools/Meetings/2012-04-09|Apr 09 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-04-02|Apr 02 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-03-26|Mar 26 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-03-19|Mar 19 2012]] (mc: jmaher)&lt;br /&gt;
* [[auto-tools/Meetings/2012-03-12|Mar 12 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-03-05|Mar 05 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-02-27|Feb 27 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-02-13|Feb 13 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-02-06|Feb 06 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-01-30|Jan 30 2012]]&lt;br /&gt;
* [[auto-tools/Meetings/2012-01-23|Jan 23 2012]]&lt;br /&gt;
* Jan 17th canceled due to US holiday &lt;br /&gt;
* [[auto-tools/Meetings/2012-01-09|Jan 09 2012]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! 2011&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[auto-tools/Meetings/2011-12-19|Dec 19 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-12-12|Dec 12 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-12-05|Dec 05 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-11-28|Nov 28 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-11-21|Nov 21 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-11-14|Nov 14 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-11-07|Nov 7 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-10-31|Oct 31 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-10-24|Oct 24 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-10-17|Oct 17 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-10-10|Oct 10 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-10-03|Oct 03 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-09-26|Sep 26 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-08-29|Aug 29 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-08-22|Aug 22 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-08-15|Aug 15 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-08-08|Aug 08 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-08-01|Aug 01 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-07-25|Jul 25 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-07-18|Jul 18 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-07-11|Jul 11 2011]]&lt;br /&gt;
* July 4th canceled due to US holiday&lt;br /&gt;
* [[auto-tools/Meetings/2011-06-27|Jun 27 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-06-20|Jun 20 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-06-13|Jun 13 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-06-06|Jun 06 2011]]&lt;br /&gt;
* May 30 canceled due to US holiday&lt;br /&gt;
* [[auto-tools/Meetings/2011-05-23|May 23 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-05-16|May 16 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-05-09|May 09 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-05-02|May 02 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-04-25|Apr 25 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-04-18|Apr 18 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-04-11|Apr 11 2011]]&lt;br /&gt;
* Apr 4 canceled due to all hands&lt;br /&gt;
* [[auto-tools/Meetings/2011-03-28|Mar 28 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-03-21|Mar 21 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-03-14|Mar 14 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-03-07|Mar 07 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-02-28|Feb 28 2011]]&lt;br /&gt;
* Feb 21 canceled due to holiday&lt;br /&gt;
* [[auto-tools/Meetings/2011-02-14|Feb 14 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-02-07|Feb 07 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-01-31|Jan 31 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-01-24|Jan 24 2011]]&lt;br /&gt;
* Jan 17 2011, no meeting, US holiday&lt;br /&gt;
* [[auto-tools/Meetings/2011-01-10|Jan 10 2011]]&lt;br /&gt;
* [[auto-tools/Meetings/2011-01-03|Jan 03 2011]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! 2010&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[auto-tools/Meetings/2010-12-27|Dec 27 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-12-20|Dec 20 2010]]&lt;br /&gt;
* Dec 13 2010 - no meeting, all hands&lt;br /&gt;
* [[auto-tools/Meetings/2010-12-06|Dec 06 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-11-29|Nov 29 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-11-22|Nov 22 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-11-15|Nov 15 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-11-08|Nov 08 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-11-01|Nov 01 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-10-25|Oct 25 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-10-18|Oct 18 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-10-11|Oct 11 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-10-04|Oct 04 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-09-27|Sept 27 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-09-20|Sept 20 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-09-13|Sept 13 2010]]&lt;br /&gt;
* Sept 6 canceled due to holiday&lt;br /&gt;
* [[auto-tools/Meetings/2010-08-30|Aug 30 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-08-23|Aug 23 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-08-16|Aug 16 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-08-09|Aug 09 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-08-02|Aug 02 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-07-26|Jul 26 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-07-19|Jul 19 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-07-12|Jul 12 2010]]&lt;br /&gt;
* &amp;lt;strike&amp;gt;July 5 2010&amp;lt;/strike&amp;gt; (Canceled due to US Holiday &amp;amp; Mozilla Summit)&lt;br /&gt;
* [[auto-tools/Meetings/2010-06-28|Jun 28 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-06-21|Jun 21 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-06-14|Jun 14 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-06-07|Jun 07 2010]]&lt;br /&gt;
* &amp;lt;strike&amp;gt;May 31 2010&amp;lt;/strike&amp;gt; (Canceled due to US Holiday)&lt;br /&gt;
* [[auto-tools/Meetings/2010-05-24|May 24 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-05-17|May 17 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-05-10|May 10 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-05-03|May 03 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-04-26|Apr 26 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-04-19|Apr 19 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-04-12|Apr 12 2010]]&lt;br /&gt;
* [[auto-tools/Meetings/2010-04-05|Apr 05 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-03-29|Mar 29 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-03-22|Mar 22 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-03-15|Mar 15 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-03-08|Mar 08 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-03-01|Mar 01 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-02-22|Feb 22 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-02-08|Feb 08 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-02-01|Feb 01 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-01-25|Jan 25 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-01-11|Jan 11 2010]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2010-01-04|Jan 04 2010]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible autocollapse&amp;quot; style=&amp;quot;width: 100%&amp;quot;&lt;br /&gt;
! 2009&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-12-28|Dec 28 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-12-21|Dec 21 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-11-23|Nov 23 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-11-02|Nov 02 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-10-19|Oct 19 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-10-12|Oct 12 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-10-05|Oct 05 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-09-28|Sept 28 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-09-21|Sept 21 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-09-14|Sept 14 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-08-31|Aug 31 2009]]&lt;br /&gt;
* [[QA/TDAI/MeetingNotes/2009-08-24|Aug 24 2009]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1147452</id>
		<title>EngineeringProductivity/Projects/Everything</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1147452"/>
		<updated>2016-09-12T14:25:03Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add schema&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Project Table ==&lt;br /&gt;
&lt;br /&gt;
The project table has been moved to https://wiki.mozilla.org/EngineeringProductivity/Projects&lt;br /&gt;
&lt;br /&gt;
== Motivation == &lt;br /&gt;
&lt;br /&gt;
This page is to help diagram all the various things the A*Team has built and continue to support.  &lt;br /&gt;
&lt;br /&gt;
The plan is to draw high level components/systems, and links between them, so it is easier to see how all the parts work together.  Hopefully this diagram will be clickable so the reader can get more detail on each of the components.&lt;br /&gt;
&lt;br /&gt;
Something like [https://wiki.mozilla.org/images/f/f3/Releng_flow_onepage_treeclose_reasons.pdf what RelEng has], but without all the internals.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Template can be found below&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
&lt;br /&gt;
=== ActiveData ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Buildbot JSON logs&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
** OrangeFactor&lt;br /&gt;
** Perfherder &lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
** Structured Logs from Tests&lt;br /&gt;
** Talos&lt;br /&gt;
** Text logs (for buildbot and mozharness steps only)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Query endpoint: http://activedata.allizom.org/query&lt;br /&gt;
** Query Tool: http://activedata.allizom.org/tools/query.html&lt;br /&gt;
&lt;br /&gt;
=== AlertManager ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; -https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** mozilla.dev.tree-management alerts from graph server&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** webUI for organizing and taking action on these alerts.&lt;br /&gt;
&lt;br /&gt;
=== Autoland ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Autoland&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/dminor/autoland&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:dminor]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** try jobs via pulse&lt;br /&gt;
** job status via relengapi&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** autoland comments posted to bugzilla&lt;br /&gt;
** patches landed via releng&#039;s &#039;hg transplant&#039;&lt;br /&gt;
&lt;br /&gt;
=== Autophone ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/AutoPhone&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/autophone/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://phonedash.mozilla.org/ (used by who?)&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bugzilla.readthedocs.org&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://git.mozilla.org/?p=webtools/bmo/bugzilla.git&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Mark Cote, Byron Jones, David Lawrence, Dylan Hardison&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Web UI&lt;br /&gt;
** WebServices API (REST, XMLRPC, JSONRPC)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://bugzilla.mozilla.org (bug reporters, developers, etc)&lt;br /&gt;
** WebServices API (For REST https://bugzilla.mozilla.org/rest)&lt;br /&gt;
&lt;br /&gt;
=== BugzFeed ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[BMO/ChangeNotificationSystem]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/bugzfeed&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO via [[Auto-tools/Projects/Pulse|Pulse]]&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** WebSocket servers:&lt;br /&gt;
*** bugzfeed.mozilla.org&lt;br /&gt;
*** bugzfeed-dev.allizom.org&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla/ES Cluster ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/BMO/ElasticSearch&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/Bugzilla-ETL&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** Bugzilla (direct database access)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version&lt;br /&gt;
&lt;br /&gt;
=== Buildbot ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** builder slaves&lt;br /&gt;
** tester slaves&lt;br /&gt;
** https://wiki.mozilla.org/ReleaseEngineering/BuildAPI ??&lt;br /&gt;
** JSON Logs: http://builddata.pub.build.mozilla.org/builddata/buildjson/&lt;br /&gt;
&lt;br /&gt;
=== C++ Code Coverage ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bugzilla.mozilla.org/show_bug.cgi?id=890116&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* Used to be possible to trigger code coverage builds with &#039;try: -b o -p linux64-cc -u all -t none&#039;, but I think this is broken now. Probably isn&#039;t terribly hard to revive this. Needs further investigation.&lt;br /&gt;
&lt;br /&gt;
=== charts.mozilla.org ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/charts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** BMO/ES Cluster (https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://charts.mozilla.org (for management)&lt;br /&gt;
&lt;br /&gt;
=== CodeCoverage ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/CodeCoverage&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;UI&#039;&#039;&#039; - https://github.com/chinhodado/codecoverage_presenter&lt;br /&gt;
** &#039;&#039;&#039;ETL&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData-ETL/blob/dev/activedata_etl/transforms/jscov_to_es.py&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com, klahnakoski@mozilla.com, chmanchester@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Various tests have been configured with a code coverage option&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** ActiveData - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
** http://chinhodado.github.io/codecoverage_presenter/&lt;br /&gt;
&lt;br /&gt;
=== Datazilla (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - See Treeherder&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** data pushed from Talos (see Graph Server)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** charts at https://datazilla.mozilla.org&lt;br /&gt;
** raw results at https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob&lt;br /&gt;
&lt;br /&gt;
=== DevelopmentMetrics ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/DevelopmentMetrics&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/MoDevMetrics&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Bugzilla/ES Cluster&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** various charts and dashboards&lt;br /&gt;
&lt;br /&gt;
=== DevTools Harness ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - Needs project page!&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ted.mielczarek]&lt;br /&gt;
&lt;br /&gt;
=== dzAlerts (retired)===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Alerts&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/datazilla-alerts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Datazilla web service (https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob)&lt;br /&gt;
** Eideticket web service (http://eideticker.mozilla.org)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** fxos-perf-alerts@mozilla.org (b2g sheriffs?)&lt;br /&gt;
&lt;br /&gt;
=== Eideticker ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Project_Eideticker#Documentation&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/eideticker&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - William Lachance, Dave Hunt&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Nightly/inbound b2g and android builds.&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Eideticker dashboard (http://eideticker.mozilla.org)&lt;br /&gt;
&lt;br /&gt;
=== m21s ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/m21s&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - see project page&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:whimboo]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Mozmill release tests&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** &#039;Firefox Greenlight Tests&#039; in Marionette, reporting to Treeherder&lt;br /&gt;
&lt;br /&gt;
=== Marionette ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Marionette&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:AutomatedTester][:ato]&lt;br /&gt;
* &#039;&#039;&#039;What&#039;&#039;&#039; - Mozilla&#039;s native WebDriver implementation&lt;br /&gt;
&lt;br /&gt;
=== Mozharness ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Mozharness&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/mozharness/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:armenzg]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** command-line invocation via buildbot or locally&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039; &lt;br /&gt;
** build/test logs consumed by buildbot, Treeherder, TBPL&lt;br /&gt;
&lt;br /&gt;
=== MozReview (Review Board) ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/CodeReviewTool]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - various pieces of https://hg.mozilla.org/hgcustom/version-control-tools; see docs for more.&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
&lt;br /&gt;
=== OrangeFactor ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/OrangeFactor]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/automation/orangefactor/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :jgriffin, :mcote&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** buildbot messages (using pulse)&lt;br /&gt;
** build logs&lt;br /&gt;
** comments from TBPL&lt;br /&gt;
** bugzilla bug data&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://brasstacks.mozilla.com/orangefactor/&lt;br /&gt;
** email status [War on Orange]&lt;br /&gt;
&lt;br /&gt;
=== Ouija ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Ouija&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/dminor/ouija.git&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - dminor, jmaher&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** https://hg.mozilla.org/&lt;br /&gt;
** tbpl.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://54.215.155.53&lt;br /&gt;
&lt;br /&gt;
=== Perfherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/Perfherder&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/treeherder/tree/master/treeherder/perf&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :wlach&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** PERFHERDER_DATA&lt;br /&gt;
*** schema  https://github.com/mozilla/treeherder/blob/master/schemas/performance-artifact.json&lt;br /&gt;
*** example http://wrla.ch/blog/2015/11/perfherder-onward/&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/perf.html#/graphs&lt;br /&gt;
&lt;br /&gt;
=== Pulse ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Pulse &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/automation/mozillapulse&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Mark Côté&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; (exchanges? http://christian.legnitto.com/blog/2010/07/17/mozilla-pulse-and-rabbitmq/)&lt;br /&gt;
** a multitude of other systems &lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** a multitude of other systems&lt;br /&gt;
** https://pulse.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
=== PulseTranslator ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator/blob/master/README.md&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jgriffin@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Pulse exchange/build&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
&lt;br /&gt;
=== Structured Logging ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://mozbase.readthedocs.org/en/latest/loggingreporting.html, https://wiki.mozilla.org/Auto-tools/Projects/Structured_Logging&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:jgraham]&lt;br /&gt;
&lt;br /&gt;
=== Talos ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Buildbot/Talos&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/talos&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build for desktop or android&lt;br /&gt;
** commandline (done via mozharness now) to specify which test(s) to run&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** log file with raw data&lt;br /&gt;
** uploaded summarization of data to graph server&lt;br /&gt;
** uploaded raw data to datazilla&lt;br /&gt;
&lt;br /&gt;
Can be referred to as what is run by buildbot or by tbpl since this is the only performance test run on our per revision CI system.  Other tools are run at a different cadence.&lt;br /&gt;
&lt;br /&gt;
=== TBPL (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Sheriffing/TBPL]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/webtools/tbpl/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [[Sheriffing/TBPL#Developer_Contacts]]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Test Informant ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Test-Informant&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - See project page&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build notifications via pulse&lt;br /&gt;
** test manifests in tests.zip&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** reports at e.g., http://brasstacks.mozilla.com/testreports/weekly&lt;br /&gt;
&lt;br /&gt;
=== Treeherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder#Source_and_Docs]]&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:camd][:mdoglio][:edmorley]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Pushlog from hg.mozilla.org via json-pushes&lt;br /&gt;
** Build/tests from Buildbot via buildapi&lt;br /&gt;
** Direct pushes via ``treeherder-client``&lt;br /&gt;
** Build/tests from Taskcluster (under development)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/&lt;br /&gt;
** https://treeherder.mozilla.org/api/&lt;br /&gt;
&lt;br /&gt;
=== web-platform-tests ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wptrunner.readthedocs.org/en/latest/, Needs project page?&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** https://github.com/w3c/web-platform-tests/&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/README.md&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/tests/README.md &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:jgraham]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Use the EMPTY TEMPLATE to add more entries.  Include ones you know about, even if you can not fill them.&lt;br /&gt;
&lt;br /&gt;
=== EXAMPLE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - some wiki, or read the docs to learn more &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - link to code, if it makes sense&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - for ekyle to contact if he has questions&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; -&lt;br /&gt;
** automated resources&lt;br /&gt;
** services consumed&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** automated services provided&lt;br /&gt;
** dashboards (and teams that consume them)&lt;br /&gt;
&lt;br /&gt;
=== EMPTY TEMPLATE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1147429</id>
		<title>EngineeringProductivity/Projects/Everything</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1147429"/>
		<updated>2016-09-12T13:14:11Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: &amp;quot;retired&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Project Table ==&lt;br /&gt;
&lt;br /&gt;
The project table has been moved to https://wiki.mozilla.org/EngineeringProductivity/Projects&lt;br /&gt;
&lt;br /&gt;
== Motivation == &lt;br /&gt;
&lt;br /&gt;
This page is to help diagram all the various things the A*Team has built and continue to support.  &lt;br /&gt;
&lt;br /&gt;
The plan is to draw high level components/systems, and links between them, so it is easier to see how all the parts work together.  Hopefully this diagram will be clickable so the reader can get more detail on each of the components.&lt;br /&gt;
&lt;br /&gt;
Something like [https://wiki.mozilla.org/images/f/f3/Releng_flow_onepage_treeclose_reasons.pdf what RelEng has], but without all the internals.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Template can be found below&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
&lt;br /&gt;
=== ActiveData ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Buildbot JSON logs&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
** OrangeFactor&lt;br /&gt;
** Perfherder &lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
** Structured Logs from Tests&lt;br /&gt;
** Talos&lt;br /&gt;
** Text logs (for buildbot and mozharness steps only)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Query endpoint: http://activedata.allizom.org/query&lt;br /&gt;
** Query Tool: http://activedata.allizom.org/tools/query.html&lt;br /&gt;
&lt;br /&gt;
=== AlertManager ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; -https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** mozilla.dev.tree-management alerts from graph server&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** webUI for organizing and taking action on these alerts.&lt;br /&gt;
&lt;br /&gt;
=== Autoland ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Autoland&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/dminor/autoland&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:dminor]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** try jobs via pulse&lt;br /&gt;
** job status via relengapi&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** autoland comments posted to bugzilla&lt;br /&gt;
** patches landed via releng&#039;s &#039;hg transplant&#039;&lt;br /&gt;
&lt;br /&gt;
=== Autophone ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/AutoPhone&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/autophone/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://phonedash.mozilla.org/ (used by who?)&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bugzilla.readthedocs.org&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://git.mozilla.org/?p=webtools/bmo/bugzilla.git&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Mark Cote, Byron Jones, David Lawrence, Dylan Hardison&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Web UI&lt;br /&gt;
** WebServices API (REST, XMLRPC, JSONRPC)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://bugzilla.mozilla.org (bug reporters, developers, etc)&lt;br /&gt;
** WebServices API (For REST https://bugzilla.mozilla.org/rest)&lt;br /&gt;
&lt;br /&gt;
=== BugzFeed ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[BMO/ChangeNotificationSystem]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/bugzfeed&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO via [[Auto-tools/Projects/Pulse|Pulse]]&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** WebSocket servers:&lt;br /&gt;
*** bugzfeed.mozilla.org&lt;br /&gt;
*** bugzfeed-dev.allizom.org&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla/ES Cluster ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/BMO/ElasticSearch&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/Bugzilla-ETL&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** Bugzilla (direct database access)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version&lt;br /&gt;
&lt;br /&gt;
=== Buildbot ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** builder slaves&lt;br /&gt;
** tester slaves&lt;br /&gt;
** https://wiki.mozilla.org/ReleaseEngineering/BuildAPI ??&lt;br /&gt;
** JSON Logs: http://builddata.pub.build.mozilla.org/builddata/buildjson/&lt;br /&gt;
&lt;br /&gt;
=== C++ Code Coverage ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bugzilla.mozilla.org/show_bug.cgi?id=890116&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* Used to be possible to trigger code coverage builds with &#039;try: -b o -p linux64-cc -u all -t none&#039;, but I think this is broken now. Probably isn&#039;t terribly hard to revive this. Needs further investigation.&lt;br /&gt;
&lt;br /&gt;
=== charts.mozilla.org ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/charts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** BMO/ES Cluster (https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://charts.mozilla.org (for management)&lt;br /&gt;
&lt;br /&gt;
=== CodeCoverage ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/CodeCoverage&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;UI&#039;&#039;&#039; - https://github.com/chinhodado/codecoverage_presenter&lt;br /&gt;
** &#039;&#039;&#039;ETL&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData-ETL/blob/dev/activedata_etl/transforms/jscov_to_es.py&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com, klahnakoski@mozilla.com, chmanchester@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Various tests have been configured with a code coverage option&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** ActiveData - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
** http://chinhodado.github.io/codecoverage_presenter/&lt;br /&gt;
&lt;br /&gt;
=== Datazilla (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - See Treeherder&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** data pushed from Talos (see Graph Server)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** charts at https://datazilla.mozilla.org&lt;br /&gt;
** raw results at https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob&lt;br /&gt;
&lt;br /&gt;
=== DevelopmentMetrics ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/DevelopmentMetrics&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/MoDevMetrics&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Bugzilla/ES Cluster&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** various charts and dashboards&lt;br /&gt;
&lt;br /&gt;
=== DevTools Harness ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - Needs project page!&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ted.mielczarek]&lt;br /&gt;
&lt;br /&gt;
=== dzAlerts (retired)===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Alerts&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/datazilla-alerts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Datazilla web service (https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob)&lt;br /&gt;
** Eideticket web service (http://eideticker.mozilla.org)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** fxos-perf-alerts@mozilla.org (b2g sheriffs?)&lt;br /&gt;
&lt;br /&gt;
=== Eideticker ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Project_Eideticker#Documentation&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/eideticker&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - William Lachance, Dave Hunt&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Nightly/inbound b2g and android builds.&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Eideticker dashboard (http://eideticker.mozilla.org)&lt;br /&gt;
&lt;br /&gt;
=== m21s ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/m21s&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - see project page&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:whimboo]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Mozmill release tests&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** &#039;Firefox Greenlight Tests&#039; in Marionette, reporting to Treeherder&lt;br /&gt;
&lt;br /&gt;
=== Marionette ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Marionette&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:AutomatedTester][:ato]&lt;br /&gt;
* &#039;&#039;&#039;What&#039;&#039;&#039; - Mozilla&#039;s native WebDriver implementation&lt;br /&gt;
&lt;br /&gt;
=== Mozharness ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Mozharness&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/mozharness/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:armenzg]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** command-line invocation via buildbot or locally&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039; &lt;br /&gt;
** build/test logs consumed by buildbot, Treeherder, TBPL&lt;br /&gt;
&lt;br /&gt;
=== MozReview (Review Board) ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/CodeReviewTool]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - various pieces of https://hg.mozilla.org/hgcustom/version-control-tools; see docs for more.&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
&lt;br /&gt;
=== OrangeFactor ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/OrangeFactor]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/automation/orangefactor/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :jgriffin, :mcote&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** buildbot messages (using pulse)&lt;br /&gt;
** build logs&lt;br /&gt;
** comments from TBPL&lt;br /&gt;
** bugzilla bug data&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://brasstacks.mozilla.com/orangefactor/&lt;br /&gt;
** email status [War on Orange]&lt;br /&gt;
&lt;br /&gt;
=== Ouija ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Ouija&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/dminor/ouija.git&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - dminor, jmaher&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** https://hg.mozilla.org/&lt;br /&gt;
** tbpl.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://54.215.155.53&lt;br /&gt;
&lt;br /&gt;
=== Perfherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/Perfherder&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/treeherder/tree/master/treeherder/perf&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :wlach&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** PERFHERDER_DATA: see format http://wrla.ch/blog/2015/11/perfherder-onward/&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/perf.html#/graphs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pulse ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Pulse &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/automation/mozillapulse&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Mark Côté&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; (exchanges? http://christian.legnitto.com/blog/2010/07/17/mozilla-pulse-and-rabbitmq/)&lt;br /&gt;
** a multitude of other systems &lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** a multitude of other systems&lt;br /&gt;
** https://pulse.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
=== PulseTranslator ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator/blob/master/README.md&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jgriffin@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Pulse exchange/build&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
&lt;br /&gt;
=== Structured Logging ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://mozbase.readthedocs.org/en/latest/loggingreporting.html, https://wiki.mozilla.org/Auto-tools/Projects/Structured_Logging&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:jgraham]&lt;br /&gt;
&lt;br /&gt;
=== Talos ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Buildbot/Talos&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/talos&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build for desktop or android&lt;br /&gt;
** commandline (done via mozharness now) to specify which test(s) to run&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** log file with raw data&lt;br /&gt;
** uploaded summarization of data to graph server&lt;br /&gt;
** uploaded raw data to datazilla&lt;br /&gt;
&lt;br /&gt;
Can be referred to as what is run by buildbot or by tbpl since this is the only performance test run on our per revision CI system.  Other tools are run at a different cadence.&lt;br /&gt;
&lt;br /&gt;
=== TBPL (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Sheriffing/TBPL]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/webtools/tbpl/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [[Sheriffing/TBPL#Developer_Contacts]]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Test Informant ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Test-Informant&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - See project page&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build notifications via pulse&lt;br /&gt;
** test manifests in tests.zip&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** reports at e.g., http://brasstacks.mozilla.com/testreports/weekly&lt;br /&gt;
&lt;br /&gt;
=== Treeherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder#Source_and_Docs]]&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:camd][:mdoglio][:edmorley]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Pushlog from hg.mozilla.org via json-pushes&lt;br /&gt;
** Build/tests from Buildbot via buildapi&lt;br /&gt;
** Direct pushes via ``treeherder-client``&lt;br /&gt;
** Build/tests from Taskcluster (under development)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/&lt;br /&gt;
** https://treeherder.mozilla.org/api/&lt;br /&gt;
&lt;br /&gt;
=== web-platform-tests ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wptrunner.readthedocs.org/en/latest/, Needs project page?&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** https://github.com/w3c/web-platform-tests/&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/README.md&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/tests/README.md &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:jgraham]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Use the EMPTY TEMPLATE to add more entries.  Include ones you know about, even if you can not fill them.&lt;br /&gt;
&lt;br /&gt;
=== EXAMPLE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - some wiki, or read the docs to learn more &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - link to code, if it makes sense&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - for ekyle to contact if he has questions&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; -&lt;br /&gt;
** automated resources&lt;br /&gt;
** services consumed&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** automated services provided&lt;br /&gt;
** dashboards (and teams that consume them)&lt;br /&gt;
&lt;br /&gt;
=== EMPTY TEMPLATE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Meetings/2016-09-19&amp;diff=1147428</id>
		<title>EngineeringProductivity/Meetings/2016-09-19</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Meetings/2016-09-19&amp;diff=1147428"/>
		<updated>2016-09-12T13:13:23Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add plead for updating Everything&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Notices, Highlights, Roundtable =&lt;br /&gt;
* Significant Contributions&lt;br /&gt;
&lt;br /&gt;
= Newsgroup and Blog Posts =&lt;br /&gt;
&lt;br /&gt;
= Goal Updates =&lt;br /&gt;
&lt;br /&gt;
Please update https://docs.google.com/spreadsheets/d/16eSZlITqgjxkDZmrykfVJjU_OltSnvH090ULvSeMU6I/edit#gid=1272068002 with the status of your Q4 deliverables.&lt;br /&gt;
&lt;br /&gt;
Also see our [https://trello.com/b/3BjXQCEp/a-team-projects Trello board]&lt;br /&gt;
&lt;br /&gt;
= Other Project Updates =&lt;br /&gt;
&lt;br /&gt;
= Holidays and Trips =&lt;br /&gt;
&lt;br /&gt;
= Misc =&lt;br /&gt;
&lt;br /&gt;
* [ekyle] Please update Everything with your high level project specs: https://wiki.mozilla.org/EngineeringProductivity/Projects/Everything&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/ActiveData&amp;diff=1147427</id>
		<title>Auto-tools/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/ActiveData&amp;diff=1147427"/>
		<updated>2016-09-12T13:09:12Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: Klahnakoski moved page Auto-tools/Projects/ActiveData to EngineeringProductivity/Projects/ActiveData: Team name change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[EngineeringProductivity/Projects/ActiveData]]&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1147426</id>
		<title>EngineeringProductivity/Projects/ActiveData</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/ActiveData&amp;diff=1147426"/>
		<updated>2016-09-12T13:09:03Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: Klahnakoski moved page Auto-tools/Projects/ActiveData to EngineeringProductivity/Projects/ActiveData: Team name change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
ActiveData is a collection of about 8 billion records (Feb 2016) covering unit tests, Buildbot jobs, performance data, and mercurial.  This collection is publicly available, and can be queried directly, similar to any database.  &lt;br /&gt;
&lt;br /&gt;
ActiveData is built on top of ElasticSearch, a fast, distributed, redundant document store.  ActiveData provides the benefits of familiar and succinct SQL by translating SQL-like queries to ElasticSearch queries, &lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
In order to improve our testing infrastructure we require data on how that infrastructure is performing.  That information can be extracted from the raw logs, but that requires downloading  samples, parsing data, insertion into a database (or worse, writing queries in an imperative language, like Python).  When we are done an analysis we have effectively built an ETL pipeline that does not scale, and is too specific to be reused elsewhere.  The next project does this work all over again.&lt;br /&gt;
&lt;br /&gt;
== Solution==&lt;br /&gt;
ActiveData will serve as a reusable ETL pipeline; annotating the test results with as much relevant data as possible.  It also provides a query service to explore and aggregate the data, so there is minimal setup required to access this data.&lt;br /&gt;
&lt;br /&gt;
= Charts =&lt;br /&gt;
&lt;br /&gt;
ActiveData is fast enough to support dashboards.  &lt;br /&gt;
&lt;br /&gt;
== Build times ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/Builds-Overview.html Build Times] &lt;br /&gt;
|| Time series view of build times by platform and build type.  Click on a bar to get a scatter plot view.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/Builds-Detail.html Detailed Build Times] &lt;br /&gt;
|| Scatter plot of build times.  Use the left navigation panel to choose a combination.  Click on a data point to see the Buildbot step times and Mozharness step times.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/Buildbot-Simulator.html Buildbot Simulator]&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;incomplete&amp;lt;/span&amp;gt;&lt;br /&gt;
|| An incomplete Buildbot scheduling simulator.  It can be used to see past wait times, queue size, and inter-job delays. &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/MoBuildbotTimings/index.html Test Runtimes]&lt;br /&gt;
|| Choose test suite and machine pool to get an average run time for each of the buildbot steps, and Mozharness steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Unit Test Visualization==&lt;br /&gt;
With all unit test results in ActiveData, we can get accurate estimates of &amp;quot;failure rate&amp;quot;; and be able to focus on the most-failing tests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/testfailures/ Top Intermittent Failures] &lt;br /&gt;
|| List of top 30 most-failing unit tests, and list of top 30 most-recent failing tests.  Click on the link to get a scatterplot.&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;vertical-align:top;width:300px;&amp;quot; | [http://people.mozilla.org/~klahnakoski/testfailures/test.html Find Test Results] &lt;br /&gt;
|| Use the search bar to find a test.  A list of matching tests, and platform combinations will show the unit test failures and durations.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Design =&lt;br /&gt;
ActiveData attempts to provide the benefits of an available database to the public; except larger and faster.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
An active data instance distinguishes itself from a static resource, or database, or big data solution, by delivering a particular set of features:&lt;br /&gt;
* &#039;&#039;&#039;A service, open to third party clients&#039;&#039;&#039; - By providing the service, clients don&#039;t need to setup their own datastore&lt;br /&gt;
* &#039;&#039;&#039;Fast filtering&#039;&#039;&#039; - Sub-second filtering over the contents of the whole datastore, independent of size, saves the application developer from declaring and managing indexes that do the same:  There is sufficient information in the queries to determine which indexes should be built to deliver a quick response.&lt;br /&gt;
* &#039;&#039;&#039;Fast aggregates&#039;&#039;&#039; - Sub-second calculation of statistics over the whole datastore saves the application developer from building and managing caches of those aggregates.  &lt;br /&gt;
* &#039;&#039;&#039;API is a query language (SQL?, MDX?)&#039;&#039;&#039; - Building upon the formalisms, and familiarity, of existing query languages, we reduce the learning curve, and also provide Active Data implementations with more insight into the intent of the client application; and optimize for its use cases.&lt;br /&gt;
* &#039;&#039;&#039;Uniform, Cartesian space of values&#039;&#039;&#039; - Mozilla has a mandate of data driven decision making.  Data analysis tools, like Spreadsheets, R, Scipy, Numpy, and Pandas are used to perform data analysis, and they all require uniform data in multi-dimensional arrays, commonly known as &amp;quot;pivot tables&amp;quot; or &amp;quot;data frames&amp;quot;.  ActiveData&#039;s objective is to provide query results in these formats&lt;br /&gt;
* &#039;&#039;&#039;Metadata on dimensions and measures&#039;&#039;&#039; - ActiveData also provides context to the data it holds.  It serves the purpose to allow exploration and discovery by third parties; by describing unit-of-measure, how dimensions relate to others, and provide human descriptions of the columns stored.  This metadata is also invaluable in automating the orientation and formatting of dashboard charts: Knowing the domain of an axis allows code to decide the best (default) chart form, and provides logically reasonable aggregate options.  &lt;br /&gt;
* &#039;&#039;&#039;Has a security model&#039;&#039;&#039; - Simpler applications can avoid the complications of a security model if it is baked into the ActiveData solution.  If ActiveData is to become mainstream it is important that it can manage sensitive data and PII.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
The unittest data is limited to those test suites that generate structured logs.  Currently (Feb, 2016) the following do NOT have structured logs, and are NOT in ActiveData:&lt;br /&gt;
&lt;br /&gt;
* cppunittest&lt;br /&gt;
* and any of the js based gaia suites (e.g Gij) &lt;br /&gt;
&lt;br /&gt;
Specifically, you can see if a structured log is being generated: In Treeherder, click a job. Under the &amp;quot;Job details&amp;quot; pane at the bottom, look for a line similar to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt; &#039;&#039;artifact uploaded: &amp;lt;suite&amp;gt;_raw.log&#039;&#039;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see that, it is using structured logging. &lt;br /&gt;
&lt;br /&gt;
ActiveData makes specific tradeoffs to achieve its goals.   It has the following limitations:&lt;br /&gt;
* large memory requirements&lt;br /&gt;
* low add/update/remove speeds&lt;br /&gt;
* strict data model (snowflake schema, hierarchical relations only)&lt;br /&gt;
* non-relational                                                                          &lt;br /&gt;
* ETL work required to de-normalize data &lt;br /&gt;
* ETL work required to provide dimension metadata&lt;br /&gt;
&lt;br /&gt;
== Non Goals ==&lt;br /&gt;
ActiveData is not meant to replace an application database.  Applications often track significantly more data related to good interface design, process sequences, complex relations, and object life cycles.  &lt;br /&gt;
ActiveData&#039;s simple model makes it difficult to track object life cycles and impossible to model many-to-many relations. &lt;br /&gt;
Data is not live, and definitely does not track &amp;quot;pending jobs&amp;quot; like TreeHerder or TaskCluster do.  Test results may take a day, or more, to be indexed.  &lt;br /&gt;
&lt;br /&gt;
= Dependencies / Who will use this =&lt;br /&gt;
== Dependencies ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s ETL pipeline ingests data from a variety of sources:&lt;br /&gt;
&lt;br /&gt;
* Buildbot&lt;br /&gt;
* Mozharness&lt;br /&gt;
* Structured Logs&lt;br /&gt;
* Task Cluster (end of Q1 2016)&lt;br /&gt;
* PerfHerder&lt;br /&gt;
* hg.mozilla.org&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
ActiveData&#039;s primary goal is to support dashboards that give Mozilla useful perspectives into the large amount of data:&lt;br /&gt;
&lt;br /&gt;
* Individual unit test results&lt;br /&gt;
* Buildbot test times &lt;br /&gt;
* Firefox compile times&lt;br /&gt;
* Recently new, removed, and disabled tests&lt;br /&gt;
* Buildbot wait times &lt;br /&gt;
&lt;br /&gt;
= Let&#039;s Use It! =&lt;br /&gt;
&lt;br /&gt;
The service listens at http://activedata.allizom.org/query and accepts queries in [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md JSON Query Expression format]. &lt;br /&gt;
&lt;br /&gt;
    curl -XPOST -d &amp;quot;{\&amp;quot;from\&amp;quot;:\&amp;quot;unittest\&amp;quot;}&amp;quot; http://activedata.allizom.org/query&lt;br /&gt;
&lt;br /&gt;
== The Query Tool ==&lt;br /&gt;
The ActiveData service is intended for use by automated clients, not humans.  The [http://activedata.allizom.org/tools/query.html Query Tool] is a minimal web page for humans to do some exploration, and to test phrasing queries.&lt;br /&gt;
* [http://activedata.allizom.org/tools/query.html ActiveData QueryTool]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/jx_tutorial.md tutorial]&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/dev/docs/Unittest%20Schema.md Unit test results schema]&lt;br /&gt;
&lt;br /&gt;
= Code = &lt;br /&gt;
Development is still in the early stages, setting up your own service &lt;br /&gt;
* Github: https://github.com/klahnakoski/ActiveData&lt;br /&gt;
== Tests ==&lt;br /&gt;
* [https://github.com/klahnakoski/ActiveData/blob/master/tests/test_unittests.py testing code which sends some unittest-specific queries]&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
Bug are tracked in [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=activedata Bugzilla].  The open issues are shown here:&lt;br /&gt;
&amp;lt;bugzilla&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;quicksearch&amp;quot;:&amp;quot;activedata&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/bugzilla&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Contact =&lt;br /&gt;
&lt;br /&gt;
* Kyle Lahnakoski&lt;br /&gt;
** IRC: ekyle@irc.mozilla.org&lt;br /&gt;
** Email: klahnakoski@mozilla.org&lt;br /&gt;
** Bugzilla: :ekyle&lt;br /&gt;
&lt;br /&gt;
= More Context=&lt;br /&gt;
Mostly rambling, optional reading.&lt;br /&gt;
&lt;br /&gt;
== Inspiration==&lt;br /&gt;
This project is inspired by the data warehouse and data mart technology that is common inside large corporations.  These warehouses are useful because they are &amp;quot;active&amp;quot; services:  This means the data is not only available, but it can be explored interactively by large audience using a query language.&lt;br /&gt;
&lt;br /&gt;
== General Problem ==&lt;br /&gt;
A significant portion of any application is the backend database/datastore, which include:&lt;br /&gt;
* Managing resources and machines to support the datastore&lt;br /&gt;
* Data migrations on schemas during application lifetime&lt;br /&gt;
* Manually defining database indexes for responsive data retrieval&lt;br /&gt;
* Coding caching logic to reduce application latency&lt;br /&gt;
&lt;br /&gt;
The manual effort put toward these features becomes significant as the amount of data grows in size and complexity.  More importantly, this effort is being spent over and over on a multitude of applications, each a trivial variation of the next.&lt;br /&gt;
&lt;br /&gt;
==General Solution==&lt;br /&gt;
&lt;br /&gt;
Abstractly, we desire to reduce this redundant workload by adding a layer of abstraction called ActiveData:  Clients using ActiveData  benefit from the features it provides and avoid the datastore management complexities.  While the ActiveData implementers can focus on these common issues while being given a simpler data model, and simpler query language, upon which to calculate optimizations.&lt;br /&gt;
&lt;br /&gt;
Columnar datastores, have solved many (but not all) problems with changing schema.  Query-directed indexing has been around for decades in Oracle&#039;s query optimization algorithms, and are available for free in ElasticSearch.  We now have the technology to build an ActiveData solution.&lt;br /&gt;
&lt;br /&gt;
By defining an ActiveData standard, we can innovate on both sides of the ActiveData abstraction layer independently&lt;br /&gt;
&lt;br /&gt;
== Client Architecture ==&lt;br /&gt;
&lt;br /&gt;
Applications that leverage an active data warehouse can forgo significant server side development, if not all, and put the logic on the client side.&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/Everything&amp;diff=1147425</id>
		<title>Auto-tools/Projects/Everything</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Auto-tools/Projects/Everything&amp;diff=1147425"/>
		<updated>2016-09-12T13:06:16Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: Klahnakoski moved page Auto-tools/Projects/Everything to EngineeringProductivity/Projects/Everything: Team name change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[EngineeringProductivity/Projects/Everything]]&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1147424</id>
		<title>EngineeringProductivity/Projects/Everything</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1147424"/>
		<updated>2016-09-12T13:06:07Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: Klahnakoski moved page Auto-tools/Projects/Everything to EngineeringProductivity/Projects/Everything: Team name change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Project Table ==&lt;br /&gt;
&lt;br /&gt;
The project table has been moved to https://wiki.mozilla.org/EngineeringProductivity/Projects&lt;br /&gt;
&lt;br /&gt;
== Motivation == &lt;br /&gt;
&lt;br /&gt;
This page is to help diagram all the various things the A*Team has built and continue to support.  &lt;br /&gt;
&lt;br /&gt;
The plan is to draw high level components/systems, and links between them, so it is easier to see how all the parts work together.  Hopefully this diagram will be clickable so the reader can get more detail on each of the components.&lt;br /&gt;
&lt;br /&gt;
Something like [https://wiki.mozilla.org/images/f/f3/Releng_flow_onepage_treeclose_reasons.pdf what RelEng has], but without all the internals.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Template can be found below&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
&lt;br /&gt;
=== ActiveData ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Buildbot JSON logs&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
** OrangeFactor&lt;br /&gt;
** Perfherder &lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
** Structured Logs from Tests&lt;br /&gt;
** Talos&lt;br /&gt;
** Text logs (for buildbot and mozharness steps only)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Query endpoint: http://activedata.allizom.org/query&lt;br /&gt;
** Query Tool: http://activedata.allizom.org/tools/query.html&lt;br /&gt;
&lt;br /&gt;
=== AlertManager ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; -https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** mozilla.dev.tree-management alerts from graph server&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** webUI for organizing and taking action on these alerts.&lt;br /&gt;
&lt;br /&gt;
=== Autoland ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Autoland&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/dminor/autoland&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:dminor]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** try jobs via pulse&lt;br /&gt;
** job status via relengapi&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** autoland comments posted to bugzilla&lt;br /&gt;
** patches landed via releng&#039;s &#039;hg transplant&#039;&lt;br /&gt;
&lt;br /&gt;
=== Autophone ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/AutoPhone&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/autophone/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://phonedash.mozilla.org/ (used by who?)&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bugzilla.readthedocs.org&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://git.mozilla.org/?p=webtools/bmo/bugzilla.git&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Mark Cote, Byron Jones, David Lawrence, Dylan Hardison&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Web UI&lt;br /&gt;
** WebServices API (REST, XMLRPC, JSONRPC)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://bugzilla.mozilla.org (bug reporters, developers, etc)&lt;br /&gt;
** WebServices API (For REST https://bugzilla.mozilla.org/rest)&lt;br /&gt;
&lt;br /&gt;
=== BugzFeed ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[BMO/ChangeNotificationSystem]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/bugzfeed&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO via [[Auto-tools/Projects/Pulse|Pulse]]&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** WebSocket servers:&lt;br /&gt;
*** bugzfeed.mozilla.org&lt;br /&gt;
*** bugzfeed-dev.allizom.org&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla/ES Cluster ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/BMO/ElasticSearch&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/Bugzilla-ETL&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** Bugzilla (direct database access)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version&lt;br /&gt;
&lt;br /&gt;
=== Buildbot ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** builder slaves&lt;br /&gt;
** tester slaves&lt;br /&gt;
** https://wiki.mozilla.org/ReleaseEngineering/BuildAPI ??&lt;br /&gt;
** JSON Logs: http://builddata.pub.build.mozilla.org/builddata/buildjson/&lt;br /&gt;
&lt;br /&gt;
=== C++ Code Coverage ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bugzilla.mozilla.org/show_bug.cgi?id=890116&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* Used to be possible to trigger code coverage builds with &#039;try: -b o -p linux64-cc -u all -t none&#039;, but I think this is broken now. Probably isn&#039;t terribly hard to revive this. Needs further investigation.&lt;br /&gt;
&lt;br /&gt;
=== charts.mozilla.org ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/charts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** BMO/ES Cluster (https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://charts.mozilla.org (for management)&lt;br /&gt;
&lt;br /&gt;
=== CodeCoverage ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/CodeCoverage&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;UI&#039;&#039;&#039; - https://github.com/chinhodado/codecoverage_presenter&lt;br /&gt;
** &#039;&#039;&#039;ETL&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData-ETL/blob/dev/activedata_etl/transforms/jscov_to_es.py&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com, klahnakoski@mozilla.com, chmanchester@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Various tests have been configured with a code coverage option&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** ActiveData - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
** http://chinhodado.github.io/codecoverage_presenter/&lt;br /&gt;
&lt;br /&gt;
=== Datazilla (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - See Treeherder&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** data pushed from Talos (see Graph Server)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** charts at https://datazilla.mozilla.org&lt;br /&gt;
** raw results at https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob&lt;br /&gt;
&lt;br /&gt;
=== DevelopmentMetrics ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/DevelopmentMetrics&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/MoDevMetrics&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Bugzilla/ES Cluster&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** various charts and dashboards&lt;br /&gt;
&lt;br /&gt;
=== DevTools Harness ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - Needs project page!&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ted.mielczarek]&lt;br /&gt;
&lt;br /&gt;
=== dzAlerts (retired)===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Alerts&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/datazilla-alerts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Datazilla web service (https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob)&lt;br /&gt;
** Eideticket web service (http://eideticker.mozilla.org)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** fxos-perf-alerts@mozilla.org (b2g sheriffs?)&lt;br /&gt;
&lt;br /&gt;
=== Eideticker ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Project_Eideticker#Documentation&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/eideticker&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - William Lachance, Dave Hunt&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Nightly/inbound b2g and android builds.&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Eideticker dashboard (http://eideticker.mozilla.org)&lt;br /&gt;
&lt;br /&gt;
=== m21s ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/m21s&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - see project page&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:whimboo]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Mozmill release tests&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** &#039;Firefox Greenlight Tests&#039; in Marionette, reporting to Treeherder&lt;br /&gt;
&lt;br /&gt;
=== Marionette ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Marionette&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:AutomatedTester][:ato]&lt;br /&gt;
* &#039;&#039;&#039;What&#039;&#039;&#039; - Mozilla&#039;s native WebDriver implementation&lt;br /&gt;
&lt;br /&gt;
=== Mozharness ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Mozharness&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/mozharness/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:armenzg]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** command-line invocation via buildbot or locally&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039; &lt;br /&gt;
** build/test logs consumed by buildbot, Treeherder, TBPL&lt;br /&gt;
&lt;br /&gt;
=== MozReview (Review Board) ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/CodeReviewTool]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - various pieces of https://hg.mozilla.org/hgcustom/version-control-tools; see docs for more.&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
&lt;br /&gt;
=== OrangeFactor ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/OrangeFactor]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/automation/orangefactor/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :jgriffin, :mcote&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** buildbot messages (using pulse)&lt;br /&gt;
** build logs&lt;br /&gt;
** comments from TBPL&lt;br /&gt;
** bugzilla bug data&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://brasstacks.mozilla.com/orangefactor/&lt;br /&gt;
** email status [War on Orange]&lt;br /&gt;
&lt;br /&gt;
=== Ouija ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Ouija&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/dminor/ouija.git&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - dminor, jmaher&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** https://hg.mozilla.org/&lt;br /&gt;
** tbpl.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://54.215.155.53&lt;br /&gt;
&lt;br /&gt;
=== Perfherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/Perfherder&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/treeherder/tree/master/treeherder/perf&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :wlach&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** PERFHERDER_DATA: see format http://wrla.ch/blog/2015/11/perfherder-onward/&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/perf.html#/graphs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pulse ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Pulse &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/automation/mozillapulse&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Mark Côté&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; (exchanges? http://christian.legnitto.com/blog/2010/07/17/mozilla-pulse-and-rabbitmq/)&lt;br /&gt;
** a multitude of other systems &lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** a multitude of other systems&lt;br /&gt;
** https://pulse.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
=== PulseTranslator ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator/blob/master/README.md&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jgriffin@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Pulse exchange/build&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
&lt;br /&gt;
=== Structured Logging ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://mozbase.readthedocs.org/en/latest/loggingreporting.html, https://wiki.mozilla.org/Auto-tools/Projects/Structured_Logging&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:jgraham]&lt;br /&gt;
&lt;br /&gt;
=== Talos ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Buildbot/Talos&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/talos&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build for desktop or android&lt;br /&gt;
** commandline (done via mozharness now) to specify which test(s) to run&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** log file with raw data&lt;br /&gt;
** uploaded summarization of data to graph server&lt;br /&gt;
** uploaded raw data to datazilla&lt;br /&gt;
&lt;br /&gt;
Can be referred to as what is run by buildbot or by tbpl since this is the only performance test run on our per revision CI system.  Other tools are run at a different cadence.&lt;br /&gt;
&lt;br /&gt;
=== TBPL (for the sake of history) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Sheriffing/TBPL]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/webtools/tbpl/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [[Sheriffing/TBPL#Developer_Contacts]]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Test Informant ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Test-Informant&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - See project page&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build notifications via pulse&lt;br /&gt;
** test manifests in tests.zip&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** reports at e.g., http://brasstacks.mozilla.com/testreports/weekly&lt;br /&gt;
&lt;br /&gt;
=== Treeherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder#Source_and_Docs]]&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:camd][:mdoglio][:edmorley]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Pushlog from hg.mozilla.org via json-pushes&lt;br /&gt;
** Build/tests from Buildbot via buildapi&lt;br /&gt;
** Direct pushes via ``treeherder-client``&lt;br /&gt;
** Build/tests from Taskcluster (under development)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/&lt;br /&gt;
** https://treeherder.mozilla.org/api/&lt;br /&gt;
&lt;br /&gt;
=== web-platform-tests ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wptrunner.readthedocs.org/en/latest/, Needs project page?&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** https://github.com/w3c/web-platform-tests/&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/README.md&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/tests/README.md &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:jgraham]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Use the EMPTY TEMPLATE to add more entries.  Include ones you know about, even if you can not fill them.&lt;br /&gt;
&lt;br /&gt;
=== EXAMPLE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - some wiki, or read the docs to learn more &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - link to code, if it makes sense&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - for ekyle to contact if he has questions&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; -&lt;br /&gt;
** automated resources&lt;br /&gt;
** services consumed&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** automated services provided&lt;br /&gt;
** dashboards (and teams that consume them)&lt;br /&gt;
&lt;br /&gt;
=== EMPTY TEMPLATE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1147421</id>
		<title>EngineeringProductivity/Projects/Everything</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=EngineeringProductivity/Projects/Everything&amp;diff=1147421"/>
		<updated>2016-09-12T12:59:44Z</updated>

		<summary type="html">&lt;p&gt;Klahnakoski: add perfherder!!!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Project Table ==&lt;br /&gt;
&lt;br /&gt;
The project table has been moved to https://wiki.mozilla.org/EngineeringProductivity/Projects&lt;br /&gt;
&lt;br /&gt;
== Motivation == &lt;br /&gt;
&lt;br /&gt;
This page is to help diagram all the various things the A*Team has built and continue to support.  &lt;br /&gt;
&lt;br /&gt;
The plan is to draw high level components/systems, and links between them, so it is easier to see how all the parts work together.  Hopefully this diagram will be clickable so the reader can get more detail on each of the components.&lt;br /&gt;
&lt;br /&gt;
Something like [https://wiki.mozilla.org/images/f/f3/Releng_flow_onepage_treeclose_reasons.pdf what RelEng has], but without all the internals.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Template can be found below&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
&lt;br /&gt;
=== ActiveData ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Buildbot JSON logs&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
** OrangeFactor&lt;br /&gt;
** Perfherder &lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
** Structured Logs from Tests&lt;br /&gt;
** Talos&lt;br /&gt;
** Text logs (for buildbot and mozharness steps only)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Query endpoint: http://activedata.allizom.org/query&lt;br /&gt;
** Query Tool: http://activedata.allizom.org/tools/query.html&lt;br /&gt;
&lt;br /&gt;
=== AlertManager ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; -https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/jmaher/alert_manager/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** mozilla.dev.tree-management alerts from graph server&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** webUI for organizing and taking action on these alerts.&lt;br /&gt;
&lt;br /&gt;
=== Autoland ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Autoland&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/dminor/autoland&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:dminor]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** try jobs via pulse&lt;br /&gt;
** job status via relengapi&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** autoland comments posted to bugzilla&lt;br /&gt;
** patches landed via releng&#039;s &#039;hg transplant&#039;&lt;br /&gt;
&lt;br /&gt;
=== Autophone ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/AutoPhone&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/autophone/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://phonedash.mozilla.org/ (used by who?)&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bugzilla.readthedocs.org&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://git.mozilla.org/?p=webtools/bmo/bugzilla.git&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Mark Cote, Byron Jones, David Lawrence, Dylan Hardison&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Web UI&lt;br /&gt;
** WebServices API (REST, XMLRPC, JSONRPC)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://bugzilla.mozilla.org (bug reporters, developers, etc)&lt;br /&gt;
** WebServices API (For REST https://bugzilla.mozilla.org/rest)&lt;br /&gt;
&lt;br /&gt;
=== BugzFeed ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[BMO/ChangeNotificationSystem]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/bugzfeed&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO via [[Auto-tools/Projects/Pulse|Pulse]]&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** WebSocket servers:&lt;br /&gt;
*** bugzfeed.mozilla.org&lt;br /&gt;
*** bugzfeed-dev.allizom.org&lt;br /&gt;
&lt;br /&gt;
=== Bugzilla/ES Cluster ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/BMO/ElasticSearch&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/Bugzilla-ETL&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** Bugzilla (direct database access)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version&lt;br /&gt;
&lt;br /&gt;
=== Buildbot ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** builder slaves&lt;br /&gt;
** tester slaves&lt;br /&gt;
** https://wiki.mozilla.org/ReleaseEngineering/BuildAPI ??&lt;br /&gt;
** JSON Logs: http://builddata.pub.build.mozilla.org/builddata/buildjson/&lt;br /&gt;
&lt;br /&gt;
=== C++ Code Coverage ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://bugzilla.mozilla.org/show_bug.cgi?id=890116&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* Used to be possible to trigger code coverage builds with &#039;try: -b o -p linux64-cc -u all -t none&#039;, but I think this is broken now. Probably isn&#039;t terribly hard to revive this. Needs further investigation.&lt;br /&gt;
&lt;br /&gt;
=== charts.mozilla.org ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/charts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; - &lt;br /&gt;
** BMO/ES Cluster (https://esfrontline.bugzilla.mozilla.org:443/public_bugs/bug_version)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://charts.mozilla.org (for management)&lt;br /&gt;
&lt;br /&gt;
=== CodeCoverage ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/CodeCoverage&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;UI&#039;&#039;&#039; - https://github.com/chinhodado/codecoverage_presenter&lt;br /&gt;
** &#039;&#039;&#039;ETL&#039;&#039;&#039; - https://github.com/klahnakoski/ActiveData-ETL/blob/dev/activedata_etl/transforms/jscov_to_es.py&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com, klahnakoski@mozilla.com, chmanchester@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Various tests have been configured with a code coverage option&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** ActiveData - https://wiki.mozilla.org/Auto-tools/Projects/ActiveData&lt;br /&gt;
** http://chinhodado.github.io/codecoverage_presenter/&lt;br /&gt;
&lt;br /&gt;
=== Datazilla (retired) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://datazilla.readthedocs.org/en/latest/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - See Treeherder&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** data pushed from Talos (see Graph Server)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** charts at https://datazilla.mozilla.org&lt;br /&gt;
** raw results at https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob&lt;br /&gt;
&lt;br /&gt;
=== DevelopmentMetrics ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/DevelopmentMetrics&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/MoDevMetrics&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Bugzilla/ES Cluster&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** various charts and dashboards&lt;br /&gt;
&lt;br /&gt;
=== DevTools Harness ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - Needs project page!&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ted.mielczarek]&lt;br /&gt;
&lt;br /&gt;
=== dzAlerts (retired)===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Alerts&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/klahnakoski/datazilla-alerts&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - klahnakoski@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Datazilla web service (https://datazilla.mozilla.org/talos/refdata/objectstore/json_blob)&lt;br /&gt;
** Eideticket web service (http://eideticker.mozilla.org)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** fxos-perf-alerts@mozilla.org (b2g sheriffs?)&lt;br /&gt;
&lt;br /&gt;
=== Eideticker ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Project_Eideticker#Documentation&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/eideticker&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - William Lachance, Dave Hunt&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Nightly/inbound b2g and android builds.&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Eideticker dashboard (http://eideticker.mozilla.org)&lt;br /&gt;
&lt;br /&gt;
=== m21s ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/m21s&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - see project page&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:whimboo]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Mozmill release tests&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** &#039;Firefox Greenlight Tests&#039; in Marionette, reporting to Treeherder&lt;br /&gt;
&lt;br /&gt;
=== Marionette ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Marionette&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:AutomatedTester][:ato]&lt;br /&gt;
* &#039;&#039;&#039;What&#039;&#039;&#039; - Mozilla&#039;s native WebDriver implementation&lt;br /&gt;
&lt;br /&gt;
=== Mozharness ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Mozharness&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/mozharness/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:armenzg]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** command-line invocation via buildbot or locally&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039; &lt;br /&gt;
** build/test logs consumed by buildbot, Treeherder, TBPL&lt;br /&gt;
&lt;br /&gt;
=== MozReview (Review Board) ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/CodeReviewTool]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - various pieces of https://hg.mozilla.org/hgcustom/version-control-tools; see docs for more.&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - mcote@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
** hg.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** BMO&lt;br /&gt;
&lt;br /&gt;
=== OrangeFactor ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/OrangeFactor]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/automation/orangefactor/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :jgriffin, :mcote&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** buildbot messages (using pulse)&lt;br /&gt;
** build logs&lt;br /&gt;
** comments from TBPL&lt;br /&gt;
** bugzilla bug data&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://brasstacks.mozilla.com/orangefactor/&lt;br /&gt;
** email status [War on Orange]&lt;br /&gt;
&lt;br /&gt;
=== Ouija ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Ouija&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/dminor/ouija.git&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - dminor, jmaher&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** https://hg.mozilla.org/&lt;br /&gt;
** tbpl.mozilla.org&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** http://54.215.155.53&lt;br /&gt;
&lt;br /&gt;
=== Perfherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/EngineeringProductivity/Projects/Perfherder&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/treeherder/tree/master/treeherder/perf&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - :wlach&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** PERFHERDER_DATA: see format http://wrla.ch/blog/2015/11/perfherder-onward/&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/perf.html#/graphs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pulse ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Pulse &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/automation/mozillapulse&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - Mark Côté&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; (exchanges? http://christian.legnitto.com/blog/2010/07/17/mozilla-pulse-and-rabbitmq/)&lt;br /&gt;
** a multitude of other systems &lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** a multitude of other systems&lt;br /&gt;
** https://pulse.mozilla.org/&lt;br /&gt;
&lt;br /&gt;
=== PulseTranslator ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator/blob/master/README.md&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://github.com/mozilla/pulsetranslator&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jgriffin@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; &lt;br /&gt;
** Pulse exchange/build&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** Pulse exchange/build/normalized&lt;br /&gt;
&lt;br /&gt;
=== Structured Logging ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://mozbase.readthedocs.org/en/latest/loggingreporting.html, https://wiki.mozilla.org/Auto-tools/Projects/Structured_Logging&lt;br /&gt;
* &#039;&#039;&#039;Contacts&#039;&#039;&#039; - [:chmanchester][:ahal][:jgraham]&lt;br /&gt;
&lt;br /&gt;
=== Talos ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Buildbot/Talos&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/build/talos&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - jmaher@mozilla.com&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build for desktop or android&lt;br /&gt;
** commandline (done via mozharness now) to specify which test(s) to run&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** log file with raw data&lt;br /&gt;
** uploaded summarization of data to graph server&lt;br /&gt;
** uploaded raw data to datazilla&lt;br /&gt;
&lt;br /&gt;
Can be referred to as what is run by buildbot or by tbpl since this is the only performance test run on our per revision CI system.  Other tools are run at a different cadence.&lt;br /&gt;
&lt;br /&gt;
=== TBPL (for the sake of history) ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Sheriffing/TBPL]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - https://hg.mozilla.org/webtools/tbpl/&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [[Sheriffing/TBPL#Developer_Contacts]]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
=== Test Informant ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wiki.mozilla.org/Auto-tools/Projects/Test-Informant&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - See project page&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:ahal]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** build notifications via pulse&lt;br /&gt;
** test manifests in tests.zip&lt;br /&gt;
* &#039;&#039;&#039;Outputs&#039;&#039;&#039;&lt;br /&gt;
** reports at e.g., http://brasstacks.mozilla.com/testreports/weekly&lt;br /&gt;
&lt;br /&gt;
=== Treeherder ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder]]&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - [[Auto-tools/Projects/Treeherder#Source_and_Docs]]&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:camd][:mdoglio][:edmorley]&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
** Pushlog from hg.mozilla.org via json-pushes&lt;br /&gt;
** Build/tests from Buildbot via buildapi&lt;br /&gt;
** Direct pushes via ``treeherder-client``&lt;br /&gt;
** Build/tests from Taskcluster (under development)&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** https://treeherder.mozilla.org/&lt;br /&gt;
** https://treeherder.mozilla.org/api/&lt;br /&gt;
&lt;br /&gt;
=== web-platform-tests ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - https://wptrunner.readthedocs.org/en/latest/, Needs project page?&lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039;&lt;br /&gt;
** https://github.com/w3c/web-platform-tests/&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/README.md&lt;br /&gt;
** https://github.com/mozilla/gecko-dev/blob/master/testing/web-platform/tests/README.md &lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - [:jgraham]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Use the EMPTY TEMPLATE to add more entries.  Include ones you know about, even if you can not fill them.&lt;br /&gt;
&lt;br /&gt;
=== EXAMPLE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - some wiki, or read the docs to learn more &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; - link to code, if it makes sense&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - for ekyle to contact if he has questions&lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039; -&lt;br /&gt;
** automated resources&lt;br /&gt;
** services consumed&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
** automated services provided&lt;br /&gt;
** dashboards (and teams that consume them)&lt;br /&gt;
&lt;br /&gt;
=== EMPTY TEMPLATE ===&lt;br /&gt;
* &#039;&#039;&#039;Docs&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Code&#039;&#039;&#039; -&lt;br /&gt;
* &#039;&#039;&#039;Contact&#039;&#039;&#039; - &lt;br /&gt;
* &#039;&#039;&#039;Inputs&#039;&#039;&#039;&lt;br /&gt;
**&lt;br /&gt;
* &#039;&#039;&#039;Outputs/Services&#039;&#039;&#039;&lt;br /&gt;
**&lt;/div&gt;</summary>
		<author><name>Klahnakoski</name></author>
	</entry>
</feed>