Skip to content

Inflated dev counts: forks of non-crypto upstreams + contribute-to-earn programs #2931

Description

@lingxiaolyu191231

Inflated developer counts from (1) forks of non-crypto upstreams and (2) contribute-to-earn programs

Hi — we've been leaning on Open Dev Data heavily (snapshot 20260715T125411) and
hit two systematic sources of inflated per-ecosystem developer counts. Both
reproduce from the public parquet files. Filing together since they surfaced from
the same analysis; happy to split.

1. Forks of large non-crypto upstreams import their contributor graph

When a project forks a big non-crypto repo (e.g. to submit a PR upstream), the
fork carries the upstream's entire contributor history, which then counts toward
the ecosystem.

Concrete example: stellar/winget-pkgs (a fork of microsoft/winget-pkgs) is
the single largest repo by recent active devs mapped to Stellar — ~1,440 devs, 2
stars, ~27% of Stellar's recent active developers, and 1,440 of 1,444 appear in
no other Stellar repo. (PR to remove this specific repo submitted separately;
you already did the same for NethermindEth/winget-pkgs in
migrations/2025-05-01T112748_mutations.)

The general question: would it be feasible to systematically exclude
forks-of-external-upstreams from ecosystem mappings, or flag repos whose
contributor set is dominated by the fork parent? The class extends beyond winget
(e.g. homebrew-core forks, etc.).

2. Contribute-to-earn / bounty programs inflate MAD

A large share of some ecosystems' recent activity comes from organized
contribute-to-earn programs (OnlyDust-style) rather than independent teams. In
the current snapshot, Stellar shows a distinctive signature across ~150+ repos:

  • forks far exceeding stars (often 40–70×)
  • the same ~1,300 developers cycling across many repos (2.5× cross-repo overlap
    in the top 20)
  • uniform ~5 commits per developer
  • new, near-zero-star repos each showing 130–230 "developers"
    (e.g. QuickLendX/quicklendx-protocol, StellarLend/stellarlend-contracts,
    EarnQuestOne/stellar_Earn)

These are real commits, so it isn't a taxonomy bug — but it materially changes
how per-chain MAD reads. Screening it out drops Stellar's 6-month single-chain
developer growth from ~+2,170 to between +666 and +1,350 depending on filter
aggressiveness (i.e. not a stable organic signal).

Do you already distinguish incentivized vs organic contribution, or dedupe forked
template repos? A flag for incentive-program-associated activity would be very
valuable to downstream users trying to read genuine adoption.

Glad to share our exact queries (built on developer_activities.parquet,
ecosystems_repos_recursive.parquet, repos.parquet). Thanks for the dataset.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions