super-release 0.8.0 → 0.10.0
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/README.md +0 -4
- package/npm/bin/super-release.js +25 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -56,8 +56,6 @@ super-release --show-next-version
|
|
|
56
56
|
# Get the next version for a specific package in a monorepo
|
|
57
57
|
super-release --show-next-version --package @acme/core
|
|
58
58
|
|
|
59
|
-
# Use 4 threads for commit analysis
|
|
60
|
-
super-release -j 4
|
|
61
59
|
```
|
|
62
60
|
|
|
63
61
|
## CLI Reference
|
|
@@ -72,7 +70,6 @@ Options:
|
|
|
72
70
|
--show-next-version Print the next version and exit
|
|
73
71
|
-p, --package <PACKAGE> Filter to a specific package (for --show-next-version)
|
|
74
72
|
-v, --verbose Verbose output
|
|
75
|
-
-j, --jobs <JOBS> Parallel jobs for commit analysis [default: 50% of CPUs]
|
|
76
73
|
-h, --help Print help
|
|
77
74
|
-V, --version Print version
|
|
78
75
|
```
|
|
@@ -322,7 +319,6 @@ to a package based on which files it changed.
|
|
|
322
319
|
|
|
323
320
|
## Performance
|
|
324
321
|
|
|
325
|
-
- **Parallel diff computation**: commit diffs computed across multiple threads
|
|
326
322
|
- **Tag-bounded history walk**: only walks commits since the oldest package tag
|
|
327
323
|
- **Single-pass commit collection**: commits fetched once, partitioned per package
|
|
328
324
|
- **Reachable-only tags**: single revwalk to check tag reachability, stops early
|
package/npm/bin/super-release.js
CHANGED
|
@@ -32,13 +32,37 @@ try {
|
|
|
32
32
|
});
|
|
33
33
|
process.exit(0);
|
|
34
34
|
} catch (err) {
|
|
35
|
+
if (err.code === "ENOENT" || err.code === "EACCES") {
|
|
36
|
+
console.error(`super-release: binary not found or not executable at ${binPath}`);
|
|
37
|
+
console.error(err);
|
|
38
|
+
} else if (err.status === null) {
|
|
39
|
+
// No exit status = binary couldn't run at all (wrong libc, missing interpreter)
|
|
40
|
+
console.error(`super-release: failed to execute binary at ${binPath}`);
|
|
41
|
+
console.error(`If running on Alpine/musl, ensure the musl build is being downloaded.`);
|
|
42
|
+
console.error(err);
|
|
43
|
+
}
|
|
35
44
|
process.exit(err.status ?? 1);
|
|
36
45
|
}
|
|
37
46
|
|
|
47
|
+
function isMusl() {
|
|
48
|
+
try {
|
|
49
|
+
// ldd --version outputs to stderr on musl and exits non-zero
|
|
50
|
+
const result = execFileSync("ldd", ["--version"], { stdio: ["pipe", "pipe", "pipe"] });
|
|
51
|
+
return result.toString().includes("musl");
|
|
52
|
+
} catch (err) {
|
|
53
|
+
// On musl, ldd exits with error but stderr contains "musl"
|
|
54
|
+
if (err.stderr && err.stderr.toString().includes("musl")) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return existsSync("/lib/ld-musl-x86_64.so.1") || existsSync("/lib/ld-musl-aarch64.so.1");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
38
61
|
async function install() {
|
|
39
62
|
const REPO = "bowlingx/super-release";
|
|
63
|
+
const musl = platform() === "linux" && isMusl();
|
|
40
64
|
const PLATFORM_MAP = {
|
|
41
|
-
"linux-x64": "super-release-linux-x86_64",
|
|
65
|
+
"linux-x64": musl ? "super-release-linux-x86_64-musl" : "super-release-linux-x86_64",
|
|
42
66
|
"linux-arm64": "super-release-linux-aarch64",
|
|
43
67
|
"darwin-x64": "super-release-darwin-x86_64",
|
|
44
68
|
"darwin-arm64": "super-release-darwin-aarch64",
|