@jwpkg/gitversion
Version:
Gitversion is a complete customizable git-based release management system
131 lines • 12.3 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.BumpCommand = void 0;
const clipanion_1 = require("clipanion");
const colorize_node_1 = require("colorize-node");
const t = __importStar(require("typanion"));
const application_1 = require("../core/application");
const bump_manifest_1 = require("../core/bump-manifest");
const bump_utils_1 = require("../core/bump-utils");
const changelog_1 = require("../core/changelog");
const conventional_commmit_utils_1 = require("../core/conventional-commmit-utils");
const format_utils_1 = require("../core/format-utils");
const workspace_utils_1 = require("../core/workspace-utils");
const restore_1 = require("./restore");
class BumpCommand extends restore_1.RestoreCommand {
static paths = [
['bump'],
];
version = clipanion_1.Option.String('--version', {
description: 'Bump with an explicit version',
});
bumpType = clipanion_1.Option.String('--bump-type', {
description: 'Bump with an explicit version',
validator: t.isOneOf([
t.isEnum(['graduate', 'major', 'minor', 'patch']),
t.cascade(t.isString(), t.matchesRegExp(/[0-9]+\\.[0-9]+\\.[0-9]+/)),
]),
});
async execute() {
const application = await application_1.Application.init(this.context.application);
const context = {
...this.context,
application,
};
if ((await this.cli.run(['restore'], context)) !== 0) {
return 1;
}
const { project, configuration, pluginManager, logger } = application;
if (!project) {
return 1;
}
const bump = logger.beginSection('Bump step');
const bumpManifest = await bump_manifest_1.BumpManifest.new(application);
const projectBump = logger.beginSection('Bumping root workspace');
const newVersion = await this.detectBumpForWorkspace(application, logger, project, bumpManifest, this.version, bump_utils_1.BumpType.tryParse(this.bumpType));
if (newVersion) {
await (0, workspace_utils_1.updateWorkspaceVersion)(project, logger, newVersion);
await pluginManager.dispatchOnBump(application, project, newVersion);
}
if (!this.version && configuration.options.independentVersioning === false) {
this.version = newVersion;
}
logger.endSection(projectBump);
const promises = project.childWorkspaces.map(async (workspace) => {
return await logger.runSection(`Bumping package ${(0, format_utils_1.formatPackageName)(workspace.packageName)}`, async (logger) => {
const newVersion = await this.detectBumpForWorkspace(application, logger, workspace, bumpManifest, this.version, bump_utils_1.BumpType.tryParse(this.bumpType));
if (newVersion) {
await (0, workspace_utils_1.updateWorkspaceVersion)(workspace, logger, newVersion);
await pluginManager.dispatchOnBump(application, workspace, newVersion);
}
});
});
await Promise.all(promises);
await bumpManifest.persist();
logger.endSection(bump);
return 0;
}
async detectBumpForWorkspace(application, logger, workspace, bumpManifest, explicitVersion, explicitBumpType) {
let newVersion;
const workspaceForVersion = application.configuration.options.independentVersioning ? workspace : workspace.project;
const currentVersion = await this.currentVersionFromGit(workspaceForVersion, application.git, application.branch, application.configuration.options.versionTagPrefix);
if (!explicitVersion) {
const bumpType = explicitBumpType ?? await workspaceForVersion.detectBumpType(application.configuration, application.branch, application.gitPlatform, logger);
logger.reportInfo(`Bump type: ${(0, format_utils_1.formatBumpType)(bumpType)}`);
newVersion = (0, bump_utils_1.executeBump)(currentVersion.version, application.branch, bumpType) ?? undefined;
}
else {
newVersion = explicitVersion;
}
if (newVersion) {
await this.generateChangelogForWorkspace(application, logger, workspace, currentVersion, {
version: newVersion,
hash: await application.git.currentCommit(),
}, bumpManifest);
}
return newVersion;
}
async generateChangelogForWorkspace(application, logger, workspace, fromVersion, toVersion, bumpManifest) {
const logs = await application.git.logs(fromVersion.hash, workspace.relativeCwd);
const commits = (0, conventional_commmit_utils_1.parseConventionalCommits)(logs, application.gitPlatform);
logger.reportInfo(`Found ${colorize_node_1.colorize.cyan(commits.length)} commits following conventional commit standard for changelog`);
const changelogEntry = (0, changelog_1.generateChangeLogEntry)(commits, fromVersion, toVersion, application.pluginManager);
bumpManifest.add(workspace, toVersion.version, fromVersion.version, changelogEntry, commits);
await workspace.updateChangelog(changelogEntry);
}
}
exports.BumpCommand = BumpCommand;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVtcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9idW1wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUFtQztBQUNuQyxpREFBeUM7QUFDekMsNENBQThCO0FBRTlCLHFEQUFnRTtBQUNoRSx5REFBcUQ7QUFDckQsbURBQTJEO0FBQzNELGlEQUEyRDtBQUMzRCxtRkFBOEU7QUFDOUUsdURBQXlFO0FBR3pFLDZEQUE2RTtBQUU3RSx1Q0FBMkM7QUFFM0MsTUFBYSxXQUFZLFNBQVEsd0JBQWM7SUFDN0MsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLENBQUMsTUFBTSxDQUFDO0tBQ1QsQ0FBQztJQUVGLE9BQU8sR0FBRyxrQkFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7UUFDbkMsV0FBVyxFQUFFLCtCQUErQjtLQUM3QyxDQUFDLENBQUM7SUFFSCxRQUFRLEdBQXVCLGtCQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtRQUMxRCxXQUFXLEVBQUUsK0JBQStCO1FBQzVDLFNBQVMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDckUsQ0FDQTtLQUNGLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxXQUFXLEdBQUcsTUFBTSx5QkFBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sT0FBTyxHQUFHO1lBQ2QsR0FBRyxJQUFJLENBQUMsT0FBTztZ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