@changesets/assemble-release-plan
Advanced tools
Comparing version 5.1.0 to 5.1.1-temp.0
# @changesets/assemble-release-plan | ||
## 5.1.1-temp.0 | ||
### Patch Changes | ||
- [#696](https://github.com/changesets/changesets/pull/696) [`c8ab098`](https://github.com/changesets/changesets/commit/c8ab0987e75c34ff5e09e6465fe0a1918137d91b) Thanks [@Andarist](https://github.com/Andarist)! - Versioning a package without a `package.json#version` will no longer result in `null` being generated as the new version of a package (or as part of it when dealing with pre mode of snapshot releases). Instead we'll generate the minimal version - e.g. for a minor bump the `0.1.0` version will be generated. | ||
## 5.1.0 | ||
@@ -4,0 +10,0 @@ |
@@ -69,2 +69,6 @@ 'use strict'; | ||
if (!version) { | ||
throw new Error(`Could not increment version ("${release.oldVersion}") for package "${release.name}"`); | ||
} | ||
if (preInfo !== undefined && preInfo.state.mode !== "exit") { | ||
@@ -85,2 +89,59 @@ let preVersion = preInfo.preVersions.get(release.name); | ||
function getHighestReleaseType(releases) { | ||
if (releases.length === 0) { | ||
throw new Error(`Large internal Changesets error when calculating highest release type in the set of releases. Please contact the maintainers`); | ||
} | ||
let highestReleaseType = "none"; | ||
for (let release of releases) { | ||
switch (release.type) { | ||
case "major": | ||
return "major"; | ||
case "minor": | ||
highestReleaseType = "minor"; | ||
break; | ||
case "patch": | ||
if (highestReleaseType === "none") { | ||
highestReleaseType = "patch"; | ||
} | ||
break; | ||
} | ||
} | ||
return highestReleaseType; | ||
} | ||
function getCurrentHighestVersion(packageGroup, packagesByName) { | ||
let highestVersion; | ||
for (let pkgName of packageGroup) { | ||
let pkg = packagesByName.get(pkgName); | ||
if (!pkg) { | ||
console.error(`FATAL ERROR IN CHANGESETS! We were unable to version for package group: ${pkgName} in package group: ${packageGroup.toString()}`); | ||
throw new Error(`fatal: could not resolve linked packages`); | ||
} | ||
if (highestVersion === undefined || semver__default['default'].gt(pkg.packageJson.version, highestVersion)) { | ||
highestVersion = pkg.packageJson.version; | ||
} | ||
} | ||
return highestVersion; | ||
} | ||
const getPkgJsonVersion = packageJson => { | ||
if (packageJson.version === undefined) { | ||
return "0.0.0"; | ||
} | ||
if (typeof packageJson.version === "string") { | ||
return packageJson.version; | ||
} | ||
throw new Error(`Package "${packageJson.name}" has invalid version property: ${packageJson.version}.`); | ||
}; | ||
/* | ||
@@ -202,3 +263,3 @@ WARNING: | ||
type, | ||
oldVersion: pkgJSON.version, | ||
oldVersion: getPkgJsonVersion(pkgJSON), | ||
changesets: [] | ||
@@ -266,3 +327,2 @@ }; | ||
// This function takes in changesets and returns one release per | ||
// package listed in the changesets | ||
function flattenReleases(changesets, packagesByName, ignoredPackages) { | ||
@@ -290,3 +350,3 @@ let releases = new Map(); | ||
type, | ||
oldVersion: pkg.packageJson.version, | ||
oldVersion: getPkgJsonVersion(pkg.packageJson), | ||
changesets: [changeset.id] | ||
@@ -311,48 +371,2 @@ }; | ||
function getHighestReleaseType(releases) { | ||
if (releases.length === 0) { | ||
throw new Error(`Large internal Changesets error when calculating highest release type in the set of releases. Please contact the maintainers`); | ||
} | ||
let highestReleaseType = "none"; | ||
for (let release of releases) { | ||
switch (release.type) { | ||
case "major": | ||
return "major"; | ||
case "minor": | ||
highestReleaseType = "minor"; | ||
break; | ||
case "patch": | ||
if (highestReleaseType === "none") { | ||
highestReleaseType = "patch"; | ||
} | ||
break; | ||
} | ||
} | ||
return highestReleaseType; | ||
} | ||
function getCurrentHighestVersion(packageGroup, packagesByName) { | ||
let highestVersion; | ||
for (let pkgName of packageGroup) { | ||
let pkg = packagesByName.get(pkgName); | ||
if (!pkg) { | ||
console.error(`FATAL ERROR IN CHANGESETS! We were unable to version for package group: ${pkgName} in package group: ${packageGroup.toString()}`); | ||
throw new Error(`fatal: could not resolve linked packages`); | ||
} | ||
if (highestVersion === undefined || semver__default['default'].gt(pkg.packageJson.version, highestVersion)) { | ||
highestVersion = pkg.packageJson.version; | ||
} | ||
} | ||
return highestVersion; | ||
} | ||
function matchFixedConstraint(releases, packagesByName, fixed) { | ||
@@ -531,3 +545,3 @@ let updated = false; | ||
type: "patch", | ||
oldVersion: pkg.packageJson.version, | ||
oldVersion: getPkgJsonVersion(pkg.packageJson), | ||
changesets: [] | ||
@@ -534,0 +548,0 @@ }); |
@@ -52,2 +52,3 @@ "use strict"; | ||
let version = semver.inc(release.oldVersion, release.type); | ||
if (!version) throw new Error(`Could not increment version ("${release.oldVersion}") for package "${release.name}"`); | ||
if (void 0 !== preInfo && "exit" !== preInfo.state.mode) { | ||
@@ -61,2 +62,36 @@ let preVersion = preInfo.preVersions.get(release.name); | ||
function getHighestReleaseType(releases) { | ||
if (0 === releases.length) throw new Error("Large internal Changesets error when calculating highest release type in the set of releases. Please contact the maintainers"); | ||
let highestReleaseType = "none"; | ||
for (let release of releases) switch (release.type) { | ||
case "major": | ||
return "major"; | ||
case "minor": | ||
highestReleaseType = "minor"; | ||
break; | ||
case "patch": | ||
"none" === highestReleaseType && (highestReleaseType = "patch"); | ||
} | ||
return highestReleaseType; | ||
} | ||
function getCurrentHighestVersion(packageGroup, packagesByName) { | ||
let highestVersion; | ||
for (let pkgName of packageGroup) { | ||
let pkg = packagesByName.get(pkgName); | ||
if (!pkg) throw console.error(`FATAL ERROR IN CHANGESETS! We were unable to version for package group: ${pkgName} in package group: ${packageGroup.toString()}`), | ||
new Error("fatal: could not resolve linked packages"); | ||
(void 0 === highestVersion || semver__default.default.gt(pkg.packageJson.version, highestVersion)) && (highestVersion = pkg.packageJson.version); | ||
} | ||
return highestVersion; | ||
} | ||
const getPkgJsonVersion = packageJson => { | ||
if (void 0 === packageJson.version) return "0.0.0"; | ||
if ("string" == typeof packageJson.version) return packageJson.version; | ||
throw new Error(`Package "${packageJson.name}" has invalid version property: ${packageJson.version}.`); | ||
}; | ||
function determineDependents({releases: releases, packagesByName: packagesByName, dependencyGraph: dependencyGraph, preInfo: preInfo, config: config}) { | ||
@@ -108,3 +143,3 @@ let updated = !1, pkgsToSearch = [ ...releases.values() ]; | ||
type: type, | ||
oldVersion: pkgJSON.version, | ||
oldVersion: getPkgJsonVersion(pkgJSON), | ||
changesets: [] | ||
@@ -149,3 +184,3 @@ }; | ||
type: type, | ||
oldVersion: pkg.packageJson.version, | ||
oldVersion: getPkgJsonVersion(pkg.packageJson), | ||
changesets: [ changeset.id ] | ||
@@ -157,30 +192,2 @@ }, releases.set(name, release); | ||
function getHighestReleaseType(releases) { | ||
if (0 === releases.length) throw new Error("Large internal Changesets error when calculating highest release type in the set of releases. Please contact the maintainers"); | ||
let highestReleaseType = "none"; | ||
for (let release of releases) switch (release.type) { | ||
case "major": | ||
return "major"; | ||
case "minor": | ||
highestReleaseType = "minor"; | ||
break; | ||
case "patch": | ||
"none" === highestReleaseType && (highestReleaseType = "patch"); | ||
} | ||
return highestReleaseType; | ||
} | ||
function getCurrentHighestVersion(packageGroup, packagesByName) { | ||
let highestVersion; | ||
for (let pkgName of packageGroup) { | ||
let pkg = packagesByName.get(pkgName); | ||
if (!pkg) throw console.error(`FATAL ERROR IN CHANGESETS! We were unable to version for package group: ${pkgName} in package group: ${packageGroup.toString()}`), | ||
new Error("fatal: could not resolve linked packages"); | ||
(void 0 === highestVersion || semver__default.default.gt(pkg.packageJson.version, highestVersion)) && (highestVersion = pkg.packageJson.version); | ||
} | ||
return highestVersion; | ||
} | ||
function matchFixedConstraint(releases, packagesByName, fixed) { | ||
@@ -260,3 +267,3 @@ let updated = !1; | ||
type: "patch", | ||
oldVersion: pkg.packageJson.version, | ||
oldVersion: getPkgJsonVersion(pkg.packageJson), | ||
changesets: [] | ||
@@ -263,0 +270,0 @@ }); |
@@ -61,2 +61,6 @@ import semver, { inc, parse } from 'semver'; | ||
if (!version) { | ||
throw new Error(`Could not increment version ("${release.oldVersion}") for package "${release.name}"`); | ||
} | ||
if (preInfo !== undefined && preInfo.state.mode !== "exit") { | ||
@@ -77,2 +81,59 @@ let preVersion = preInfo.preVersions.get(release.name); | ||
function getHighestReleaseType(releases) { | ||
if (releases.length === 0) { | ||
throw new Error(`Large internal Changesets error when calculating highest release type in the set of releases. Please contact the maintainers`); | ||
} | ||
let highestReleaseType = "none"; | ||
for (let release of releases) { | ||
switch (release.type) { | ||
case "major": | ||
return "major"; | ||
case "minor": | ||
highestReleaseType = "minor"; | ||
break; | ||
case "patch": | ||
if (highestReleaseType === "none") { | ||
highestReleaseType = "patch"; | ||
} | ||
break; | ||
} | ||
} | ||
return highestReleaseType; | ||
} | ||
function getCurrentHighestVersion(packageGroup, packagesByName) { | ||
let highestVersion; | ||
for (let pkgName of packageGroup) { | ||
let pkg = packagesByName.get(pkgName); | ||
if (!pkg) { | ||
console.error(`FATAL ERROR IN CHANGESETS! We were unable to version for package group: ${pkgName} in package group: ${packageGroup.toString()}`); | ||
throw new Error(`fatal: could not resolve linked packages`); | ||
} | ||
if (highestVersion === undefined || semver.gt(pkg.packageJson.version, highestVersion)) { | ||
highestVersion = pkg.packageJson.version; | ||
} | ||
} | ||
return highestVersion; | ||
} | ||
const getPkgJsonVersion = packageJson => { | ||
if (packageJson.version === undefined) { | ||
return "0.0.0"; | ||
} | ||
if (typeof packageJson.version === "string") { | ||
return packageJson.version; | ||
} | ||
throw new Error(`Package "${packageJson.name}" has invalid version property: ${packageJson.version}.`); | ||
}; | ||
/* | ||
@@ -194,3 +255,3 @@ WARNING: | ||
type, | ||
oldVersion: pkgJSON.version, | ||
oldVersion: getPkgJsonVersion(pkgJSON), | ||
changesets: [] | ||
@@ -258,3 +319,2 @@ }; | ||
// This function takes in changesets and returns one release per | ||
// package listed in the changesets | ||
function flattenReleases(changesets, packagesByName, ignoredPackages) { | ||
@@ -282,3 +342,3 @@ let releases = new Map(); | ||
type, | ||
oldVersion: pkg.packageJson.version, | ||
oldVersion: getPkgJsonVersion(pkg.packageJson), | ||
changesets: [changeset.id] | ||
@@ -303,48 +363,2 @@ }; | ||
function getHighestReleaseType(releases) { | ||
if (releases.length === 0) { | ||
throw new Error(`Large internal Changesets error when calculating highest release type in the set of releases. Please contact the maintainers`); | ||
} | ||
let highestReleaseType = "none"; | ||
for (let release of releases) { | ||
switch (release.type) { | ||
case "major": | ||
return "major"; | ||
case "minor": | ||
highestReleaseType = "minor"; | ||
break; | ||
case "patch": | ||
if (highestReleaseType === "none") { | ||
highestReleaseType = "patch"; | ||
} | ||
break; | ||
} | ||
} | ||
return highestReleaseType; | ||
} | ||
function getCurrentHighestVersion(packageGroup, packagesByName) { | ||
let highestVersion; | ||
for (let pkgName of packageGroup) { | ||
let pkg = packagesByName.get(pkgName); | ||
if (!pkg) { | ||
console.error(`FATAL ERROR IN CHANGESETS! We were unable to version for package group: ${pkgName} in package group: ${packageGroup.toString()}`); | ||
throw new Error(`fatal: could not resolve linked packages`); | ||
} | ||
if (highestVersion === undefined || semver.gt(pkg.packageJson.version, highestVersion)) { | ||
highestVersion = pkg.packageJson.version; | ||
} | ||
} | ||
return highestVersion; | ||
} | ||
function matchFixedConstraint(releases, packagesByName, fixed) { | ||
@@ -523,3 +537,3 @@ let updated = false; | ||
type: "patch", | ||
oldVersion: pkg.packageJson.version, | ||
oldVersion: getPkgJsonVersion(pkg.packageJson), | ||
changesets: [] | ||
@@ -526,0 +540,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
import { PackageGroup, VersionType } from "@changesets/types"; | ||
import { PackageGroup, VersionType, PackageJSON } from "@changesets/types"; | ||
import { Package } from "@manypkg/get-packages"; | ||
@@ -6,1 +6,2 @@ import { InternalRelease } from "./types"; | ||
export declare function getCurrentHighestVersion(packageGroup: PackageGroup, packagesByName: Map<string, Package>): string; | ||
export declare const getPkgJsonVersion: (packageJson: PackageJSON) => string; |
{ | ||
"name": "@changesets/assemble-release-plan", | ||
"version": "5.1.0", | ||
"version": "5.1.1-temp.0", | ||
"description": "Reads changesets and adds information on dependents that need bumping", | ||
@@ -18,4 +18,4 @@ "main": "dist/assemble-release-plan.cjs.js", | ||
"devDependencies": { | ||
"@changesets/config": "*" | ||
"@changesets/config": "1.7.0" | ||
} | ||
} |
@@ -12,2 +12,3 @@ import semver from "semver"; | ||
import { incrementVersion } from "./increment"; | ||
import { getPkgJsonVersion } from "./utils"; | ||
@@ -149,3 +150,3 @@ /* | ||
type, | ||
oldVersion: pkgJSON.version, | ||
oldVersion: getPkgJsonVersion(pkgJSON), | ||
changesets: [] | ||
@@ -152,0 +153,0 @@ }; |
@@ -7,2 +7,3 @@ // This function takes in changesets and returns one release per | ||
import { InternalRelease } from "./types"; | ||
import { getPkgJsonVersion } from "./utils"; | ||
@@ -31,3 +32,3 @@ export default function flattenReleases( | ||
type, | ||
oldVersion: pkg.packageJson.version, | ||
oldVersion: getPkgJsonVersion(pkg.packageJson), | ||
changesets: [changeset.id] | ||
@@ -34,0 +35,0 @@ }; |
@@ -8,3 +8,3 @@ import * as semver from "semver"; | ||
preInfo: PreInfo | undefined | ||
) { | ||
): string { | ||
if (release.type === "none") { | ||
@@ -14,3 +14,8 @@ return release.oldVersion; | ||
let version = semver.inc(release.oldVersion, release.type)!; | ||
let version = semver.inc(release.oldVersion, release.type); | ||
if (!version) { | ||
throw new Error( | ||
`Could not increment version ("${release.oldVersion}") for package "${release.name}"` | ||
); | ||
} | ||
if (preInfo !== undefined && preInfo.state.mode !== "exit") { | ||
@@ -17,0 +22,0 @@ let preVersion = preInfo.preVersions.get(release.name); |
@@ -18,2 +18,3 @@ import { | ||
import { PreInfo, InternalRelease } from "./types"; | ||
import { getPkgJsonVersion } from "./utils"; | ||
@@ -149,3 +150,3 @@ function getPreVersion(version: string) { | ||
type: "patch", | ||
oldVersion: pkg.packageJson.version, | ||
oldVersion: getPkgJsonVersion(pkg.packageJson), | ||
changesets: [] | ||
@@ -152,0 +153,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
import { PackageGroup, VersionType } from "@changesets/types"; | ||
import { PackageGroup, VersionType, PackageJSON } from "@changesets/types"; | ||
import { Package } from "@manypkg/get-packages"; | ||
@@ -61,1 +61,13 @@ import semver from "semver"; | ||
} | ||
export const getPkgJsonVersion = (packageJson: PackageJSON): string => { | ||
if (packageJson.version === undefined) { | ||
return "0.0.0"; | ||
} | ||
if (typeof packageJson.version === "string") { | ||
return packageJson.version; | ||
} | ||
throw new Error( | ||
`Package "${packageJson.name}" has invalid version property: ${packageJson.version}.` | ||
); | ||
}; |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
157952
3556
2