diff --git a/dev-infra/ng-dev.js b/dev-infra/ng-dev.js index a8e76a74a0..1ca11e7946 100755 --- a/dev-infra/ng-dev.js +++ b/dev-infra/ng-dev.js @@ -6199,6 +6199,13 @@ function semverInc(version, release, identifier) { const clone = new semver.SemVer(version.version); return clone.inc(release, identifier); } +/** Creates the equivalent experimental version for a provided SemVer. */ +function createExperimentalSemver(version) { + const experimentalVersion = new semver.SemVer(version.format()); + experimentalVersion.major = 0; + experimentalVersion.minor = version.major * 100 + version.minor; + return new semver.SemVer(experimentalVersion.format()); +} /** * @license @@ -6843,7 +6850,7 @@ class ReleaseAction { _verifyPackageVersions(version, packages) { return tslib.__awaiter(this, void 0, void 0, function* () { /** Experimental equivalent version for packages created with the provided version. */ - const experimentalVersion = new semver.SemVer(`0.${version.major * 100 + version.minor}.${version.patch}`); + const experimentalVersion = createExperimentalSemver(version); for (const pkg of packages) { const { version: packageJsonVersion } = JSON.parse(yield fs.promises.readFile(path.join(pkg.outputPath, 'package.json'), 'utf8')); const mismatchesVersion = version.compare(packageJsonVersion) !== 0; diff --git a/dev-infra/release/publish/actions.ts b/dev-infra/release/publish/actions.ts index aa312a9a96..3a892279ae 100644 --- a/dev-infra/release/publish/actions.ts +++ b/dev-infra/release/publish/actions.ts @@ -18,6 +18,7 @@ import {BuiltPackage, ReleaseConfig} from '../config/index'; import {ReleaseNotes} from '../notes/release-notes'; import {NpmDistTag} from '../versioning'; import {ActiveReleaseTrains} from '../versioning/active-release-trains'; +import {createExperimentalSemver} from '../versioning/inc-semver'; import {runNpmPublish} from '../versioning/npm-publish'; import {FatalReleaseActionError, UserAbortedReleaseActionError} from './actions-error'; @@ -521,8 +522,8 @@ export abstract class ReleaseAction { /** Verify the version of each generated package exact matches the specified version. */ private async _verifyPackageVersions(version: semver.SemVer, packages: BuiltPackage[]) { /** Experimental equivalent version for packages created with the provided version. */ - const experimentalVersion = - new semver.SemVer(`0.${version.major * 100 + version.minor}.${version.patch}`); + const experimentalVersion = createExperimentalSemver(version); + for (const pkg of packages) { const {version: packageJsonVersion} = JSON.parse(await fs.readFile(join(pkg.outputPath, 'package.json'), 'utf8')) as diff --git a/dev-infra/release/versioning/inc-semver.ts b/dev-infra/release/versioning/inc-semver.ts index 3ea0e917c6..3fcc1ffbf4 100644 --- a/dev-infra/release/versioning/inc-semver.ts +++ b/dev-infra/release/versioning/inc-semver.ts @@ -17,3 +17,11 @@ export function semverInc( const clone = new semver.SemVer(version.version); return clone.inc(release, identifier); } + +/** Creates the equivalent experimental version for a provided SemVer. */ +export function createExperimentalSemver(version: semver.SemVer): semver.SemVer { + const experimentalVersion = new semver.SemVer(version.format()); + experimentalVersion.major = 0; + experimentalVersion.minor = version.major * 100 + version.minor; + return new semver.SemVer(experimentalVersion.format()); +}