import semver from "semver"; import parseArguments from "./parse-arguments.js"; import * as steps from "./steps/index.js"; import { logPromise, readJson } from "./utilities.js"; const params = parseArguments(); const { default: { version: previousVersion }, } = await import("prettier/package.json", { with: { type: "json" }, }); if (semver.parse(previousVersion) === null) { throw new Error(`Unexpected previousVersion: ${previousVersion}`); } params.previousVersion = previousVersion; params.previousVersionOnDefaultBranch = ( await readJson("package.json") ).version; for (let step of [ { process: steps.chooseVersion, skip: Boolean(params.version), }, // { // name: "Validating new version", // process: steps.validateNewVersion, // }, // { // name: "Checking git status", // process: steps.checkGitStatus, // skip: params.dry, // }, // { // name: "Installing NPM dependencies", // process: steps.installDependencies, // skip: params.dry || params.skipDependenciesInstall || !params.manual, // }, // { // name: "Bumping version", // process: steps.updateVersion, // skip: params.dry, // }, // steps.generateBundles, // steps.updateChangelog, // { // name: "Committing and pushing to remote", // process: steps.pushToGit, // skip: params.dry, // }, // params.manual ? steps.publishToNpm : steps.waitForBotRelease, // steps.showInstructionsAfterNpmPublish, // { // name: "Merge release notes PR", // process: steps.mergeBlogPost, // }, steps.updateDependentsCount, { name: "Cleaning changelog", process: steps.cleanChangelog, skip: params.dry || params.next, }, steps.bumpPrettier, steps.postPublishSteps, ]) { if (typeof step === "function") { step = { process: step }; } const runStep = () => step.process(params); if (step.name) { await logPromise(step.name, runStep, step.skip); } else if (!step.skip) { await runStep(); } }