angular-cn/dev-infra/release/publish/commit-message.ts
Paul Gschwendtner f96dcc5ce0 feat(dev-infra): tool for staging and publishing releases (#38656)
Creates a tool for staging and publishing releases as per the
new branching and versioning that has been outlined in the following
document. The tool is intended to be used across the organization to
ensure consistent branching/versioning and labeling:

https://docs.google.com/document/d/197kVillDwx-RZtSVOBtPb4BBIAw0E9RT3q3v6DZkykU/edit#heading=h.s3qlps8f4zq7dd

The tool implements the actions as outlined in the following
initial plan: https://hackmd.io/2Le8leq0S6G_R5VEVTNK9A.

The implementation slightly diverged in so far that it performs
staging and publishing together so that releasing is a single
convenient command. In case of errors for which re-running the
full command is not sufficient, we want to consider adding
recover functionality. e.g. when the staging completed, but the
actual NPM publishing aborted unexpectedly due to build errors.

PR Close #38656
2020-09-28 16:11:42 -04:00

40 lines
1.6 KiB
TypeScript

/**
* @license
* Copyright Google LLC 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
*/
import * as semver from 'semver';
/** Gets the commit message for a new release point in the project. */
export function getCommitMessageForRelease(newVersion: semver.SemVer): string {
return `release: cut the v${newVersion} release`;
}
/**
* Gets the commit message for an exceptional version bump in the next branch. The next
* branch version will be bumped without the release being published in some situations.
* More details can be found in the `MoveNextIntoFeatureFreeze` release action and in:
* https://hackmd.io/2Le8leq0S6G_R5VEVTNK9A.
*/
export function getCommitMessageForExceptionalNextVersionBump(newVersion: semver.SemVer) {
return `release: bump the next branch to v${newVersion}`;
}
/**
* Gets the commit message for a version update in the next branch to a major version. The next
* branch version will be updated without the release being published if the branch is configured
* as a major. More details can be found in the `ConfigureNextAsMajor` release action and in:
* https://hackmd.io/2Le8leq0S6G_R5VEVTNK9A.
*/
export function getCommitMessageForNextBranchMajorSwitch(newVersion: semver.SemVer) {
return `release: switch the next branch to v${newVersion}`;
}
/** Gets the commit message for a release notes cherry-pick commit */
export function getReleaseNoteCherryPickCommitMessage(newVersion: semver.SemVer): string {
return `docs: release notes for the v${newVersion} release`;
}