If you maintain a crate, you probably have a view on whether outside pull requests get a fair hearing in the Rust world. I now have a number to set beside that view, and it comes with enough caveats that I want to list them.
Porchlamp scores open-source projects on how they handle pull requests from people outside the team. This post uses a second cut of the same data, split by ecosystem, from the snapshot of 14 October. I covered the method in an earlier post, so here is only the part you need: a black hole is a project that leaves most of its outside pull requests without a human reply, review or merge for two weeks.
The comparison
Among crates projects that received a decision, 20.0% are black holes. The figure for npm is 30.0%, and for PyPI it is 33.8%. The cut spans six ecosystems, and the Rust subset is 1,065 crates.io projects. In plain terms, one in five of the decided crates projects is a black hole, against roughly three in ten for npm and a third for PyPI.
A decision means Porchlamp could judge the project either way. Undecided projects are not in these percentages.
Those figures reconcile with the headline from the earlier post, which is how I checked this cut ties to the published numbers: across all six ecosystems, 4,297 projects received a decision and 1,133 of them (26.4%) are black holes.
| Ecosystem | Sampled | Decided | Black holes | Share |
|---|---|---|---|---|
| maven | 1,001 | 278 | 54 | 19.4% |
| crates | 1,065 | 586 | 117 | 20.0% |
| systems | 1,287 | 573 | 115 | 20.1% |
| go | 1,164 | 609 | 135 | 22.2% |
| npm | 3,774 | 1,283 | 385 | 30.0% |
| pypi | 2,709 | 968 | 327 | 33.8% |
| All six | 11,000 | 4,297 | 1,133 | 26.4% |
Rust is not first in that table. The JVM sample is a shade better at 19.4%, and the systems sample is within a
whisker at 20.1%. The clean split in this data is between those four and npm and PyPI, and I would rather say so
plainly than let the Rust number do more work than it can.
What you can reasonably conclude
In this sample, a decided crates.io project was less likely to be a black hole than a decided npm or PyPI one, by ten points and nearly fourteen points respectively. If you are choosing where to send a first patch, that is mild encouragement for Rust projects and not a guarantee for any one of them. It is also a single snapshot, and it will change as projects do.
What you should not conclude
Do not read this as a finding about the Rust community's character, and do not read it as a clean verdict on your own crate. There is no control for project size in this cut. Ecosystem is the sampling frame, meaning it describes how projects entered the sample and not why they behave as they do. Elsewhere in the same data the black-hole share rises with stars, from 21% to 39% across the bands I measured, so if one ecosystem's sample leans towards larger or smaller projects, its share moves for reasons unrelated to the ecosystem itself.
A second caveat concerns who is counted. Anything reviewed on Gerrit or a mailing list is undecided, so it sits outside all three percentages. If undecided projects cluster in some ecosystems more than others, the shares would shift, and this cut cannot say whether they do.
Nor should a maintainer feel judged by any of these shares. The measure counts silence over two weeks, which is a narrow window and not a character reference.
Help me get it right
Porchlamp is open source, and this comparison is exactly the sort of claim that benefits from more eyes. Each verdict lists the pull requests behind it, so if a crate is misjudged you can show the evidence and ask for a change. Missing projects can be added, and the code takes patches in the repository. The rankings themselves are on the site.
Would you expect the Rust figure to survive a control for project size, and if not, which way would you guess it moves?
Top comments (0)