<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><br>
</p>
<p>Did you have that sense you were missing something? Well, you
were right: You were missing your ...<br>
</p>
<p><font size="+1"># <b>Monthly CodeCoverage! update! \o/ </b></font><br>
</p>
<p><i>If you </i><i>want to hear more about an</i><i>y of the</i><i>s</i><i>e
items, please contact me and I will get you more detailed
information</i><b><br>
</b></p>
<p><b>## </b><b>Summary of July</b><br>
</p>
<ul>
<li><b>More hard work on the ETL pipeline</b>: Condensing the data
to make it manageable, and writing more efficient code for
faster processing. There is still more work to be done, but it's
working. Marco summarized this work with an excellent blog
post: <span class="author-a-fez78zz87ziqz68zz78zejgez84zx36
url"><a
href="https://marco-c.github.io/2017/07/28/code-coverage-architecture.html">[1]
https://marco-c.github.io/2017/07/28/code-coverage-architecture.html</a></span><br>
</li>
<li><b>Analyzing coverage variability</b> - If you recall from
previous months, I mentioned that different coverage runs show
different coverage numbers: We call this "coverage variability",
and it even exists when comparing two runs from the same
revision. gmierz has been looking into this variability to
better understand its size, and character. [2], [3]<br>
</li>
<li><b>Finished detailed the plan for the MVP </b>[4] - This MVP
is for visualizing coverage of net-new lines: Relman is
interested in the coverage on the net-new lines of every
changeset This is hard given we can only run coverage on every
central push. We now have a plan for how to get this done, as
best as possible, with the information given. </li>
</ul>
<p><b>## Plans for August</b></p>
<ul>
<li><b>Build the MVP</b> - Visualize coverage of net new lines by
changeset: Now that we have a plan, armenzg has already started
the frontend UI work [5], [6], and will be working with marco
working on the backend [7]<br>
</li>
<li><b>Continue work on optimizing the ETL pipelines</b> -
necessary work <b><br>
</b></li>
</ul>
<p><b><br>
</b><b>## Meetings</b></p>
<p> </p>
We have weekly CodeCoverage meetings, and you are welcome to attend:<br>
<ul>
<li> <span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z">When:
Held every Friday @ 11:30 EDT (08:30 PDT)</span></li>
<li><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z">Where:
Kyle's video room </span><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z
url"><a moz-do-not-send="true"
href="https://v.mozilla.com/flex.html?roomdirect.html&key=huhL8WaTwCwC">https://v.mozilla.com/flex.html?roomdirect.html&key=huhL8WaTwCwC</a></span>
</li>
<li><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z">Etherpad:
</span><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z
url"><a moz-do-not-send="true"
href="https://public.etherpad-mozilla.org/p/code_coverage_Q1_17">https://public.etherpad-mozilla.org/p/code_coverage_Q1_17</a></span>
</li>
</ul>
<p><br>
<b>## Reference</b></p>
<p>[1] Blog post on coverage collection and aggregation: <span
class="author-a-fez78zz87ziqz68zz78zejgez84zx36 url"><a
href="https://marco-c.github.io/2017/07/28/code-coverage-architecture.html">https://marco-c.github.io/2017/07/28/code-coverage-architecture.html</a></span></p>
<p><span class="author-a-fez78zz87ziqz68zz78zejgez84zx36 url"></span>[2]
Variability analysis code -
<a class="moz-txt-link-freetext" href="https://github.com/gmierz/coco-variability-tools">https://github.com/gmierz/coco-variability-tools</a></p>
<p>[3] Example variability output -
<a class="moz-txt-link-freetext" href="https://gmierz.github.io/variability/variability_index.html">https://gmierz.github.io/variability/variability_index.html</a></p>
<p>[4] Details for UI -
<a class="moz-txt-link-freetext" href="https://public.etherpad-mozilla.org/p/code_coverage_Q3_17">https://public.etherpad-mozilla.org/p/code_coverage_Q3_17</a></p>
<p>[5] Code for UI - <a class="moz-txt-link-freetext" href="https://github.com/armenzg/code_cov_experiments">https://github.com/armenzg/code_cov_experiments</a></p>
<p>
[6] Example UI (very rough, but stay tuned!) -
<a class="moz-txt-link-freetext" href="https://armenzg.github.io/code_cov_experiments/">https://armenzg.github.io/code_cov_experiments/</a></p>
<p>[7] Code for backend -
<a class="moz-txt-link-freetext" href="https://github.com/mozilla-releng/services/tree/master/src/shipit_code_coverage">https://github.com/mozilla-releng/services/tree/master/src/shipit_code_coverage</a></p>
<p><br>
</p>
<p><br>
</p>
<br>
<div class="moz-cite-prefix">On 2017-07-06 21:37, Kyle Lahnakoski
wrote:<br>
</div>
<blockquote
cite="mid:c4485ef3-884c-d28c-0100-f805ce5c91e4@mozilla.com"
type="cite">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<p> </p>
<div class="moz-text-html" lang="x-unicode"> <br>
<br>
## Summary of Past Quarter<br>
<br>
Coverage is enabled for nearly all tests, and scheduled every
push [1]!! <br>
<ul>
<li>All c/c++ test suites have coverage enabled<br>
</li>
<li>talos coverage is enabled<br>
</li>
<li>jsvm[7] coverage is enabled, and running </li>
<li>codecov.io [2] shows the results, broken down by directory<br>
</li>
</ul>
## Plans for Q3<br>
<br>
The overall plan for Q3 is laid out in the planning document
[12]. Put simply, a **coverage differential viewer**, operating
at low resolution (per central push), has enough promise to
justify Q3 effort on CodeCoverage.<br>
<br>
## The Complications<br>
<ul>
<li>Rust code coverage is still delayed [6] - maybe by mid
quarter<br>
</li>
<li>The data volume is very large; coveralls.io and codecov.io
are having some difficulty dealing with the volume.</li>
<li>There is instability in the coverage numbers due to
variability in our test runs; think GC and telemetry logic.
Multiple coverage runs will be required to get a total
coverage number</li>
<li>Intermittents are impacting coverage reliability - we will
require a coverage health monitor to know if coverage is
"complete"<br>
</li>
</ul>
## Summary of this past June<br>
<ul>
<li><span class="author-a-8hz72z5ez70zz79z2fz65zz76z58z84z5l">upgrading
tests to use Ubuntu 16.04<br>
</span></li>
<li><span class="author-a-8hz72z5ez70zz79z2fz65zz76z58z84z5l"></span>fixing
blockers that stood in the way of rust coverage<span
class="author-a-8hz72z5ez70zz79z2fz65zz76z58z84z5l"></span>
[6]<br>
</li>
<li>enabling coverage to even more suites, like talos [10] <span
class="author-a-5wz83zxfz84zz77z1z67zfck1cz75zz75z url"></span></li>
<li><span class="author-a-8hz72z5ez70zz79z2fz65zz76z58z84z5l">adding
JavaScript to the codecov/coveralls report</span></li>
<li><span class="author-a-8hz72z5ez70zz79z2fz65zz76z58z84z5l">getting
a handle on the volume of data code coverage is producing<br>
</span></li>
</ul>
<p>## Plans for July</p>
<ul>
<li>continued work on ETL pipeline</li>
<li>enable coverage for spidermonkey [11]</li>
<li>see the first hints of Rust coverage</li>
<li>build a coverage health monitor to deal with "the
complications" (above)<br>
</li>
</ul>
## Meetings<br>
<p>We have weekly CodeCoverage meetings, and you are welcome to
attend:<br>
</p>
<ul>
<li> <span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z">When:
Held every Friday @ 11:30 EDT (08:30 PDT)</span> </li>
<li><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z">Where:
Kyle's video room </span><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z
url"><a moz-do-not-send="true"
href="https://v.mozilla.com/flex.html?roomdirect.html&key=huhL8WaTwCwC">https://v.mozilla.com/flex.html?roomdirect.html&key=huhL8WaTwCwC</a></span>
</li>
<li><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z">Etherpad:
</span><span
class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z
url"><a moz-do-not-send="true"
href="https://public.etherpad-mozilla.org/p/code_coverage_Q1_17">https://public.etherpad-mozilla.org/p/code_coverage_Q1_17</a></span>
</li>
</ul>
<p><br>
</p>
<p>## Reference<br>
</p>
<p>[1] See coverage on TH <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&filter-searchStr=ccov">https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&filter-searchStr=ccov</a></p>
<p>[1b] Example on TH:
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&revision=433c379d6e448dc64df25a6b4d8739c99e84d102&filter-searchStr=ccov">https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&revision=433c379d6e448dc64df25a6b4d8739c99e84d102&filter-searchStr=ccov</a>
<br>
</p>
<p>[2] codecov.io <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="https://codecov.io/gh/marco-c/gecko-dev">https://codecov.io/gh/marco-c/gecko-dev</a>
</p>
<p>[3] Local Coverage <a moz-do-not-send="true" rel="nofollow"
href="https://developer.mozilla.org/en-US/docs/Mozilla/Testing/Measuring_Code_Coverage_on_Firefox?document_saved=true#Generate_Code_Coverage_report_from_a_try_build_%28or_any_other_treeherder_build">https://developer.mozilla.org/en-US/docs/Mozilla/Testing/Measuring_Code_Coverage_on_Firefox?document_saved=true#Generate_Code_Coverage_report_from_a_try_build_(or_any_other_treeherder_build</a>)</p>
[4] iOS Coverage <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="https://codecov.io/gh/mozilla-mobile/firefox-ios/branch/master">https://codecov.io/gh/mozilla-mobile/firefox-ios/branch/master</a><br>
<br>
[5] User Cases <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="https://docs.google.com/document/d/1JUEPS8Xdtx4y8fXA4Au_Ggme0fMyJQxZbby0X2e4yDI/edit#heading=h.ddwyjkvxus4">https://docs.google.com/document/d/1JUEPS8Xdtx4y8fXA4Au_Ggme0fMyJQxZbby0X2e4yDI/edit#heading=h.ddwyjkvxus4</a>-
<br>
<p>[6] Rust coverage <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1335518">https://bugzilla.mozilla.org/show_bug.cgi?id=1335518</a>
and <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://github.com/rust-lang/rust/pull/42433">https://github.com/rust-lang/rust/pull/42433</a>
</p>
<p>[7] JSVM coverage: <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1301174">https://bugzilla.mozilla.org/show_bug.cgi?id=1301174</a></p>
<p>[8] e10s coverage example: <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="https://treeherder.mozilla.org/#/jobs?repo=try&revision=b6e9cefe95adc3dd281bf8e2a2f897e8f4839e51">https://treeherder.mozilla.org/#/jobs?repo=try&revision=b6e9cefe95adc3dd281bf8e2a2f897e8f4839e51</a></p>
[9] Everything: <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=1278393">https://bugzilla.mozilla.org/showdependencytree.cgi?id=1278393</a><br>
<p>[10] talos coverage: <span
class="author-a-5wz83zxfz84zz77z1z67zfck1cz75zz75z"></span><span
class="author-a-5wz83zxfz84zz77z1z67zfck1cz75zz75z url"><a
moz-do-not-send="true"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1372324">https://bugzilla.mozilla.org/show_bug.cgi?id=1372324</a></span></p>
<p><span class="author-a-5wz83zxfz84zz77z1z67zfck1cz75zz75z url"><a
moz-do-not-send="true"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1372324">[11]
spidermonkey coverage:
https://bugzilla.mozilla.org/show_bug.cgi?id=1362013</a></span></p>
<p><span class="author-a-5wz83zxfz84zz77z1z67zfck1cz75zz75z url"><a
moz-do-not-send="true"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1372324">[12]
Planning document:
https://docs.google.com/document/d/1dOWi18qrudwaOThNAYoCMS3e9LzhxGUiMLLrQ_WVR9w/edit?usp=sharing</a></span><br>
</p>
<p><a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://marco-c.github.io/grcov-test/coverage_by_dir.html"><br>
</a></p>
<p><br>
</p>
<br>
<p><br>
</p>
</div>
</blockquote>
<br>
</body>
</html>