Skip to content

docs(contributors): refresh contributor stats to v0.51.44 - #2060

Merged
nesquena merged 1 commit into
masterfrom
contributors-refresh-v0.51.44
May 11, 2026
Merged

docs(contributors): refresh contributor stats to v0.51.44#2060
nesquena merged 1 commit into
masterfrom
contributors-refresh-v0.51.44

Conversation

@nesquena-hermes

Copy link
Copy Markdown
Collaborator

What this is

Refresh of CONTRIBUTORS.md and the README contributors section to reflect the contributor reality at v0.51.44. The previous refresh was at v0.50.245 (~50 tags ago).

The numbers

Before (v0.50.245) After (v0.51.44)
Total contributors tracked 66 130
Total PR credits 142 568
Top contributors (5+ PRs) 5 20
Sustained (3–4 PRs) 5 11
Two-PR 9 14
Single-PR 47 85

The jump is driven by two things:

  1. A ton has happened in 50 tags. Eight batch releases worth of contributor PRs, plus the ongoing autonomous-AI contributor work (@ai-ag2026, 49 PRs), plus @Michaelyklam ramping from 18 to 81 PRs across this stretch.

  2. The counting rule explicitly includes closed-but-absorbed PRs now. A PR that was closed on GitHub but whose content shipped via a batch-release squash (with Co-authored-by trailer) or via salvage rewrite (with CHANGELOG attribution) counts the same as a direct merge. This is what Nathan asked for in the task brief: "we often close PRs, but they are actually still being merged. We want to factor those in as contributions from that author as well."

How credit is compiled

  1. Pull all closed PRs from the GitHub API — 1,421 of them, both merged_at != null and merged_at == null (closed-unmerged).
  2. Walk CHANGELOG.md release-by-release and extract attributions via these patterns:
    • PR #N by @user (canonical bullet form)
    • (#N by @user, (PR #N by @user, (#N, @user;
    • PRs #A, #B by @user (plural)
    • @user — PR #N, @user — N PR (#A, #B)
    • (credit: @user) and (credit: @userA and @userB)
  3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed users with the GitHub PR author (when external). Maintainer accounts (@nesquena, @nesquena-hermes) are excluded.
  4. For PRs merged on GitHub but not in CHANGELOG (very early PRs, non-noteworthy direct merges), credit the GH author.
  5. Three salvaged-design contributors not directly in CHANGELOG are credited in the special-thanks roll: @indigokarasu (Visual redesign: icon rail sidebar + design token system + 7 themes #213 → shaped the v0.50.0 design language), @andrewy-wizard (Add Chinese localization for Hermes WebUI #177 → initial Chinese locale absorbed into v0.42.0), @zenc-cp (fix(hermes): strict ReAct loop — no fabricated tool output #133 → anti-hallucination guard absorbed into streaming.py).

Edge cases handled

  • HTML entities like 
 in CHANGELOG were causing false PR# matches. Pre-cleaning step strips them before scan.
  • The PR# regex requires a whitespace/paren/bracket preceder so identifiers like 8080:Qwen3-235B, --key=123, and tag-style ##10 don't pollute the count.
  • For per-user first/last release computation, merged-on-GH PRs use the smallest tag whose creatordate >= merged_at. Absorbed PRs use the explicit-attribution release (or, when no explicit attribution exists, the earliest CHANGELOG release that mentions the PR#).
  • "@user — Closes #N" looks like attribution but the #N is an issue ref, not a PR ref. The GitHub PR author lookup handles this correctly because the PR with the same N (when it exists) gets attributed via path (1).

Diff shape

  • CONTRIBUTORS.md: full rewrite of all sections. 61 lines → 93 lines.
  • README.md: replaced lines 543-670 (the ## Contributors block, from the top down through ### Bug fix and security contributions) with a top-10 table + 29 notable-contribution blurbs. ~165 lines net.
  • No code changes. Docs only.

Sanity checks performed

  • Every @user link in CONTRIBUTORS.md verified to point to https://github.com/<same-user> (141 links, 0 mismatches).
  • Every notable contributor in README cross-checked to appear in CONTRIBUTORS.md (29/29 present).
  • No user mentioned more than twice in CONTRIBUTORS.md.
  • kingfish65 was correctly excluded — PR Add slash command system with session management, model switching, and usage analytics #10 was closed-unmerged and never absorbed (&#10; HTML entity in v0.50.254 was the false-positive match, fixed by the pre-cleaning step).
  • deboste's range correctly shows v0.18 era when computed via merged_at tag lookup. The original v0.16.1 claim in the prior CONTRIBUTORS.md was earlier than the actual tag.

If your name is missing or your count looks wrong, open a follow-up PR against this file — the cross-check is automated but the curation matters.

Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:

- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
  releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
  PRs whose original branch shows "closed" on GitHub but whose content
  shipped via batch-release squash with a Co-authored-by trailer, or
  via salvage rewrite with CHANGELOG attribution. This better reflects
  what users actually contributed.

The compilation pipeline:

1. Pull every closed PR from gh api (state=closed, both merged and
   unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
   - `PR #N by @user` (canonical bullet form)
   - `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
   - `PRs #A, #B by @user` (plural)
   - `@user — PR #N`, `@user — N PR (#A, #B)`
   - `(credit: @user)` and `(credit: @usera and @userb)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
   users with the gh PR author (when external). Maintainer accounts
   (@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
   PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
   credited in the special-thanks roll: @indigokarasu (#213 →
   v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
   locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
   guard absorbed into streaming.py).

Pre-cleaning step strips HTML entities (`&#10;` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.

Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
  PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
  attributes to the user (or the earliest release that mentions the
  PR# if no explicit attribution exists for that user).

CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs

README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.

No code changes. Docs only.
@nesquena
nesquena merged commit b766b7f into master May 11, 2026
3 checks passed
@nesquena
nesquena deleted the contributors-refresh-v0.51.44 branch May 11, 2026 07:03
SysAdminDoc pushed a commit to SysAdminDoc/hermes-webui that referenced this pull request Jun 26, 2026
…0.51.44

docs(contributors): refresh contributor stats to v0.51.44
bernyforce pushed a commit to bernyforce/hermes-webui that referenced this pull request Jul 29, 2026
…0.51.44

docs(contributors): refresh contributor stats to v0.51.44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants