From 0defaf60dbe8528fdc447967567eaaea8d9bdee5 Mon Sep 17 00:00:00 2001 From: georgewrmarshall Date: Thu, 18 Sep 2025 10:32:51 -0700 Subject: [PATCH] chore: implementing improved peer dependency checks for pre-1.0 packages --- yarn.config.cjs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/yarn.config.cjs b/yarn.config.cjs index 0d3713a4e..f9ec7d439 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -613,10 +613,23 @@ function expectUpToDateWorkspacePeerDependencies(Yarn, workspace) { dependency.range, ) ) { + // Ensure peer dependency includes latest breaking changes. + // + // Technically pre-1.0 versions can make breaking changes in patch releases, but + // conventionally we always bump the most significant digit for breaking changes. + let peerDependencyRange; + if (dependencyWorkspaceVersion.major > 0) { + peerDependencyRange = `^${dependencyWorkspaceVersion.major}.0.0`; + } else if (dependencyWorkspaceVersion.minor > 0) { + peerDependencyRange = `^0.${dependencyWorkspaceVersion.minor}.0`; + } else { + peerDependencyRange = `^0.0.${dependencyWorkspaceVersion.patch}`; + } + expectWorkspaceField( workspace, `peerDependencies["${dependency.ident}"]`, - `^${dependencyWorkspaceVersion.major}.0.0`, + peerDependencyRange, ); } }