git-release-manager 0.0.14 → 0.6.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 -0
- package/dist/commands/branch/command.js +84 -14
- package/dist/commands/branch/command.js.map +1 -1
- package/dist/commands/branch/types/BranchFinishCliArgs.js +3 -0
- package/dist/commands/branch/types/BranchFinishCliArgs.js.map +1 -0
- package/dist/commands/branch/types/BranchSyncCliArgs.js +3 -0
- package/dist/commands/branch/types/BranchSyncCliArgs.js.map +1 -0
- package/dist/commands/changelog/command.js +28 -3
- package/dist/commands/changelog/command.js.map +1 -1
- package/dist/commands/commit/command.js +8 -3
- package/dist/commands/commit/command.js.map +1 -1
- package/dist/commands/flow/command.js +196 -6
- package/dist/commands/flow/command.js.map +1 -1
- package/dist/commands/track/command.js +136 -0
- package/dist/commands/track/command.js.map +1 -0
- package/dist/commands/version/command.js +115 -23
- package/dist/commands/version/command.js.map +1 -1
- package/dist/config/defaults/config.json +375 -250
- package/dist/config/types/Flow.js +34 -0
- package/dist/config/types/Flow.js.map +1 -0
- package/dist/config/types/Track.js +3 -0
- package/dist/config/types/Track.js.map +1 -0
- package/dist/config/types/Versioning.js +3 -0
- package/dist/config/types/Versioning.js.map +1 -0
- package/dist/index.js +25 -6
- package/dist/index.js.map +1 -1
- package/dist/modules/FlowManager.js +47 -4
- package/dist/modules/FlowManager.js.map +1 -1
- package/dist/modules/branch/BranchController.js +33 -2
- package/dist/modules/branch/BranchController.js.map +1 -1
- package/dist/modules/changelog/ChangelogController.js.map +1 -1
- package/dist/modules/changelog/templateOperations.js.map +1 -1
- package/dist/modules/flow/FlowController.js +764 -0
- package/dist/modules/flow/FlowController.js.map +1 -0
- package/dist/modules/git/commits/commitProcessor.js +21 -3
- package/dist/modules/git/commits/commitProcessor.js.map +1 -1
- package/dist/modules/git/commits/index.js +9 -1
- package/dist/modules/git/commits/index.js.map +1 -1
- package/dist/modules/git/context/remoteHandler.js +1 -1
- package/dist/modules/git/context/remoteHandler.js.map +1 -1
- package/dist/modules/git/gitOperations.js.map +1 -1
- package/dist/modules/git/lineTags.js +58 -0
- package/dist/modules/git/lineTags.js.map +1 -0
- package/dist/modules/track/TrackController.js +320 -0
- package/dist/modules/track/TrackController.js.map +1 -0
- package/dist/modules/version/BumpDeriver.js +119 -0
- package/dist/modules/version/BumpDeriver.js.map +1 -0
- package/dist/modules/version/GitVersionManager.js +42 -14
- package/dist/modules/version/GitVersionManager.js.map +1 -1
- package/dist/modules/version/ProjectVersion.js +84 -3
- package/dist/modules/version/ProjectVersion.js.map +1 -1
- package/dist/modules/version/VersionController.js +238 -3
- package/dist/modules/version/VersionController.js.map +1 -1
- package/dist/modules/version/VersionStamper.js +139 -0
- package/dist/modules/version/VersionStamper.js.map +1 -0
- package/dist/modules/version/branchChannel.js +94 -0
- package/dist/modules/version/branchChannel.js.map +1 -0
- package/dist/modules/version/resolveVersionRef.js +78 -0
- package/dist/modules/version/resolveVersionRef.js.map +1 -0
- package/dist/modules/version/versionFormatter.js +19 -1
- package/dist/modules/version/versionFormatter.js.map +1 -1
- package/dist/templates/defaults/changelog.detailed.ejs +0 -0
- package/dist/templates/defaults/changelog.ejs +0 -0
- package/dist/utils/cmd.js +15 -2
- package/dist/utils/cmd.js.map +1 -1
- package/package.json +5 -2
|
@@ -30,7 +30,25 @@ const incrementVersionCore = (version, type) => {
|
|
|
30
30
|
return (_a = semver_1.default.inc(version, type)) !== null && _a !== void 0 ? _a : version;
|
|
31
31
|
};
|
|
32
32
|
const removePrefixAndBuild = (version, prefix) => {
|
|
33
|
-
|
|
33
|
+
// ANCHORED. `String.replace(prefix, '')` removes the first occurrence of the
|
|
34
|
+
// prefix ANYWHERE in the string, and a prefix is by definition only meaningful
|
|
35
|
+
// at the start. Measured 2026-08-06 with prefix `v`:
|
|
36
|
+
//
|
|
37
|
+
// "1.0.28-dev.9".replace("v", "") → "1.0.28-de.9"
|
|
38
|
+
//
|
|
39
|
+
// The `v` inside `dev` was eaten, semver then read the channel as `de`, the
|
|
40
|
+
// caller's `dev` no longer matched it, and the code below treated it as a NEW
|
|
41
|
+
// channel — resetting the counter to 1. So `--channel dev --from 1.0.28-dev.9
|
|
42
|
+
// --prefix v` answered 1.0.28-dev.1 instead of .10, silently, on every call.
|
|
43
|
+
//
|
|
44
|
+
// A prerelease line built on that walks backwards forever: every cut is .1,
|
|
45
|
+
// the tag already exists, and the failure surfaces as an immutability
|
|
46
|
+
// complaint rather than as arithmetic. It only bites a baseline that does NOT
|
|
47
|
+
// start with the prefix — which is exactly what a caller passes when it keeps
|
|
48
|
+
// the prefix as its own concern and hands over the bare semver core.
|
|
49
|
+
const baseVersion = prefix && version.startsWith(prefix)
|
|
50
|
+
? version.slice(prefix.length)
|
|
51
|
+
: version;
|
|
34
52
|
return baseVersion.split('+')[0];
|
|
35
53
|
};
|
|
36
54
|
const addPrereleaseOrChannel = (baseVersion, versionWithoutPrefix, options) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versionFormatter.js","sourceRoot":"","sources":["../../../src/modules/version/versionFormatter.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAYrB,MAAM,gBAAgB,GAAG,CAC9B,OAAe,EACf,IAAiB,EACjB,UAA4B,EAAE,EACtB,EAAE;IACV,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACtE,IAAI,oBAAoB,GAAG,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEjE,IAAI,CAAC,gBAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAEhG,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;QAC1B,sFAAsF;QACtF,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QACD,UAAU,GAAG,sBAAsB,CAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,UAAU,GAAG,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC,CAAC;AA3BW,QAAA,gBAAgB,oBA2B3B;AAEF,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAE,IAAiB,EAAU,EAAE;;IAC1E,OAAO,MAAA,gBAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAK,CAAC,mCAAI,OAAO,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAE,MAAe,EAAU,EAAE;IACxE,
|
|
1
|
+
{"version":3,"file":"versionFormatter.js","sourceRoot":"","sources":["../../../src/modules/version/versionFormatter.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
package/dist/utils/cmd.js
CHANGED
|
@@ -8,11 +8,24 @@ exports.execWithErrorHandling = execWithErrorHandling;
|
|
|
8
8
|
const child_process_1 = require("child_process");
|
|
9
9
|
const util_1 = __importDefault(require("util"));
|
|
10
10
|
const execPromise = util_1.default.promisify(child_process_1.exec);
|
|
11
|
+
// Node's default stdout buffer for exec/spawnSync is 1 MiB, and git output is
|
|
12
|
+
// not bounded by anything of the sort. Measured 2026-08-06 on a repository with
|
|
13
|
+
// large merge commits:
|
|
14
|
+
//
|
|
15
|
+
// git log --pretty=format:"" --no-commit-id --name-only -r <sha>
|
|
16
|
+
// → ERR_CHILD_PROCESS_STDIO_MAXBUFFER
|
|
17
|
+
//
|
|
18
|
+
// execWithErrorHandling below catches that, logs it and returns an EMPTY
|
|
19
|
+
// stdout — so the changelog rendered, exited 0, and silently omitted every
|
|
20
|
+
// changed file of the commit that overflowed. A truncated answer that reports
|
|
21
|
+
// success is worse than a failure, and the size at which it starts happening
|
|
22
|
+
// depends on the repository, so it appears only on the largest projects.
|
|
23
|
+
const MAX_STDIO_BUFFER = 256 * 1024 * 1024;
|
|
11
24
|
function runCommand(cmd, onError) {
|
|
12
25
|
var _a;
|
|
13
26
|
try {
|
|
14
27
|
const [command, ...args] = cmd.split(' ');
|
|
15
|
-
const result = (0, child_process_1.spawnSync)(command, args, { encoding: 'utf8' });
|
|
28
|
+
const result = (0, child_process_1.spawnSync)(command, args, { encoding: 'utf8', maxBuffer: MAX_STDIO_BUFFER });
|
|
16
29
|
if (result.status === 0) {
|
|
17
30
|
return ((_a = result.stdout) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
18
31
|
}
|
|
@@ -32,7 +45,7 @@ function runCommand(cmd, onError) {
|
|
|
32
45
|
}
|
|
33
46
|
async function execWithErrorHandling(command) {
|
|
34
47
|
try {
|
|
35
|
-
return await execPromise(command);
|
|
48
|
+
return await execPromise(command, { maxBuffer: MAX_STDIO_BUFFER });
|
|
36
49
|
}
|
|
37
50
|
catch (error) {
|
|
38
51
|
console.error(`Error executing "${command}":`, error);
|
package/dist/utils/cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../../src/utils/cmd.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../../src/utils/cmd.ts"],"names":[],"mappings":";;;;;AAoBA,gCAmBC;AAID,sDAOC;AAlDD,iDAA+C;AAC/C,gDAAuB;AACvB,MAAM,WAAW,GAAG,cAAI,CAAC,SAAS,CAAC,oBAAI,CAAC,CAAA;AAExC,8EAA8E;AAC9E,gFAAgF;AAChF,uBAAuB;AACvB,EAAE;AACF,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,6EAA6E;AAC7E,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;AAI1C,SAAgB,UAAU,CAAC,GAAW,EAAE,OAAuB;;IAC3D,IAAI,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACzC,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAA;QAE1F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,IAAI,EAAE,KAAI,EAAE,CAAA;QACtC,CAAC;aAAM,CAAC;YACJ,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3C,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACrD,CAAC;YACD,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9E,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;AACL,CAAC;AAIM,KAAK,UAAU,qBAAqB,CAAC,OAAe;IACvD,IAAI,CAAC;QACD,OAAO,MAAM,WAAW,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1B,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "git-release-manager",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "A tool to generate release notes from git commit history",
|
|
5
5
|
"main": "index.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
"dev": "tsc && node index.ts",
|
|
11
11
|
"copy-config": "copyfiles -u 1 ./src/config/defaults/config.*json ./dist/",
|
|
12
12
|
"copy-template": "copyfiles -u 1 ./src/templates/defaults/changelog.*ejs ./dist/",
|
|
13
|
-
"test": "jest"
|
|
13
|
+
"test": "jest",
|
|
14
|
+
"seal": "node scripts/mutation-verify.js",
|
|
15
|
+
"seal:ledger": "node scripts/seal-ledger-check.js",
|
|
16
|
+
"seal:coverage": "node scripts/seal-coverage-check.js"
|
|
14
17
|
},
|
|
15
18
|
"bin": {
|
|
16
19
|
"grm": "./dist/index.js"
|