Skip to content
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

CONTRIBUTING.md: Fill out section on pull requests. #6879

Open
wants to merge 1 commit into
base: trunk
Choose a base branch
from

Conversation

jimblandy
Copy link
Member

No description provided.

@jimblandy jimblandy requested a review from a team as a code owner January 8, 2025 19:17
Comment on lines +135 to +144
When one pull request builds on another, please put "Depends on #NNNN"
towards the top of its description. This helps maintainers notice that
they shouldn't merge it until its ancestor has been approved. Don't
use the "draft pull request" status to indicate dependency.

If a pull request contains multiple commits, please indicate whether
they need to be squashed into a single commit before they're merged,
or if they're ready to rebase onto `trunk` as they stand. In the
latter case, please ensure that each commit passes all CI tests, so
that we can continue to bisect along `trunk` to isolate bugs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we put both of these in the PR template? Feel free to make a separate PR if needed.

Comment on lines +146 to +148
Pull requests should not contain merge commits. Please rebase on
`trunk` before submitting a pull request. (Draft pull requests may
contain anything you like.)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we should have this rule across the board because of the added friction - I think squash-merging is totally fine for any PR that needs to be evaluated as a whole.

Large projects must be broken into series of smaller pull requests
that can be reviewed and discussed independently. WGPU's experience
with large, complex pull requests has been bad enough that we now
simply reject them, without trying to assess their merits.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens to things that effectively need large PRs? To use an example: ray-tracing where (most) of it was a single feature that couldn't be broken down? Some of these statements are definite, so maybe they should note where it's a requirement.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: I agree with @Vecvec that an unqualified "if big, straight to jail /s" rule is not easy for an external contributor to reason about. I also think that we need to disentangle (1) making aligned changed from (2) the art of making review easier, which are related but distinct. I think our intent would be better communicated with something like this instead:

WGPU is a complex codebase, and contributing to it is often nontrivial. To best ensure that your contributions are accepted, we have some recommendations to consider before you get started:

  • Large efforts that are ultimately rejected tend to burn contributors out on both sides of a review. To avoid this, we strongly encourage you to validate time-consuming contributions by engaging maintainership before you invest yourself too heavily.
  • File the smallest PRs that make sense on their own. Using atomic commits is also encouraged, since they facilitate review on both sides.

Copy link
Member

@ErichDonGubler ErichDonGubler Jan 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue: This information is technically duplicative with information in the "What can I work on"? as a new contributor? section.

suggestion: Keeping this dedicated section and linking to it from others would reconcile this.

Comment on lines +150 to +152
#### Large pull requests are not accepted

Large projects must be broken into series of smaller pull requests
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe like this?

Suggested change
#### Large pull requests are not accepted
Large projects must be broken into series of smaller pull requests
#### Large pull requests are not normally accepted
If you believe a project you are working on requires a large pull request then you *must* ask a maintainer before. If they believe that it requires a large pull request then you should keep in frequent contact and talk to them if the plan changes. Otherwise large projects must be broken into series of smaller pull requests

otherwise it could confuse beginners (which I am assuming this is for) if they see a large project.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context: This conversation branches out from the previous one: #6879 (comment)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't set that comment up properly to suggest.

PR.
### Pull requests

The "Assigned" field on a pull request indicates who has taken
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Let's use backticks (i.e., `Assigned`) instead of double quotes to make it clear that this is content that somebody would write.

This feedback applies to other references to fields or suggested content fragments.

@ErichDonGubler
Copy link
Member

I think I'm going to be able to continue reviewing this on Tuesday of this coming week. 🫡 See you then!

Copy link
Member

@ErichDonGubler ErichDonGubler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this new content is good, but its relationship with other content needs some work. Let's handle the current conversations, and then see where we're at.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants