Jefffrey commented on code in PR #24510: URL: https://github.com/apache/datafusion/pull/24510#discussion_r4173665263
########## docs/source/contributor-guide/index.md: ########## @@ -54,24 +54,29 @@ Contributors drive the project forward based on their own priorities and interests and thus you are free to work on any issue that interests you. If someone is already working on an issue that you want or need but hasn't -been able to finish it yet, you should feel free to work on it as well. In -general it is both polite and will help avoid unnecessary duplication of work if -you leave a note on an issue when you start working on it. +been able to finish it yet, feel free to help them out. -If you want to work on an issue which is not already assigned to someone else -and there are no comment indicating that someone is already working on that -issue then you can assign the issue to yourself by submitting a single word -comment `take`. This will assign the issue to yourself. However, if you are -unable to make progress you should unassign the issue by commenting a single -word `untake`. +If there is an existing PR for an issue you plan to work on, please review that +PR before opening a new one. Duplicate, unacknowledged PRs consume valuable +reviewer time and we may close them. If there is an existing PR, please identify +it in the PR description and explain why you are opening a new one and not +helping with the previous one. In general it is both polite and will help avoid +unnecessary duplication of work if you also leave a note on an issue when you +start working on it. + +If you want to work on an issue which is not already assigned to someone and has +no comment indicating someone is already working on it, you can assign the issue +to yourself by submitting a single word comment `take`. However, if you are unable +to make progress please unassign the issue by commenting a single word `untake`. Review Comment: perhaps a side discussion, but something to note is even arrow (main repo) has turned off their take action: - https://github.com/apache/arrow/pull/51233 it could be worth exploring as a case could be made it sometimes can stifle discussion if its too easy for someone to just come in an 'take' an issue (though i havent been keeping an eye on datafusion recently so im not sure if this is a concern) ########## docs/source/contributor-guide/index.md: ########## @@ -54,24 +54,29 @@ Contributors drive the project forward based on their own priorities and interests and thus you are free to work on any issue that interests you. If someone is already working on an issue that you want or need but hasn't -been able to finish it yet, you should feel free to work on it as well. In -general it is both polite and will help avoid unnecessary duplication of work if -you leave a note on an issue when you start working on it. +been able to finish it yet, feel free to help them out. -If you want to work on an issue which is not already assigned to someone else -and there are no comment indicating that someone is already working on that -issue then you can assign the issue to yourself by submitting a single word -comment `take`. This will assign the issue to yourself. However, if you are -unable to make progress you should unassign the issue by commenting a single -word `untake`. +If there is an existing PR for an issue you plan to work on, please review that +PR before opening a new one. Duplicate, unacknowledged PRs consume valuable Review Comment: agreed, good to be explicit here 👍 ########## docs/source/contributor-guide/index.md: ########## @@ -129,6 +134,87 @@ Please ensure your PR follows the [testing guide](testing.md). In particular: [Choosing What Kind of Test to Write](testing.md#choosing-what-kind-of-test-to-write). - Run any relevant commands from the [testing quick start](testing.md#testing-quick-start). +## AI-Assisted contributions + +DataFusion has the following policy for AI-assisted PRs: + +- We welcome AI-assisted PRs from anyone. We do not welcome unreviewed "AI dumps" (defined below). +- The PR author should have personally read the entire PR they submit, and **understand the core ideas** behind the implementation **end-to-end**. Authors should be ready to justify and help reviewers understand the design and code during review. Review Comment: > Could reproduce the implementation without relying on AI I might push back on this point as its a bit vague to enforce; does it mean you can write the PR after you got knowledge from working with the LLM, for example? Or just you mainly used LLM as a shortcut for the ideas you had in your brain I know there are cases where LLMs can help iterate on an idea and identify edge cases, etc. so it can be confusing if this "disqualifies" the PR so to speak ########## docs/source/contributor-guide/index.md: ########## @@ -129,6 +134,87 @@ Please ensure your PR follows the [testing guide](testing.md). In particular: [Choosing What Kind of Test to Write](testing.md#choosing-what-kind-of-test-to-write). - Run any relevant commands from the [testing quick start](testing.md#testing-quick-start). +## AI-Assisted contributions + +DataFusion has the following policy for AI-assisted PRs: + +- We welcome AI-assisted PRs from anyone. We do not welcome unreviewed "AI dumps" (defined below). +- The PR author should have personally read the entire PR they submit, and **understand the core ideas** behind the implementation **end-to-end**. Authors should be ready to justify and help reviewers understand the design and code during review. +- **Call out unknowns and assumptions**. It's okay to not fully understand some bits of AI-generated code. Please point these cases out so we can work together to clear up any concerns. + +### What is an "AI dump" and why it is not helpful + +An "AI dump" is a PR, or a series of PRs, consisting largely of AI-generated +code and descriptions that the author has not reviewed and does not understand. +The code may even be correct. The problem is that all the work of understanding +falls on the reviewer. + +Code review serves two purposes: + +1. Finish the intended task. +2. Share knowledge between authors and reviewers, as a long-term investment in + the project. For this reason, even if someone familiar with the codebase + could finish a task more quickly by themselves, we are still happy to help + a new contributor work on it. + +An AI dump meets neither purpose. Maintainers could finish the task faster by +running the AI tool themselves, and an author who acts only as a pass-through +proxy for the tool learns little from the review. + +Reviewing capacity for the project is **very limited**, so PRs that appear to be +AI dumps may not get reviewed, and may eventually be closed. + +Multiple PRs created in a short amount of time, especially by a first-time +contributor, that in our judgment show a lack of understanding or author +engagement may be treated as spam and closed. One high quality PR that you work +with maintainers to merge is far more valuable to you and the project than ten +PRs you have your agent generate and submit for you. + +### Responding to review comments + +The same policy applies to review discussion as to the code itself: reviewers +want to talk to **you**, not to your AI tool. Please do not paste an AI-generated +response to a review comment verbatim or have your agent respond to Review Comment: im not sure how often we see it here, but sometimes people might use it for translation. we could put a point where we allow it but we expect it to just translate. we could technically ask them to deepL it, but LLMs can be better at localizing and making it read a bit easier. the main point however is it should still represent the original message, and not fluff it up -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
