@ucdjs/release-scripts 0.1.0-beta.18 → 0.1.0-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +34 -14
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as Eta } from "./eta-j5TFRbI4.mjs";
|
|
2
|
-
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
3
3
|
import { join, relative } from "node:path";
|
|
4
4
|
import process from "node:process";
|
|
5
5
|
import readline from "node:readline";
|
|
@@ -9,7 +9,7 @@ import { exec } from "tinyexec";
|
|
|
9
9
|
import { dedent } from "@luxass/utils";
|
|
10
10
|
import { getCommits, groupByType } from "commit-parser";
|
|
11
11
|
import prompts from "prompts";
|
|
12
|
-
import { gt } from "semver";
|
|
12
|
+
import { compare, gt } from "semver";
|
|
13
13
|
|
|
14
14
|
//#region src/publish.ts
|
|
15
15
|
function publish(_options) {}
|
|
@@ -1030,9 +1030,6 @@ function getNextVersion(currentVersion, bump) {
|
|
|
1030
1030
|
}
|
|
1031
1031
|
return `${newMajor}.${newMinor}.${newPatch}`;
|
|
1032
1032
|
}
|
|
1033
|
-
/**
|
|
1034
|
-
* Create a version update object
|
|
1035
|
-
*/
|
|
1036
1033
|
function createVersionUpdate(pkg, bump, hasDirectChanges) {
|
|
1037
1034
|
const newVersion = getNextVersion(pkg.version, bump);
|
|
1038
1035
|
return {
|
|
@@ -1098,9 +1095,6 @@ function formatCommitsForDisplay(commits) {
|
|
|
1098
1095
|
if (hasMore) return `${formattedCommits}\n ${farver.dim(`... and ${commits.length - maxCommitsToShow} more commits`)}`;
|
|
1099
1096
|
return formattedCommits;
|
|
1100
1097
|
}
|
|
1101
|
-
/**
|
|
1102
|
-
* Calculate version updates for packages based on their commits
|
|
1103
|
-
*/
|
|
1104
1098
|
async function calculateVersionUpdates({ workspacePackages, packageCommits, workspaceRoot, showPrompt, globalCommitsPerPackage, overrides: initialOverrides = {} }) {
|
|
1105
1099
|
const versionUpdates = [];
|
|
1106
1100
|
const processedPackages = /* @__PURE__ */ new Set();
|
|
@@ -1122,9 +1116,11 @@ async function calculateVersionUpdates({ workspacePackages, packageCommits, work
|
|
|
1122
1116
|
const globalCommits = globalCommitsPerPackage.get(pkgName) || [];
|
|
1123
1117
|
const allCommitsForPackage = [...pkgCommits, ...globalCommits];
|
|
1124
1118
|
const determinedBump = determineHighestBump(allCommitsForPackage);
|
|
1125
|
-
const
|
|
1119
|
+
const override = newOverrides[pkgName];
|
|
1120
|
+
const effectiveBump = override?.type || determinedBump;
|
|
1126
1121
|
if (effectiveBump === "none") continue;
|
|
1127
|
-
let newVersion = getNextVersion(pkg.version, effectiveBump);
|
|
1122
|
+
let newVersion = override?.version || getNextVersion(pkg.version, effectiveBump);
|
|
1123
|
+
let finalBumpType = effectiveBump;
|
|
1128
1124
|
if (!isCI && showPrompt) {
|
|
1129
1125
|
logger.clearScreen();
|
|
1130
1126
|
logger.section(`📝 Commits for ${farver.cyan(pkg.name)}`);
|
|
@@ -1133,8 +1129,12 @@ async function calculateVersionUpdates({ workspacePackages, packageCommits, work
|
|
|
1133
1129
|
const selectedVersion = await selectVersionPrompt(workspaceRoot, pkg, pkg.version, newVersion);
|
|
1134
1130
|
if (selectedVersion === null) continue;
|
|
1135
1131
|
const userBump = _calculateBumpType(pkg.version, selectedVersion);
|
|
1132
|
+
finalBumpType = userBump;
|
|
1136
1133
|
if (bumpRanks[userBump] < bumpRanks[determinedBump]) {
|
|
1137
|
-
newOverrides[pkgName] =
|
|
1134
|
+
newOverrides[pkgName] = {
|
|
1135
|
+
type: userBump,
|
|
1136
|
+
version: selectedVersion
|
|
1137
|
+
};
|
|
1138
1138
|
logger.info(`Version override recorded for ${pkgName}: ${determinedBump} → ${userBump}`);
|
|
1139
1139
|
} else if (newOverrides[pkgName] && bumpRanks[userBump] >= bumpRanks[determinedBump]) {
|
|
1140
1140
|
delete newOverrides[pkgName];
|
|
@@ -1146,7 +1146,7 @@ async function calculateVersionUpdates({ workspacePackages, packageCommits, work
|
|
|
1146
1146
|
package: pkg,
|
|
1147
1147
|
currentVersion: pkg.version,
|
|
1148
1148
|
newVersion,
|
|
1149
|
-
bumpType:
|
|
1149
|
+
bumpType: finalBumpType,
|
|
1150
1150
|
hasDirectChanges: allCommitsForPackage.length > 0
|
|
1151
1151
|
});
|
|
1152
1152
|
}
|
|
@@ -1507,7 +1507,7 @@ async function release(options) {
|
|
|
1507
1507
|
pullRequestBody: options.pullRequest?.body
|
|
1508
1508
|
});
|
|
1509
1509
|
await prOps.prepareBranch();
|
|
1510
|
-
const overridesPath = join(workspaceRoot, ".github", "ucdjs
|
|
1510
|
+
const overridesPath = join(workspaceRoot, ".github", "ucdjs-release.overrides.json");
|
|
1511
1511
|
let existingOverrides = {};
|
|
1512
1512
|
try {
|
|
1513
1513
|
const overridesContent = await readFile(overridesPath, "utf-8");
|
|
@@ -1534,11 +1534,31 @@ async function release(options) {
|
|
|
1534
1534
|
logger.error("Failed to write version overrides file:", e);
|
|
1535
1535
|
}
|
|
1536
1536
|
}
|
|
1537
|
+
if (Object.keys(newOverrides).length === 0 && Object.keys(existingOverrides).length > 0) {
|
|
1538
|
+
let shouldRemoveOverrides = false;
|
|
1539
|
+
for (const update of allUpdates) {
|
|
1540
|
+
const overriddenVersion = existingOverrides[update.package.name];
|
|
1541
|
+
if (overriddenVersion) {
|
|
1542
|
+
if (compare(update.newVersion, overriddenVersion.version) > 0) {
|
|
1543
|
+
shouldRemoveOverrides = true;
|
|
1544
|
+
break;
|
|
1545
|
+
}
|
|
1546
|
+
}
|
|
1547
|
+
}
|
|
1548
|
+
if (shouldRemoveOverrides) {
|
|
1549
|
+
logger.info("Removing obsolete version overrides file...");
|
|
1550
|
+
try {
|
|
1551
|
+
await rm(overridesPath);
|
|
1552
|
+
logger.success("Successfully removed obsolete version overrides file.");
|
|
1553
|
+
} catch (e) {
|
|
1554
|
+
logger.error("Failed to remove obsolete version overrides file:", e);
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1537
1558
|
if (allUpdates.filter((u) => u.hasDirectChanges).length === 0) logger.warn("No packages have changes requiring a release");
|
|
1538
1559
|
logger.section("🔄 Version Updates");
|
|
1539
1560
|
logger.item(`Updating ${allUpdates.length} packages (including dependents)`);
|
|
1540
1561
|
for (const update of allUpdates) logger.item(`${update.package.name}: ${update.currentVersion} → ${update.newVersion}`);
|
|
1541
|
-
await prOps.prepareBranch();
|
|
1542
1562
|
await applyUpdates();
|
|
1543
1563
|
if (normalizedOptions.changelog.enabled) {
|
|
1544
1564
|
logger.step("Updating changelogs");
|