Skip to content

Releases: ewels/contributor-graphs

v1.2.1

12 Jun 05:25
8c26892

Choose a tag to compare

Changed

  • Responsive interactive page: on narrow screens the filter controls and the organisation legend collapse into a slide-down drawer behind a hamburger button in a sticky navbar, instead of taking up most of the screen. The activity timeline stays out of the drawer and pins below the navbar so it is always visible while scrolling the chart. The desktop layout is unchanged.

Full Changelog: v1.2.0...v1.2.1

v1.2.0

12 Jun 02:53
b782947

Choose a tag to compare

What's new in 1.2.0

Time-bounded affiliations

A contributor can now hold several affiliations over time, each with a since / until date range (until is exclusive; dates are YYYY, YYYY-MM, or YYYY-MM-DD). On overlap the newer range wins and trims the older one. Each period renders as its own bar with rounded end caps, so someone who changed organisation shows a distinct bar per affiliation, with gaps where there were no commits. The Wikipedia theme draws the same periods as separate solid bands.

Co-authored commits

Co-authored-by: trailers are parsed from commit messages and each co-author receives full credit, folded into the same identity clustering as authors. On by default; disable with --no-co-authors, or toggle live in the interactive page.

Unified YAML curation file

A single --config file replaces the old --groups / --identities TSV flags. It holds identities (merge a person's several names/logins), aliases (group-name aliases, e.g. "Seqera Labs" and "Seqera" are the same organisation), and time-bounded affiliations.

Caching for fast re-runs

Git analysis is cached per repository, keyed by the branch tip SHA with freshness checked via git ls-remote; GitHub login, profile, avatar, and org-listing lookups are cached with TTLs. Everything lives under the XDG cache directory. --refresh bypasses the caches.

Interactive page

  • The full-width toggle moved into the top button row (Full width | SVG | PNG | Dark).
  • Affiliation filtering now masks the bars and commit counts, not just which rows appear.
  • The tooltip and expanded row list all of a contributor's affiliations; the legend's "+N more" is a button that reveals every affiliation for filtering.
  • Affiliations are labelled "current affiliations", and the expanded-row detail text is larger and higher contrast.

Full changelog: https://github.com/ewels/contributor-graphs/blob/main/CHANGELOG.md

v1.1.0

11 Jun 16:50
3c6b815

Choose a tag to compare

Second release, building on 1.0.0.

Added

  • Whole-org and multi-owner runs. A bare GitHub owner (org or user) expands to every non-fork repository it owns, and several owners can be combined in one run, with overlapping commits de-duplicated by SHA. A same-owner pool (one repo or a whole org) shows the owner's avatar in the interactive header.
  • Multiple sources pooled into one timeline. Identities resolve across all sources; a repo that fails to clone or has no commits is skipped with a warning rather than aborting the run. New analyze_many library API.
  • On-disk cache under $XDG_CACHE_HOME/contributor-graphs for bare clones, parsed git history (keyed by the branch tip SHA), and GitHub lookups. A quick git ls-remote checks each repo's tip, so unchanged repos skip the fetch, the log parse, and the API calls. A warm whole-org run drops from minutes to seconds. --refresh forces a fresh pull.
  • Co-authored commits are counted with full credit (Co-authored-by trailers count for each co-author), on by default. --no-co-authors disables it, and the interactive page has a live "Co-authors" toggle.
  • Theming, including a new Wikipedia theme and custom, extensible themes defined in a JSON file (--themes, --theme <id>, --lock-theme).
  • Expandable rows in the interactive page: click a row for a pinned detail card and a full-width monthly line plot, with an Expand all / Collapse all control.
  • The interactive header shows the GitHub repository description when it has one.

Changed

  • The total-activity strip can align its plotting area with the contributor rows (↔ on the activity bar).
  • The affiliation row mode is labelled "current affiliations", since the grouping comes from each contributor's present GitHub profile.
  • The expanded-row detail panel is larger and higher-contrast for readability, especially in dark mode.

Full detail in CHANGELOG.md.

contributor-graphs v1.0.0

11 Jun 07:25
57f41af

Choose a tag to compare

First public release.

Turn any local git repo, GitHub owner/repo slug, or git URL into a contributor timeline: a publication-ready SVG and a self-contained interactive HTML page.

Highlights

  • GitHub enrichment for names, usernames, and avatars (uses the gh token or GITHUB_TOKEN/GH_TOKEN).
  • Identity merging across name and email spellings, with manual override files.
  • Affiliation grouping from profile companies, plus a one-row-per-organisation view (--by-affiliation).
  • Noise filters (bots, minimum commits, active span, top N); the HTML adds live search, sorting, group filtering, timeline zoom, and dark mode.
  • Usable as a Rust library via the analyze API.

Install

  • Prebuilt binaries are attached below (Linux, macOS, Windows; x86_64 and arm64).
  • cargo install contributor-graphs
  • Docker: ghcr.io/ewels/contributor-graphs

See the documentation site for examples and usage.