Skip to content

Latest commit

 

History

History
74 lines (47 loc) · 2.2 KB

README.md

File metadata and controls

74 lines (47 loc) · 2.2 KB

Stats

This repository holds a collection of scripts for generating project statistics and data.

Stats generated by these scripts have been, are and will be used in curl related blog posts and presentations and by providing the scripts in a public repository everyone can reproduce the results and can verify the correctness of them.

This allows everyone to help out to improve the scripts and to provide new ones that generate even more, better and more interesting project stats.

Run the scripts

Check out the main curl git repository

git clone https://github.com/curl/curl.git

Check out this repository as a subdirectory

cd curl
git clone https://github.com/curl/stats.git

Get data

The scripts are (primarily) written in perl and are intended to be run from the curl source code root.

Example:

perl stats/script.pl > tmp/script.csv

Render graph

The rendering of the graph is separate from the data gathering part. We gnuplot script is named the same as the perl script and uses the CSV file as input to generate a SVG output:

gnuplot -c stats/script.plot > tmp/script.svg

The curl dashboard

The entire collection of scripts is run by the mksvg.sh script once per day in the curl webserver to generate the curl dashboard.

Output

The scripts are written to output CSV data, usually having data and/or curl release versions included in each line.

Scripts

All perl scripts use the extension .pl and they generate CSV files with data. Several of them are written with a "cache", so that repeated invokes only scans for the part that is not cached. To run faster and avoid repeating doing the same things every day.

The gnuplot scripts use the extension .plot and they generate SVG output.

git details

Lots of git operations work with the assumption that we can list all tags (which correspond to releases) and sort them, and then act on the git repository at the times when those tags were set.

Lots of git operations also scan specific directory paths of the source code tree, like src/ and lib/ since we know the layout we know the meaning of that.

License

All scripts in this repository are provided under the MIT.