I’ve been trying to get started with contributing to Rust by finding issues I could work on, usually filtering by E-easy. This is difficult, however, because obviously many of these types of issue get snapped up quickly, so it’s common to see that someone else is working on it already.
I propose adding a label that can be added when someone starts working on an issue, so it’s easier to see when searching. This does create slightly more work for triage, but that’s the only disadvantage I can see here.
I think this is a good thing for Rust to consider when trying to become more friendly to new contributors. I remember finding a first issue was daunting when I was first starting out (luckily the impl period was ongoing so there were people around I could ask).
I’ve seen other projects have bots (similar to Rust’s highfive bot) that can be used to assign people to issues and will unassign them if a PR hasn’t been submitted or the assignee hasn’t responded in two weeks (I believe the Zulip project has something like this).
There’s a couple advantages to this I think:
It removes the need to add people to the rust-lang org so that they can assign themselves (this is still advantageous for active members of working groups to be notified as a group).
It helps when a potential new contributor finds an issue that they might be interested in but it has been assigned for weeks with seemingly no progress. I found, being new, that I was unsure what the protocol was here - can I ping the person to see if they are working on it? What if they don’t reply? Can I just start working on it?
A new tag wouldn’t be required and then maintained because the bot handles that and you can filter for unassigned issues.
Such a bot could make suggestions based on the tags the issue has (A-NLL, etc.) as to who might be a good person to ping for pointers.
Another potentially interesting solution would be a dedicated channel somewhere (Zulip or Discord preferably - depending where people are) for new contributors, I think there are some advantages to this:
This channel wouldn’t have any ongoing discussions between regular contributors that might seem daunting or that a new contributor might not want to “interrupt”.
This channel could be a good place for a new contributor to ask if there are any good issues to start with and also gives them someone to act as a point of contact to ask questions about the issue. One of the major benefits of the impl period and working groups is that there’s a channel dedicated to it where you can throw questions - it’s a lot less clear who is a relevant person to ping if you’re stuck when you just find an issue on GitHub.