@changesets/apply-release-plan
Advanced tools
Comparing version 0.2.3 to 0.3.0
# @changesets/apply-release-plan | ||
## 0.3.0 | ||
### Minor Changes | ||
- [`8f0a1ef`](https://github.com/atlassian/changesets/commit/8f0a1ef327563512f471677ef0ca99d30da009c0) [#183](https://github.com/atlassian/changesets/pull/183) Thanks [@mitchellhamilton](https://github.com/mitchellhamilton)! - Add support for prereleases. For more information, see [the docs on prereleases](https://github.com/atlassian/changesets/blob/master/docs/prereleases.md). | ||
### Patch Changes | ||
- Updated dependencies [[`8f0a1ef`](https://github.com/atlassian/changesets/commit/8f0a1ef327563512f471677ef0ca99d30da009c0)]: | ||
- @changesets/types@0.4.0 | ||
- @changesets/config@0.2.3 | ||
- get-workspaces@0.5.2 | ||
- @changesets/git@0.2.4 | ||
## 0.2.3 | ||
@@ -4,0 +18,0 @@ |
@@ -71,7 +71,9 @@ 'use strict'; | ||
async function smallHelper(obj, type) { | ||
const releaseLines = obj[type]; | ||
if (!releaseLines.length) return ""; | ||
const resolvedLines = await Promise.all(releaseLines); | ||
return `### ${startCase(type)} Changes\n\n${resolvedLines.join("")}`; | ||
async function generateChangesForVersionTypeMarkdown(obj, type) { | ||
let releaseLines = await Promise.all(obj[type]); | ||
releaseLines = releaseLines.filter(x => x); | ||
if (releaseLines.length) { | ||
return `### ${startCase(type)} Changes\n\n${releaseLines.join("")}`; | ||
} | ||
} // release is the package and version we are releasing | ||
@@ -96,7 +98,3 @@ | ||
} | ||
}); // First, we construct the release lines, summaries of changesets that caused us to be released | ||
const majorReleaseLines = await smallHelper(releaseObj, "major"); | ||
const minorReleaseLines = await smallHelper(releaseObj, "minor"); | ||
const patchReleaseLines = await smallHelper(releaseObj, "patch"); | ||
}); | ||
let dependentReleases = releases.filter(rel => { | ||
@@ -112,4 +110,4 @@ return release.config.dependencies && release.config.dependencies[rel.name] || release.config.devDependencies && release.config.devDependencies[rel.name] || release.config.peerDependencies && release.config.peerDependencies[rel.name]; | ||
let relevantChangesets = changesets.filter(cs => relevantChangesetIds.has(cs.id)); | ||
const dependencyReleaseLine = await changelogFuncs.getDependencyReleaseLine(relevantChangesets, dependentReleases, changelogOpts); | ||
return [`## ${release.newVersion}`, majorReleaseLines, minorReleaseLines, patchReleaseLines, patchReleaseLines.length < 1 && dependencyReleaseLine.length > 0 ? "### Patch Changes" : "", dependencyReleaseLine].filter(line => line).join("\n"); | ||
releaseObj.patch.push(changelogFuncs.getDependencyReleaseLine(relevantChangesets, dependentReleases, changelogOpts)); | ||
return [`## ${release.newVersion}`, await generateChangesForVersionTypeMarkdown(releaseObj, "major"), await generateChangesForVersionTypeMarkdown(releaseObj, "minor"), await generateChangesForVersionTypeMarkdown(releaseObj, "patch")].filter(line => line).join("\n"); | ||
} | ||
@@ -138,2 +136,3 @@ | ||
if (!workspaces) throw new Error(`could not find any workspaces in ${cwd}`); | ||
const workspacesByName = new Map(workspaces.map(x => [x.name, x])); | ||
let { | ||
@@ -145,4 +144,3 @@ releases, | ||
let releaseWithWorkspaces = releases.map(release => { | ||
// @ts-ignore we already threw if workspaces wasn't defined | ||
let workspace = workspaces.find(ws => ws.name === release.name); | ||
let workspace = workspacesByName.get(release.name); | ||
if (!workspace) throw new Error(`Could not find matching package for release of: ${release.name}`); | ||
@@ -156,2 +154,11 @@ return _objectSpread({}, release, { | ||
let releaseWithChangelogs = await getNewChangelogEntry(releaseWithWorkspaces, changesets, config$1.changelog, cwd); | ||
if (releasePlan.preState !== undefined) { | ||
if (releasePlan.preState.mode === "exit") { | ||
await fs.remove(path.join(cwd, ".changeset", "pre.json")); | ||
} else { | ||
await fs.writeFile(path.join(cwd, ".changeset", "pre.json"), JSON.stringify(releasePlan.preState, null, 2) + "\n"); | ||
} | ||
} | ||
let versionsToUpdate = releases.map(({ | ||
@@ -163,3 +170,3 @@ name, | ||
version: newVersion | ||
}), {}); // iterate over releases updating packages | ||
})); // iterate over releases updating packages | ||
@@ -193,15 +200,17 @@ let finalisedRelease = releaseWithChangelogs.map(release => { | ||
let changesetFolder = path.resolve(cwd, ".changeset"); | ||
await Promise.all(changesets.map(async changeset => { | ||
let changesetPath = path.resolve(changesetFolder, `${changeset.id}.md`); | ||
let changesetFolderPath = path.resolve(changesetFolder, changeset.id); | ||
if (releasePlan.preState === undefined || releasePlan.preState.mode === "exit") { | ||
let changesetFolder = path.resolve(cwd, ".changeset"); | ||
await Promise.all(changesets.map(async changeset => { | ||
let changesetPath = path.resolve(changesetFolder, `${changeset.id}.md`); | ||
let changesetFolderPath = path.resolve(changesetFolder, changeset.id); | ||
if (await fs.pathExists(changesetPath)) { | ||
touchedFiles.push(changesetPath); | ||
await fs.remove(changesetPath); // TO REMOVE LOGIC - this works to remove v1 changesets. We should be removed in the future | ||
} else if (await fs.pathExists(changesetFolderPath)) { | ||
touchedFiles.push(changesetFolderPath); | ||
await fs.remove(changesetFolderPath); | ||
} | ||
})); | ||
if (await fs.pathExists(changesetPath)) { | ||
touchedFiles.push(changesetPath); | ||
await fs.remove(changesetPath); // TO REMOVE LOGIC - this works to remove v1 changesets. We should be removed in the future | ||
} else if (await fs.pathExists(changesetFolderPath)) { | ||
touchedFiles.push(changesetFolderPath); | ||
await fs.remove(changesetFolderPath); | ||
} | ||
})); | ||
} | ||
@@ -257,6 +266,7 @@ if (config$1.commit) { | ||
return Promise.all(releaseWithWorkspaces.map(async release => { | ||
let changelog; | ||
try { | ||
changelog = await generateMarkdown(release, releaseWithWorkspaces, moddedChangesets, getChangelogFuncs, changelogOpts); | ||
let changelog = await generateMarkdown(release, releaseWithWorkspaces, moddedChangesets, getChangelogFuncs, changelogOpts); | ||
return _objectSpread({}, release, { | ||
changelog | ||
}); | ||
} catch (e) { | ||
@@ -267,6 +277,2 @@ console.error("The following error was encountered while generating changelog entries"); | ||
} | ||
return _objectSpread({}, release, { | ||
changelog | ||
}); | ||
})); | ||
@@ -273,0 +279,0 @@ } |
@@ -44,7 +44,5 @@ "use strict"; | ||
async function smallHelper(obj, type) { | ||
const releaseLines = obj[type]; | ||
if (!releaseLines.length) return ""; | ||
const resolvedLines = await Promise.all(releaseLines); | ||
return `### ${startCase(type)} Changes\n\n${resolvedLines.join("")}`; | ||
async function generateChangesForVersionTypeMarkdown(obj, type) { | ||
let releaseLines = await Promise.all(obj[type]); | ||
if ((releaseLines = releaseLines.filter(x => x)).length) return `### ${startCase(type)} Changes\n\n${releaseLines.join("")}`; | ||
} | ||
@@ -62,3 +60,2 @@ | ||
}); | ||
const majorReleaseLines = await smallHelper(releaseObj, "major"), minorReleaseLines = await smallHelper(releaseObj, "minor"), patchReleaseLines = await smallHelper(releaseObj, "patch"); | ||
let dependentReleases = releases.filter(rel => release.config.dependencies && release.config.dependencies[rel.name] || release.config.devDependencies && release.config.devDependencies[rel.name] || release.config.peerDependencies && release.config.peerDependencies[rel.name]), relevantChangesetIds = new Set(); | ||
@@ -71,4 +68,4 @@ dependentReleases.forEach(rel => { | ||
let relevantChangesets = changesets.filter(cs => relevantChangesetIds.has(cs.id)); | ||
const dependencyReleaseLine = await changelogFuncs.getDependencyReleaseLine(relevantChangesets, dependentReleases, changelogOpts); | ||
return [ `## ${release.newVersion}`, majorReleaseLines, minorReleaseLines, patchReleaseLines, patchReleaseLines.length < 1 && dependencyReleaseLine.length > 0 ? "### Patch Changes" : "", dependencyReleaseLine ].filter(line => line).join("\n"); | ||
return releaseObj.patch.push(changelogFuncs.getDependencyReleaseLine(relevantChangesets, dependentReleases, changelogOpts)), | ||
[ `## ${release.newVersion}`, await generateChangesForVersionTypeMarkdown(releaseObj, "major"), await generateChangesForVersionTypeMarkdown(releaseObj, "minor"), await generateChangesForVersionTypeMarkdown(releaseObj, "patch") ].filter(line => line).join("\n"); | ||
} | ||
@@ -89,6 +86,7 @@ | ||
if (!workspaces) throw new Error(`could not find any workspaces in ${cwd}`); | ||
const workspacesByName = new Map(workspaces.map(x => [ x.name, x ])); | ||
let {releases: releases, changesets: changesets} = releasePlan; | ||
const versionCommit = createReleaseCommit(releasePlan, config$1.commit); | ||
let releaseWithWorkspaces = releases.map(release => { | ||
let workspace = workspaces.find(ws => ws.name === release.name); | ||
let workspace = workspacesByName.get(release.name); | ||
if (!workspace) throw new Error(`Could not find matching package for release of: ${release.name}`); | ||
@@ -99,6 +97,8 @@ return _objectSpread({}, release, { | ||
}); | ||
}), releaseWithChangelogs = await getNewChangelogEntry(releaseWithWorkspaces, changesets, config$1.changelog, cwd), versionsToUpdate = releases.map(({name: name, newVersion: newVersion}) => ({ | ||
}), releaseWithChangelogs = await getNewChangelogEntry(releaseWithWorkspaces, changesets, config$1.changelog, cwd); | ||
void 0 !== releasePlan.preState && ("exit" === releasePlan.preState.mode ? await fs.remove(path.join(cwd, ".changeset", "pre.json")) : await fs.writeFile(path.join(cwd, ".changeset", "pre.json"), JSON.stringify(releasePlan.preState, null, 2) + "\n")); | ||
let versionsToUpdate = releases.map(({name: name, newVersion: newVersion}) => ({ | ||
name: name, | ||
version: newVersion | ||
}), {}), finalisedRelease = releaseWithChangelogs.map(release => versionPackage(release, versionsToUpdate)), prettierConfig = await prettier.resolveConfig(cwd); | ||
})), finalisedRelease = releaseWithChangelogs.map(release => versionPackage(release, versionsToUpdate)), prettierConfig = await prettier.resolveConfig(cwd); | ||
for (let release of finalisedRelease) { | ||
@@ -112,8 +112,11 @@ let {changelog: changelog, config: config, dir: dir, name: name} = release, pkgJSONPath = path.resolve(dir, "package.json"), changelogPath = path.resolve(dir, "CHANGELOG.md"), parsedConfig = prettier.format(JSON.stringify(config), _objectSpread({}, prettierConfig, { | ||
} | ||
let changesetFolder = path.resolve(cwd, ".changeset"); | ||
if (await Promise.all(changesets.map(async changeset => { | ||
let changesetPath = path.resolve(changesetFolder, `${changeset.id}.md`), changesetFolderPath = path.resolve(changesetFolder, changeset.id); | ||
await fs.pathExists(changesetPath) ? (touchedFiles.push(changesetPath), await fs.remove(changesetPath)) : await fs.pathExists(changesetFolderPath) && (touchedFiles.push(changesetFolderPath), | ||
await fs.remove(changesetFolderPath)); | ||
})), config$1.commit) { | ||
if (void 0 === releasePlan.preState || "exit" === releasePlan.preState.mode) { | ||
let changesetFolder = path.resolve(cwd, ".changeset"); | ||
await Promise.all(changesets.map(async changeset => { | ||
let changesetPath = path.resolve(changesetFolder, `${changeset.id}.md`), changesetFolderPath = path.resolve(changesetFolder, changeset.id); | ||
await fs.pathExists(changesetPath) ? (touchedFiles.push(changesetPath), await fs.remove(changesetPath)) : await fs.pathExists(changesetFolderPath) && (touchedFiles.push(changesetFolderPath), | ||
await fs.remove(changesetFolderPath)); | ||
})); | ||
} | ||
if (config$1.commit) { | ||
let newTouchedFilesArr = [ ...touchedFiles ]; | ||
@@ -145,5 +148,7 @@ for (;newTouchedFilesArr.length > 0; ) { | ||
return Promise.all(releaseWithWorkspaces.map(async release => { | ||
let changelog; | ||
try { | ||
changelog = await generateMarkdown(release, releaseWithWorkspaces, moddedChangesets, getChangelogFuncs, changelogOpts); | ||
let changelog = await generateMarkdown(release, releaseWithWorkspaces, moddedChangesets, getChangelogFuncs, changelogOpts); | ||
return _objectSpread({}, release, { | ||
changelog: changelog | ||
}); | ||
} catch (e) { | ||
@@ -154,5 +159,2 @@ throw console.error("The following error was encountered while generating changelog entries"), | ||
} | ||
return _objectSpread({}, release, { | ||
changelog: changelog | ||
}); | ||
})); | ||
@@ -159,0 +161,0 @@ } |
@@ -65,7 +65,9 @@ import _objectSpread from '@babel/runtime/helpers/esm/objectSpread'; | ||
async function smallHelper(obj, type) { | ||
const releaseLines = obj[type]; | ||
if (!releaseLines.length) return ""; | ||
const resolvedLines = await Promise.all(releaseLines); | ||
return `### ${startCase(type)} Changes\n\n${resolvedLines.join("")}`; | ||
async function generateChangesForVersionTypeMarkdown(obj, type) { | ||
let releaseLines = await Promise.all(obj[type]); | ||
releaseLines = releaseLines.filter(x => x); | ||
if (releaseLines.length) { | ||
return `### ${startCase(type)} Changes\n\n${releaseLines.join("")}`; | ||
} | ||
} // release is the package and version we are releasing | ||
@@ -90,7 +92,3 @@ | ||
} | ||
}); // First, we construct the release lines, summaries of changesets that caused us to be released | ||
const majorReleaseLines = await smallHelper(releaseObj, "major"); | ||
const minorReleaseLines = await smallHelper(releaseObj, "minor"); | ||
const patchReleaseLines = await smallHelper(releaseObj, "patch"); | ||
}); | ||
let dependentReleases = releases.filter(rel => { | ||
@@ -106,4 +104,4 @@ return release.config.dependencies && release.config.dependencies[rel.name] || release.config.devDependencies && release.config.devDependencies[rel.name] || release.config.peerDependencies && release.config.peerDependencies[rel.name]; | ||
let relevantChangesets = changesets.filter(cs => relevantChangesetIds.has(cs.id)); | ||
const dependencyReleaseLine = await changelogFuncs.getDependencyReleaseLine(relevantChangesets, dependentReleases, changelogOpts); | ||
return [`## ${release.newVersion}`, majorReleaseLines, minorReleaseLines, patchReleaseLines, patchReleaseLines.length < 1 && dependencyReleaseLine.length > 0 ? "### Patch Changes" : "", dependencyReleaseLine].filter(line => line).join("\n"); | ||
releaseObj.patch.push(changelogFuncs.getDependencyReleaseLine(relevantChangesets, dependentReleases, changelogOpts)); | ||
return [`## ${release.newVersion}`, await generateChangesForVersionTypeMarkdown(releaseObj, "major"), await generateChangesForVersionTypeMarkdown(releaseObj, "minor"), await generateChangesForVersionTypeMarkdown(releaseObj, "patch")].filter(line => line).join("\n"); | ||
} | ||
@@ -132,2 +130,3 @@ | ||
if (!workspaces) throw new Error(`could not find any workspaces in ${cwd}`); | ||
const workspacesByName = new Map(workspaces.map(x => [x.name, x])); | ||
let { | ||
@@ -139,4 +138,3 @@ releases, | ||
let releaseWithWorkspaces = releases.map(release => { | ||
// @ts-ignore we already threw if workspaces wasn't defined | ||
let workspace = workspaces.find(ws => ws.name === release.name); | ||
let workspace = workspacesByName.get(release.name); | ||
if (!workspace) throw new Error(`Could not find matching package for release of: ${release.name}`); | ||
@@ -150,2 +148,11 @@ return _objectSpread({}, release, { | ||
let releaseWithChangelogs = await getNewChangelogEntry(releaseWithWorkspaces, changesets, config.changelog, cwd); | ||
if (releasePlan.preState !== undefined) { | ||
if (releasePlan.preState.mode === "exit") { | ||
await fs.remove(path.join(cwd, ".changeset", "pre.json")); | ||
} else { | ||
await fs.writeFile(path.join(cwd, ".changeset", "pre.json"), JSON.stringify(releasePlan.preState, null, 2) + "\n"); | ||
} | ||
} | ||
let versionsToUpdate = releases.map(({ | ||
@@ -157,3 +164,3 @@ name, | ||
version: newVersion | ||
}), {}); // iterate over releases updating packages | ||
})); // iterate over releases updating packages | ||
@@ -187,15 +194,17 @@ let finalisedRelease = releaseWithChangelogs.map(release => { | ||
let changesetFolder = path.resolve(cwd, ".changeset"); | ||
await Promise.all(changesets.map(async changeset => { | ||
let changesetPath = path.resolve(changesetFolder, `${changeset.id}.md`); | ||
let changesetFolderPath = path.resolve(changesetFolder, changeset.id); | ||
if (releasePlan.preState === undefined || releasePlan.preState.mode === "exit") { | ||
let changesetFolder = path.resolve(cwd, ".changeset"); | ||
await Promise.all(changesets.map(async changeset => { | ||
let changesetPath = path.resolve(changesetFolder, `${changeset.id}.md`); | ||
let changesetFolderPath = path.resolve(changesetFolder, changeset.id); | ||
if (await fs.pathExists(changesetPath)) { | ||
touchedFiles.push(changesetPath); | ||
await fs.remove(changesetPath); // TO REMOVE LOGIC - this works to remove v1 changesets. We should be removed in the future | ||
} else if (await fs.pathExists(changesetFolderPath)) { | ||
touchedFiles.push(changesetFolderPath); | ||
await fs.remove(changesetFolderPath); | ||
} | ||
})); | ||
if (await fs.pathExists(changesetPath)) { | ||
touchedFiles.push(changesetPath); | ||
await fs.remove(changesetPath); // TO REMOVE LOGIC - this works to remove v1 changesets. We should be removed in the future | ||
} else if (await fs.pathExists(changesetFolderPath)) { | ||
touchedFiles.push(changesetFolderPath); | ||
await fs.remove(changesetFolderPath); | ||
} | ||
})); | ||
} | ||
@@ -251,6 +260,7 @@ if (config.commit) { | ||
return Promise.all(releaseWithWorkspaces.map(async release => { | ||
let changelog; | ||
try { | ||
changelog = await generateMarkdown(release, releaseWithWorkspaces, moddedChangesets, getChangelogFuncs, changelogOpts); | ||
let changelog = await generateMarkdown(release, releaseWithWorkspaces, moddedChangesets, getChangelogFuncs, changelogOpts); | ||
return _objectSpread({}, release, { | ||
changelog | ||
}); | ||
} catch (e) { | ||
@@ -261,6 +271,2 @@ console.error("The following error was encountered while generating changelog entries"); | ||
} | ||
return _objectSpread({}, release, { | ||
changelog | ||
}); | ||
})); | ||
@@ -267,0 +273,0 @@ } |
{ | ||
"name": "@changesets/apply-release-plan", | ||
"version": "0.2.3", | ||
"version": "0.3.0", | ||
"description": "Takes a release plan and applies it to packages", | ||
@@ -11,8 +11,8 @@ "main": "dist/apply-release-plan.cjs.js", | ||
"@babel/runtime": "^7.4.4", | ||
"@changesets/config": "^0.2.2", | ||
"@changesets/config": "^0.2.3", | ||
"@changesets/get-version-range-type": "^0.1.1", | ||
"@changesets/git": "^0.2.3", | ||
"@changesets/types": "^0.3.1", | ||
"@changesets/git": "^0.2.4", | ||
"@changesets/types": "^0.4.0", | ||
"fs-extra": "^7.0.1", | ||
"get-workspaces": "^0.5.1", | ||
"get-workspaces": "^0.5.2", | ||
"lodash.startcase": "^4.4.0", | ||
@@ -19,0 +19,0 @@ "outdent": "^0.5.0", |
@@ -30,3 +30,4 @@ import outdent from "outdent"; | ||
} | ||
] | ||
], | ||
preState: undefined | ||
}; | ||
@@ -51,3 +52,4 @@ | ||
} | ||
] | ||
], | ||
preState: undefined | ||
}; | ||
@@ -98,3 +100,4 @@ | ||
} | ||
] | ||
], | ||
preState: undefined | ||
}; | ||
@@ -101,0 +104,0 @@ const commitStr = createReleaseCommit(releasePlan, false); |
@@ -1,3 +0,1 @@ | ||
import startCase from "lodash.startcase"; | ||
import { | ||
@@ -10,2 +8,3 @@ ChangelogFunctions, | ||
import { ModCompWithWorkspace } from "@changesets/types"; | ||
import startCase from "lodash.startcase"; | ||
@@ -18,8 +17,11 @@ type ChangelogLines = { | ||
async function smallHelper(obj: ChangelogLines, type: VersionType) { | ||
const releaseLines = obj[type]; | ||
if (!releaseLines.length) return ""; | ||
const resolvedLines = await Promise.all(releaseLines); | ||
return `### ${startCase(type)} Changes\n\n${resolvedLines.join("")}`; | ||
async function generateChangesForVersionTypeMarkdown( | ||
obj: ChangelogLines, | ||
type: VersionType | ||
) { | ||
let releaseLines = await Promise.all(obj[type]); | ||
releaseLines = releaseLines.filter(x => x); | ||
if (releaseLines.length) { | ||
return `### ${startCase(type)} Changes\n\n${releaseLines.join("")}`; | ||
} | ||
} | ||
@@ -54,7 +56,2 @@ | ||
// First, we construct the release lines, summaries of changesets that caused us to be released | ||
const majorReleaseLines = await smallHelper(releaseObj, "major"); | ||
const minorReleaseLines = await smallHelper(releaseObj, "minor"); | ||
const patchReleaseLines = await smallHelper(releaseObj, "patch"); | ||
let dependentReleases = releases.filter(rel => { | ||
@@ -82,6 +79,8 @@ return ( | ||
const dependencyReleaseLine = await changelogFuncs.getDependencyReleaseLine( | ||
relevantChangesets, | ||
dependentReleases, | ||
changelogOpts | ||
releaseObj.patch.push( | ||
changelogFuncs.getDependencyReleaseLine( | ||
relevantChangesets, | ||
dependentReleases, | ||
changelogOpts | ||
) | ||
); | ||
@@ -91,9 +90,5 @@ | ||
`## ${release.newVersion}`, | ||
majorReleaseLines, | ||
minorReleaseLines, | ||
patchReleaseLines, | ||
patchReleaseLines.length < 1 && dependencyReleaseLine.length > 0 | ||
? "### Patch Changes" | ||
: "", | ||
dependencyReleaseLine | ||
await generateChangesForVersionTypeMarkdown(releaseObj, "major"), | ||
await generateChangesForVersionTypeMarkdown(releaseObj, "minor"), | ||
await generateChangesForVersionTypeMarkdown(releaseObj, "patch") | ||
] | ||
@@ -100,0 +95,0 @@ .filter(line => line) |
@@ -53,3 +53,4 @@ import { copyFixtureIntoTempDir } from "jest-fixtures"; | ||
changesets: this.changesets, | ||
releases: this.releases | ||
releases: this.releases, | ||
preState: undefined | ||
}; | ||
@@ -167,4 +168,5 @@ } | ||
if (!pkgPathA || !pkgPathB) | ||
if (!pkgPathA || !pkgPathB) { | ||
throw new Error(`could not find an updated package json`); | ||
} | ||
let pkgJSONA = await fs.readJSON(pkgPathA); | ||
@@ -253,2 +255,3 @@ let pkgJSONB = await fs.readJSON(pkgPathB); | ||
### Patch Changes | ||
- pkg-b@2.0.0`); | ||
@@ -290,3 +293,4 @@ | ||
} | ||
] | ||
], | ||
preState: undefined | ||
}); | ||
@@ -293,0 +297,0 @@ changedFiles = testResults.changedFiles; |
@@ -52,2 +52,4 @@ import { | ||
const workspacesByName = new Map(workspaces.map(x => [x.name, x])); | ||
let { releases, changesets } = releasePlan; | ||
@@ -58,4 +60,3 @@ | ||
let releaseWithWorkspaces = releases.map(release => { | ||
// @ts-ignore we already threw if workspaces wasn't defined | ||
let workspace = workspaces.find(ws => ws.name === release.name); | ||
let workspace = workspacesByName.get(release.name); | ||
if (!workspace) | ||
@@ -76,7 +77,18 @@ throw new Error( | ||
let versionsToUpdate = releases.map( | ||
({ name, newVersion }) => ({ name, version: newVersion }), | ||
{} | ||
); | ||
if (releasePlan.preState !== undefined) { | ||
if (releasePlan.preState.mode === "exit") { | ||
await fs.remove(path.join(cwd, ".changeset", "pre.json")); | ||
} else { | ||
await fs.writeFile( | ||
path.join(cwd, ".changeset", "pre.json"), | ||
JSON.stringify(releasePlan.preState, null, 2) + "\n" | ||
); | ||
} | ||
} | ||
let versionsToUpdate = releases.map(({ name, newVersion }) => ({ | ||
name, | ||
version: newVersion | ||
})); | ||
// iterate over releases updating packages | ||
@@ -110,19 +122,23 @@ let finalisedRelease = releaseWithChangelogs.map(release => { | ||
let changesetFolder = path.resolve(cwd, ".changeset"); | ||
if ( | ||
releasePlan.preState === undefined || | ||
releasePlan.preState.mode === "exit" | ||
) { | ||
let changesetFolder = path.resolve(cwd, ".changeset"); | ||
await Promise.all( | ||
changesets.map(async changeset => { | ||
let changesetPath = path.resolve(changesetFolder, `${changeset.id}.md`); | ||
let changesetFolderPath = path.resolve(changesetFolder, changeset.id); | ||
if (await fs.pathExists(changesetPath)) { | ||
touchedFiles.push(changesetPath); | ||
await fs.remove(changesetPath); | ||
// TO REMOVE LOGIC - this works to remove v1 changesets. We should be removed in the future | ||
} else if (await fs.pathExists(changesetFolderPath)) { | ||
touchedFiles.push(changesetFolderPath); | ||
await fs.remove(changesetFolderPath); | ||
} | ||
}) | ||
); | ||
} | ||
await Promise.all( | ||
changesets.map(async changeset => { | ||
let changesetPath = path.resolve(changesetFolder, `${changeset.id}.md`); | ||
let changesetFolderPath = path.resolve(changesetFolder, changeset.id); | ||
if (await fs.pathExists(changesetPath)) { | ||
touchedFiles.push(changesetPath); | ||
await fs.remove(changesetPath); | ||
// TO REMOVE LOGIC - this works to remove v1 changesets. We should be removed in the future | ||
} else if (await fs.pathExists(changesetFolderPath)) { | ||
touchedFiles.push(changesetFolderPath); | ||
await fs.remove(changesetFolderPath); | ||
} | ||
}) | ||
); | ||
if (config.commit) { | ||
@@ -187,5 +203,4 @@ let newTouchedFilesArr = [...touchedFiles]; | ||
releaseWithWorkspaces.map(async release => { | ||
let changelog: string; | ||
try { | ||
changelog = await getChangelogEntry( | ||
let changelog = await getChangelogEntry( | ||
release, | ||
@@ -197,2 +212,7 @@ releaseWithWorkspaces, | ||
); | ||
return { | ||
...release, | ||
changelog | ||
}; | ||
} catch (e) { | ||
@@ -207,7 +227,2 @@ console.error( | ||
} | ||
return { | ||
...release, | ||
changelog | ||
}; | ||
}) | ||
@@ -214,0 +229,0 @@ ); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
73368
1785
1
- Removed@changesets/types@0.3.1(transitive)
Updated@changesets/config@^0.2.3
Updated@changesets/git@^0.2.4
Updated@changesets/types@^0.4.0
Updatedget-workspaces@^0.5.2