Docs: Add PR review guide - #24051
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #24051 +/- ##
==========================================
- Coverage 80.86% 80.86% -0.01%
==========================================
Files 1101 1101
Lines 375446 375446
Branches 375446 375446
==========================================
- Hits 303596 303586 -10
- Misses 53757 53764 +7
- Partials 18093 18096 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
365a836 to
6760aad
Compare
| @@ -0,0 +1,33 @@ | |||
| --- | |||
| name: pr_review | |||
| description: Review Apache DataFusion pull requests following the project's PR review guide. Use whenever asked to review a DataFusion PR or PR URL, and whenever creating a PR, to check the changes against the same criteria before submitting. | |||
There was a problem hiding this comment.
the hope is that this SKILL points back to the relevant PR review guide so agents can prepare the PR cleanly
There was a problem hiding this comment.
absolutely agree for As you said,
I also strongly believe effective documentation should be written for both humans and agents so I purposely didn't make a specific skill for this (instead I made a skill that points at the relevant parts of the docs)
Since AI will continue to evolve to mimic humans, I wonder if skills are strictly necessary. A contributor guide alone could be enough.
However, these days, it does help route the AI's exploration path (assuming routing to the .ai/ directory works).
There was a problem hiding this comment.
absolutely agree for As you said,
I also strongly believe effective documentation should be written for both humans and agents so I purposely didn't make a specific skill for this (instead I made a skill that points at the relevant parts of the docs)
Since AI will continue to evolve to mimic humans, I wonder if skills are strictly necessary. A contributor guide alone could be enough. However, these days, it does help route the AI's exploration path (assuming routing to the .ai/ directory works).
I agree skills are mostly the same as regular user doc.
I think this skills.md has two part:
- Coding agent specific instruction, like commands to run
- Idea/philosophy behind the reviewing process
And part 2 do point to an existing contributor doc. We should do something similar for other skills.md: try to explain the core ideas only in the user doc, skills.md should only reference it.
|
|
||
| 1. Is the feature or fix covered sufficiently with tests (see the [Testing](testing.md) section)? | ||
| 2. Is the code clear, and fits the style of the existing codebase? | ||
| See the [Reviewing Pull Requests](pr_review.md) guide for what we look for |
There was a problem hiding this comment.
I moved and expanded the content into its own page
| The PR description is often what users and contributors will find when they run | ||
| `git log` / `git blame` and ask "why is the code like this?". | ||
|
|
||
| Check that the description: |
There was a problem hiding this comment.
This document basically distills down my experience reviewing PRs / what I do. I think it is common practice but would love additioanl feedback / suggestions
There was a problem hiding this comment.
I will hope to expand this with some examples going forwrd
6760aad to
7aec50c
Compare
| ## Compute the diff | ||
|
|
||
| ```bash | ||
| git fetch apache main |
There was a problem hiding this comment.
in my setup I have two remotes, origin and upstream if i try this approach it will fail. Others can have similar settings. Should we use something like <main-remote> or <upstream-main>.
| ## Review the PR Description | ||
|
|
||
| The PR description is often what users and contributors will find when they run | ||
| `git log` / `git blame` and ask "why is the code like this?". |
There was a problem hiding this comment.
both git log and git blame don't show pr description unless you are using inside an IDE and using its built in git blame feature, from cli you can view the pr description using gh pr view
There was a problem hiding this comment.
if want to get readable results for the pr body then can use gh pr view --json body --jq .body
| @@ -0,0 +1,33 @@ | |||
| --- | |||
| name: pr_review | |||
| description: Review Apache DataFusion pull requests following the project's PR review guide. Use whenever asked to review a DataFusion PR or PR URL, and whenever creating a PR, to check the changes against the same criteria before submitting. | |||
There was a problem hiding this comment.
absolutely agree for As you said,
I also strongly believe effective documentation should be written for both humans and agents so I purposely didn't make a specific skill for this (instead I made a skill that points at the relevant parts of the docs)
Since AI will continue to evolve to mimic humans, I wonder if skills are strictly necessary. A contributor guide alone could be enough.
However, these days, it does help route the AI's exploration path (assuming routing to the .ai/ directory works).
2010YOUY01
left a comment
There was a problem hiding this comment.
Thank you. I read through it and strongly agree!
| Well written code comments are what makes the codebase understandable to the | ||
| next contributor. | ||
|
|
||
| Check that: |
There was a problem hiding this comment.
| Well written code comments are what makes the codebase understandable to the | |
| next contributor. | |
| Check that: | |
| The goal of code comments is not only for the code to be understandable after a reader spends time studying the implementation. It should make the implementation easy to understand for readers with the expected background. | |
| Some practical guidelines for writing comments: |
Emphasizing the philosophy here might help
| valid as the code evolves. | ||
| 4. New public APIs have doc comments, including examples where appropriate | ||
| (doc examples are also tested by CI, so they double as test coverage). | ||
|
|
There was a problem hiding this comment.
| 5. When documenting modules, functions, or fields, start with simple examples and intuitive explanations, and optionally add formal, math-like definitions when necessary. This makes the implementation easier to reason about. | |
| 6. When something is confusing on first read, treat that as a good opportunity to improve the comments. | |
Here are some extra items I find useful.
|
|
||
| 1. Prefer `sqllogictest` (`.slt`) tests or DataFrame API tests where | ||
| possible, as they exercise **user visible behavior** and are less coupled | ||
| to internal implementation details than unit tests. |
There was a problem hiding this comment.
We could insert a list item here like:
2. Try to cover edge cases and failure scenarios as well, rather than testing only the common successful path.
| @@ -0,0 +1,33 @@ | |||
| --- | |||
| name: pr_review | |||
| description: Review Apache DataFusion pull requests following the project's PR review guide. Use whenever asked to review a DataFusion PR or PR URL, and whenever creating a PR, to check the changes against the same criteria before submitting. | |||
There was a problem hiding this comment.
absolutely agree for As you said,
I also strongly believe effective documentation should be written for both humans and agents so I purposely didn't make a specific skill for this (instead I made a skill that points at the relevant parts of the docs)
Since AI will continue to evolve to mimic humans, I wonder if skills are strictly necessary. A contributor guide alone could be enough. However, these days, it does help route the AI's exploration path (assuming routing to the .ai/ directory works).
I agree skills are mostly the same as regular user doc.
I think this skills.md has two part:
- Coding agent specific instruction, like commands to run
- Idea/philosophy behind the reviewing process
And part 2 do point to an existing contributor doc. We should do something similar for other skills.md: try to explain the core ideas only in the user doc, skills.md should only reference it.
Which issue does this PR close?
Rationale for this change
As our project grows both in terms of number of users as well as the number of PRs submitted (due to agents and increasing usage) I would like to trying to document / automate as much as possible
As one of the largest bottlenecks at the moment is PR review, so making that more efficient I think will help us improve the flow of code in the project and make best use of our committers' time. My rationale is that by documenting this process more clearly
I also strongly believe effective documentation should be written for both humans and agents so I purposely didn't make a specific skill for this (instead I made a skill that points at the relevant parts of the docs)
What changes are included in this PR?
Are these changes tested?
By CI
Are there any user-facing changes?
New doc page