@changesets/assemble-release-plan
Advanced tools
Comparing version 5.2.1 to 5.2.2
# @changesets/assemble-release-plan | ||
## 5.2.2 | ||
### Patch Changes | ||
- [#949](https://github.com/changesets/changesets/pull/949) [`64585ea`](https://github.com/changesets/changesets/commit/64585ea4323c4cf51a23b0635990b568d1f58b2b) Thanks [@Andarist](https://github.com/Andarist), [@BPScott](https://github.com/BPScott)! - Fixed the issue that caused transitive dependents of dev dependents to be bumped when a package got bumped and when using `___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.updateInternalDependents: "always"`. To illustrate this with an example: | ||
``` | ||
pkg-a - version: 1.0.0 | ||
pkg-b - devDependencies['pkg-a']: 1.0.0 | ||
pkg-c - dependencies['pkg-b']: 1.0.0 | ||
``` | ||
With a changeset for `pkg-a` the `pkg-c` could have been sometimes incorrectly released. | ||
- Updated dependencies [[`8c08469`](https://github.com/changesets/changesets/commit/8c0846977597ddaf51aaeb35f1f0f9428bf8ba14)]: | ||
- @changesets/types@5.2.0 | ||
- @changesets/get-dependents-graph@1.3.4 | ||
## 5.2.1 | ||
@@ -51,3 +69,3 @@ | ||
* [#751](https://github.com/changesets/changesets/pull/751) [`59c7ebc`](https://github.com/changesets/changesets/commit/59c7ebc7a5e75f69f5487e95a85cd1b7062ac39d) Thanks [@Rugvip](https://github.com/Rugvip)! - Fixed an issue where dependent packages would sometimes not get bumped properly when exiting prerelease mode. | ||
- [#751](https://github.com/changesets/changesets/pull/751) [`59c7ebc`](https://github.com/changesets/changesets/commit/59c7ebc7a5e75f69f5487e95a85cd1b7062ac39d) Thanks [@Rugvip](https://github.com/Rugvip)! - Fixed an issue where dependent packages would sometimes not get bumped properly when exiting prerelease mode. | ||
@@ -54,0 +72,0 @@ - [#703](https://github.com/changesets/changesets/pull/703) [`15c461d`](https://github.com/changesets/changesets/commit/15c461d5de94a274ccc8b33755a133a513339b0a) Thanks [@Andarist](https://github.com/Andarist)! - Fixed an issue with dependant packages being always bumped when their `*` dependency was bumped. |
@@ -133,3 +133,5 @@ 'use strict'; | ||
} of dependencyVersionRanges) { | ||
if (shouldBumpMajor({ | ||
if (nextRelease.type === "none") { | ||
continue; | ||
} else if (shouldBumpMajor({ | ||
dependent, | ||
@@ -144,23 +146,20 @@ depType, | ||
type = "major"; | ||
} else { | ||
if ( // TODO validate this - I don't think it's right anymore | ||
(!releases.has(dependent) || releases.get(dependent).type === "none") && (config.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.updateInternalDependents === "always" || !semver__default['default'].satisfies(incrementVersion(nextRelease, preInfo), versionRange))) { | ||
switch (depType) { | ||
case "dependencies": | ||
case "optionalDependencies": | ||
case "peerDependencies": | ||
if (type !== "major" && type !== "minor") { | ||
type = "patch"; | ||
} | ||
} else if ((!releases.has(dependent) || releases.get(dependent).type === "none") && (config.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.updateInternalDependents === "always" || !semver__default['default'].satisfies(incrementVersion(nextRelease, preInfo), versionRange))) { | ||
switch (depType) { | ||
case "dependencies": | ||
case "optionalDependencies": | ||
case "peerDependencies": | ||
if (type !== "major" && type !== "minor") { | ||
type = "patch"; | ||
} | ||
break; | ||
break; | ||
case "devDependencies": | ||
{ | ||
// We don't need a version bump if the package is only in the devDependencies of the dependent package | ||
if (type !== "major" && type !== "minor" && type !== "patch") { | ||
type = "none"; | ||
} | ||
case "devDependencies": | ||
{ | ||
// We don't need a version bump if the package is only in the devDependencies of the dependent package | ||
if (type !== "major" && type !== "minor" && type !== "patch") { | ||
type = "none"; | ||
} | ||
} | ||
} | ||
} | ||
@@ -180,6 +179,3 @@ } | ||
}; | ||
}).filter(({ | ||
type | ||
}) => type).forEach( // @ts-ignore - I don't know how to make typescript understand that the filter above guarantees this and I got sick of trying | ||
({ | ||
}).filter(dependentItem => !!dependentItem.type).forEach(({ | ||
name, | ||
@@ -186,0 +182,0 @@ type, |
@@ -73,3 +73,3 @@ "use strict"; | ||
const dependencyVersionRanges = getDependencyVersionRanges(dependentPackage.packageJson, nextRelease); | ||
for (const {depType: depType, versionRange: versionRange} of dependencyVersionRanges) if (shouldBumpMajor({ | ||
for (const {depType: depType, versionRange: versionRange} of dependencyVersionRanges) if ("none" !== nextRelease.type) if (shouldBumpMajor({ | ||
dependent: dependent, | ||
@@ -99,3 +99,3 @@ depType: depType, | ||
}; | ||
})).filter((({type: type}) => type)).forEach((({name: name, type: type, pkgJSON: pkgJSON}) => { | ||
})).filter((dependentItem => !!dependentItem.type)).forEach((({name: name, type: type, pkgJSON: pkgJSON}) => { | ||
updated = !0; | ||
@@ -102,0 +102,0 @@ const existing = releases.get(name); |
@@ -125,3 +125,5 @@ import semver, { inc, parse } from 'semver'; | ||
} of dependencyVersionRanges) { | ||
if (shouldBumpMajor({ | ||
if (nextRelease.type === "none") { | ||
continue; | ||
} else if (shouldBumpMajor({ | ||
dependent, | ||
@@ -136,23 +138,20 @@ depType, | ||
type = "major"; | ||
} else { | ||
if ( // TODO validate this - I don't think it's right anymore | ||
(!releases.has(dependent) || releases.get(dependent).type === "none") && (config.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.updateInternalDependents === "always" || !semver.satisfies(incrementVersion(nextRelease, preInfo), versionRange))) { | ||
switch (depType) { | ||
case "dependencies": | ||
case "optionalDependencies": | ||
case "peerDependencies": | ||
if (type !== "major" && type !== "minor") { | ||
type = "patch"; | ||
} | ||
} else if ((!releases.has(dependent) || releases.get(dependent).type === "none") && (config.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.updateInternalDependents === "always" || !semver.satisfies(incrementVersion(nextRelease, preInfo), versionRange))) { | ||
switch (depType) { | ||
case "dependencies": | ||
case "optionalDependencies": | ||
case "peerDependencies": | ||
if (type !== "major" && type !== "minor") { | ||
type = "patch"; | ||
} | ||
break; | ||
break; | ||
case "devDependencies": | ||
{ | ||
// We don't need a version bump if the package is only in the devDependencies of the dependent package | ||
if (type !== "major" && type !== "minor" && type !== "patch") { | ||
type = "none"; | ||
} | ||
case "devDependencies": | ||
{ | ||
// We don't need a version bump if the package is only in the devDependencies of the dependent package | ||
if (type !== "major" && type !== "minor" && type !== "patch") { | ||
type = "none"; | ||
} | ||
} | ||
} | ||
} | ||
@@ -172,6 +171,3 @@ } | ||
}; | ||
}).filter(({ | ||
type | ||
}) => type).forEach( // @ts-ignore - I don't know how to make typescript understand that the filter above guarantees this and I got sick of trying | ||
({ | ||
}).filter(dependentItem => !!dependentItem.type).forEach(({ | ||
name, | ||
@@ -178,0 +174,0 @@ type, |
import { Config } from "@changesets/types"; | ||
import { Package } from "@manypkg/get-packages"; | ||
import { InternalRelease, PreInfo } from "./types"; | ||
export default function determineDependents({ releases, packagesByName, dependencyGraph, preInfo, config }: { | ||
export default function determineDependents({ releases, packagesByName, dependencyGraph, preInfo, config, }: { | ||
releases: Map<string, InternalRelease>; | ||
@@ -6,0 +6,0 @@ packagesByName: Map<string, Package>; |
{ | ||
"name": "@changesets/assemble-release-plan", | ||
"version": "5.2.1", | ||
"version": "5.2.2", | ||
"description": "Reads changesets and adds information on dependents that need bumping", | ||
@@ -12,4 +12,4 @@ "main": "dist/assemble-release-plan.cjs.js", | ||
"@changesets/errors": "^0.1.4", | ||
"@changesets/get-dependents-graph": "^1.3.3", | ||
"@changesets/types": "^5.1.0", | ||
"@changesets/get-dependents-graph": "^1.3.4", | ||
"@changesets/types": "^5.2.0", | ||
"@manypkg/get-packages": "^1.1.3", | ||
@@ -16,0 +16,0 @@ "semver": "^5.4.1" |
@@ -29,3 +29,3 @@ import { Linked } from "@changesets/types"; | ||
let releasingLinkedPackages = [...releases.values()].filter( | ||
release => | ||
(release) => | ||
linkedPackages.includes(release.name) && release.type !== "none" | ||
@@ -32,0 +32,0 @@ ); |
import semver from "semver"; | ||
import { | ||
Release, | ||
DependencyType, | ||
PackageJSON, | ||
VersionType, | ||
Config | ||
Config, | ||
} from "@changesets/types"; | ||
@@ -30,3 +29,3 @@ import { Package } from "@manypkg/get-packages"; | ||
preInfo, | ||
config | ||
config, | ||
}: { | ||
@@ -55,3 +54,3 @@ releases: Map<string, InternalRelease>; | ||
pkgDependents | ||
.map(dependent => { | ||
.map((dependent) => { | ||
let type: VersionType | undefined; | ||
@@ -71,3 +70,5 @@ | ||
for (const { depType, versionRange } of dependencyVersionRanges) { | ||
if ( | ||
if (nextRelease.type === "none") { | ||
continue; | ||
} else if ( | ||
shouldBumpMajor({ | ||
@@ -82,36 +83,33 @@ dependent, | ||
config.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH | ||
.onlyUpdatePeerDependentsWhenOutOfRange | ||
.onlyUpdatePeerDependentsWhenOutOfRange, | ||
}) | ||
) { | ||
type = "major"; | ||
} else { | ||
if ( | ||
// TODO validate this - I don't think it's right anymore | ||
(!releases.has(dependent) || | ||
releases.get(dependent)!.type === "none") && | ||
(config.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH | ||
.updateInternalDependents === "always" || | ||
!semver.satisfies( | ||
incrementVersion(nextRelease, preInfo), | ||
versionRange | ||
)) | ||
) { | ||
switch (depType) { | ||
case "dependencies": | ||
case "optionalDependencies": | ||
case "peerDependencies": | ||
if (type !== "major" && type !== "minor") { | ||
type = "patch"; | ||
} | ||
break; | ||
case "devDependencies": { | ||
// We don't need a version bump if the package is only in the devDependencies of the dependent package | ||
if ( | ||
type !== "major" && | ||
type !== "minor" && | ||
type !== "patch" | ||
) { | ||
type = "none"; | ||
} | ||
} else if ( | ||
(!releases.has(dependent) || | ||
releases.get(dependent)!.type === "none") && | ||
(config.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH | ||
.updateInternalDependents === "always" || | ||
!semver.satisfies( | ||
incrementVersion(nextRelease, preInfo), | ||
versionRange | ||
)) | ||
) { | ||
switch (depType) { | ||
case "dependencies": | ||
case "optionalDependencies": | ||
case "peerDependencies": | ||
if (type !== "major" && type !== "minor") { | ||
type = "patch"; | ||
} | ||
break; | ||
case "devDependencies": { | ||
// We don't need a version bump if the package is only in the devDependencies of the dependent package | ||
if ( | ||
type !== "major" && | ||
type !== "minor" && | ||
type !== "patch" | ||
) { | ||
type = "none"; | ||
} | ||
} | ||
@@ -128,35 +126,37 @@ } | ||
type, | ||
pkgJSON: dependentPackage.packageJson | ||
pkgJSON: dependentPackage.packageJson, | ||
}; | ||
}) | ||
.filter(({ type }) => type) | ||
.forEach( | ||
// @ts-ignore - I don't know how to make typescript understand that the filter above guarantees this and I got sick of trying | ||
({ name, type, pkgJSON }: Release & { pkgJSON: PackageJSON }) => { | ||
// At this point, we know if we are making a change | ||
updated = true; | ||
.filter( | ||
( | ||
dependentItem | ||
): dependentItem is typeof dependentItem & { type: VersionType } => | ||
!!dependentItem.type | ||
) | ||
.forEach(({ name, type, pkgJSON }) => { | ||
// At this point, we know if we are making a change | ||
updated = true; | ||
const existing = releases.get(name); | ||
// For things that are being given a major bump, we check if we have already | ||
// added them here. If we have, we update the existing item instead of pushing it on to search. | ||
// It is safe to not add it to pkgsToSearch because it should have already been searched at the | ||
// largest possible bump type. | ||
const existing = releases.get(name); | ||
// For things that are being given a major bump, we check if we have already | ||
// added them here. If we have, we update the existing item instead of pushing it on to search. | ||
// It is safe to not add it to pkgsToSearch because it should have already been searched at the | ||
// largest possible bump type. | ||
if (existing && type === "major" && existing.type !== "major") { | ||
existing.type = "major"; | ||
if (existing && type === "major" && existing.type !== "major") { | ||
existing.type = "major"; | ||
pkgsToSearch.push(existing); | ||
} else { | ||
let newDependent: InternalRelease = { | ||
name, | ||
type, | ||
oldVersion: pkgJSON.version, | ||
changesets: [] | ||
}; | ||
pkgsToSearch.push(existing); | ||
} else { | ||
let newDependent: InternalRelease = { | ||
name, | ||
type, | ||
oldVersion: pkgJSON.version, | ||
changesets: [], | ||
}; | ||
pkgsToSearch.push(newDependent); | ||
releases.set(name, newDependent); | ||
} | ||
pkgsToSearch.push(newDependent); | ||
releases.set(name, newDependent); | ||
} | ||
); | ||
}); | ||
} | ||
@@ -183,3 +183,3 @@ | ||
"peerDependencies", | ||
"optionalDependencies" | ||
"optionalDependencies", | ||
] as const; | ||
@@ -203,3 +203,3 @@ const dependencyVersionRanges: { | ||
dependencyRelease.oldVersion | ||
: versionRange.replace(/^workspace:/, "") | ||
: versionRange.replace(/^workspace:/, ""), | ||
}); | ||
@@ -209,3 +209,3 @@ } else { | ||
depType: type, | ||
versionRange | ||
versionRange, | ||
}); | ||
@@ -224,3 +224,3 @@ } | ||
preInfo, | ||
onlyUpdatePeerDependentsWhenOutOfRange | ||
onlyUpdatePeerDependentsWhenOutOfRange, | ||
}: { | ||
@@ -227,0 +227,0 @@ dependent: string; |
@@ -15,3 +15,3 @@ // This function takes in changesets and returns one release per | ||
changesets.forEach(changeset => { | ||
changesets.forEach((changeset) => { | ||
changeset.releases | ||
@@ -34,3 +34,3 @@ // Filter out ignored packages because they should not trigger a release | ||
oldVersion: pkg.packageJson.version, | ||
changesets: [changeset.id] | ||
changesets: [changeset.id], | ||
}; | ||
@@ -37,0 +37,0 @@ } else { |
@@ -11,3 +11,3 @@ import { incrementVersion } from "./increment"; | ||
changesets: [], | ||
oldVersion: "1.0.0" | ||
oldVersion: "1.0.0", | ||
}; | ||
@@ -21,4 +21,4 @@ | ||
initialVersions: {}, | ||
changesets: [] | ||
} | ||
changesets: [], | ||
}, | ||
}; | ||
@@ -25,0 +25,0 @@ |
@@ -30,3 +30,3 @@ import { defaultConfig } from "@changesets/config"; | ||
oldVersion: "1.0.0", | ||
changesets: ["strange-words-combine"] | ||
changesets: ["strange-words-combine"], | ||
}); | ||
@@ -42,3 +42,3 @@ }); | ||
{ | ||
tag: undefined | ||
tag: undefined, | ||
} | ||
@@ -58,3 +58,3 @@ ); | ||
{ | ||
tag: "foo" | ||
tag: "foo", | ||
} | ||
@@ -73,4 +73,4 @@ ); | ||
{ name: "pkg-c", type: "patch" }, | ||
{ name: "pkg-d", type: "major" } | ||
] | ||
{ name: "pkg-d", type: "major" }, | ||
], | ||
}); | ||
@@ -98,3 +98,3 @@ | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -120,4 +120,4 @@ | ||
{ name: "pkg-b", type: "none" }, | ||
{ name: "pkg-c", type: "none" } | ||
] | ||
{ name: "pkg-c", type: "none" }, | ||
], | ||
}); | ||
@@ -129,4 +129,4 @@ setup.addChangeset({ | ||
{ name: "pkg-b", type: "minor" }, | ||
{ name: "pkg-c", type: "major" } | ||
] | ||
{ name: "pkg-c", type: "major" }, | ||
], | ||
}); | ||
@@ -138,4 +138,4 @@ setup.addChangeset({ | ||
{ name: "pkg-b", type: "none" }, | ||
{ name: "pkg-c", type: "none" } | ||
] | ||
{ name: "pkg-c", type: "none" }, | ||
], | ||
}); | ||
@@ -168,3 +168,3 @@ | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -228,3 +228,3 @@ | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -249,3 +249,3 @@ | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -258,3 +258,3 @@ | ||
...defaultConfig, | ||
bumpVersionsWithWorkspaceProtocolOnly: true | ||
bumpVersionsWithWorkspaceProtocolOnly: true, | ||
}, | ||
@@ -276,3 +276,3 @@ undefined | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -285,3 +285,3 @@ | ||
...defaultConfig, | ||
bumpVersionsWithWorkspaceProtocolOnly: true | ||
bumpVersionsWithWorkspaceProtocolOnly: true, | ||
}, | ||
@@ -308,3 +308,3 @@ undefined | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -332,4 +332,4 @@ | ||
{ name: "pkg-a", type: "major" }, | ||
{ name: "pkg-c", type: "major" } | ||
] | ||
{ name: "pkg-c", type: "major" }, | ||
], | ||
}); | ||
@@ -357,3 +357,3 @@ | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-b", type: "none" }] | ||
releases: [{ name: "pkg-b", type: "none" }], | ||
}); | ||
@@ -378,3 +378,3 @@ | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -397,3 +397,3 @@ | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -416,3 +416,3 @@ | ||
id: "nonsense-words-combine", | ||
releases: [{ name: "pkg-a", type: "minor" }] | ||
releases: [{ name: "pkg-a", type: "minor" }], | ||
}); | ||
@@ -436,7 +436,7 @@ | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
setup.addChangeset({ | ||
id: "small-dogs-sad", | ||
releases: [{ name: "pkg-b", type: "minor" }] | ||
releases: [{ name: "pkg-b", type: "minor" }], | ||
}); | ||
@@ -448,3 +448,3 @@ const { releases } = assembleReleasePlan( | ||
...defaultConfig, | ||
ignore: ["pkg-b"] | ||
ignore: ["pkg-b"], | ||
}, | ||
@@ -462,7 +462,7 @@ undefined | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
setup.addChangeset({ | ||
id: "small-dogs-sad", | ||
releases: [{ name: "pkg-b", type: "minor" }] | ||
releases: [{ name: "pkg-b", type: "minor" }], | ||
}); | ||
@@ -474,3 +474,3 @@ const { releases } = assembleReleasePlan( | ||
...defaultConfig, | ||
ignore: ["pkg-b"] | ||
ignore: ["pkg-b"], | ||
}, | ||
@@ -491,7 +491,7 @@ undefined | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
setup.addChangeset({ | ||
id: "small-dogs-sad", | ||
releases: [{ name: "pkg-b", type: "minor" }] | ||
releases: [{ name: "pkg-b", type: "minor" }], | ||
}); | ||
@@ -503,3 +503,3 @@ const { releases } = assembleReleasePlan( | ||
...defaultConfig, | ||
ignore: ["pkg-b"] | ||
ignore: ["pkg-b"], | ||
}, | ||
@@ -520,7 +520,7 @@ undefined | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
setup.addChangeset({ | ||
id: "small-dogs-sad", | ||
releases: [{ name: "pkg-b", type: "minor" }] | ||
releases: [{ name: "pkg-b", type: "minor" }], | ||
}); | ||
@@ -532,3 +532,3 @@ const { releases } = assembleReleasePlan( | ||
...defaultConfig, | ||
ignore: ["pkg-b"] | ||
ignore: ["pkg-b"], | ||
}, | ||
@@ -551,4 +551,4 @@ undefined | ||
{ name: "pkg-a", type: "major" }, | ||
{ name: "pkg-b", type: "minor" } | ||
] | ||
{ name: "pkg-b", type: "minor" }, | ||
], | ||
}); | ||
@@ -562,3 +562,3 @@ | ||
...defaultConfig, | ||
ignore: ["pkg-b"] | ||
ignore: ["pkg-b"], | ||
}, | ||
@@ -575,2 +575,20 @@ undefined | ||
it("should not bump a dev dependent nor its dependent when a package gets bumped", () => { | ||
setup.updateDevDependency("pkg-b", "pkg-a", "1.0.0"); | ||
setup.updateDependency("pkg-c", "pkg-b", "1.0.0"); | ||
let { releases } = assembleReleasePlan( | ||
setup.changesets, | ||
setup.packages, | ||
defaultConfig, | ||
undefined | ||
); | ||
expect(releases.length).toBe(2); | ||
expect(releases[0].name).toEqual("pkg-a"); | ||
expect(releases[0].newVersion).toEqual("1.0.1"); | ||
expect(releases[1].name).toEqual("pkg-b"); | ||
expect(releases[1].newVersion).toEqual("1.0.0"); | ||
}); | ||
describe("fixed packages", () => { | ||
@@ -580,3 +598,3 @@ it("should assemble release plan for fixed packages", () => { | ||
id: "just-some-umbrellas", | ||
releases: [{ name: "pkg-a", type: "minor" }] | ||
releases: [{ name: "pkg-a", type: "minor" }], | ||
}); | ||
@@ -589,3 +607,3 @@ | ||
...defaultConfig, | ||
fixed: [["pkg-a", "pkg-b"]] | ||
fixed: [["pkg-a", "pkg-b"]], | ||
}, | ||
@@ -604,4 +622,4 @@ undefined | ||
{ name: "pkg-b", type: "minor" }, | ||
{ name: "pkg-a", type: "patch" } | ||
] | ||
{ name: "pkg-a", type: "patch" }, | ||
], | ||
}); | ||
@@ -616,3 +634,3 @@ | ||
...defaultConfig, | ||
fixed: [["pkg-a", "pkg-b", "pkg-c"]] | ||
fixed: [["pkg-a", "pkg-b", "pkg-c"]], | ||
}, | ||
@@ -636,7 +654,7 @@ undefined | ||
id: "just-some-umbrellas", | ||
releases: [{ name: "pkg-b", type: "major" }] | ||
releases: [{ name: "pkg-b", type: "major" }], | ||
}); | ||
setup.addChangeset({ | ||
id: "totally-average-verbiage", | ||
releases: [{ name: "pkg-d", type: "minor" }] | ||
releases: [{ name: "pkg-d", type: "minor" }], | ||
}); | ||
@@ -653,4 +671,4 @@ | ||
["pkg-a", "pkg-b"], | ||
["pkg-c", "pkg-d"] | ||
] | ||
["pkg-c", "pkg-d"], | ||
], | ||
}, | ||
@@ -673,7 +691,7 @@ undefined | ||
id: "just-some-umbrellas", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
setup.addChangeset({ | ||
id: "totally-average-verbiage", | ||
releases: [{ name: "pkg-d", type: "minor" }] | ||
releases: [{ name: "pkg-d", type: "minor" }], | ||
}); | ||
@@ -690,4 +708,4 @@ | ||
["pkg-a", "pkg-b"], | ||
["pkg-c", "pkg-d"] | ||
] | ||
["pkg-c", "pkg-d"], | ||
], | ||
}, | ||
@@ -715,4 +733,4 @@ undefined | ||
["pkg-a", "pkg-b"], | ||
["pkg-c", "pkg-d"] | ||
] | ||
["pkg-c", "pkg-d"], | ||
], | ||
}, | ||
@@ -730,3 +748,3 @@ undefined | ||
id: "some-id", | ||
releases: [{ type: "minor", name: "pkg-a" }] | ||
releases: [{ type: "minor", name: "pkg-a" }], | ||
}); | ||
@@ -739,3 +757,3 @@ | ||
...defaultConfig, | ||
fixed: [["pkg-a", "pkg-c"]] | ||
fixed: [["pkg-a", "pkg-c"]], | ||
}, | ||
@@ -748,12 +766,12 @@ undefined | ||
name: "pkg-a", | ||
newVersion: "1.1.0" | ||
newVersion: "1.1.0", | ||
}, | ||
{ | ||
name: "pkg-c", | ||
newVersion: "1.1.0" | ||
newVersion: "1.1.0", | ||
}, | ||
{ | ||
name: "pkg-b", | ||
newVersion: "2.0.0" | ||
} | ||
newVersion: "2.0.0", | ||
}, | ||
]); | ||
@@ -767,3 +785,3 @@ }); | ||
id: "just-some-umbrellas", | ||
releases: [{ name: "pkg-b", type: "major" }] | ||
releases: [{ name: "pkg-b", type: "major" }], | ||
}); | ||
@@ -776,3 +794,3 @@ | ||
...defaultConfig, | ||
linked: [["pkg-a", "pkg-b"]] | ||
linked: [["pkg-a", "pkg-b"]], | ||
}, | ||
@@ -791,4 +809,4 @@ undefined | ||
{ name: "pkg-b", type: "minor" }, | ||
{ name: "pkg-a", type: "patch" } | ||
] | ||
{ name: "pkg-a", type: "patch" }, | ||
], | ||
}); | ||
@@ -803,3 +821,3 @@ | ||
...defaultConfig, | ||
linked: [["pkg-a", "pkg-b", "pkg-c"]] | ||
linked: [["pkg-a", "pkg-b", "pkg-c"]], | ||
}, | ||
@@ -823,7 +841,7 @@ undefined | ||
id: "just-some-umbrellas", | ||
releases: [{ name: "pkg-b", type: "major" }] | ||
releases: [{ name: "pkg-b", type: "major" }], | ||
}); | ||
setup.addChangeset({ | ||
id: "totally-average-verbiage", | ||
releases: [{ name: "pkg-d", type: "minor" }] | ||
releases: [{ name: "pkg-d", type: "minor" }], | ||
}); | ||
@@ -840,4 +858,4 @@ | ||
["pkg-a", "pkg-b"], | ||
["pkg-c", "pkg-d"] | ||
] | ||
["pkg-c", "pkg-d"], | ||
], | ||
}, | ||
@@ -861,4 +879,4 @@ undefined | ||
["pkg-a", "pkg-b"], | ||
["pkg-c", "pkg-d"] | ||
] | ||
["pkg-c", "pkg-d"], | ||
], | ||
}, | ||
@@ -875,3 +893,3 @@ undefined | ||
id: "some-id", | ||
releases: [{ type: "minor", name: "pkg-c" }] | ||
releases: [{ type: "minor", name: "pkg-c" }], | ||
}); | ||
@@ -884,3 +902,3 @@ | ||
...defaultConfig, | ||
linked: [["pkg-a", "pkg-c"]] | ||
linked: [["pkg-a", "pkg-c"]], | ||
}, | ||
@@ -893,12 +911,12 @@ undefined | ||
name: "pkg-a", | ||
newVersion: "1.1.0" | ||
newVersion: "1.1.0", | ||
}, | ||
{ | ||
name: "pkg-c", | ||
newVersion: "1.1.0" | ||
newVersion: "1.1.0", | ||
}, | ||
{ | ||
name: "pkg-b", | ||
newVersion: "2.0.0" | ||
} | ||
newVersion: "2.0.0", | ||
}, | ||
]); | ||
@@ -914,3 +932,3 @@ }); | ||
{ | ||
...defaultConfig | ||
...defaultConfig, | ||
}, | ||
@@ -921,3 +939,3 @@ { | ||
initialVersions: {}, | ||
mode: "exit" | ||
mode: "exit", | ||
} | ||
@@ -940,3 +958,3 @@ ); | ||
{ | ||
...defaultConfig | ||
...defaultConfig, | ||
}, | ||
@@ -948,5 +966,5 @@ { | ||
"pkg-a": "1.0.0", | ||
"pkg-b": "1.0.0" | ||
"pkg-b": "1.0.0", | ||
}, | ||
mode: "exit" | ||
mode: "exit", | ||
} | ||
@@ -972,3 +990,3 @@ ); | ||
...defaultConfig, | ||
ignore: ["pkg-b"] | ||
ignore: ["pkg-b"], | ||
}, | ||
@@ -980,5 +998,5 @@ { | ||
"pkg-a": "1.0.0", | ||
"pkg-b": "1.0.0" | ||
"pkg-b": "1.0.0", | ||
}, | ||
mode: "exit" | ||
mode: "exit", | ||
} | ||
@@ -1001,5 +1019,5 @@ ); | ||
name: "pkg-a", | ||
type: "major" | ||
} | ||
] | ||
type: "major", | ||
}, | ||
], | ||
}); | ||
@@ -1014,5 +1032,5 @@ setup.updatePackage("pkg-a", "2.0.0-next.0"); | ||
name: "pkg-a", | ||
type: "minor" | ||
} | ||
] | ||
type: "minor", | ||
}, | ||
], | ||
}); | ||
@@ -1023,3 +1041,3 @@ const { releases } = assembleReleasePlan( | ||
{ | ||
...defaultConfig | ||
...defaultConfig, | ||
}, | ||
@@ -1032,5 +1050,5 @@ { | ||
"pkg-b": "1.0.0", | ||
"pkg-c": "1.0.0" | ||
"pkg-c": "1.0.0", | ||
}, | ||
mode: "pre" | ||
mode: "pre", | ||
} | ||
@@ -1051,3 +1069,3 @@ ); | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-b", type: "none" }] | ||
releases: [{ name: "pkg-b", type: "none" }], | ||
}); | ||
@@ -1072,3 +1090,3 @@ | ||
id: "big-cats-delight", | ||
releases: [{ name: "pkg-b", type: "none" }] | ||
releases: [{ name: "pkg-b", type: "none" }], | ||
}); | ||
@@ -1106,2 +1124,104 @@ | ||
}); | ||
describe("updateInternalDependents: always", () => { | ||
it("should bump a direct dependent when a dependency package gets bumped", () => { | ||
setup.updateDependency("pkg-b", "pkg-a", "^1.0.0"); | ||
let { releases } = assembleReleasePlan( | ||
setup.changesets, | ||
setup.packages, | ||
{ | ||
...defaultConfig, | ||
___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH: { | ||
...defaultConfig.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH, | ||
updateInternalDependents: "always", | ||
}, | ||
}, | ||
undefined | ||
); | ||
expect(releases.length).toBe(2); | ||
expect(releases[0].name).toEqual("pkg-a"); | ||
expect(releases[0].newVersion).toEqual("1.0.1"); | ||
expect(releases[1].name).toEqual("pkg-b"); | ||
expect(releases[1].newVersion).toEqual("1.0.1"); | ||
}); | ||
it("should bump a transitive dependent when a dependency package gets bumped", () => { | ||
setup.updateDependency("pkg-b", "pkg-a", "^1.0.0"); | ||
setup.updateDependency("pkg-c", "pkg-b", "^1.0.0"); | ||
let { releases } = assembleReleasePlan( | ||
setup.changesets, | ||
setup.packages, | ||
{ | ||
...defaultConfig, | ||
___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH: { | ||
...defaultConfig.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH, | ||
updateInternalDependents: "always", | ||
}, | ||
}, | ||
undefined | ||
); | ||
expect(releases.length).toBe(3); | ||
expect(releases[0].name).toEqual("pkg-a"); | ||
expect(releases[0].newVersion).toEqual("1.0.1"); | ||
expect(releases[1].name).toEqual("pkg-b"); | ||
expect(releases[1].newVersion).toEqual("1.0.1"); | ||
expect(releases[2].name).toEqual("pkg-c"); | ||
expect(releases[2].newVersion).toEqual("1.0.1"); | ||
}); | ||
it("not bump a dependent package when a dependency has `none` changeset", () => { | ||
setup.updateDependency("pkg-b", "pkg-c", "^1.0.0"); | ||
setup.addChangeset({ | ||
id: "stuff-and-nonsense", | ||
releases: [{ name: "pkg-c", type: "none" }], | ||
}); | ||
let { releases } = assembleReleasePlan( | ||
setup.changesets, | ||
setup.packages, | ||
{ | ||
...defaultConfig, | ||
___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH: { | ||
...defaultConfig.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH, | ||
updateInternalDependents: "always", | ||
}, | ||
}, | ||
undefined | ||
); | ||
expect(releases.length).toBe(2); | ||
expect(releases[0].name).toEqual("pkg-a"); | ||
expect(releases[0].newVersion).toEqual("1.0.1"); | ||
expect(releases[1].name).toEqual("pkg-c"); | ||
expect(releases[1].newVersion).toEqual("1.0.0"); | ||
}); | ||
it("should not bump a dev dependent nor its dependent when a package gets bumped", () => { | ||
setup.updateDevDependency("pkg-b", "pkg-a", "^1.0.0"); | ||
setup.updateDependency("pkg-c", "pkg-b", "^1.0.0"); | ||
let { releases } = assembleReleasePlan( | ||
setup.changesets, | ||
setup.packages, | ||
{ | ||
...defaultConfig, | ||
___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH: { | ||
...defaultConfig.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH, | ||
updateInternalDependents: "always", | ||
}, | ||
}, | ||
undefined | ||
); | ||
expect(releases.length).toBe(2); | ||
expect(releases[0].name).toEqual("pkg-a"); | ||
expect(releases[0].newVersion).toEqual("1.0.1"); | ||
expect(releases[1].name).toEqual("pkg-b"); | ||
expect(releases[1].newVersion).toEqual("1.0.0"); | ||
}); | ||
}); | ||
}); | ||
@@ -1138,3 +1258,3 @@ | ||
id: "stuff-and-nonsense", | ||
releases: [{ name: "pkg-a", type: "minor" }] | ||
releases: [{ name: "pkg-a", type: "minor" }], | ||
}); | ||
@@ -1160,3 +1280,3 @@ | ||
id: "stuff-and-nonsense", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -1211,3 +1331,3 @@ | ||
id: "anyway-the-windblows", | ||
releases: [{ name: "pkg-a", type: "none" }] | ||
releases: [{ name: "pkg-a", type: "none" }], | ||
}); | ||
@@ -1244,3 +1364,3 @@ | ||
id: "anyway-the-windblows", | ||
releases: [{ name: "pkg-a", type: "minor" }] | ||
releases: [{ name: "pkg-a", type: "minor" }], | ||
}); | ||
@@ -1265,3 +1385,3 @@ | ||
id: "anyway-the-windblows", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -1287,3 +1407,3 @@ | ||
id: "anyway-the-windblows", | ||
releases: [{ name: "pkg-a", type: "none" }] | ||
releases: [{ name: "pkg-a", type: "none" }], | ||
}); | ||
@@ -1320,3 +1440,3 @@ | ||
id: "anyway-the-windblows", | ||
releases: [{ name: "pkg-a", type: "minor" }] | ||
releases: [{ name: "pkg-a", type: "minor" }], | ||
}); | ||
@@ -1341,3 +1461,3 @@ | ||
id: "anyway-the-windblows", | ||
releases: [{ name: "pkg-a", type: "major" }] | ||
releases: [{ name: "pkg-a", type: "major" }], | ||
}); | ||
@@ -1364,3 +1484,3 @@ | ||
id: "anyway-the-windblows", | ||
releases: [{ name: "pkg-a", type: "minor" }] | ||
releases: [{ name: "pkg-a", type: "minor" }], | ||
}); | ||
@@ -1378,11 +1498,11 @@ | ||
name: "pkg-a", | ||
newVersion: "1.1.0" | ||
newVersion: "1.1.0", | ||
}); | ||
expect(releases[1]).toMatchObject({ | ||
name: "pkg-b", | ||
newVersion: "2.0.0" | ||
newVersion: "2.0.0", | ||
}); | ||
expect(releases[2]).toMatchObject({ | ||
name: "pkg-c", | ||
newVersion: "1.0.1" | ||
newVersion: "1.0.1", | ||
}); | ||
@@ -1396,3 +1516,3 @@ }); | ||
id: "anyway-the-windblows", | ||
releases: [{ name: "pkg-a", type: "minor" }] | ||
releases: [{ name: "pkg-a", type: "minor" }], | ||
}); | ||
@@ -1406,4 +1526,4 @@ let { releases } = assembleReleasePlan( | ||
...defaultConfig.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH, | ||
onlyUpdatePeerDependentsWhenOutOfRange: true | ||
} | ||
onlyUpdatePeerDependentsWhenOutOfRange: true, | ||
}, | ||
}, | ||
@@ -1416,7 +1536,9 @@ undefined | ||
}); | ||
}); | ||
describe("updateInternalDependents: always", () => { | ||
it("should bump a direct dependent when a dependency package gets bumped", () => { | ||
setup.updateDependency("pkg-b", "pkg-a", "^1.0.0"); | ||
it("should major bump dependent when leaving range", () => { | ||
setup.updatePeerDependency("pkg-b", "pkg-a", "~1.0.0"); | ||
setup.addChangeset({ | ||
id: "anyway-the-windblows", | ||
releases: [{ name: "pkg-a", type: "minor" }], | ||
}); | ||
@@ -1430,4 +1552,4 @@ let { releases } = assembleReleasePlan( | ||
...defaultConfig.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH, | ||
updateInternalDependents: "always" | ||
} | ||
onlyUpdatePeerDependentsWhenOutOfRange: true, | ||
}, | ||
}, | ||
@@ -1439,61 +1561,7 @@ undefined | ||
expect(releases[0].name).toEqual("pkg-a"); | ||
expect(releases[0].newVersion).toEqual("1.0.1"); | ||
expect(releases[0].newVersion).toEqual("1.1.0"); | ||
expect(releases[1].name).toEqual("pkg-b"); | ||
expect(releases[1].newVersion).toEqual("1.0.1"); | ||
expect(releases[1].newVersion).toEqual("2.0.0"); | ||
}); | ||
it("should bump a transitive dependent when a dependency package gets bumped", () => { | ||
setup.addPackage("pkg-c", "1.0.0"); | ||
setup.updateDependency("pkg-b", "pkg-a", "^1.0.0"); | ||
setup.updateDependency("pkg-c", "pkg-b", "^1.0.0"); | ||
let { releases } = assembleReleasePlan( | ||
setup.changesets, | ||
setup.packages, | ||
{ | ||
...defaultConfig, | ||
___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH: { | ||
...defaultConfig.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH, | ||
updateInternalDependents: "always" | ||
} | ||
}, | ||
undefined | ||
); | ||
expect(releases.length).toBe(3); | ||
expect(releases[0].name).toEqual("pkg-a"); | ||
expect(releases[0].newVersion).toEqual("1.0.1"); | ||
expect(releases[1].name).toEqual("pkg-b"); | ||
expect(releases[1].newVersion).toEqual("1.0.1"); | ||
expect(releases[2].name).toEqual("pkg-c"); | ||
expect(releases[2].newVersion).toEqual("1.0.1"); | ||
}); | ||
}); | ||
it("should major bump dependent when leaving range", () => { | ||
setup.updatePeerDependency("pkg-b", "pkg-a", "~1.0.0"); | ||
setup.addChangeset({ | ||
id: "anyway-the-windblows", | ||
releases: [{ name: "pkg-a", type: "minor" }] | ||
}); | ||
let { releases } = assembleReleasePlan( | ||
setup.changesets, | ||
setup.packages, | ||
{ | ||
...defaultConfig, | ||
___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH: { | ||
...defaultConfig.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH, | ||
onlyUpdatePeerDependentsWhenOutOfRange: true | ||
} | ||
}, | ||
undefined | ||
); | ||
expect(releases.length).toBe(2); | ||
expect(releases[0].name).toEqual("pkg-a"); | ||
expect(releases[0].newVersion).toEqual("1.1.0"); | ||
expect(releases[1].name).toEqual("pkg-b"); | ||
expect(releases[1].newVersion).toEqual("2.0.0"); | ||
}); | ||
}); | ||
@@ -1500,0 +1568,0 @@ |
@@ -6,3 +6,3 @@ import { | ||
PreState, | ||
PackageGroup | ||
PackageGroup, | ||
} from "@changesets/types"; | ||
@@ -49,3 +49,3 @@ import determineDependents from "./determine-dependents"; | ||
.replace(/\.\d{3}Z$/, "") | ||
.replace(/[^\d]/g, "") | ||
.replace(/[^\d]/g, ""), | ||
}; | ||
@@ -143,5 +143,6 @@ | ||
prereleaseTemplate: null, | ||
useCalculatedVersion: (config.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH as any) | ||
.useCalculatedVersionForSnapshots | ||
} | ||
useCalculatedVersion: ( | ||
config.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH as any | ||
).useCalculatedVersionForSnapshots, | ||
}, | ||
}; | ||
@@ -156,3 +157,3 @@ const refinedSnapshot: SnapshotReleaseParameters | undefined = | ||
let packagesByName = new Map( | ||
packages.packages.map(x => [x.packageJson.name, x]) | ||
packages.packages.map((x) => [x.packageJson.name, x]) | ||
); | ||
@@ -184,3 +185,3 @@ | ||
bumpVersionsWithWorkspaceProtocolOnly: | ||
refinedConfig.bumpVersionsWithWorkspaceProtocolOnly | ||
refinedConfig.bumpVersionsWithWorkspaceProtocolOnly, | ||
}); | ||
@@ -196,3 +197,3 @@ | ||
preInfo, | ||
config: refinedConfig | ||
config: refinedConfig, | ||
}); | ||
@@ -228,3 +229,3 @@ | ||
oldVersion: pkg.packageJson.version, | ||
changesets: [] | ||
changesets: [], | ||
}); | ||
@@ -251,3 +252,3 @@ } else if ( | ||
changesets: relevantChangesets, | ||
releases: [...releases.values()].map(incompleteRelease => { | ||
releases: [...releases.values()].map((incompleteRelease) => { | ||
return { | ||
@@ -262,6 +263,6 @@ ...incompleteRelease, | ||
) | ||
: getNewVersion(incompleteRelease, preInfo) | ||
: getNewVersion(incompleteRelease, preInfo), | ||
}; | ||
}), | ||
preState: preInfo?.state | ||
preState: preInfo?.state, | ||
}; | ||
@@ -282,3 +283,5 @@ } | ||
if ( | ||
ignored.find(ignoredPackageName => ignoredPackageName === release.name) | ||
ignored.find( | ||
(ignoredPackageName) => ignoredPackageName === release.name | ||
) | ||
) { | ||
@@ -303,3 +306,5 @@ ignoredPackages.push(release.name); | ||
let usedChangesetIds = new Set(preState.changesets); | ||
return changesets.filter(changeset => !usedChangesetIds.has(changeset.id)); | ||
return changesets.filter( | ||
(changeset) => !usedChangesetIds.has(changeset.id) | ||
); | ||
} | ||
@@ -336,6 +341,6 @@ | ||
...preState, | ||
changesets: changesets.map(changeset => changeset.id), | ||
changesets: changesets.map((changeset) => changeset.id), | ||
initialVersions: { | ||
...preState.initialVersions | ||
} | ||
...preState.initialVersions, | ||
}, | ||
}; | ||
@@ -373,3 +378,3 @@ | ||
state: updatedPreState, | ||
preVersions | ||
preVersions, | ||
}; | ||
@@ -376,0 +381,0 @@ } |
@@ -15,3 +15,4 @@ import { Config } from "@changesets/types"; | ||
let releasingFixedPackages = [...releases.values()].filter( | ||
release => fixedPackages.includes(release.name) && release.type !== "none" | ||
(release) => | ||
fixedPackages.includes(release.name) && release.type !== "none" | ||
); | ||
@@ -40,3 +41,3 @@ | ||
oldVersion: highestVersion, | ||
changesets: [] | ||
changesets: [], | ||
}); | ||
@@ -43,0 +44,0 @@ continue; |
@@ -6,3 +6,3 @@ import { NewChangeset, Release, VersionType } from "@changesets/types"; | ||
name, | ||
version | ||
version, | ||
}: { | ||
@@ -15,5 +15,5 @@ name: string; | ||
name, | ||
version | ||
version, | ||
}, | ||
dir: "this-shouldn't-matter" | ||
dir: "this-shouldn't-matter", | ||
}; | ||
@@ -35,3 +35,3 @@ } | ||
summary, | ||
releases | ||
releases, | ||
}; | ||
@@ -42,3 +42,3 @@ } | ||
name, | ||
type | ||
type, | ||
}: { | ||
@@ -56,12 +56,12 @@ name: string; | ||
name: "root", | ||
version: "0.0.0" | ||
version: "0.0.0", | ||
}, | ||
dir: "/" | ||
dir: "/", | ||
}, | ||
packages: [getPackage({ name: "pkg-a", version: "1.0.0" })], | ||
tool: "yarn" as const | ||
tool: "yarn" as const, | ||
}, | ||
changesets: [ | ||
getChangeset({ releases: [getRelease({ name: "pkg-a", type: "patch" })] }) | ||
] | ||
getChangeset({ releases: [getRelease({ name: "pkg-a", type: "patch" })] }), | ||
], | ||
}); | ||
@@ -87,3 +87,3 @@ | ||
let changeset = getChangeset(data); | ||
if (this.changesets.find(c => c.id === changeset.id)) { | ||
if (this.changesets.find((c) => c.id === changeset.id)) { | ||
throw new Error( | ||
@@ -97,3 +97,3 @@ `tried to add a second changeset with same id: ${changeset.id}` | ||
updateDependency(pkgA: string, pkgB: string, versionRange: string) { | ||
let pkg = this.packages.packages.find(a => a.packageJson.name === pkgA); | ||
let pkg = this.packages.packages.find((a) => a.packageJson.name === pkgA); | ||
if (!pkg) throw new Error(`No "${pkgA}" package`); | ||
@@ -106,3 +106,3 @@ if (!pkg.packageJson.dependencies) { | ||
updateDevDependency(pkgA: string, pkgB: string, versionRange: string) { | ||
let pkg = this.packages.packages.find(a => a.packageJson.name === pkgA); | ||
let pkg = this.packages.packages.find((a) => a.packageJson.name === pkgA); | ||
if (!pkg) throw new Error(`No "${pkgA}" package`); | ||
@@ -115,3 +115,3 @@ if (!pkg.packageJson.devDependencies) { | ||
updatePeerDependency(pkgA: string, pkgB: string, versionRange: string) { | ||
let pkg = this.packages.packages.find(a => a.packageJson.name === pkgA); | ||
let pkg = this.packages.packages.find((a) => a.packageJson.name === pkgA); | ||
if (!pkg) throw new Error(`No "${pkgA}" package`); | ||
@@ -128,3 +128,3 @@ if (!pkg.packageJson.peerDependencies) { | ||
this.packages.packages.find( | ||
c => c.packageJson.name === pkg.packageJson.name | ||
(c) => c.packageJson.name === pkg.packageJson.name | ||
) | ||
@@ -139,3 +139,3 @@ ) { | ||
updatePackage(name: string, version: string) { | ||
let pkg = this.packages.packages.find(c => c.packageJson.name === name); | ||
let pkg = this.packages.packages.find((c) => c.packageJson.name === name); | ||
if (!pkg) { | ||
@@ -142,0 +142,0 @@ throw new Error( |
169149
3752