Skip to content

Commit 409f42a

Browse files
hanslalexeagle
authored andcommitted
fix(@schematics/update): fix logic to gather version of arguments
Before we were blindly looking the version. We need to reuse the package info logic which properly resolve operators. Also fixed the tests to not use next but @6. Next is now 7 beta and that does not work. We just want to test a major above so that is fine.
1 parent dae5f9d commit 409f42a

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

packages/schematics/update/update/index.ts

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,10 @@ export function angularMajorCompatGuarantee(range: string) {
4545

4646
// Add the major version as compatible with the angular compatible, with all minors. This is
4747
// already one major above the greatest supported, because we increment `major` before checking.
48+
// We add minors like this because a minor beta is still compatible with a minor non-beta.
4849
let newRange = range;
4950
for (let minor = 0; minor < 20; minor++) {
50-
newRange += ` || ^${major}.${minor}.0-alpha.0`;
51+
newRange += ` || ^${major}.${minor}.0-alpha.0 `;
5152
}
5253

5354
return semver.validRange(newRange) || range;
@@ -496,7 +497,7 @@ function _usageMessage(
496497
function _buildPackageInfo(
497498
tree: Tree,
498499
packages: Map<string, VersionRange>,
499-
allDependencies: Map<string, VersionRange>,
500+
allDependencies: ReadonlyMap<string, VersionRange>,
500501
npmPackageJson: NpmRepositoryPackageJson,
501502
logger: logging.LoggerApi,
502503
): PackageInfo {
@@ -629,8 +630,9 @@ function _buildPackageList(
629630

630631

631632
function _addPackageGroup(
633+
tree: Tree,
632634
packages: Map<string, VersionRange>,
633-
allDependencies: ReadonlyMap<string, string>,
635+
allDependencies: ReadonlyMap<string, VersionRange>,
634636
npmPackageJson: NpmRepositoryPackageJson,
635637
logger: logging.LoggerApi,
636638
): void {
@@ -639,7 +641,11 @@ function _addPackageGroup(
639641
return;
640642
}
641643

642-
const version = npmPackageJson['dist-tags'][maybePackage] || maybePackage;
644+
const info = _buildPackageInfo(tree, packages, allDependencies, npmPackageJson, logger);
645+
646+
const version = (info.target && info.target.version)
647+
|| npmPackageJson['dist-tags'][maybePackage]
648+
|| maybePackage;
643649
if (!npmPackageJson.versions[version]) {
644650
return;
645651
}
@@ -673,17 +679,22 @@ function _addPackageGroup(
673679
* @private
674680
*/
675681
function _addPeerDependencies(
682+
tree: Tree,
676683
packages: Map<string, VersionRange>,
677-
_allDependencies: ReadonlyMap<string, string>,
684+
allDependencies: ReadonlyMap<string, VersionRange>,
678685
npmPackageJson: NpmRepositoryPackageJson,
679-
_logger: logging.LoggerApi,
686+
logger: logging.LoggerApi,
680687
): void {
681688
const maybePackage = packages.get(npmPackageJson.name);
682689
if (!maybePackage) {
683690
return;
684691
}
685692

686-
const version = npmPackageJson['dist-tags'][maybePackage] || maybePackage;
693+
const info = _buildPackageInfo(tree, packages, allDependencies, npmPackageJson, logger);
694+
695+
const version = (info.target && info.target.version)
696+
|| npmPackageJson['dist-tags'][maybePackage]
697+
|| maybePackage;
687698
if (!npmPackageJson.versions[version]) {
688699
return;
689700
}
@@ -807,8 +818,8 @@ export default function(options: UpdateSchema): Rule {
807818
do {
808819
lastPackagesSize = packages.size;
809820
npmPackageJsonMap.forEach((npmPackageJson) => {
810-
_addPackageGroup(packages, allDependencies, npmPackageJson, logger);
811-
_addPeerDependencies(packages, allDependencies, npmPackageJson, logger);
821+
_addPackageGroup(tree, packages, allDependencies, npmPackageJson, logger);
822+
_addPeerDependencies(tree, packages, allDependencies, npmPackageJson, logger);
812823
});
813824
} while (packages.size > lastPackagesSize);
814825

packages/schematics/update/update/index_spec.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,7 @@ describe('@schematics/update', () => {
147147
);
148148

149149
schematicRunner.runSchematicAsync('update', {
150-
packages: ['@angular/core'],
151-
next: true,
150+
packages: ['@angular/core@^6.0.0'],
152151
}, appTree).pipe(
153152
map(tree => {
154153
const packageJson = JSON.parse(tree.readContent('/package.json'));
@@ -194,8 +193,7 @@ describe('@schematics/update', () => {
194193
);
195194

196195
schematicRunner.runSchematicAsync('update', {
197-
packages: ['@angular/core'],
198-
next: true,
196+
packages: ['@angular/core@^6.0.0'],
199197
}, appTree).pipe(
200198
map(tree => {
201199
const packageJson = JSON.parse(tree.readContent('/package.json'));

0 commit comments

Comments
 (0)