-
-
Notifications
You must be signed in to change notification settings - Fork 26.6k
DOC Update Contributing intro and Ways to contribute #32792
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
Conversation
doc/developers/contributing.rst
Outdated
| * reference scikit-learn from your blog and articles, link to it from your website, | ||
| or simply | ||
| `star it <https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars>`__ | ||
| to say "I use it"; this helps us promote the project | ||
| * :ref:`improve, triage, and investigate issues <bug_triaging>` | ||
| * :ref:`reviewing other developers' pull requests <code_review>` | ||
| * report issues using this package by submitting an | ||
| `issue <https://github.com/scikit-learn/scikit-learn/issues>`, and giving a | ||
| "thumbs up" on issues that others reported and that are relevant to you (see | ||
| :ref:`submitting_bug_feature` for details) | ||
| * improving the :ref:`contribute_documentation` | ||
| * making a code contribution |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I love a bullet list - I find it easier to read, but open to changes here.
I thought about including 'making feature request' in the bullet but I am not sure we want to encourage this. Note that the reference 'submitting_bug_feature' is to the section "Submitting a bug report or a feature request" which does talk about making a feature request.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's ok to subsume "I found a bug" and "I'm missing a feature" under "issues" and to leave it underspecified here (especially since it is expanded in the link). This way, people are not specifically encouraged but the information on how to do it is still there.
| In case a contribution/issue involves changes to the API principles | ||
| or changes to dependencies or supported versions, it must be backed by a | ||
| :ref:`slep`, where a SLEP must be submitted as a pull-request to | ||
| `enhancement proposals <https://scikit-learn-enhancement-proposals.readthedocs.io>`_ | ||
| using the `SLEP template <https://scikit-learn-enhancement-proposals.readthedocs.io/en/latest/slep_template.html>`_ | ||
| and follows the decision-making process outlined in :ref:`governance`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This did not feel right here, with the introduction because it's quite technical. I could not find a good place to put it, with the current contributing guide. I've moved it to the section "Submitting a bug report or a feature request", which I think is okay for now.
It may be suitable in a (new) section about 'feature requests' (which we don't really have, though we do mention in 2 or 3 places about being selective about what we include in the project and why). It may also be useful to link to if we add a contributing code section (e.g., in the intro).
| - If you are submitting a bug report, we strongly encourage you to follow the guidelines in | ||
| :ref:`filing_bugs`. | ||
|
|
||
| When a feature request involves changes to the API principles |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've amended the wording here, ideally something big enough to require a SLEP should not get to the 'contributing' stage (without a SLEP).
StefanieSenger
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @lucyleeow!
I think this is sadly a necessary change, though it stings a quite bit to fully remove being open for less experienced people, since it really depends on the attitude more than the skills.
Assuming it is the more careful and thoughtful new contributors who even read this part of the developer docs, I find it important to address them. I have made a suggestion in the comments on still be welcoming but setting expectations on the same time. Curious to know what you think.
doc/developers/contributing.rst
Outdated
| code contributions. If you are interested in making a code contribution, please | ||
| keep in mind that scikit-learn has evolved a mature and complex project since its | ||
| start in 2007. Contributing to the project code can generally require advanced skills, | ||
| and it may not be the best place to begin for new contributors. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| and it may not be the best place to begin for new contributors. | |
| and it may not be the best place to start if you are a beginner. If you are | |
| less experienced you are still very welcome, just be prepared to invest | |
| significant effort and research independently. |
What about this, will this strike a balance between setting expectations and still being open to everybody?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am happy to add this.
I forgot to mention but I intentionally put code contributions at the bottom of the list because I think the other ways to contribute are probably more useful.
For new contributors, I think a better way to start would be to look at issues and confirm them, investigate the cause of issues (gets you familiar with the codebase), review other people's PRs (helps familiarise oneself with what is expected) - jumping straight to a code contribution is rushing ahead too quickly, and not building the base knowledge/background needed. (edit: I think with how complex this project is, jumping to code contribution is just not realistic for a someone learning, unless you have a mentor on hand. I can understand that the other types of contributions are less glamourous and historically less valued, but I think you need to work at building a foundation first.)
Maybe this suggestion should be added to the 'New contributor' section, and we could reference it here...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am trying to think of a better way to phrase 'beginner'. Do you think 'new contributor' is not a good description? I don't love the term beginner (though I can't put my finger on why). I find when people are commenting, wanting to work on an issue, they often use the terms 'new to open source', 'learning'.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have chosen "beginner" over "new contributor" since the latter come with different skill levels and there are very skilled people whom we'd very much like to contribute right away. Feel free to change "beginner" into something else though. I had also considered "new to open source" and like it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually like the term new contributors, and I think the main point the paragraph above brings across is that the other contribution options should be taken into account first, which I like very much (because it is also the way I'm currently approaching the project, and I wouldn't consider myself a "beginner" 😇 ). Encouraging this path more explicitly might actually make it easier for new contributors to find starting points and could lead to higher quality first code contributions (though this assumes that people actually read this carefully (or that AI agents advise their users on this), which is a strong premise 😬)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think "new contributor" is good because it communicates what you are new at (contributing). With "beginner" we leave it to the imagination of the reader to determine what it refers to (coding? open-source contributions? cooking? reviewing?).
In addition, you can be an experienced programmer/software engineer but still new to contributing to open-source. In which case I think starting somewhere else to learn about contributing is a good idea.
doc/developers/contributing.rst
Outdated
| * reference scikit-learn from your blog and articles, link to it from your website, | ||
| or simply | ||
| `star it <https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars>`__ | ||
| to say "I use it"; this helps us promote the project | ||
| * :ref:`improve, triage, and investigate issues <bug_triaging>` | ||
| * :ref:`reviewing other developers' pull requests <code_review>` | ||
| * report issues using this package by submitting an | ||
| `issue <https://github.com/scikit-learn/scikit-learn/issues>`, and giving a | ||
| "thumbs up" on issues that others reported and that are relevant to you (see | ||
| :ref:`submitting_bug_feature` for details) | ||
| * improving the :ref:`contribute_documentation` | ||
| * making a code contribution |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's ok to subsume "I found a bug" and "I'm missing a feature" under "issues" and to leave it underspecified here (especially since it is expanded in the link). This way, people are not specifically encouraged but the information on how to do it is still there.
doc/developers/contributing.rst
Outdated
| or simply | ||
| `star it <https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars>`__ | ||
| to say "I use it"; this helps us promote the project | ||
| * :ref:`improve, triage, and investigate issues <bug_triaging>` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we could even make the intentions you mention below behind suggesting these things first explicit:
| * :ref:`improve, triage, and investigate issues <bug_triaging>` | |
| * :ref:`improve, triage, and investigate issues <bug_triaging>`; this will also make you more familiar with the codebase |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I liked adding these to the bullet list here, but I ultimately thought it would be better to expand the 'New contributor' section, to more explicitly suggest building a foundation first and how to do this.
I've linked the new contributor section at the end of this 'ways to contribute' section.
| `star it <https://docs.github.com/en/get-started/exploring-projects-on-github/saving-repositories-with-stars>`__ | ||
| to say "I use it"; this helps us promote the project | ||
| * :ref:`improve, triage, and investigate issues <bug_triaging>` | ||
| * :ref:`reviewing other developers' pull requests <code_review>` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * :ref:`reviewing other developers' pull requests <code_review>` | |
| * :ref:`reviewing other developers' pull requests <code_review>`; this also helps you to familiarise yourself with what is expected of code contributions |
doc/developers/contributing.rst
Outdated
| code contributions. If you are interested in making a code contribution, please | ||
| keep in mind that scikit-learn has evolved a mature and complex project since its | ||
| start in 2007. Contributing to the project code can generally require advanced skills, | ||
| and it may not be the best place to begin for new contributors. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually like the term new contributors, and I think the main point the paragraph above brings across is that the other contribution options should be taken into account first, which I like very much (because it is also the way I'm currently approaching the project, and I wouldn't consider myself a "beginner" 😇 ). Encouraging this path more explicitly might actually make it easier for new contributors to find starting points and could lead to higher quality first code contributions (though this assumes that people actually read this carefully (or that AI agents advise their users on this), which is a strong premise 😬)
I don't think this actually removes this, it rather gives better guidance on how to get started (once one accepts that not only code contributions count), so I would argue that this is actually helping to make this project more open to less experienced people 😉 @StefanieSenger |
|
Thanks all, I think this is ready for another round of review! |
lesteve
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks nice, all these improvements are super useful, thanks a lot!
I still have some hope trying to devote time to reorganizing the contributing doc (maybe one day?), but in the mean time these improvements are great!
| us if you spread the word: reference the project from your blog and articles, | ||
| link to it from your website, or simply star to say "I use it": | ||
|
|
||
| .. raw:: html |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You remove the button which was showing the number of stars of the repos and where clicking on it would go to https://github.com/scikit-learn/scikit-learn/stargazers. I think that's completely fine because it was not very useful. If we really want (in a further PR), we could add a button where you can star easily, looks like GitHub makes your life easier https://buttons.github.io/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah I didn't realise it went somewhere. This was mostly because I thought the image didn't fit the format of the new bullet points. The problem with stargazers is that the page does not allow you to easily star the project, you just see a list of other users who have starred it.
we could add a button where you can star easily
as in we can add a button which when clicked, stars the project? Or would it just take you to stargazers?
doc/developers/contributing.rst
Outdated
| a code contribution, please keep in mind that scikit-learn has evolved into a mature | ||
| and complex project since its inception in 2007. Contributing to the project code | ||
| generally requires advanced skills, and it may not be the best place to begin for new | ||
| contributors. We suggest new contributors follow the suggestions in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know how to word this clearly, and this doesn't need to be in this PR, but maybe something like "it may not the best place to begin if you are new to open-source contribution in general"
In my mind there is a difference between:
- new to open-source contribution in general
- new contributor to scikit-learn, but who has already contributed to other open-source projects
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this also captures what @StefanieSenger was trying to add, so I think it is worth addressing it in this PR. Maybe that could be a way of phrasing it:
"it may not the best place to begin if you are new to open-source contribution in general. In this case, you should follow the suggestions in..."
Because the new section for new contributors now makes it more explicit, and this one here still sets expectations, even for experienced open-source contributors, but doesn't discourage code contributions in general (at least how I read it).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've amended to Annes wording.
Essentially if you're new to open source in general, please make non code contributions first. The only snag here is that, would you suggest those that are not new to open source contribution, but are new to scikit-learn also read the new contributor section...? Or should we expect them to work out what they need to read?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think from the bullet points above this section they should find enough resources on where to start. And no one is stopping them from skimming the new contributors section if they are missing any information.
I think @lesteve mentioned some ideas on how to re-structure the page into separate explicit "paths" for different target groups, but I would leave this for a follow-up PR at this stage.
AnneBeyer
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, @lucyleeow! I have two more small wording suggestions, otherwise I think it looks good, and it adds a lot to setting expectations for new contributors.
| starting with smaller pull requests and following our :ref:`pr_checklist`. | ||
| For expected etiquette around which issues and stalled PRs | ||
| to work on, please read :ref:`stalled_pull_request`, :ref:`stalled_unclaimed_issues` | ||
| and :ref:`issues_tagged_needs_triage`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having a re-read, I moved the 'to read' contributing sections that pertain to contributing code down here, as we don't talk about code contributions until here.
StefanieSenger
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It reads great and the rendered docs look good. Thanks everyone. :)
Shall we merge this?
|
We have several 👍s, so I'll merge this now. There are a few discussion threads going on, if the participants want to continue those that is great. Please make a new PR when you converge :D |
|
Apologies for being too late. I was on holidays last week and am following up on notifications now. The changes look good to me. Thank you for putting in the work! |
Reference Issues/PRs
Follow up to #32715, specifically see #32715 (comment)
What does this implement/fix? Explain your changes.
Any other comments?
I understand that this change may be a bit controversial and I am happy to discuss and iterate, this is a first attempt only. I've tried to keep the changes minimal.
(NB I think the changes suggested in #32715 (comment) to the "Our community, our values" section can be made in a follow up PR)
cc @reshamas @marenwestermann @lesteve @AnneBeyer who reviewed #32715
And @betatim @adrinjalali who may be interested