Skip to content

Commit

Permalink
fix(version): Allow --force-publish to work on tagged releases
Browse files Browse the repository at this point in the history
Fixes #1667
Fixes #1671
  • Loading branch information
evocateur committed Sep 12, 2018
1 parent 5da1319 commit 7971bf3
Show file tree
Hide file tree
Showing 3 changed files with 108 additions and 2 deletions.
Expand Up @@ -38,6 +38,95 @@ index SHA..SHA 100644
+ "version": "1.0.1",
`;

exports[`version prerelease with immediate graduation 1`] = `
v1.0.1-beta.4
HEAD -> master, tag: v1.0.1-beta.4
diff --git a/lerna.json b/lerna.json
index SHA..SHA 100644
--- a/lerna.json
+++ b/lerna.json
@@ -2 +2 @@
- "version": "1.0.1-beta.3"
+ "version": "1.0.1-beta.4"
diff --git a/packages/package-3/package.json b/packages/package-3/package.json
index SHA..SHA 100644
--- a/packages/package-3/package.json
+++ b/packages/package-3/package.json
@@ -3 +3 @@
- "version": "1.0.0",
+ "version": "1.0.1-beta.4",
diff --git a/packages/package-4/package.json b/packages/package-4/package.json
index SHA..SHA 100644
--- a/packages/package-4/package.json
+++ b/packages/package-4/package.json
@@ -3 +3 @@
- "version": "1.0.1-beta.3",
+ "version": "1.0.1-beta.4",
`;

exports[`version prerelease with immediate graduation 2`] = `
v1.0.1
HEAD -> master, tag: v1.0.1
diff --git a/lerna.json b/lerna.json
index SHA..SHA 100644
--- a/lerna.json
+++ b/lerna.json
@@ -2 +2 @@
- "version": "1.0.1-beta.4"
+ "version": "1.0.1"
diff --git a/packages/package-1/package.json b/packages/package-1/package.json
index SHA..SHA 100644
--- a/packages/package-1/package.json
+++ b/packages/package-1/package.json
@@ -3 +3 @@
- "version": "1.0.0"
+ "version": "1.0.1"
diff --git a/packages/package-2/package.json b/packages/package-2/package.json
index SHA..SHA 100644
--- a/packages/package-2/package.json
+++ b/packages/package-2/package.json
@@ -3 +3 @@
- "version": "1.0.0",
+ "version": "1.0.1",
@@ -5 +5 @@
- "package-1": "^1.0.0"
+ "package-1": "^1.0.1"
diff --git a/packages/package-3/package.json b/packages/package-3/package.json
index SHA..SHA 100644
--- a/packages/package-3/package.json
+++ b/packages/package-3/package.json
@@ -3 +3 @@
- "version": "1.0.1-beta.4",
+ "version": "1.0.1",
@@ -5 +5 @@
- "package-2": "^1.0.0"
+ "package-2": "^1.0.1"
diff --git a/packages/package-4/package.json b/packages/package-4/package.json
index SHA..SHA 100644
--- a/packages/package-4/package.json
+++ b/packages/package-4/package.json
@@ -3 +3 @@
- "version": "1.0.1-beta.4",
+ "version": "1.0.1",
@@ -5 +5 @@
- "package-5": "^1.0.1-beta.3"
+ "package-5": "^1.0.1"
diff --git a/packages/package-5/package.json b/packages/package-5/package.json
index SHA..SHA 100644
--- a/packages/package-5/package.json
+++ b/packages/package-5/package.json
@@ -3 +3 @@
- "version": "1.0.1-beta.3",
+ "version": "1.0.1",
@@ -5 +5 @@
- "package-1": "1.0.0"
+ "package-1": "^1.0.1"
`;

exports[`version prerelease with previous prerelease bumps changed only 1`] = `
v1.0.1-beta.4
Expand Down
17 changes: 17 additions & 0 deletions commands/version/__tests__/version-bump-prerelease.test.js
Expand Up @@ -89,3 +89,20 @@ test("version prerelease with existing preid bumps with the preid provide as arg
const message = await getCommitMessage(testDir);
expect(message).toBe("v1.0.1-rc.0");
});

test("version prerelease with immediate graduation", async () => {
const testDir = await initFixture("republish-prereleased");

await setupChanges(testDir);
await lernaVersion(testDir)("prerelease", "--force-publish", "package-4");
// package-4 had no changes, but should still be included for some mysterious reason

const firstDiff = await showCommit(testDir);
expect(firstDiff).toMatchSnapshot();

// no changes, but force everything because the previous prerelease passed QA
await lernaVersion(testDir)("patch", "--force-publish");

const secondDiff = await showCommit(testDir);
expect(secondDiff).toMatchSnapshot();
});
4 changes: 2 additions & 2 deletions utils/collect-updates/collect-updates.js
Expand Up @@ -11,6 +11,7 @@ const makeDiffPredicate = require("./lib/make-diff-predicate");
module.exports = collectUpdates;

function collectUpdates(filteredPackages, packageGraph, execOpts, commandOptions) {
const forced = getForcedPackages(commandOptions.forcePublish);
const packages =
filteredPackages.length === packageGraph.size
? packageGraph
Expand All @@ -23,7 +24,7 @@ function collectUpdates(filteredPackages, packageGraph, execOpts, commandOptions
const { sha, refCount, lastTagName } = describeRef.sync(execOpts);
// TODO: warn about dirty tree?

if (refCount === "0") {
if (refCount === "0" && forced.size === 0) {
// no commits since previous release
log.notice("", "Current HEAD is already released, skipping change detection.");

Expand All @@ -42,7 +43,6 @@ function collectUpdates(filteredPackages, packageGraph, execOpts, commandOptions

log.info("", `Looking for changed packages since ${committish || "initial commit."}`);

const forced = getForcedPackages(commandOptions.forcePublish);
let candidates;

if (!committish || forced.has("*")) {
Expand Down

0 comments on commit 7971bf3

Please sign in to comment.