Ensemble is the platform that powers the Firefox Public Data Report, a weekly public report on the activity, behavior, and hardware configuration of Firefox Desktop users.
Ensemble fetches data from
ensemble-transposer, a weekly
job that adds metadata to the raw data published by Mozilla data engineers and
writes the result as JSON under data.firefox.com/datasets/.
See docs/architecture/data-pipeline.md
for how that data is generated upstream, where it lives, and which
repositories are involved.
Ensemble is written in React, built with Vite.
Run npm start. See CONTRIBUTING.md for the full command reference.
Any of the environment variables in .env can be overridden. For example:
VITE_SITE_TITLE='Firefox Public Lore Report' npm start
Run npm run build to produce a static build in build/ (Stylus, then Vite, then version.json;
see CONTRIBUTING.md for the full command reference). See docs/architecture/deploy.md for where that build is
hosted and how it is deployed: pushes to main deploy to stage and GitHub releases deploy to prod,
via .github/workflows/deploy.yml.
Any of the environment variables in .env can be overridden.
See CONTRIBUTING.md for build, lint, and test commands, coding conventions,
and the current status of this repository's test suites.
To analyze the size of the JavaScript bundle that will be served, run npm run size.
We maintain a version number for this project. We try to update it when we deploy new code. The version number is specified in package.json.
The number looks like a semantic version number, but semver isn't suitable for applications. We instead follow this basic guideline: the first number is incremented for major changes, the second number is incremented for medium changes, and the third number is incremented for small changes.