INACTIVE - http://mzl.la/ghe-archive - Client code for the Mozilla code coverage
Перейти к файлу
Eric Desjardins 96bbc11016 Added language indicator and updated docs (#3)
* Added language indicator on revision dropdown (#26)

* Append language indicator to revision selector

* Removed debug

* Updated docs

* Added missing link to docs
2017-04-05 15:32:20 -03:00
css Added error handling modal, fixed typo 2016-11-25 22:28:38 -05:00
docs Added language indicator and updated docs (#3) 2017-04-05 15:32:20 -03:00
fonts More CSS Work and site design 2016-09-24 17:02:37 -04:00
icons Accomplishes #13, #12 and adds the icons I made back in (#18) 2017-03-06 14:08:38 -04:00
scripts More refactoring, added automatic production/dev switches 2016-12-14 14:55:25 -05:00
src Added language indicator and updated docs (#3) 2017-04-05 15:32:20 -03:00
.babelrc Refactoring 2016-12-14 12:41:24 -05:00
.gitignore Update gitingore rules 2017-01-31 20:00:08 -04:00
LICENSE Added License text 2016-10-21 02:28:54 -04:00
README.md Fix URLs 2017-03-31 05:38:50 -04:00
contribute.json Wrong docs 2016-10-21 02:42:36 -04:00
gulpfile.js Implemented live reload for Less files 2017-02-01 09:51:59 -04:00
index.html Relative urls 2016-10-21 01:56:13 -04:00
package.json Updated Gulp dependancies 2017-03-08 15:17:17 -04:00
server.js Project cleanup and install scripts 2016-10-02 19:20:38 -04:00

README.md

Coco

Part of the UCOSP Code Coverage Team working with Mozilla to bring code coverage data to the people who need it.

I can bear-ly contain my excitement

Overview

A zero knowledge interface for ActiveData queries. Primarily directed toward distributing code coverage data. Built for stakeholders to access pertinent data housed in ActiveData without struggling with query language or schemas.

Skip the details

Okay, just head over here (updated March 2017)

Problem

Mozilla has no way for stakeholders to access line level code coverage data without using clunky tools themselves. With Coco we are able to use ActiveData to query the data stakeholders need without burdening them with external tools.

Limitations

Coco is intended to be used without a server side application. This means we cannot store user data (globally) or restrict access in the current state.

Additionally due to the restrictions on browser based applications and the way ActiveData does queries we cannot run queries that will timeout in the browser without some kind of server and significant changes.

Goals

Coco must be able to display line level coverage data of multiple languages used by Mozilla. Ideally we could explore the source tree interactively aggregating by directory allow stakeholders to recognize where improvements can be made.

Coco is intended to be used without a server side application. This, practically allows one to host their own Coco application without relying on an external server. But also reduces the burden on infrastructure that Mozilla has to use to host the application to near zero.

Non Goals

Not meant to replace ActiveData or custom dashboards that currently exist. Simple dashboards, however, could be implemented to use Coco as an interface and shared among stakeholders. However, not meant to replace the ActiveData query tool either.

Mobile support, long tabular data is difficult to display on tall viewports. This may change if the need arises.

Dependencies

Coco heavily depends on ActiveData for data but could be modified to accept other document stores.

Very few dependencies are actually required to run a development version of the application. Most of the dev-dependencies are used to transpile the various utility languages into the languages that modern browsers will accept (JavaScript, CSS). Therefore with local file hosting the application can use zero dependencies after being compiled.

React is the biggest dependency of the project it allows the developer to focus on designing elements and how these components are update without creating technical debt when doing partial updates, or causing poor performance. We also use Flux to maintain component state with event driven programming.

Babel/Browserify/Uglifyify is used to create our browser bundle.

Less & Bootstrap are used for aesthetically pleasing styles.

Various JavaScript libraries/frameworks are pulled in order to compile a browser bundle that can be used to present the application. These JavaScript libraries managed using npm, the application is written with Node.js APIs and therefore depends on Node.js itself.

Install & Run Locally

  1. git clone the repository to a local directory
  2. npm install
  3. wait for code compilation
  4. npm start (runs a local webserver)

See docs for more info here

Code

https://github.com/mozilla/moz-coco

Contact

Mentor

Kyle Lahnakoski
IRC: ekyle@irc.mozilla.org
Email: klahnakoski@mozilla.org
Bugzilla: :ekyle

Participant

Brad Kennedy
IRC: co60ca@irc.mozilla.org
Email: bk@co60.ca
Bugzilla: :co60ca

Eric Desjardins
Email: ericd@dal.ca
Bugzilla: :ericd