https://github.com/luser/firefox-rust-committers
https://github.com/luser/firefox-rust-committers
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/luser/firefox-rust-committers
- Owner: luser
- Created: 2019-02-26T17:18:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-02-26T17:32:15.000Z (over 7 years ago)
- Last Synced: 2025-03-16T05:22:15.656Z (over 1 year ago)
- Language: Python
- Size: 2.08 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Firefox committers touching Rust code
=====================================
This repository contains data about the number of Rust vs. C/C++ commits
and commit authors in Firefox and instructions for reproducing the output. [See the output here.](https://luser.github.io/firefox-rust-committers/)
Instructions
============
1. Clone the [`mozilla-central`](https://hg.mozilla.org/mozilla-central) Mercurial repository:
`hg clone https://hg.mozilla.org/mozilla-central`
2. Clone the [`version-control-tools`](https://hg.mozilla.org/hgcustom/version-control-tools/) repository:
`hg clone https://hg.mozilla.org/hgcustom/version-control-tools/`
3. Enable the `mozext` and `firefoxtree` extensions in `.hgrc`:
```
[extensions]
mozext = /path/to/version-control-tools/hgext/mozext
firefoxtree = /path/to/version-control-tools/hgext/firefoxtree
```
4. Sync pushlog data:
```
hg pushlogsync
```
5. Run queries (in mozilla-central clone):
```
# List all commits that touched files ending in .rs.
TZ=UTC hg log -r 'filelog("glob:**.rs")' --template '{firstpushdate|hgdate},{author|email},{node|short}\n' > firefox-rust-committers.csv
# List all commits that touched files ending in C/C++ file extensions,
# starting from 2015-05-09, when the first Rust code landed in Firefox.
TZ=UTC hg log -r 'filelog("re:\.(c|cpp|cc|m|mm|h)") & firstpushdate(">2015-05-09")' --template '{firstpushdate|hgdate},{author|email},{node|short}\n' > firefox-cpp-committers.csv
```
6. Create virtualenv:
```
virtualenv venv
. venv/bin/activate
pip install arrow plotly
```
7. Run script to generate graphs:
```
python committers.py firefox-rust-committers.csv firefox-cpp-committers.csv docs/index.html
```