tree: 915cd0766e9580ff931c2b484660d88253d8a05f
  1. project_activity.py
  2. README.md
project-activity/README.md

Apache Project Activity Reporter

Generates activity reports for Apache Software Foundation projects by fetching mailing list archives and git repository metadata.

Requirements

  • uv (dependencies are managed inline via the script header)
  • git

Usage

./project_activity.py -p <project> [-m <months>]
FlagDescriptionDefault
-p, --projectASF project name (e.g., iceberg, httpd)required
-m, --monthsNumber of months of history3
-h, --helpShow help

Example

./project_activity.py -p iceberg -m 6

What it does

  1. Mailing lists — Checks for common Apache list names (dev, user, users, commits, issues, reviews), then fetches mbox archives for the time period. Already-fetched past months are skipped if complete; the current month is always refetched.

  2. Git repositories — Discovers apache/{project} and apache/{project}-* repos on GitHub. Clones metadata-only (no file content). Existing clones are updated with git pull.

  3. Report — Generates a Markdown report with the top 5 most active threads per mailing list and commit counts per repository. Lists and repos with no activity are omitted.

Directory structure

project-activity/
├── project_activity.py          # Main script
├── README.md
├── DATA/
│   ├── mbox/
│   │   └── <project>/
│   │       └── <list>/          # e.g., dev/, issues/
│   │           └── YYYY-MM.mbox # Monthly mbox archives
│   └── REPOSITORIES/
│       └── <project>/
│           └── <repo>/          # Metadata-only git clones
└── REPORTS/
    └── <project>/
        └── YYYY-MM-DD.md        # Datestamped activity reports