@ucdjs/release-scripts 0.1.0-beta.56 → 0.1.0-beta.58
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 +74 -40
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -466,7 +466,6 @@ const DEFAULT_CHANGELOG_TEMPLATE = dedent`
|
|
|
466
466
|
<% } else { -%>
|
|
467
467
|
## <%= it.version %> (<%= it.date %>)
|
|
468
468
|
<% } %>
|
|
469
|
-
|
|
470
469
|
<% let hasCommits = false; %>
|
|
471
470
|
|
|
472
471
|
<% it.groups.forEach((group) => { %>
|
|
@@ -483,10 +482,9 @@ const DEFAULT_CHANGELOG_TEMPLATE = dedent`
|
|
|
483
482
|
<% }); %>
|
|
484
483
|
|
|
485
484
|
<% if (!hasCommits) { %>
|
|
485
|
+
*No significant changes*
|
|
486
486
|
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
* No significant commits in this release.
|
|
487
|
+
##### [View changes on GitHub](<%= it.compareUrl %>)
|
|
490
488
|
<% } %>
|
|
491
489
|
`;
|
|
492
490
|
const DEFAULT_TYPES = {
|
|
@@ -1366,6 +1364,23 @@ async function selectVersionPrompt(workspaceRoot, pkg, currentVersion, suggested
|
|
|
1366
1364
|
if (prereleaseVersion) return prereleaseVersion;
|
|
1367
1365
|
return getNextVersion(pkg.version, answers.version);
|
|
1368
1366
|
}
|
|
1367
|
+
async function confirmOverridePrompt(pkg, overrideVersion) {
|
|
1368
|
+
const response = await prompts({
|
|
1369
|
+
type: "select",
|
|
1370
|
+
name: "choice",
|
|
1371
|
+
message: `${pkg.name}: use override version ${farver.bold(overrideVersion)}?`,
|
|
1372
|
+
choices: [{
|
|
1373
|
+
title: "use override",
|
|
1374
|
+
value: "use"
|
|
1375
|
+
}, {
|
|
1376
|
+
title: "pick another version",
|
|
1377
|
+
value: "pick"
|
|
1378
|
+
}],
|
|
1379
|
+
initial: 0
|
|
1380
|
+
});
|
|
1381
|
+
if (!response.choice) return null;
|
|
1382
|
+
return response.choice;
|
|
1383
|
+
}
|
|
1369
1384
|
|
|
1370
1385
|
//#endregion
|
|
1371
1386
|
//#region src/core/workspace.ts
|
|
@@ -1872,12 +1887,6 @@ async function calculateVersionUpdates({ workspacePackages, packageCommits, work
|
|
|
1872
1887
|
const processedPackages = /* @__PURE__ */ new Set();
|
|
1873
1888
|
const newOverrides = { ...initialOverrides };
|
|
1874
1889
|
const excludedPackages = /* @__PURE__ */ new Set();
|
|
1875
|
-
const bumpRanks = {
|
|
1876
|
-
major: 3,
|
|
1877
|
-
minor: 2,
|
|
1878
|
-
patch: 1,
|
|
1879
|
-
none: 0
|
|
1880
|
-
};
|
|
1881
1890
|
logger.verbose(`Starting version inference for ${packageCommits.size} packages with commits`);
|
|
1882
1891
|
for (const [pkgName, pkgCommits] of packageCommits) {
|
|
1883
1892
|
const pkg = workspacePackages.find((p) => p.name === pkgName);
|
|
@@ -1893,35 +1902,50 @@ async function calculateVersionUpdates({ workspacePackages, packageCommits, work
|
|
|
1893
1902
|
const effectiveBump = override?.type || determinedBump;
|
|
1894
1903
|
const canPrompt = !isCI && showPrompt;
|
|
1895
1904
|
if (effectiveBump === "none" && !canPrompt) continue;
|
|
1896
|
-
|
|
1905
|
+
const autoVersion = getNextVersion(pkg.version, determinedBump);
|
|
1906
|
+
let newVersion = override?.version || autoVersion;
|
|
1897
1907
|
let finalBumpType = effectiveBump;
|
|
1898
1908
|
if (canPrompt) {
|
|
1899
1909
|
logger.clearScreen();
|
|
1900
1910
|
logger.section(`📝 Commits for ${farver.cyan(pkg.name)}`);
|
|
1901
1911
|
formatCommitsForDisplay(allCommitsForPackage).split("\n").forEach((line) => logger.item(line));
|
|
1912
|
+
logger.item(farver.dim(`Auto bump: ${determinedBump} → ${autoVersion}`));
|
|
1902
1913
|
logger.emptyLine();
|
|
1914
|
+
if (override) {
|
|
1915
|
+
const overrideChoice = await confirmOverridePrompt(pkg, override.version);
|
|
1916
|
+
if (overrideChoice === null) continue;
|
|
1917
|
+
if (overrideChoice === "use") {
|
|
1918
|
+
newOverrides[pkgName] = {
|
|
1919
|
+
type: override.type,
|
|
1920
|
+
version: override.version
|
|
1921
|
+
};
|
|
1922
|
+
if (override.version === pkg.version) excludedPackages.add(pkgName);
|
|
1923
|
+
versionUpdates.push({
|
|
1924
|
+
package: pkg,
|
|
1925
|
+
currentVersion: pkg.version,
|
|
1926
|
+
newVersion: override.version,
|
|
1927
|
+
bumpType: override.type,
|
|
1928
|
+
hasDirectChanges: allCommitsForPackage.length > 0,
|
|
1929
|
+
changeKind: override.version === pkg.version ? "as-is" : "manual"
|
|
1930
|
+
});
|
|
1931
|
+
continue;
|
|
1932
|
+
}
|
|
1933
|
+
newVersion = autoVersion;
|
|
1934
|
+
}
|
|
1903
1935
|
const selectedVersion = await selectVersionPrompt(workspaceRoot, pkg, pkg.version, newVersion, {
|
|
1904
1936
|
defaultChoice: override ? "suggested" : "auto",
|
|
1905
|
-
suggestedHint:
|
|
1937
|
+
suggestedHint: `auto: ${determinedBump} → ${autoVersion}`
|
|
1906
1938
|
});
|
|
1907
1939
|
if (selectedVersion === null) continue;
|
|
1908
1940
|
const userBump = calculateBumpType(pkg.version, selectedVersion);
|
|
1909
1941
|
finalBumpType = userBump;
|
|
1910
1942
|
if (selectedVersion === pkg.version) {
|
|
1911
1943
|
excludedPackages.add(pkgName);
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
if (!override || override.type !== nextOverride.type || override.version !== nextOverride.version) {
|
|
1918
|
-
newOverrides[pkgName] = nextOverride;
|
|
1919
|
-
logger.info(`Override set for ${pkgName}: suggested as-is (${pkg.version}) from auto ${determinedBump}`);
|
|
1920
|
-
}
|
|
1921
|
-
} else if (newOverrides[pkgName]) {
|
|
1922
|
-
delete newOverrides[pkgName];
|
|
1923
|
-
logger.info(`Override cleared for ${pkgName}.`);
|
|
1924
|
-
}
|
|
1944
|
+
newOverrides[pkgName] = {
|
|
1945
|
+
type: "none",
|
|
1946
|
+
version: pkg.version
|
|
1947
|
+
};
|
|
1948
|
+
logger.info(`Override set for ${pkgName}: manual as-is (${pkg.version})`);
|
|
1925
1949
|
versionUpdates.push({
|
|
1926
1950
|
package: pkg,
|
|
1927
1951
|
currentVersion: pkg.version,
|
|
@@ -1932,19 +1956,11 @@ async function calculateVersionUpdates({ workspacePackages, packageCommits, work
|
|
|
1932
1956
|
});
|
|
1933
1957
|
continue;
|
|
1934
1958
|
}
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
if (!override || override.type !== nextOverride.type || override.version !== nextOverride.version) {
|
|
1941
|
-
newOverrides[pkgName] = nextOverride;
|
|
1942
|
-
logger.info(`Override set for ${pkgName}: suggested ${userBump} (${selectedVersion}) from auto ${determinedBump}`);
|
|
1943
|
-
}
|
|
1944
|
-
} else if (newOverrides[pkgName] && bumpRanks[userBump] >= bumpRanks[determinedBump]) {
|
|
1945
|
-
delete newOverrides[pkgName];
|
|
1946
|
-
logger.info(`Override cleared for ${pkgName}.`);
|
|
1947
|
-
}
|
|
1959
|
+
newOverrides[pkgName] = {
|
|
1960
|
+
type: userBump,
|
|
1961
|
+
version: selectedVersion
|
|
1962
|
+
};
|
|
1963
|
+
logger.info(`Override set for ${pkgName}: manual ${userBump} (${selectedVersion})`);
|
|
1948
1964
|
newVersion = selectedVersion;
|
|
1949
1965
|
}
|
|
1950
1966
|
versionUpdates.push({
|
|
@@ -1961,13 +1977,27 @@ async function calculateVersionUpdates({ workspacePackages, packageCommits, work
|
|
|
1961
1977
|
logger.clearScreen();
|
|
1962
1978
|
logger.section(`📦 Package: ${pkg.name}`);
|
|
1963
1979
|
logger.item("No direct commits found");
|
|
1964
|
-
|
|
1980
|
+
logger.item(farver.dim(`Auto bump: none → ${pkg.version}`));
|
|
1981
|
+
const newVersion = await selectVersionPrompt(workspaceRoot, pkg, pkg.version, pkg.version, {
|
|
1982
|
+
defaultChoice: "auto",
|
|
1983
|
+
suggestedHint: `auto: none → ${pkg.version}`
|
|
1984
|
+
});
|
|
1965
1985
|
if (newVersion === null) break;
|
|
1966
1986
|
if (newVersion === pkg.version) {
|
|
1967
1987
|
excludedPackages.add(pkg.name);
|
|
1988
|
+
newOverrides[pkg.name] = {
|
|
1989
|
+
type: "none",
|
|
1990
|
+
version: pkg.version
|
|
1991
|
+
};
|
|
1992
|
+
logger.info(`Override set for ${pkg.name}: manual as-is (${pkg.version})`);
|
|
1968
1993
|
continue;
|
|
1969
1994
|
}
|
|
1970
1995
|
const bumpType = calculateBumpType(pkg.version, newVersion);
|
|
1996
|
+
newOverrides[pkg.name] = {
|
|
1997
|
+
type: bumpType,
|
|
1998
|
+
version: newVersion
|
|
1999
|
+
};
|
|
2000
|
+
logger.info(`Override set for ${pkg.name}: manual ${bumpType} (${newVersion})`);
|
|
1971
2001
|
versionUpdates.push({
|
|
1972
2002
|
package: pkg,
|
|
1973
2003
|
currentVersion: pkg.version,
|
|
@@ -2070,10 +2100,12 @@ async function calculateUpdates(options) {
|
|
|
2070
2100
|
overrides
|
|
2071
2101
|
}));
|
|
2072
2102
|
} catch (error) {
|
|
2103
|
+
const formatted = formatUnknownError(error);
|
|
2073
2104
|
return err({
|
|
2074
2105
|
type: "git",
|
|
2075
2106
|
operation: "calculateUpdates",
|
|
2076
|
-
message:
|
|
2107
|
+
message: formatted.message,
|
|
2108
|
+
stderr: formatted.stderr
|
|
2077
2109
|
});
|
|
2078
2110
|
}
|
|
2079
2111
|
}
|
|
@@ -2429,6 +2461,8 @@ async function getReleaseBodyFromChangelog(workspaceRoot, packageName, packagePa
|
|
|
2429
2461
|
"",
|
|
2430
2462
|
`Expected version ${version} in ${changelogPath}.`
|
|
2431
2463
|
].join("\n");
|
|
2464
|
+
const lines = entry.content.trim().split("\n");
|
|
2465
|
+
if (lines[0]?.trim().startsWith("## ")) return lines.slice(1).join("\n").trim();
|
|
2432
2466
|
return entry.content.trim();
|
|
2433
2467
|
} catch {
|
|
2434
2468
|
logger.verbose(`Could not read changelog entry for ${version} at ${changelogPath}`);
|