UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

131 lines 12.3 kB
"use strict"; 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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