Skip to main content

jps-release-audit-utils

Build Publish to PyPI codecov

A comprehensive Python toolkit for auditing software releases, comparing multiple Git branches, and producing Excel-based release intelligence reports.
Designed to help engineering, QA, release management, and DevOps teams understand what code is in a release, what is missing, and how commit history evolved.


🚀 Overview

jps-release-audit-utils analyzes commit histories across multiple Git branches and generates a multi-worksheet Excel report with rich metadata, topology-aware commit ordering, branch coverage analysis, and color-coded indicators.

It is useful for:

  • Preparing release candidates
  • Verifying required commits are present
  • Identifying missing or cherry-pick commits
  • Understanding merge timing vs. authored commit dates
  • Explaining branching and merging behavior to auditors or QA
  • Producing reproducible release audit artifacts

🔍 Key Features

✔ Multi-branch commit analysis

  • Accepts branches via --branches or --branches-file
  • Compares branch membership for every commit
  • Identifies missing, unique, and shared commits

✔ Four Excel worksheets (configurable names)

  1. timeline_by_date
    Chronological commit history sorted by authored date.

  2. timeline_by_topology
    Git DAG (ancestry) order using git rev-list --topo-order.

  3. timeline_hybrid
    Combines date and topology order; highlights out-of-order commits.

  4. analytics_summary
    High-level metrics across branches: unique commits, missing commits, out-of-order count, etc.

✔ Rich metadata extraction

  • Commit hash
  • Commit message
  • Author
  • PR number (when present)
  • Authored date + datetime
  • Presence per branch

✔ Color-coded Excel output

  • Red for commits missing from a branch
  • Green for commits present in all branches
  • Yellow for commits whose dates contradict topology order
  • Colors configurable via YAML

✔ YAML-based configuration

Located at:
src/jps_release_audit_utils/conf/config.yaml

Configurable items include:

sheets:
  timeline_by_date: "Timeline (By Date)"
  timeline_by_topology: "Timeline (By Topology)"
  timeline_hybrid: "Hybrid Timeline"
  analytics_summary: "Analytics Summary"

colors:
  missing: "FFC7CE"
  all_present: "C6EFCE"
  out_of_order: "FFEB9C"

✔ Enhanced Excel formatting

Frozen header rows

Auto-filter enabled

Auto-adjusted column widths

📊 Worksheet Overview

Each worksheet provides a different perspective on commit history:

Worksheet Purpose
timeline_by_date Understand when commits were authored.
timeline_by_topology Understand how Git applied commits (true ancestry).
timeline_hybrid Detect rebases/cherry-picks via date vs. topology mismatch.
analytics_summary Quickly assess branch readiness and commit coverage.

For detailed explanations, see: ➡️ docs/worksheet_explanations.md (recommended to create as part of project)

🧪 Example Usage

Compare 3 branches and output Excel report

python -m jps_release_audit_utils.commit_report \
    --repo-path /path/to/repo \
    --branches develop,main,release/v5.8.0-rc \
    --output release_audit.xlsx
``

Using a branches file
```bash
python -m jps_release_audit_utils.commit_report \
    --branches-file branches.txt \
    --output audit.xlsx

Using a custom YAML configuration

python -m jps_release_audit_utils.commit_report \
    --branches-file branches.txt \
    --config src/jps_release_audit_utils/conf/config.yaml

📦 Installation

make install

or:

pip install jps-release-audit-utils

🧪 Development

make fix && make format && make lint
make test

📝 Roadmap (Optional Suggestions)

Optional PR-scraping via GitHub API

Release note generation

Branch divergence visualization

GitHub Actions plugin integration

HTML dashboards

📜 License

MIT License © Jaideep Sundaram

Metadata

Release files for jps-release-audit-utils 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jps-release-audit-utils 0.9.0
File Size Uploaded
jps_release_audit_utils-0.9.0.tar.gz 23.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jps-release-audit-utils 0.9.0
File Interpreter ABI Platform
jps_release_audit_utils-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 42.9 kB

Release files / jps_release_audit_utils-0.9.0.tar.gz

Download URL jps_release_audit_utils-0.9.0.tar.gz
Size 23.5 kB
Tags Source
SHA-256 checksum
How to use checksums
59fe63ffe2cb462e4ec331adf28d9446bfc232f59838a149abc82d870d15dd45
BLAKE2b-256 checksum
How to use checksums
b5719d534fd3b22f3c5fee3c46ced3e5e8c764fe2af832b6c34a1e9b31fc10cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / jps_release_audit_utils-0.9.0-py3-none-any.whl

Download URL jps_release_audit_utils-0.9.0-py3-none-any.whl
Size 19.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f9dcb519bb6eb684c9eade56af63d6c5fc81b173837dce0e600fa7da458b0d9
BLAKE2b-256 checksum
How to use checksums
a47ab5bd2f020f75e5ac694391ec34c17b9613f848675029b9debe7045284f03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page