Skip to content

Commit 27e5ef1

Browse files
authored
fix: yarn peers (#7932)
* fis: yarn peer dependencies * update yarn lock
1 parent f4aaa61 commit 27e5ef1

File tree

14 files changed

+71
-13
lines changed

14 files changed

+71
-13
lines changed

packages/@react-spectrum/button/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@
5757
},
5858
"peerDependencies": {
5959
"@react-spectrum/provider": "^3.0.0",
60-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
60+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
61+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
6162
},
6263
"publishConfig": {
6364
"access": "public"

packages/@react-spectrum/checkbox/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@
5656
},
5757
"peerDependencies": {
5858
"@react-spectrum/provider": "^3.0.0",
59-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
59+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
60+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
6061
},
6162
"publishConfig": {
6263
"access": "public"

packages/@react-spectrum/divider/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@
4646
"@adobe/spectrum-css-temp": "3.0.0-alpha.1"
4747
},
4848
"peerDependencies": {
49-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
49+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
50+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
5051
},
5152
"publishConfig": {
5253
"access": "public"

packages/@react-spectrum/dropzone/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@
5050
},
5151
"peerDependencies": {
5252
"@react-spectrum/provider": "^3.0.0",
53-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
53+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
54+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
5455
},
5556
"publishConfig": {
5657
"access": "public"

packages/@react-spectrum/filetrigger/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
},
4242
"peerDependencies": {
4343
"@react-spectrum/provider": "^3.0.0",
44-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
44+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
45+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
4546
},
4647
"publishConfig": {
4748
"access": "public"

packages/@react-spectrum/switch/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@
5050
},
5151
"peerDependencies": {
5252
"@react-spectrum/provider": "^3.0.0",
53-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
53+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
54+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
5455
},
5556
"publishConfig": {
5657
"access": "public"

packages/@react-spectrum/text/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@
4949
},
5050
"peerDependencies": {
5151
"@react-spectrum/provider": "^3.0.0",
52-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
52+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
53+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
5354
},
5455
"publishConfig": {
5556
"access": "public"

packages/@react-types/card/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
"@react-types/shared": "^3.28.0"
1515
},
1616
"peerDependencies": {
17-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
17+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
18+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
1819
},
1920
"publishConfig": {
2021
"access": "public"

packages/@react-types/sidenav/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
"@react-types/shared": "^3.1.0"
1515
},
1616
"peerDependencies": {
17-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
17+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
18+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
1819
},
1920
"publishConfig": {
2021
"access": "public"

packages/@spectrum-icons/color/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
},
3333
"peerDependencies": {
3434
"@react-spectrum/provider": "^3.0.0",
35-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
35+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
36+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
3637
},
3738
"publishConfig": {
3839
"access": "public"

packages/@spectrum-icons/ui/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
},
3333
"peerDependencies": {
3434
"@react-spectrum/provider": "^3.0.0",
35-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
35+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
36+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
3637
},
3738
"publishConfig": {
3839
"access": "public"

packages/@spectrum-icons/workflow/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
},
3333
"peerDependencies": {
3434
"@react-spectrum/provider": "^3.0.0",
35-
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
35+
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
36+
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
3637
},
3738
"publishConfig": {
3839
"access": "public"

yarn.config.cjs

+35-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,9 @@ function enforceWorkspaceDependencies({Yarn}) {
133133
if (dependency.type === 'peerDependencies') {continue;}
134134

135135
for (const otherDependency of Yarn.dependencies({ident: dependency.ident})) {
136-
if (otherDependency.type === 'peerDependencies') {continue;}
136+
if (otherDependency.type === 'peerDependencies') {
137+
continue;
138+
}
137139

138140
if (isOurPackage(dependency)) {
139141
// change back to workspaces:^ when we're ready for yarn to handle versioning
@@ -142,6 +144,38 @@ function enforceWorkspaceDependencies({Yarn}) {
142144
}
143145
}
144146
}
147+
148+
// This finds all the peer dependencies and checks that everything up the
149+
// workspace tree has the same peer dependency.
150+
let seen = new Map();
151+
for (const dependency of Yarn.dependencies()) {
152+
if (dependency.type === 'peerDependencies') {
153+
for (const workspace of Yarn.workspaces()) {
154+
if (
155+
// must check in manifest because yarn is reporting all peer in workspace.pkg.dependencies
156+
// and doesn't differentiate between peer and dependencies
157+
workspace.manifest.dependencies?.[dependency.workspace?.ident]
158+
&& !workspace.manifest.peerDependencies?.[dependency.ident]
159+
&& !workspace.manifest.dependencies?.[dependency.ident]
160+
) {
161+
// eslint-disable-next-line max-depth
162+
if (seen.has(workspace.ident) && !seen.get(workspace.ident).includes(dependency.ident)) {
163+
seen.get(workspace.ident).push(dependency.ident);
164+
workspace.set('peerDependencies', {
165+
...workspace.manifest.peerDependencies,
166+
[dependency.ident]: dependency.range
167+
});
168+
} else if (!seen.has(workspace.ident)) {
169+
seen.set(workspace.ident, [dependency.ident]);
170+
workspace.set('peerDependencies', {
171+
...workspace.manifest.peerDependencies,
172+
[dependency.ident]: dependency.range
173+
});
174+
}
175+
}
176+
}
177+
}
178+
}
145179
}
146180

147181
/** @param {Context} context */

yarn.lock

+12
Original file line numberDiff line numberDiff line change
@@ -7077,6 +7077,7 @@ __metadata:
70777077
peerDependencies:
70787078
"@react-spectrum/provider": ^3.0.0
70797079
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
7080+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
70807081
languageName: unknown
70817082
linkType: soft
70827083

@@ -7178,6 +7179,7 @@ __metadata:
71787179
peerDependencies:
71797180
"@react-spectrum/provider": ^3.0.0
71807181
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
7182+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
71817183
languageName: unknown
71827184
linkType: soft
71837185

@@ -7378,6 +7380,7 @@ __metadata:
73787380
"@swc/helpers": "npm:^0.5.0"
73797381
peerDependencies:
73807382
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
7383+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
73817384
languageName: unknown
73827385
linkType: soft
73837386

@@ -7451,6 +7454,7 @@ __metadata:
74517454
peerDependencies:
74527455
"@react-spectrum/provider": ^3.0.0
74537456
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
7457+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
74547458
languageName: unknown
74557459
linkType: soft
74567460

@@ -7465,6 +7469,7 @@ __metadata:
74657469
peerDependencies:
74667470
"@react-spectrum/provider": ^3.0.0
74677471
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
7472+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
74687473
languageName: unknown
74697474
linkType: soft
74707475

@@ -8104,6 +8109,7 @@ __metadata:
81048109
peerDependencies:
81058110
"@react-spectrum/provider": ^3.0.0
81068111
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
8112+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
81078113
languageName: unknown
81088114
linkType: soft
81098115

@@ -8253,6 +8259,7 @@ __metadata:
82538259
peerDependencies:
82548260
"@react-spectrum/provider": ^3.0.0
82558261
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
8262+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
82568263
languageName: unknown
82578264
linkType: soft
82588265

@@ -8988,6 +8995,7 @@ __metadata:
89888995
"@react-types/shared": "npm:^3.28.0"
89898996
peerDependencies:
89908997
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
8998+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
89918999
languageName: unknown
89929000
linkType: soft
89939001

@@ -9278,6 +9286,7 @@ __metadata:
92789286
"@react-types/shared": "npm:^3.1.0"
92799287
peerDependencies:
92809288
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
9289+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
92819290
languageName: unknown
92829291
linkType: soft
92839292

@@ -9540,6 +9549,7 @@ __metadata:
95409549
peerDependencies:
95419550
"@react-spectrum/provider": ^3.0.0
95429551
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
9552+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
95439553
languageName: unknown
95449554
linkType: soft
95459555

@@ -9586,6 +9596,7 @@ __metadata:
95869596
peerDependencies:
95879597
"@react-spectrum/provider": ^3.0.0
95889598
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
9599+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
95899600
languageName: unknown
95909601
linkType: soft
95919602

@@ -9601,6 +9612,7 @@ __metadata:
96019612
peerDependencies:
96029613
"@react-spectrum/provider": ^3.0.0
96039614
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
9615+
react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
96049616
languageName: unknown
96059617
linkType: soft
96069618

0 commit comments

Comments
 (0)