44* [ What qualifies as a large pull request] ( #what-qualifies-as-a-large-pull-request )
55* [ Who can open a large pull request] ( #who-can-open-a-large-pull-request )
66* [ Requirements] ( #requirements )
7- * [ Design document ] ( #design-document )
7+ * [ Detailed pull request description ] ( #detailed-pull-request-description )
88 * [ Review guide] ( #review-guide )
99 * [ Approval requirements] ( #approval-requirements )
1010 * [ Dependency changes] ( #dependency-changes )
@@ -33,6 +33,19 @@ request, including changes in `deps/`, `test/`, `doc/`, `lib/`, `src/`, and
3333Changes in ` deps/ ` are included in this count. Dependency changes are
3434sensitive because they often receive less scrutiny than first-party code.
3535
36+ The following categories of pull requests are ** excluded** from this policy,
37+ even if they exceed the line threshold:
38+
39+ * Routine dependency updates (e.g., V8, ICU, undici, uvwasi) generated by
40+ automation or performed by collaborators following the standard dependency
41+ update process.
42+ * Web Platform Tests (WPT) imports and updates.
43+ * Other bot-issued or automated pull requests (e.g., license updates, test
44+ fixture regeneration).
45+
46+ These pull requests already have established review processes and do not
47+ benefit from the additional requirements described here.
48+
3649## Who can open a large pull request
3750
3851Large pull requests may only be opened by existing
@@ -47,20 +60,19 @@ find a collaborator to champion the work.
4760All large pull requests must satisfy the following requirements in addition to
4861the standard [ pull request requirements] ( ./pull-requests.md ) .
4962
50- ### Design document
63+ ### Detailed pull request description
5164
52- A design document or detailed issue must be available when the pull request is
53- opened . The design document should explain:
65+ The pull request description must provide sufficient context for reviewers
66+ to understand the change . The description should explain:
5467
5568* The motivation for the change.
5669* The high-level approach and architecture.
5770* Any alternatives that were considered and why they were rejected.
5871* How the change interacts with existing subsystems.
5972
60- The design document can be a GitHub issue, a Markdown file in the repository,
61- or an external document linked from the pull request description. It does not
62- need to be shared before the work starts, but it must be available for reviewers
63- when the pull request is opened.
73+ A thorough pull request description is sufficient. There is no requirement
74+ to produce a separate design document, although contributors may choose to
75+ link to a GitHub issue or other discussion where the design was developed.
6476
6577### Review guide
6678
@@ -86,9 +98,12 @@ Large pull requests follow the same approval path as semver-major changes:
8698
8799When a large pull request adds or modifies a dependency in ` deps/ ` :
88100
89- * Dependency changes must be in a ** separate commit** from the rest of the
101+ * Dependency changes should be in a ** separate commit** from the rest of the
90102 pull request. This makes it easier to review the dependency update
91- independently from the first-party code changes.
103+ independently from the first-party code changes. When the pull request is
104+ squashed on landing, the dependency commit should be the one that carries
105+ the squashed commit message, so that ` git log ` clearly reflects the
106+ overall change.
92107* The provenance and integrity of the dependency must be verifiable.
93108 Include documentation of how the dependency was obtained and how
94109 reviewers can reproduce the build artifact.
@@ -99,10 +114,12 @@ Contributors should always consider whether a large pull request can be split
99114into smaller, independently reviewable pieces. Strategies include:
100115
101116* Landing foundational internal APIs first, then building on top of them.
102- * Separating test additions from implementation changes.
103- * Splitting documentation into its own pull request.
104117* Landing refactoring or preparatory changes before the main feature.
105118
119+ Each pull request in a split series should remain self-contained: it should
120+ include the implementation, tests, and documentation needed for that piece
121+ to stand on its own.
122+
106123### Feature forks and branches
107124
108125For extremely large or complex changes that develop over time, such as adding
@@ -131,7 +148,8 @@ request.
131148Reviewing a large pull request is a significant time investment. Reviewers
132149should:
133150
134- * Read the design document and review guide before diving into the code.
151+ * Read the pull request description and review guide before diving into the
152+ code.
135153* Focus review effort on ` lib/ ` and ` src/ ` changes, which have the highest
136154 impact on the runtime. ` test/ ` and ` doc/ ` changes, while important, are
137155 lower risk.
0 commit comments