f96dcc5ce0
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
40 lines
1.6 KiB
TypeScript
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`;
|
|
}
|