-
Notifications
You must be signed in to change notification settings - Fork 84
docs: modify contributing guidelines with AI policy #531
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -34,7 +34,7 @@ The Iceberg C++ Project is hosted on GitHub at [https://github.com/apache/iceber | |||||
| #### Prerequisites | ||||||
|
|
||||||
| - CMake 3.25 or higher | ||||||
| - C++23 compliant compiler (GCC 11+, Clang 14+, MSVC 2022+) | ||||||
| - C++23 compliant compiler (GCC 14+, Clang 17+, MSVC 2022+) | ||||||
| - Git | ||||||
|
|
||||||
| #### Building from Source | ||||||
|
|
@@ -129,6 +129,30 @@ pre-commit install | |||||
|
|
||||||
| This will setup a git pre-commit-hook that is executed on each commit and will report the linting problems. To run all hooks on all files use `pre-commit run -a`. | ||||||
|
|
||||||
| ### AI-Assisted Contributions | ||||||
|
|
||||||
| The Apache Iceberg C++ community has the following policy for AI-assisted PRs: | ||||||
|
|
||||||
| - The PR author should **understand the core ideas** behind the implementation **end-to-end**, and be able to justify the design and code during review. | ||||||
| - **Calls out unknowns and assumptions**. It's okay to not fully understand some bits of AI generated code. You should comment on these cases and point them out to reviewers so that they can use their knowledge of the codebase to clear up any concerns. For example, you might comment "calling this function here seems to work but I'm not familiar with how it works internally, I wonder if there's a race condition if it is called concurrently". | ||||||
|
|
||||||
| #### Why fully AI-generated PRs without understanding are not helpful | ||||||
|
|
||||||
| Today, AI tools cannot reliably make complex changes to the codebase on their own, which is why we rely on pull requests and code review. | ||||||
|
|
||||||
| The purposes of code review are: | ||||||
|
|
||||||
| 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 can finish a task quickly, we're still happy to help a new contributor work on it even if it takes longer. | ||||||
|
|
||||||
| An AI dump for an issue doesn’t meet these purposes. Maintainers could finish the task faster by using AI directly, and the submitters gain little knowledge if they act only as a pass through AI proxy without understanding. | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Should we stick to |
||||||
|
|
||||||
| Please understand the reviewing capacity is **very limited** for the project, so large PRs which appear to not have the requisite understanding might not get reviewed, and eventually closed or redirected. | ||||||
|
|
||||||
| #### Better ways to contribute than an “AI dump” | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Same question here. |
||||||
|
|
||||||
| It's recommended to write a high-quality issue with a clear problem statement and a minimal, reproducible example. This can make it easier for others to contribute. | ||||||
|
|
||||||
| ### Submitting Changes | ||||||
|
|
||||||
| #### Git Workflow | ||||||
|
|
@@ -184,7 +208,3 @@ New to the project? Check out our [good first issues](https://github.com/apache/ | |||||
| ### Release Process | ||||||
|
|
||||||
| Releases are managed by the Apache Iceberg project maintainers. For information about the release process, please refer to the main Iceberg project documentation. | ||||||
|
|
||||||
| ## License | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do you remove this? It is an unrelated change. |
||||||
|
|
||||||
| Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) | ||||||
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 seems conflict with #528