Skip to content

Commit c58f48d

Browse files
authored
Merge pull request microsoft#599 from Microsoft/pgonzal/rush-check-skip-peers
[rush] Peer dependencies should be ignored by "rush check"
2 parents 716a2d9 + 616c779 commit c58f48d

File tree

3 files changed

+20
-9
lines changed

3 files changed

+20
-9
lines changed

apps/rush-lib/src/data/VersionMismatchFinder.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,17 @@ export class VersionMismatchFinder {
5050
private _analyze(): void {
5151
this._projects.forEach((project: RushConfigurationProject) => {
5252
if (!project.skipRushCheck) {
53+
// NOTE: We do not consider peer dependencies here. The purpose of "rush check" is
54+
// mainly to avoid side-by-side duplicates in the node_modules folder, whereas
55+
// peer dependencies are just a compatibility statement that will be satisfied by a
56+
// regular dependency. (It might be useful for Rush to help people keep their peer dependency
57+
// patterns consistent, but on the other hand different projects may have different
58+
// levels of compatibility -- we should wait for someone to actually request this feature
59+
// before we get into that.)
5360
this._addDependenciesToList(project.packageName,
5461
project.packageJson.dependencies, project.cyclicDependencyProjects);
5562
this._addDependenciesToList(project.packageName,
5663
project.packageJson.devDependencies, project.cyclicDependencyProjects);
57-
this._addDependenciesToList(project.packageName,
58-
project.packageJson.peerDependencies, project.cyclicDependencyProjects);
5964
this._addDependenciesToList(project.packageName,
6065
project.packageJson.optionalDependencies, project.cyclicDependencyProjects);
6166
}

apps/rush-lib/src/data/test/VersionMismatchFinder.test.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ describe('VersionMismatchFinder', () => {
269269
done();
270270
});
271271

272-
it('checks peer dependencies', (done: MochaDone) => {
272+
it('does not check peer dependencies', (done: MochaDone) => {
273273
const projects: RushConfigurationProject[] = [
274274
{
275275
packageName: 'A',
@@ -294,12 +294,7 @@ describe('VersionMismatchFinder', () => {
294294
] as any as RushConfigurationProject[]; // tslint:disable-line:no-any
295295
const mismatchFinder: VersionMismatchFinder = new VersionMismatchFinder(projects);
296296
assert.isNumber(mismatchFinder.numberOfMismatches);
297-
assert.equal(mismatchFinder.numberOfMismatches, 1);
298-
assert.equal(mismatchFinder.getMismatches().length, 1);
299-
assert.equal(mismatchFinder.getMismatches()[0], '@types/foo');
300-
assert.includeMembers(mismatchFinder.getVersionsOfMismatch('@types/foo')!, ['2.0.0', '1.2.3']);
301-
assert.equal(mismatchFinder.getConsumersOfMismatch('@types/foo', '2.0.0'), 'B');
302-
assert.equal(mismatchFinder.getConsumersOfMismatch('@types/foo', '1.2.3'), 'A');
297+
assert.equal(mismatchFinder.numberOfMismatches, 0);
303298
done();
304299
});
305300

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"changes": [
3+
{
4+
"comment": "Improve \"rush check\" to ignore peer dependencies, since they don't need to be consistent with everything else (and generally won't be)",
5+
"packageName": "@microsoft/rush",
6+
"type": "none"
7+
}
8+
],
9+
"packageName": "@microsoft/rush",
10+
"email": "pgonzal@users.noreply.github.com"
11+
}

0 commit comments

Comments
 (0)