As I briefly highlighted in my blog post about how to properly create a GitHub PR, a good bug report or PR contains an automated test that reproduces the issue.
OSS tip: If you want a bug fixed faster, submit a PR with a failing test rather than an issue.
— Sindresaurus (@sindresorhus) March 21, 2015
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
Especially newcomers might not know about this. Kent C. Dodds does already invest a lot in trying to get newcomers to submit PRs.
I will only accept a PR for this one from someone who's never contributed to open source before: https://t.co/29TkMJrRE3 #angularjs
— Kent C. Dodds (@kentcdodds) July 27, 2015
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
While he does so, he tries to foster best practices when submitting PRs (automated tests and stuff...)
My idea is to explicitly label (with GitHub labels) existing PRs or issues on GitHub repos based upon their quality with dedicated badges. The badges and their meaning should obviously be described (in the CONTRIB guidelines...or simply linked to this gist here?). Moreover, authors should prioritize the issues based on their quality...meaning that higher quality issues get solved first. That's normally the case anyway, but by explicitly labelling a submission to be good or bad, the author of the issue might have the chance to know it, and to improve it, that is...to level it up and get fixed/merged first.
Badges should be applied like badge-<level>
. The level
could be determined by
badge-diamond
- A PR already including the fix, a test case that verifies it's implemented correctly, nice, clear commit messages. Well, you can simply merge it in through the GitHub automatic merge button.
badge-platin
- An PR containing a failing test that reproduces a given problem. Good description of the issue
badge-gold
- ...
badge-silver
- ...
badge-bronze
- A bug submission. Good description, but no clear indication on how to reproduce.
(I'd need some help/feedback on the ranking criteria. Any ideas?)