Stats
Scripts for generating project statistics and for plotting them as graphs.
Install / Use
/learn @curl/StatsREADME
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.
Prerequisites
To generate these plots, you need:
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/image.pl > tmp/image.csv
Render graph
The rendering of the graph is separate from the data gathering part. The 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/image.plot tmp > image.svg
The curl dashboard
The entire collection of is built with the Makefile, used once per day in the curl webserver to generate the curl dashboard.
Run the command in the curl git source tree root:
$ mkdir tmp
$ mkdir svg
$ make -f stats/Makefile
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.
Related Skills
apple-reminders
344.1kManage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
gh-issues
344.1kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
healthcheck
344.1kHost security hardening and risk-tolerance configuration for OpenClaw deployments
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
