DOC Clarify right to contribute and paid-platform disclosure - #34490
Conversation
…-learn into fix_legal_ai_issue
|
@DeaMariaLeon, would you mind having a closer look? |
| =================== | ||
|
|
||
| Pull requests are accepted under the project's `BSD 3-Clause | ||
| License<https://github.com/scikit-learn/scikit-learn/blob/main/COPYING>`_. By opening a |
There was a problem hiding this comment.
There should be a space between License and < .
Docs if needed
| If the work was done for a third-party paid platform (for example bounties, | ||
| paid "quests", or similar programs that compensate you for opening PRs or producing | ||
| training data), state so. Do not use scikit-learn's review process as unpaid QA for an | ||
| external company. |
There was a problem hiding this comment.
I feel that there is some repetition on lines 166-170 versus 184-189. Then, there is right to contribute later.
So, if one reads the whole contributing document, there are 3 places talking about this.
Maybe if you do want to repeat, merge 2 paragraphs in one (with a very short version) and link to the longer one right to contribute?
There was a problem hiding this comment.
Yes, fair enough. I have merged both paragraphs from "Automated Contributions Policy" into one.
StefanieSenger
left a comment
There was a problem hiding this comment.
Thank you @DeaMariaLeon, I have implemented your suggestions.
| If the work was done for a third-party paid platform (for example bounties, | ||
| paid "quests", or similar programs that compensate you for opening PRs or producing | ||
| training data), state so. Do not use scikit-learn's review process as unpaid QA for an | ||
| external company. |
There was a problem hiding this comment.
Yes, fair enough. I have merged both paragraphs from "Automated Contributions Policy" into one.
DeaMariaLeon
left a comment
There was a problem hiding this comment.
LGTM. Thank you @StefanieSenger!
Now you need someone with real powers. 🪄
| #### Right to contribute | ||
| <!-- | ||
| Edit the list below. | ||
| --> | ||
| This work was done for a third-party paid platform (bounty, paid quest, or similar): | ||
| - Yes (briefly name the platform) | ||
| - No | ||
|
|
||
| I have the right to license this contribution under the BSD 3-Clause License (I own it, | ||
| or I am authorized to contribute it). |
There was a problem hiding this comment.
I'm thinking that we don't necessarily need to request to ask if it was for a third-party platform.
I would rather request to tick a checkbox in the template.
| ### Paid platforms and licensing: Contributors must have the right to license | ||
| their contribution under the BSD 3-Clause License. Disclose in the PR | ||
| description if the work was done for a third-party paid platform (bounties, | ||
| "quests", or similar). Do not use scikit-learn's review process as unpaid QA for | ||
| external programs. See the Automated Contributions Policy and Right to | ||
| contribute sections in the contributing guide. |
There was a problem hiding this comment.
I would dissociate the licensing from the unpaid QA. I think that both can be mentioned however.
There was a problem hiding this comment.
Yes, these are now two separate sections.
|
Two thoughts on this:
I'm not sure what to do about 1, beyond what we already do: close PRs and issues that seem to be low effort and not solving a problem we care about (at the moment). I'm wondering if we need a special case for this kind of low effort and priority work, or if we need to get a bit more organised internally to make sure everyone knows what is "low priority" and feels confident to close those contributions with little mental overhead. My assumption is that abusive people will either not read our contributing docs or simply tick "the right boxes" to allow them to proceed. By having big text walls and "legal" questions we then put off the conscientious contributors. For example, having to fill out a CLA makes it quite a bit harder to make a contribution: I now have to explicitly deal with this topic, it contains legal text, I probably ave to involve my employer (and their lawyers) who often have never seen a CLA before in their life, etc. At best this means weeks pass before someone can contribute, at worst the lawyers do what lawyers do: if in doubt say no. I think we should be fine, if we make a reasonable effort to inform people about the licensing requirement, individual contributors make a reasonable effort to inform themselves/figure out their legal situation and we are responsive when someone later comes to point out that something went wrong. TL;DR: I like the information about the licensing in the various contributor guide, FAQ, etc documents. I would remove the FAQ and paragraph text specific to "are you doing this for a bounty?". Related to my discussion about https://github.com/openclaw/clawsweeper with a friend, he pointed out that they use a bot to ask contributors to point to evidence that this is a useful/welcome contribution. For example, they can link to existing issue(s) where maintainers have said "yes do this" or reddit threads or such to proove that there is a "real reason" for this contribution. I think this is a cool idea, maybe not using a bot for it, but the "please include material to convince us". Maybe going in this direction will also reduce the number of "bounty" contributions that are not also useful for the project. Concretely: ask contributors to include proof that this is a useful contribution. |
| - Documentation (including examples) | ||
| - Research and understanding | ||
|
|
||
| #### Right to contribute |
There was a problem hiding this comment.
I'd remove this section. For years it has worked well across the majority of the whole open-source ecosystem. Not sure we need this now, nor that it will solve the problem that triggered this. At worst people will just say yes or maybe the contracts they have signed explicitly contain a clause about this?
There was a problem hiding this comment.
I have removed it.
| Do not open pull requests mainly to meet the requirements of a third-party paid platform | ||
| (for example a bounty or paid "quest", or similar programs that compensate you for | ||
| opening PRs or producing training data). Do not use scikit-learn's review process as | ||
| unpaid QA for an external company. If that platform's terms assign copyright in your | ||
| work to them, you may no longer be allowed to contribute it under the BSD 3-Clause | ||
| License to scikit-learn; see :ref:`right_to_contribute`. |
There was a problem hiding this comment.
I have removed it.
|
|
||
| .. _right_to_contribute: | ||
|
|
||
| Right to contribute |
There was a problem hiding this comment.
I don't love "right to contribute" - everyone should feel like they can contribute. Contributing isn't some kind of right you gain. These are the first places where my mind goes when I read this title.
How about "Licensing requirement" or "License granting" or "Licensing your contribution"?
There was a problem hiding this comment.
Great suggestions. I have gone with "Licensing your contribution" which is the most descriptive, I think.
| Pull requests are accepted under the project's `BSD 3-Clause | ||
| License <https://github.com/scikit-learn/scikit-learn/blob/main/COPYING>`_. By opening a | ||
| pull request, you must have the **legal right to grant that license** for every part of | ||
| your contribution. |
There was a problem hiding this comment.
| your contribution. | |
| License <https://github.com/scikit-learn/scikit-learn/blob/main/COPYING>`_. | |
| You must have the **legal right to grant that license** for every part of |
"By opening ... you must have the right" is a strange formulation. "By doing X you must have the right Y". Maybe a better formulation would be "In order to open a PR, you must have the right" or "In order for your PR to be merged you must have the right". In the end I think we can just remove the first part
There was a problem hiding this comment.
Thanks for the grammar review :) I have applied this.
| :ref:`known issues <new_contributors>`. Please do not contact the contributors | ||
| of scikit-learn directly regarding contributing to scikit-learn. | ||
|
|
||
| Do I need special rights to contribute code under the BSD license? |
There was a problem hiding this comment.
I'm a bit unhappy about how this is formulated. IMHO you don't need special rights, anyone can contribute and has the rights required to do so. Unless you have signed an agreement to the contrary.
The natural state of the universe is that you can contribute and grant the license.
So I'd try to formulate this as "When can I not contribute under the BSD license?" or "Are there cases where I can not contribute?"
There was a problem hiding this comment.
I have removed this entirely. I think it is not a frequently asked question anyway, and we already have this in the contribution guide.
|
Having thought about this a bit more, I think I am against making contributors sign a CLA/tick a box/variation of this. I'm not sure it will help reduce the "contribution for money" problem and it will add a hurdle for good contributors. On a more philosophical note, sustainable open-source is about exchanging value between maintainers and contributors. There has to be "something in it" for both sides for the project to continue for a long time. If a contributor can get paid for their work that is great, it is the simplest way to benefit from the contribution. You can exchange the money for basically anything else you might need. Things like fame&recognition which is often what contributors gain are much harder to exchange for other things. What is missing from the "solve problems for AI training" problem we are discussing/reacting to here is the value for the project. The ideal contribution would be something where the contributor gets paid and the project benefits as well. If someone then also trains a LLM on this doesn't bother me. We are all benefitting/the rising tide lifts all the boats. So I am thinking that we should work more on how to evaluate the "benefit for the project" part. Asking contributors to show why their contribution is useful, having a clearer way to decide as a maintainer, etc. I think this is a harder task, but the thing we should focus on. |
I've only read this after answering to Gael's suggestion here: #34489 (comment) earlier today.
I don't believe in the "the tide lifts all the boats" narrative. The expense open source projects pay is dedicating too much attention to contributions whose economic interests remain hidden. If it were all open and clearly communicated, my assessment would be very different. |
|
I would keep the entry in the FAQ and the later part in the contributing guide. My only thought there is if we could find a different formulation than "right to contribute". |
StefanieSenger
left a comment
There was a problem hiding this comment.
I have now removed many things and kept only the "right to contribute" section, but with the new title "Licensing your contribution" and the hidden section hat we have (<div style="display: none;">) that intends to talk to agents directly.
Would you like to have another look @betatim?
|
|
||
| .. _right_to_contribute: | ||
|
|
||
| Right to contribute |
There was a problem hiding this comment.
Great suggestions. I have gone with "Licensing your contribution" which is the most descriptive, I think.
| Pull requests are accepted under the project's `BSD 3-Clause | ||
| License <https://github.com/scikit-learn/scikit-learn/blob/main/COPYING>`_. By opening a | ||
| pull request, you must have the **legal right to grant that license** for every part of | ||
| your contribution. |
There was a problem hiding this comment.
Thanks for the grammar review :) I have applied this.
| :ref:`known issues <new_contributors>`. Please do not contact the contributors | ||
| of scikit-learn directly regarding contributing to scikit-learn. | ||
|
|
||
| Do I need special rights to contribute code under the BSD license? |
There was a problem hiding this comment.
I have removed this entirely. I think it is not a frequently asked question anyway, and we already have this in the contribution guide.
| - Documentation (including examples) | ||
| - Research and understanding | ||
|
|
||
| #### Right to contribute |
There was a problem hiding this comment.
I have removed it.
| ### Paid platforms and licensing: Contributors must have the right to license | ||
| their contribution under the BSD 3-Clause License. Disclose in the PR | ||
| description if the work was done for a third-party paid platform (bounties, | ||
| "quests", or similar). Do not use scikit-learn's review process as unpaid QA for | ||
| external programs. See the Automated Contributions Policy and Right to | ||
| contribute sections in the contributing guide. |
There was a problem hiding this comment.
Yes, these are now two separate sections.
| Do not open pull requests mainly to meet the requirements of a third-party paid platform | ||
| (for example a bounty or paid "quest", or similar programs that compensate you for | ||
| opening PRs or producing training data). Do not use scikit-learn's review process as | ||
| unpaid QA for an external company. If that platform's terms assign copyright in your | ||
| work to them, you may no longer be allowed to contribute it under the BSD 3-Clause | ||
| License to scikit-learn; see :ref:`right_to_contribute`. |
There was a problem hiding this comment.
I have removed it.
betatim
left a comment
There was a problem hiding this comment.
This looks good to me
Thanks for the iterations!
|
Great, I will merge it then (since we have two approvals). |
Reference Issues/PRs
towards #34489
What does this implement/fix? Explain your changes.
AI usage disclosure
I used AI assistance for: