Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Improving the developer experience for new contributors #2759

Open
gabrieldemarmiesse opened this issue May 20, 2024 · 0 comments
Labels
enhancement New feature or request mojo-repo Tag all issues with this label needs discussion

Comments

@gabrieldemarmiesse
Copy link
Contributor

gabrieldemarmiesse commented May 20, 2024

A few days ago we got a discussion in Discord about how to make it easier for new contributors to get started in Mojo.
Here is a small summary of the ideas we had. We can continue the Discord discussion here. Some ideas here are also my own
and a follow-up of what we discussed.

  1. Do not hesitate to split your work in multiple pull requests. Smaller pull requests
    are encouraged. Be aware that if you open a pull request about a bugfix, unit tests should
    be included in your pull request, and if you create a new public function, the docstring
    and the unit tests should also be included. A pull request of 10 lines of code is very much valid!
    We don't have a minimum size requirement. One issue does not necessarily need to be fixed with one PR. It can be multiple PRs done by multiple people!
  2. The person writing the issue is invited to specify how the task can be split into multiple PR exactly (enumerate task 1, task 2, task3, etc...)
  3. Open a draft PR as soon as possible, with a link to the issue in the description. With this, you are saying "Hey I'm working on this feature" It avoids work duplication.
    It is also very useful if you are stuck. It's normal to be stuck sometimes. It's not because it's a good first issue that everyone has the knowledge to fix it.
    With a draft pull request, the community will be able to help you by commenting on your code.
  4. You can ask to be assigned to an issue, but do so only if you can fix it within the next two days. If you don't want to have the time pressure, you can work on any issue without being assigned or without asking for the permission to do so.
    We still advise to open a draft pull request as soon as possible for the reasons stated above.
  5. Maintainers don't have to read draft pull requests unless they are a proof of concept that needs design discussion. The community is invited to help new contributors with their drafts!
  6. Using nightly as the github default branch can avoid some confusion for new contributors (or even some misclicks by others). This was documented here and got a few thumbs up already.

Open question: should we remove issue assignment for small issues? While thinking about it, I see more and more downsides:

  • The cookie licking problem, discouraging new contributors to work on an issue.
  • More work for the maintainers (assigning people, monitoring progress). It's not much work but it will add up as the repository will grow.
  • Time pressure/stress on the contributor's side to deliver something because they were assigned to it (they can feel like it's a responsability)
  • Maintainers need to ensure a contributor doesn't assign multiple issue to themselves before starting to work on them. I've already seen this in the Mojo repo.

Making small PRs and asking to open draft PRs ASAP seems to remove the need for assigning people to simple/small issues. What does the community think?

cc @laszlokindrat @hogepodge who were in the discord discussion

@gabrieldemarmiesse gabrieldemarmiesse added enhancement New feature or request mojo-repo Tag all issues with this label labels May 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request mojo-repo Tag all issues with this label needs discussion
Projects
None yet
Development

No branches or pull requests

2 participants