@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.
Files changed (2) hide show
  1. package/dist/index.mjs +34 -14
  2. 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 effectiveBump = newOverrides[pkgName] || determinedBump;
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] = userBump;
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: effectiveBump,
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.release.overrides.json");
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");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ucdjs/release-scripts",
3
- "version": "0.1.0-beta.18",
3
+ "version": "0.1.0-beta.19",
4
4
  "description": "@ucdjs release scripts",
5
5
  "type": "module",
6
6
  "license": "MIT",