@changesets/assemble-release-plan
Advanced tools
Comparing version 2.0.2 to 2.0.3
# @changesets/assemble-release-plan | ||
## 2.0.3 | ||
### Patch Changes | ||
- [`8469636`](https://github.com/atlassian/changesets/commit/8469636414cb2475547bba3140e3df1927b5926b) [#344](https://github.com/atlassian/changesets/pull/344) Thanks [@zkochan](https://github.com/zkochan)! - When both a dev dep and a prod dep of a dependent package are published, the version of the dependent package should be bumped. This fixes a regression introduced by #313. | ||
## 2.0.2 | ||
@@ -4,0 +10,0 @@ |
@@ -74,3 +74,3 @@ 'use strict'; | ||
if ( // TODO validate this - I don't think it's right anymore | ||
!releases.has(dependent) && !semver__default.satisfies(incrementVersion(nextRelease, preInfo), versionRange)) { | ||
(!releases.has(dependent) || releases.get(dependent).type === "none") && !semver__default.satisfies(incrementVersion(nextRelease, preInfo), versionRange)) { | ||
if (depTypes.includes("dependencies") || depTypes.includes("optionalDependencies") || depTypes.includes("peerDependencies")) { | ||
@@ -85,2 +85,6 @@ type = "patch"; | ||
if (releases.has(dependent) && releases.get(dependent).type === type) { | ||
type = undefined; | ||
} | ||
return { | ||
@@ -87,0 +91,0 @@ name: dependent, |
@@ -35,3 +35,4 @@ "use strict"; | ||
const {depTypes: depTypes, versionRange: versionRange} = getDependencyVersionRange(dependentPackage.packageJson, nextRelease.name); | ||
return depTypes.includes("peerDependencies") && "patch" !== nextRelease.type && (!releases.has(dependent) || releases.has(dependent) && "major" !== releases.get(dependent).type) ? type = "major" : releases.has(dependent) || semver__default.satisfies(incrementVersion(nextRelease, preInfo), versionRange) || (type = depTypes.includes("dependencies") || depTypes.includes("optionalDependencies") || depTypes.includes("peerDependencies") ? "patch" : "none"), | ||
return depTypes.includes("peerDependencies") && "patch" !== nextRelease.type && (!releases.has(dependent) || releases.has(dependent) && "major" !== releases.get(dependent).type) ? type = "major" : releases.has(dependent) && "none" !== releases.get(dependent).type || semver__default.satisfies(incrementVersion(nextRelease, preInfo), versionRange) || (type = depTypes.includes("dependencies") || depTypes.includes("optionalDependencies") || depTypes.includes("peerDependencies") ? "patch" : "none"), | ||
releases.has(dependent) && releases.get(dependent).type === type && (type = void 0), | ||
{ | ||
@@ -38,0 +39,0 @@ name: dependent, |
@@ -67,3 +67,3 @@ import semver__default, { inc, parse } from 'semver'; | ||
if ( // TODO validate this - I don't think it's right anymore | ||
!releases.has(dependent) && !semver__default.satisfies(incrementVersion(nextRelease, preInfo), versionRange)) { | ||
(!releases.has(dependent) || releases.get(dependent).type === "none") && !semver__default.satisfies(incrementVersion(nextRelease, preInfo), versionRange)) { | ||
if (depTypes.includes("dependencies") || depTypes.includes("optionalDependencies") || depTypes.includes("peerDependencies")) { | ||
@@ -78,2 +78,6 @@ type = "patch"; | ||
if (releases.has(dependent) && releases.get(dependent).type === type) { | ||
type = undefined; | ||
} | ||
return { | ||
@@ -80,0 +84,0 @@ name: dependent, |
{ | ||
"name": "@changesets/assemble-release-plan", | ||
"version": "2.0.2", | ||
"version": "2.0.3", | ||
"description": "Reads changesets and adds information on dependents that need bumping", | ||
@@ -5,0 +5,0 @@ "main": "dist/assemble-release-plan.cjs.js", |
@@ -70,3 +70,4 @@ import semver from "semver"; | ||
// TODO validate this - I don't think it's right anymore | ||
!releases.has(dependent) && | ||
(!releases.has(dependent) || | ||
releases.get(dependent)!.type === "none") && | ||
!semver.satisfies( | ||
@@ -89,2 +90,5 @@ incrementVersion(nextRelease, preInfo), | ||
} | ||
if (releases.has(dependent) && releases.get(dependent)!.type === type) { | ||
type = undefined; | ||
} | ||
return { name: dependent, type, pkgJSON: dependentPackage.packageJson }; | ||
@@ -91,0 +95,0 @@ }) |
@@ -118,2 +118,29 @@ import { defaultConfig } from "@changesets/config"; | ||
}); | ||
it("should assemble release plan with dependent when the dependent has both a changed prod and dev dependency", () => { | ||
setup.updateDevDependency("pkg-b", "pkg-a", "^1.0.0"); | ||
setup.updateDependency("pkg-b", "pkg-c", "^1.0.0"); | ||
setup.addChangeset({ | ||
id: "big-cats-delight", | ||
releases: [ | ||
{ name: "pkg-a", type: "major" }, | ||
{ name: "pkg-c", type: "major" } | ||
] | ||
}); | ||
let { releases } = assembleReleasePlan( | ||
setup.changesets, | ||
setup.packages, | ||
defaultConfig, | ||
undefined | ||
); | ||
expect(releases.length).toEqual(3); | ||
expect(releases[0].name).toEqual("pkg-a"); | ||
expect(releases[0].newVersion).toEqual("2.0.0"); | ||
expect(releases[1].name).toEqual("pkg-c"); | ||
expect(releases[1].newVersion).toEqual("2.0.0"); | ||
expect(releases[2].name).toEqual("pkg-b"); | ||
expect(releases[2].oldVersion).toEqual("1.0.0"); | ||
expect(releases[2].newVersion).toEqual("1.0.1"); | ||
}); | ||
it("should assemble release plan without dependent through the link protocol", () => { | ||
@@ -120,0 +147,0 @@ setup.updateDevDependency("pkg-b", "pkg-a", "link:../pkg-a"); |
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
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
93206
1999