Rings
reactivex/rxswift
first ring February 2015 · 134 rings · 3,741 commits · 447 hands · cut at 132aea4, 2026-03-02
How to read this
Every mark is a git factTap the wood for its period, its subsystem and the commits behind them.
- 1Pith The first commit. It drifts toward whichever subsystem took the work.
- 2Ring One period. Width is that period's churn, log-scaled against the busiest one.
- 3Wedge A top-level directory. Arc = its share of lifetime churn, largest at 12 o'clock.
- 4Sealed pocket A directory that stopped and is gone from HEAD.
- 5Knot A branch that lived 30 days or more and carried 3+ commits, then merged.
- 6Scar A period where reverts crossed 5% of its commits.
- 7Bark Thickness = distinct authors of the last 12 periods. Counted, never named.
- 134
- rings, one per month
- 3,741
- commits
- 447
- hands
- 14
- knots
- 0
- scars
- Celestine
- ink
Share it
The wedges
| Top-level path | Share of lifetime churn | At HEAD |
|---|---|---|
| Tests | 30.5% | present |
| RxSwift | 19.6% | present |
| RxCocoa | 10.1% | present |
| RxTests | 9.2% | sealed pocket |
| RxExample | 8.0% | present |
| docs | 8.0% | present |
| Rx.xcodeproj | 2.7% | present |
| Rx | 2.1% | sealed pocket |
Cut yours
npx busfactor ringsOffline, no signup, nothing uploaded. Private repositories included.What every mark counts
| Mark | Git fact | How it is counted |
|---|---|---|
| One ring | One period of the repo's life | commit author dates, UTC |
| Ring width | Lines added + removed that period, log-scaled against the busiest period | git log --numstat |
| Tight band | A quiet period | same |
| Wide flush | A rewrite or a big push | same |
| Dark ring edge | Latewood: darker where the period was busier | same |
| Wedge | A top-level directory; arc = its share of lifetime churn, largest at 12 o'clock going clockwise | numstat path prefixes |
| Bright grain | That directory dominated that period's churn | per-period churn share |
| Knot | A merged branch that lived >= 30 days with >= 3 commits, sitting in the subsystem it touched most | merge parents, walked |
| Scar | A period where reverts were >= 5% of commits and >= 3 of them | commit subjects starting with revert or reverted |
| Sealed pocket | A top-level directory that stopped and is gone from HEAD | git ls-tree HEAD |
| Off-centre pith | The trunk leans toward wherever the work moved | dominant wedge per period, accumulated |
| Lighter outer wood | Sapwood: the last 12 periods | ring index |
| Bark thickness | Distinct author emails in the sapwood window | hashed locally, counted, never named |
| Ink | The language family whose files were touched most often | numstat rows by file extension |