<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <p><b># Q3 Codecoverage! update </b><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>## Overview </b><br>
    </p>
    <p>We can show the code coverage on new lines added by changeset! <br>
    </p>
    <ul>
      <li><b>Link</b> - <span
          class="author-a-q9z90z4z84zmde7z87zz69zam7z122zh url"><a
            href="http://firefox-code-coverage.herokuapp.com/">http://firefox-code-coverage.herokuapp.com/</a></span></li>
      <li><b>Warning</b> - This is alpha-quality; it is a
        work-in-progress, there are still bugs, and it is not as
        responsive as we would like</li>
      <li><b>Visual walk through</b> - <a rel="nofollow"
href="https://github.com/armenzg/firefox-code-coverage-frontend/raw/7b67f2e948de94b7f837ba9a7c57a31e810d9fe7/docs/Prototype%20Instructions.pdf">https://github.com/armenzg/firefox-code-coverage-frontend/raw/7b67f2e948de94b7f837ba9a7c57a31e810d9fe7/docs/Prototype%20Instructions.pdf</a></li>
    </ul>
    Of course, we still have the regular coverage that we upload to
    codecov.io [4] <a class="moz-txt-link-freetext"
      href="https://codecov.io/gh/marco-c/gecko-dev">https://codecov.io/gh/marco-c/gecko-dev</a>
    <p><b>## Parts you don't see</b></p>
    <ul>
      <li><b>Keep the tests passing</b> - Code coverage builds run a
        little different, so we must constantly monitor and triage the
        unique test failures. <br>
      </li>
      <li><b>Building the backend for the UI</b> - The UI is supported
        by a backend service that maps coverage to the changesets<br>
      </li>
      <li><b>optimize jsvm lcov rewriter</b> - because everything is
        slow at our scale of coverage<br>
      </li>
      <li><b>merge coverage from test chunks</b> - because codecov.io
        can not handle our raw data volume<br>
      </li>
      <li><b>adding function info to grcov </b>- a different resolution
        of coverage that is consistent with other coverage tools</li>
      <li><b>Rust LLVM build</b>  - We require a special build of Rust
        in order to collect Rust coverage; <a
          class="moz-txt-link-freetext"
href="https://treeherder.mozilla.org/#/jobs?repo=try&revision=014e361716000d0dee4427bf7195316a2aba7b21">https://treeherder.mozilla.org/#/jobs?repo=try&revision=014e361716000d0dee4427bf7195316a2aba7b21</a></li>
    </ul>
    <p><b>## Future Plans</b><br>
    </p>
    <ul>
      <li><b>Verify this UI prototype</b> - We want to ensure RelMan can
        use this to inform their bug risk assessment</li>
      <li><b><b>Improve the UI</b> - </b>There are inevitable changes
        to be made when we get our feedback from RelMan, plus the known
        bugs and issues we need to work on.<br>
      </li>
      <li><br>
      </li>
      <li><b>Coverage for Windows with Clang</b> - <a
          class="moz-txt-link-freetext"
          href="https://bugzilla.mozilla.org/show_bug.cgi?id=1381163#c5">https://bugzilla.mozilla.org/show_bug.cgi?id=1381163</a></li>
      <li><b>Solve bugs</b> - Of course, there is a long tail of bugs </li>
      <li><b>Show what tests cover a file</b> - Experimental - a couple
        UCOSP students will attempt to show coverage at the per-test
        level; this should prove useful to those that made a code
        change, and would like to know what test suite (or test chunk)
        covers it.  If useful, then we can use this same information to
        inform our automation.<br>
      </li>
      <li><b>Merge coverage from different revisions</b> - Experimental
        - a UCOSP student will attempt a pan-temporal representation of
        our source code: If done, it will allow us transport code
        coverage forward, and backward, through time and revisions. 
        This can be used to compare coverage runs, merge runs from
        different revisions, and allow us to collect coverage at a
        higher resolution with lower data storage costs.<br>
      </li>
    </ul>
    <p><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"><b>When</b>
          - Held every Friday @ 11:30 EDT (08:30 PDT)</span></li>
      <li><span
          class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z"><b>Where</b>
          - Kyle's video room </span><span
          class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z
          url"><a
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"><b>Etherpad</b>
          - </span><span
          class="author-a-fbz76zz67z1z74zz80zdz71zz75zkz90zqz78z6z82z
          url"><a
            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><b>## Links</b></p>
    [1] The frontend UI <span
      class="author-a-q9z90z4z84zmde7z87zz69zam7z122zh url"><a
        href="http://firefox-code-coverage.herokuapp.com/">http://firefox-code-coverage.herokuapp.com/</a></span><br>
    <br>
    [2] Frontend code <span
      class="author-a-q9z90z4z84zmde7z87zz69zam7z122zh"></span><span
      class="author-a-q9z90z4z84zmde7z87zz69zam7z122zh url"><a
        href="https://github.com/armenzg/code_cov_experiments">https://github.com/armenzg/code_cov_experiments</a></span><br>
    <br>
    [3] Backend server <a class="moz-txt-link-freetext"
href="https://github.com/mozilla-releng/services/tree/master/src/shipit_uplift/shipit_uplift">https://github.com/mozilla-releng/services/tree/master/src/shipit_uplift/shipit_uplift</a><br>
    <br>
    [4] Total Coverage <a class="moz-txt-link-freetext"
      href="https://codecov.io/gh/marco-c/gecko-dev">https://codecov.io/gh/marco-c/gecko-dev</a><br>
    <br>
    [5] UCOSP - <a class="moz-txt-link-freetext"
      href="http://ucosp.ca/">http://ucosp.ca/</a><br>
  </body>
</html>