Skip to content

Commit e1ae4b7

Browse files
committed
Update peer dependency update process and rename group names.
1 parent 0d3de75 commit e1ae4b7

2 files changed

Lines changed: 29 additions & 30 deletions

File tree

CONTRIBUTING.md

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -196,16 +196,29 @@ This section outlines the strategy for managing dependencies to maintain stabili
196196
197197
### Dependency Categories and Update Cadence
198198
199-
#### 1. Peer Dependencies (`sdk/package.json`)
199+
#### 1. Peer Dependencies (`starter-peer-deps`)
200200
201-
These are the most critical dependencies (`wrangler`, `@cloudflare/vite-plugin`, etc.). Our process is designed to test the boundaries of our allowed `peerDependencies` version range.
201+
- **What**: The most critical dependencies (`wrangler`, `react`, `vite`, etc.) that are defined as `peerDependencies` in the SDK and tested in the `starters/*` projects.
202+
- **When**: As Soon As Possible (ASAP). Renovate creates a PR immediately when a new version is available.
203+
- **Why**: To provide an immediate early-warning signal if a new peer dependency version introduces a regression that could affect users.
202204
203-
- **Update Cadence**: "As Soon As Possible" (ASAP).
204-
- **Process**:
205-
1. **Testing New Versions**: An automated process opens a Pull Request to update the versions of these dependencies in our `starters/*` projects to the *latest available version* that still satisfies the SDK's `peerDependencies` range. This is how we define a "peer dependency update" in our context.
206-
2. **CI Signal**: This PR triggers our full smoke test suite. The CI result is the signal.
207-
3. **If CI passes**, the PR can be manually reviewed and merged. This indicates the new version is safe.
208-
4. **If CI fails**, it triggers the failure protocol below.
205+
#### 2. SDK Internal Dependencies (`sdk-internal-deps`)
206+
207+
- **What**: The SDK's own `dependencies` and `devDependencies` from `sdk/package.json`.
208+
- **When**: Weekly, in a single grouped pull request.
209+
- **Why**: To keep the SDK's own build tooling and internal dependencies up-to-date in a predictable, non-disruptive manner.
210+
211+
#### 3. Starter Application Dependencies (`starter-deps`)
212+
213+
- **What**: All non-peer dependencies in the `starters/*` projects.
214+
- **When**: Weekly, in a single grouped pull request.
215+
- **Why**: To ensure our starter templates remain current with their own dependencies.
216+
217+
#### 4. Repository, Docs, and Infrastructure Dependencies (`docs-and-infra-deps`)
218+
219+
- **What**: A consolidated group for all remaining repository maintenance dependencies. This includes dependencies from the root `package.json`, the `docs/package.json`, GitHub Actions, Docker images, and the `.node-version` file.
220+
- **When**: Weekly, in a single grouped pull request.
221+
- **Why**: To bundle all miscellaneous tooling, documentation, and infrastructure updates into one convenient PR to reduce noise.
209222
210223
### Failure Protocol for Peer Dependencies
211224
@@ -224,20 +237,6 @@ When the smoke tests fail on a peer dependency update, it is a signal that requi
224237
225238
* Once CI passes on the PR, it can be merged. This prepares for a patch release of `rwsdk` that protects users from the faulty dependency.
226239
227-
#### 2. SDK Internal Dependencies (`sdk/package.json`)
228-
229-
These are the `dependencies` and `devDependencies` used to build the SDK itself.
230-
231-
- **Update Cadence**: Weekly.
232-
- **Process**: A single, grouped Pull Request will be opened each week with all available updates. This PR must pass the smoke test suite before being manually merged. Security-related updates are handled immediately in separate PRs.
233-
234-
#### 3. Starter Application Dependencies (`starters/*/package.json`)
235-
236-
These are dependencies in our starter projects that are not peer dependencies of the SDK.
237-
238-
- **Update Cadence**: Weekly.
239-
- **Process**: Handled in a single, grouped weekly PR, validated by smoke tests.
240-
241240
## Debugging changes to the sdk locally for a project
242241
243242
The `rwsync` command provides a bridge between a local checkout of the `rwsdk` and a project that uses it, enabling a fast and efficient development workflow.

default.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@
1616
{
1717
"description": "Group infrastructure dependencies (Actions, Docker, Node.js, pnpm).",
1818
"matchManagers": ["github-actions", "dockerfile", "nodenv"],
19-
"groupName": "infrastructure-dependencies",
19+
"groupName": "docs-and-infra-deps",
2020
"schedule": ["on saturday"]
2121
},
2222
{
2323
"description": "Group pnpm version from root package.json with other infra deps",
2424
"matchFileNames": ["package.json"],
2525
"matchPackageNames": ["pnpm"],
26-
"groupName": "infrastructure-dependencies",
26+
"groupName": "docs-and-infra-deps",
2727
"schedule": ["on saturday"]
2828
},
2929
{
3030
"description": "Group all SDK internal dependencies into a single weekly PR.",
3131
"matchFileNames": ["sdk/package.json"],
32-
"groupName": "sdk-internal-dependencies",
32+
"groupName": "sdk-internal-deps",
3333
"schedule": ["on saturday"]
3434
},
3535
{
@@ -46,11 +46,11 @@
4646
"@types/react",
4747
"@types/react-dom"
4848
],
49-
"groupName": "starter-app-dependencies",
49+
"groupName": "starter-deps",
5050
"schedule": ["on saturday"]
5151
},
5252
{
53-
"description": "Update peer dependencies in starter projects as soon as they are available.",
53+
"description": "Update SDK peer dependencies in starter projects as soon as they are available.",
5454
"matchFileNames": ["starters/**/package.json"],
5555
"matchPackageNames": [
5656
"@cloudflare/vite-plugin",
@@ -63,21 +63,21 @@
6363
"@types/react",
6464
"@types/react-dom"
6565
],
66-
"groupName": "starter-peer-dependencies",
66+
"groupName": "starter-peer-deps",
6767
"schedule": ["every weekend"],
6868
"prPriority": 1
6969
},
7070
{
7171
"description": "Group dependencies for the docs site.",
7272
"matchFileNames": ["docs/package.json"],
73-
"groupName": "docs-dependencies",
73+
"groupName": "docs-and-infra-deps",
7474
"schedule": ["on saturday"]
7575
},
7676
{
7777
"description": "Group dependencies from the root package.json.",
7878
"matchFileNames": ["package.json"],
7979
"excludePackageNames": ["pnpm"],
80-
"groupName": "root-dependencies",
80+
"groupName": "docs-and-infra-deps",
8181
"schedule": ["on saturday"]
8282
}
8383
],

0 commit comments

Comments
 (0)