Automated tracking of download statistics for Noir's Nargo v1.0.0 releases from the official GitHub repository.
- Automated Tracking: Daily collection via GitHub Actions
- Data Visualization: Automated chart generation (timeline, platform distribution, release comparison)
- Historical Trends: Tracks download changes over time
- Multiple Formats: Data stored in CSV and JSON formats
- Stable Release Focus: Specifically tracks all v1.0.0 releases (including betas)
- Platform Breakdown: Analyzes downloads by OS and architecture
nargo_download_tracker/
├── scripts/ # Python scripts
│ ├── nargo_download_tracker.py # Main tracking script
│ └── visualize_downloads.py # Chart generation
├── requirements.txt # Python dependencies
├── download_history.csv # Individual asset data
├── daily_totals.csv # Daily summaries
├── download_history.json # Structured data
├── *.png # Generated visualization charts
└── .github/workflows/
└── track-downloads.yml # Automation workflow
The tracker automatically generates three types of charts:
- Timeline Chart (
downloads_timeline.png) - Total downloads over time - Platform Distribution (
downloads_by_platform.png) - Downloads by platform & architecture for 5 most recent releases - Release Comparison (
downloads_by_release.png) - Downloads by release version (chronological order)
download_history.csv- Individual asset download datadaily_totals.csv- Daily summary totals onlydownload_history.json- Structured data grouped by release
timestamp,release_tag,asset_name,download_count,asset_size,asset_url,daily_change
2025-07-25T12:00:00,v1.0.0-beta.9,nargo-x86_64-unknown-linux-gnu.tar.gz,1234,16690769,https://github.com/.../nargo-x86_64-unknown-linux-gnu.tar.gz,45{
"2025-07-25": {
"total_downloads": 19701,
"releases": {
"v1.0.0-beta.9": {
"total_downloads": 8,
"assets": [
{
"timestamp": "2025-07-25T12:00:00",
"release_tag": "v1.0.0-beta.9",
"asset_name": "nargo-x86_64-unknown-linux-gnu.tar.gz",
"download_count": 5,
"asset_size": 16690769,
"asset_url": "https://github.com/noir-lang/noir/releases/download/v1.0.0-beta.9/nargo-x86_64-unknown-linux-gnu.tar.gz",
"daily_change": 1
}
]
}
}
}
}-
Clone the repository
git clone <repository-url> cd nargo_download_tracker
-
Create virtual environment
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Run manually
python scripts/nargo_download_tracker.py python scripts/visualize_downloads.py
The workflow automatically:
- Fetches latest download statistics
- Calculates daily changes
- Generates updated visualizations
- Commits all changes back to repository
- Runs daily at midnight UTC (customizable)
Perfect for hands-off monitoring of Noir adoption trends!
-
Create a GitHub repository and push code
-
Set up a GitHub token:
- Create a fine-grained personal access token
- Repository permissions needed: Contents (Read/Write), Metadata (Read)
- Add as repository secret named
ACTION_TOKEN
-
Automated execution: The workflow will run daily at midnight UTC once set up, and can also be triggered manually