Skip to content

fix(website): merge email-keyed leaderboard entries into matching github-keyed contributors - #2720

Open
Mohith26 wants to merge 3 commits into
vllm-project:mainfrom
Mohith26:fix/leaderboard-identity-merge
Open

fix(website): merge email-keyed leaderboard entries into matching github-keyed contributors#2720
Mohith26 wants to merge 3 commits into
vllm-project:mainfrom
Mohith26:fix/leaderboard-identity-merge

Conversation

@Mohith26

Copy link
Copy Markdown

Fixes #2699

What

The contributor leaderboard splits one human into two ranked entries when some commits resolve to a GitHub login and others only to an email (e.g. theohsiung ranked twice in the same range). Root cause: resolveIdentity() has no reconciliation between github:* and email:* keys.

This adds a deterministic post-collection pass that folds leftover email-keyed entries into a matching github-keyed entry when linked by commit-author evidence the script already collects (shared author email, shared author name, or name equal to the login), summing commits and widening the date range. Ambiguous evidence shared by multiple github-keyed entries is never used, bots are excluded, and no new GitHub API calls are made.

The generated data file is not touched here; it regenerates on the next scheduled run.

Tests

New node --test suite in scripts/lib/ (the repo's existing convention), including the exact theohsiung split from the issue (34 + 5 must merge into one 39-commit entry), non-merge cases, and immutability. 4 of 8 tests fail against the old pass-through behavior; 13/13 pass with the fix. npm run lint clean. Both commits are DCO signed-off.

Credit to @theohsiung for the report in #2699.

Mohith26 added 2 commits July 28, 2026 11:38
…hub-keyed contributors

When some of a contributor's commits fail GitHub login resolution (e.g.
the author email was not yet linked to their GitHub account at generation
time), resolveIdentity() falls back to an email:<address> key and the
leaderboard shows the same human as two ranked entries in the same range.

Add a deterministic reconciliation pass after commit collection:
collectContributorStats() now records the normalized author emails and
names seen for each entry, and mergeEmailKeyedContributors() folds any
leftover email:* entry into a github:* entry linked by that existing
evidence (shared author email, shared author name, or author name equal
to the GitHub login), summing commits, widening the date range, and
keeping the github key. Ambiguous evidence shared by multiple github
entries is never used, and no GitHub API calls are added.

Fixes vllm-project#2699

Signed-off-by: Mohith Gajjela <109003762+Mohith26@users.noreply.github.com>
Exercises mergeEmailKeyedContributors() with the exact theohsiung split
from issue vllm-project#2699 (github:theohsiung 34 commits + email:theobear870924@gmail.com
5 commits -> one 39-commit entry) and the Wilson Wu shared-name case, plus
shared-email linking, case-insensitive matching, ambiguous-evidence and
no-evidence non-merges, bot exclusion, and input-map immutability.

Runs via the existing npm test target (node --test scripts/lib/*.test.mjs).

Signed-off-by: Mohith Gajjela <109003762+Mohith26@users.noreply.github.com>
@Mohith26
Mohith26 requested review from Xunzhuo and rootfs as code owners July 28, 2026 17:33
@netlify

netlify Bot commented Jul 28, 2026

Copy link
Copy Markdown

Deploy Preview for vllm-semantic-router ready!

Name Link
🔨 Latest commit 6df47db
🔍 Latest deploy log https://app.netlify.com/projects/vllm-semantic-router/deploys/6a6a26b1f77d890008f399a3
😎 Deploy Preview https://deploy-preview-2720--vllm-semantic-router.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions

Copy link
Copy Markdown
Contributor

👥 vLLM Semantic Team Notification

The following members have been identified for the changed files in this PR and have been automatically assigned when their GitHub accounts are assignable in this repository:

📁 website

Owners: @FAUST-BENCHOU, @shraderdm, @drivebyer, @ramkrishs, @WUKUNTAI-0211, @AayushSaini101, @siloteemu
Files changed:

  • website/scripts/generate-contributor-rank.mjs
  • website/scripts/lib/identity-merge.mjs
  • website/scripts/lib/identity-merge.test.mjs

vLLM Semantic Router

🎉 Thanks for your contributions!

This comment was automatically generated based on the OWNER files in the repository.

@drivebyer drivebyer left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice find — the mechanism is real. A few notes from digging in:

  • Both cases in #2699 have already self-healed (the API resolves those gmails today). The one live split left is aby / chenzw0521@gmail.com, whose account was deleted — its PRs show user: ghost, so both the commit API and the PR fallback come back empty. Your pass does fix that one.
  • Concern: matching on git author name can merge different people — two contributors both committing as root collapse into one entry. AMBIGUOUS only guards github↔github collisions.
  • Suggestion: keep just the name-equals-login path (that's what fixes both cases) and drop the name/email matches. Much smaller, and a lot harder to get wrong.

Per review: git author names are user-controlled and collide (two
authors committing as 'root'), and the AMBIGUOUS guard only protects
github-to-github collisions, so drop the email/name evidence matching
and keep only the name-equals-login path. That path alone fixes the one
live split (deleted account resolving to ghost); the original vllm-project#2699
splits have self-healed upstream. Tests updated to pin the deliberate
non-merges.

Signed-off-by: Mohith Gajjela <109003762+Mohith26@users.noreply.github.com>
@Mohith26

Copy link
Copy Markdown
Author

Good points, thanks - done in 6df47db: dropped the email/name evidence matching and kept only the name-equals-login path, updated the tests to pin the deliberate non-merges (shared display name or shared email evidence alone no longer merge). All 8 tests green.

@drivebyer

Copy link
Copy Markdown
Collaborator

Thanks for the quick turnaround! One correction to my earlier note, after re-checking the data: the pass as-is doesn't catch the one remaining live split — the email entry's author name is aby, but the GitHub-keyed entry is github:aby42 (via the noreply regex), so name-equals-login never fires. Meanwhile #2708 has closed #2699 with the override + audit approach, deliberately avoiding auto-merge.

Suggestion: repurpose this PR as

  1. an identityOverrides entry: chenzw0521@gmail.comaby42;
  2. lowering the audit's minCommits to 1 so single-commit splits surface.

Same outcome, much less machinery.

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.

bug: Contributor leaderboard shows duplicate/split entries for the same contributor

7 participants