Skip to content

Commit 198807c

Browse files
committed
Avoid dependency updates which mandate a major version bump.
> Note: This commit also switches to using the JSON5 format for the Renovate > configuration, which supports much-needed comments for this file! We'll need to reserve these sorts of bumps for Apollo Server 3.x, though one of the design goals of Apollo Server 3.x is also to decouple this close pairing between HTTP server frameworks and Apollo Server itself. Put another way, while changes in Apollo Server 3.x (like dropping Node.js 6 and 8) constitute necessary major version bumps which are directly related to Apollo Server itself, it's our hope that we'll never need to bump the version of Apollo Server ever again to account for a major version bump which happens in any one of the supported HTTP frameworks. It's certainly not convenient that when Hapi releases a new version and Apollo Server has to bump its Express version! A better, more minimalistic approach to the Apollo Server handler and abstractions which move the interfaces between HTTP servers and the Apollo Server request pipeline should make this more reasonable. For now, it's best to quash the belief that we'll be able to eventually land the Renovate PRs which suggest these major bumps and stop them from recurring. Ref: #2382 Ref: #2371 Ref: #2426 Ref: #2201 Ref: #2647
1 parent a3a65bb commit 198807c

File tree

2 files changed

+67
-28
lines changed

2 files changed

+67
-28
lines changed

renovate.json

Lines changed: 0 additions & 28 deletions
This file was deleted.

renovate.json5

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
{
2+
"extends": [
3+
"apollo-open-source"
4+
],
5+
"automerge": false,
6+
"packageRules": [
7+
{
8+
"packageNames": ["@types/node"],
9+
"allowedVersions": "8.x"
10+
},
11+
// Currently limited because of a bug in Lerna 3.14.0, as reported in:
12+
// https://github.com/lerna/lerna/issues/2107. Note this can now be
13+
// reverted, since it's resolved, but I'll reserve that for a follow-up
14+
// commit.
15+
{
16+
"packageNames": ["lerna"],
17+
"allowedVersions": "=3.13.4"
18+
},
19+
/*
20+
Avoid major version bumps to server frameworks (those used by the
21+
various Apollo Server integrations (e.g. Fastify, Express, Koa, etc.),
22+
which must be reserved for a major version bump to Apollo Server itself.
23+
24+
For more thoughts here, see my comment on the commits that introduced
25+
these threshholds via `git blame`.
26+
*/
27+
{
28+
"packageNames": ["fastify", "fastify-cors"],
29+
"allowedVersions": "<2"
30+
},
31+
{
32+
"packageNames": ["koa-bodyparser"],
33+
"allowedVersions": "<4"
34+
},
35+
{
36+
"packageNames": ["@koa/cors"],
37+
"allowedVersions": "<3"
38+
},
39+
{
40+
"packageNames": ["ws"],
41+
"allowedVersions": "<7"
42+
},
43+
/*
44+
Docs-related Renovate rules
45+
46+
These ensure that the `docs/` folder, which is its own application with
47+
its own dependencies which lives inside this repository, plays by its
48+
own Renovate rules. Those rules are defined within the external (npm)
49+
package called `renovate-config-apolllo-docs` (defined here only by
50+
the `apollo-docs` suffix).
51+
*/
52+
{
53+
"paths": [
54+
"docs/package.json"
55+
],
56+
"extends": [
57+
"apollo-docs"
58+
],
59+
// We need to tell Renovate to check the branches for each major version
60+
// of Apollo Server. "Past" major versions should be added here!
61+
"baseBranches": [
62+
"master",
63+
"version-2"
64+
]
65+
}
66+
]
67+
}

0 commit comments

Comments
 (0)