angular-cli/scripts/packages.ts
Keen Yee Liau 90a01968f4 build: determine version to publish from package.json
Currently, the version of a release is determined by the git tag.
This PR changes release script to determine the release version from the
`version` property in the root `package.json`.

Release docs have also been updated.
2021-03-24 09:17:24 -04:00

50 lines
1.6 KiB
TypeScript

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
// tslint:disable:no-implicit-dependencies
import { logging } from '@angular-devkit/core';
import * as colors from 'ansi-colors';
const { packages, loadRootPackageJson, stableToExperimentalVersion } = require('../lib/packages');
export default function(args: { json: boolean, version: boolean, releaseCheck: boolean }, logger: logging.Logger) {
if (args.releaseCheck) {
const {version: root} = loadRootPackageJson();
const experimental = stableToExperimentalVersion(root);
logger.info(`The expected version for the release is ${colors.bold(root)} (${experimental}) based on root package.json.`);
logger.info(
Object.keys(packages)
.filter(name => !packages[name].private)
.map(name => {
let result = colors.red(colors.symbols.cross);
const version = packages[name].version;
if ([root, experimental].includes(version)) {
result = colors.green(colors.symbols.check);
}
return ` ${result} ${name}@${packages[name].version}`;
})
.join('\n'));
} else if (args.json) {
logger.info(JSON.stringify(packages, null, 2));
} else {
logger.info(
Object.keys(packages)
.filter(name => !packages[name].private)
.map(name => {
if (args.version) {
return `${name}@${packages[name].version}`;
} else {
return name;
}
})
.join('\n'));
}
}