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.
git clone https://github.com/curl/curl.git
cd curl
git clone https://github.com/curl/stats.git
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
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 entire collection of scripts is run by the mksvg.sh
script once per day
in the curl webserver to generate the curl
dashboard.
The scripts are written to output CSV data, usually having data and/or curl release versions included in each line.
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.
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.
All scripts in this repository are provided under the MIT.