MCPcopy Index your code
hub / github.com/changesets/changesets / runVersion

Function runVersion

packages/release-utils/src/run.ts:105–152  ·  view source on GitHub ↗
({
  script,
  cwd = process.cwd(),
  commitMessage = "Version Packages",
}: VersionOptions)

Source from the content-addressed store, hash-verified

103};
104
105export async function runVersion({
106 script,
107 cwd = process.cwd(),
108 commitMessage = "Version Packages",
109}: VersionOptions) {
110 let branch = await gitUtils.getCurrentBranch(cwd);
111 let versionBranch = `changeset-release/${branch}`;
112 let { preState } = await readChangesetState(cwd);
113
114 await gitUtils.switchToMaybeExistingBranch(versionBranch, cwd);
115 await gitUtils.reset("HEAD", undefined, cwd);
116
117 let versionsByDirectory = await getVersionsByDirectory(cwd);
118
119 if (script) {
120 let [versionCommand, ...versionArgs] = script.split(/\s+/);
121 await execWithOutput(versionCommand, versionArgs, { cwd });
122 } else {
123 let changesetsCliPkgJson = await require(path.join(
124 cwd,
125 "node_modules",
126 "@changesets",
127 "cli",
128 "package.json"
129 ));
130 let cmd = semverLt(changesetsCliPkgJson.version, "2.0.0")
131 ? "bump"
132 : "version";
133 await execWithOutput(
134 "node",
135 ["./node_modules/@changesets/cli/bin.js", cmd],
136 { cwd }
137 );
138 }
139
140 let changedPackages = await getChangedPackages(cwd, versionsByDirectory);
141
142 // project with `commit: true` setting could have already committed files
143 if (!(await gitUtils.checkIfClean(cwd))) {
144 const finalCommitMessage = `${commitMessage}${
145 preState ? ` (${preState.tag})` : ""
146 }`;
147 await gitUtils.commitAll(finalCommitMessage, cwd);
148 }
149
150 await gitUtils.push(versionBranch, { force: true, cwd });
151 return { versionBranch, changedPackages };
152}

Callers 1

run.test.tsFile · 0.90

Calls 4

readChangesetStateFunction · 0.90
getVersionsByDirectoryFunction · 0.90
execWithOutputFunction · 0.90
getChangedPackagesFunction · 0.90

Tested by

no test coverage detected