Only tested on Ubuntu Focal with ROS specific packages like python3-rosdistro being installed.
- Run the
get-repos.pyscript to fetch list of considered repositories and branches. - Edit
github.yamlproviding an OAuth token to use the GraphQL API. - Run the
get-commits.pyscript to fetch commit information from each repository. This step will take quite a while but the information is stored locally and the script works incrementally if aborted and reinvoked. - Run the
create-data.pyscript generate the data injsonin the format needed by the web application. - Start a local webserver to host the files:
python3 -m http.server - Open
http://0.0.0.0:8000/index.htmlin a web browser.
Only a subset of the repositories of the ROS ecosystem are considered:
- The repository must be registered in the ros/rosdistro for an active / rolling ROS distribution and the branch must exist.
- Additionally a set of tooling repositories are enumerated manually in the file
tooling_repos.yaml.
- Additionally a set of tooling repositories are enumerated manually in the file
- Must be hosted on GitHub.
- Only commits since 2012 are used.
Commits in a repository are also being counted if they are from before the point in time the repository was added to the rosdistro.
If repositories were split, commits before the split are being counted multiple times.
A preview using a snapshot of the collected data can be viewed at www.dirk-thomas.net/rosworld2020_ros-contributions/.