@packtory/cli 0.0.44 → 0.0.46
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/command-line-interface/runner/changelog-destinations.js +42 -0
- package/command-line-interface/runner/changelog-destinations.js.map +1 -1
- package/command-line-interface/runner/release-git-client.js +15 -0
- package/command-line-interface/runner/release-git-client.js.map +1 -1
- package/command-line-interface/runner/release-output-files.js +14 -0
- package/command-line-interface/runner/release-output-files.js.map +1 -0
- package/command-line-interface/runner/release-pr-github-client.js +257 -0
- package/command-line-interface/runner/release-pr-github-client.js.map +1 -0
- package/command-line-interface/runner/release-publish-authorization.js +67 -0
- package/command-line-interface/runner/release-publish-authorization.js.map +1 -0
- package/command-line-interface/runner/release-pull-request-ci.js +105 -0
- package/command-line-interface/runner/release-pull-request-ci.js.map +1 -0
- package/command-line-interface/runner/release-pull-request-config.js +45 -0
- package/command-line-interface/runner/release-pull-request-config.js.map +1 -0
- package/command-line-interface/runner/release-pull-request-handler.js +313 -0
- package/command-line-interface/runner/release-pull-request-handler.js.map +1 -0
- package/command-line-interface/runner/release-pull-request-policy.js +47 -0
- package/command-line-interface/runner/release-pull-request-policy.js.map +1 -0
- package/command-line-interface/runner/release-pull-request-settings.js +19 -0
- package/command-line-interface/runner/release-pull-request-settings.js.map +1 -0
- package/command-line-interface/runner/runner.js +102 -3
- package/command-line-interface/runner/runner.js.map +1 -1
- package/package.json +7 -3
- package/packages/command-line-interface/command-line-interface.entry-point.d.ts.map +1 -1
- package/packages/command-line-interface/command-line-interface.entry-point.js +23 -5
- package/packages/command-line-interface/command-line-interface.entry-point.js.map +1 -1
- package/packages/command-line-interface/pull-request-label-versioning.js +94 -0
- package/packages/command-line-interface/pull-request-label-versioning.js.map +1 -0
- package/packtory/packtory-changelog.js +1 -2
- package/packtory/packtory-changelog.js.map +1 -1
- package/readme.md +16 -0
- package/sbom.cdx.json +79 -11
package/package.json
CHANGED
|
@@ -8,15 +8,19 @@
|
|
|
8
8
|
],
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@octokit/core": "7.0.6",
|
|
11
|
+
"@octokit/plugin-paginate-rest": "14.0.0",
|
|
12
|
+
"@octokit/plugin-rest-endpoint-methods": "17.0.0",
|
|
11
13
|
"@pr-log/core": "0.0.2",
|
|
12
14
|
"@schema-hub/zod-error-formatter": "0.0.11",
|
|
13
15
|
"cmd-ts": "0.15.0",
|
|
14
16
|
"diff": "9.0.0",
|
|
15
17
|
"open": "11.0.0",
|
|
16
|
-
"packtory": "0.0.
|
|
18
|
+
"packtory": "0.0.46",
|
|
17
19
|
"remeda": "2.39.0",
|
|
20
|
+
"semver": "7.8.5",
|
|
18
21
|
"ts-pattern": "5.9.0",
|
|
19
|
-
"yoctocolors": "2.1.2"
|
|
22
|
+
"yoctocolors": "2.1.2",
|
|
23
|
+
"zod": "4.4.3"
|
|
20
24
|
},
|
|
21
25
|
"description": "Effortlessly bundle and publish npm packages from the command line with @packtory/cli.",
|
|
22
26
|
"engines": {
|
|
@@ -49,5 +53,5 @@
|
|
|
49
53
|
"./packages/command-line-interface/spinner-worker.entry-point.js"
|
|
50
54
|
],
|
|
51
55
|
"type": "module",
|
|
52
|
-
"version": "0.0.
|
|
56
|
+
"version": "0.0.46"
|
|
53
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-line-interface.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/command-line-interface.entry-point.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"command-line-interface.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/command-line-interface.entry-point.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqKrF,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC"}
|
|
@@ -11,6 +11,7 @@ import fs from 'node:fs';
|
|
|
11
11
|
import path from 'node:path';
|
|
12
12
|
import readline from 'node:readline/promises';
|
|
13
13
|
import { execFile } from 'node:child_process';
|
|
14
|
+
import { setTimeout as delay } from 'node:timers/promises';
|
|
14
15
|
import { createPrLogEngine } from '@pr-log/core';
|
|
15
16
|
import { createClock } from "packtory/common/clock.js";
|
|
16
17
|
import { createLineSpinnerRenderer } from "../../command-line-interface/spinner/line-spinner-renderer.js";
|
|
@@ -22,9 +23,11 @@ import { createWorkerSpinnerBackend } from "../../command-line-interface/spinner
|
|
|
22
23
|
import { createConfigLoader } from "../../command-line-interface/config-loader.js";
|
|
23
24
|
import { createDefaultPreviewIo } from "../../command-line-interface/preview-io/preview-io.js";
|
|
24
25
|
import { createGitHubReleaseClient } from "../../command-line-interface/runner/github-release-client.js";
|
|
26
|
+
import { createReleasePullRequestGitHubClient } from "../../command-line-interface/runner/release-pr-github-client.js";
|
|
25
27
|
import { createReleaseGitClient } from "../../command-line-interface/runner/release-git-client.js";
|
|
26
28
|
import { readCiEnvironment } from "packtory/bundle-emitter/repository-coherence.js";
|
|
27
29
|
import { buildPacktoryComposition } from "packtory/packages/packtory.composition.js";
|
|
30
|
+
import { createPullRequestLabelVersionSourceResolver } from "./pull-request-label-versioning.js";
|
|
28
31
|
import { awaitSpinnerWorkerTermination, createBootedSpinnerRuntime } from "./spinner-boot.entry-point.js";
|
|
29
32
|
async function importModule(modulePath) {
|
|
30
33
|
return import(__rewriteRelativeImportExtension(modulePath));
|
|
@@ -61,6 +64,7 @@ async function runGitCommand(command, args) {
|
|
|
61
64
|
const spinnerRenderer = createSpinnerRenderer();
|
|
62
65
|
const clock = createClock();
|
|
63
66
|
const fileManager = createFileManager({ hostFileSystem: fs.promises });
|
|
67
|
+
const workingDirectory = process.cwd();
|
|
64
68
|
const previewIo = createDefaultPreviewIo({
|
|
65
69
|
async openFile(filePath) {
|
|
66
70
|
const { default: open } = await import('open');
|
|
@@ -85,16 +89,29 @@ const promptForOneTimePassword = createOneTimePasswordPrompt({
|
|
|
85
89
|
});
|
|
86
90
|
}
|
|
87
91
|
});
|
|
92
|
+
async function readPackageInfo() {
|
|
93
|
+
return parsePackageInfo(await fileManager.readFile(path.join(workingDirectory, 'package.json')));
|
|
94
|
+
}
|
|
88
95
|
const { packtory, progressBroadcaster } = buildPacktoryComposition({
|
|
89
96
|
promptForOneTimePassword,
|
|
90
|
-
ciEnvironment: readCiEnvironment(process.env)
|
|
97
|
+
ciEnvironment: readCiEnvironment(process.env),
|
|
98
|
+
resolveVersionSource: createPullRequestLabelVersionSourceResolver({
|
|
99
|
+
createPrLogEngine,
|
|
100
|
+
readEnvironmentVariable(name) {
|
|
101
|
+
return process.env[name];
|
|
102
|
+
},
|
|
103
|
+
readPackageInfo,
|
|
104
|
+
workingDirectory
|
|
105
|
+
})
|
|
91
106
|
});
|
|
92
|
-
const workingDirectory = process.cwd();
|
|
93
107
|
const commandLinerInterfaceRunner = createCommandLineInterfaceRunner({
|
|
94
108
|
createPrLogEngine,
|
|
95
109
|
createGitHubReleaseClient: (context) => {
|
|
96
110
|
return createGitHubReleaseClient({ ...context, fetch: globalThis.fetch });
|
|
97
111
|
},
|
|
112
|
+
createReleasePullRequestGitHubClient: (context) => {
|
|
113
|
+
return createReleasePullRequestGitHubClient({ ...context, fetch: globalThis.fetch });
|
|
114
|
+
},
|
|
98
115
|
currentDate() {
|
|
99
116
|
return new Date(clock.getCurrentTimeInMilliseconds());
|
|
100
117
|
},
|
|
@@ -114,10 +131,11 @@ const commandLinerInterfaceRunner = createCommandLineInterfaceRunner({
|
|
|
114
131
|
readEnvironmentVariable(name) {
|
|
115
132
|
return process.env[name];
|
|
116
133
|
},
|
|
117
|
-
|
|
118
|
-
return parsePackageInfo(await fileManager.readFile(path.join(workingDirectory, 'package.json')));
|
|
119
|
-
},
|
|
134
|
+
readPackageInfo,
|
|
120
135
|
releaseGitClient: createReleaseGitClient({ repositoryFolder: workingDirectory, runGitCommand }),
|
|
136
|
+
async sleep(milliseconds) {
|
|
137
|
+
await delay(milliseconds);
|
|
138
|
+
},
|
|
121
139
|
workingDirectory,
|
|
122
140
|
log: console.log
|
|
123
141
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-line-interface.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/command-line-interface.entry-point.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"command-line-interface.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/command-line-interface.entry-point.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import semver from 'semver';
|
|
2
|
+
import { defaultValidLabels } from '@pr-log/core';
|
|
3
|
+
import { formatGitHubRepositoryName } from "../../command-line-interface/runner/github-repository.js";
|
|
4
|
+
const orderedVersionBumpLevels = ['major', 'minor', 'patch'];
|
|
5
|
+
const labelLookupIntervalMilliseconds = 250;
|
|
6
|
+
const maximumRateLimitRetryCount = 3;
|
|
7
|
+
function readGitHubToken(deps) {
|
|
8
|
+
return deps.readEnvironmentVariable('GH_TOKEN') ?? deps.readEnvironmentVariable('GITHUB_TOKEN');
|
|
9
|
+
}
|
|
10
|
+
function createEngine(deps) {
|
|
11
|
+
return deps.createPrLogEngine({
|
|
12
|
+
githubToken: readGitHubToken(deps),
|
|
13
|
+
workingDirectory: deps.workingDirectory,
|
|
14
|
+
labelLookupIntervalMilliseconds,
|
|
15
|
+
maximumRateLimitRetryCount
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function createValidLabels(config) {
|
|
19
|
+
return new Map([...defaultValidLabels, ...Object.entries(config.changelog?.labels ?? {})]);
|
|
20
|
+
}
|
|
21
|
+
function createVersionBumpLabels(validLabels) {
|
|
22
|
+
const allLabels = Array.from(validLabels.keys());
|
|
23
|
+
return {
|
|
24
|
+
major: ['breaking'],
|
|
25
|
+
minor: ['feature'],
|
|
26
|
+
patch: allLabels
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function selectVersionBumpLevel(pullRequests, validLabels) {
|
|
30
|
+
const labels = new Set(pullRequests.map((pullRequest) => {
|
|
31
|
+
return pullRequest.label;
|
|
32
|
+
}));
|
|
33
|
+
const versionBumpLabels = createVersionBumpLabels(validLabels);
|
|
34
|
+
return orderedVersionBumpLevels.find((level) => {
|
|
35
|
+
return versionBumpLabels[level].some((label) => {
|
|
36
|
+
return labels.has(label);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function incrementVersion(version, level) {
|
|
41
|
+
const nextVersion = semver.inc(version, level);
|
|
42
|
+
if (nextVersion === null) {
|
|
43
|
+
throw new Error(`Failed to increment version "${version}"`);
|
|
44
|
+
}
|
|
45
|
+
return nextVersion;
|
|
46
|
+
}
|
|
47
|
+
function selectNextVersion(currentVersion, pullRequests, validLabels) {
|
|
48
|
+
const versionBumpLevel = selectVersionBumpLevel(pullRequests, validLabels);
|
|
49
|
+
return versionBumpLevel === undefined ? currentVersion : incrementVersion(currentVersion, versionBumpLevel);
|
|
50
|
+
}
|
|
51
|
+
export function createPullRequestLabelVersionSourceResolver(deps) {
|
|
52
|
+
async function collectLabeledPullRequests(input, packtoryConfig) {
|
|
53
|
+
const packageInfo = await deps.readPackageInfo();
|
|
54
|
+
const githubRepo = formatGitHubRepositoryName(packageInfo);
|
|
55
|
+
const validLabels = createValidLabels(packtoryConfig);
|
|
56
|
+
const prLogEngine = createEngine(deps);
|
|
57
|
+
const baseRef = await prLogEngine.resolveChangelogBaseRef({
|
|
58
|
+
packageName: input.packageName,
|
|
59
|
+
previousVersion: input.currentVersion,
|
|
60
|
+
previousGitHead: undefined,
|
|
61
|
+
packageTagFormat: packtoryConfig.changelog?.packageTagFormat,
|
|
62
|
+
explicitBaseRef: packtoryConfig.changelog?.explicitBaseRef
|
|
63
|
+
});
|
|
64
|
+
const pullRequests = await prLogEngine.collectMergedPullRequests({ githubRepo, baseRef: baseRef.ref });
|
|
65
|
+
const changedFilesByPullRequest = await prLogEngine.readPullRequestChangedFiles({
|
|
66
|
+
githubRepo,
|
|
67
|
+
pullRequests
|
|
68
|
+
});
|
|
69
|
+
const targetPullRequests = prLogEngine.filterPullRequestsByTargetFiles({
|
|
70
|
+
targetName: input.packageName,
|
|
71
|
+
targetSourceFiles: input.targetSourceFiles,
|
|
72
|
+
pullRequests,
|
|
73
|
+
changedFilesByPullRequest,
|
|
74
|
+
ignoredAttributionPaths: input.ignoredAttributionPaths
|
|
75
|
+
});
|
|
76
|
+
return prLogEngine.resolvePullRequestLabels({
|
|
77
|
+
githubRepo,
|
|
78
|
+
validLabels,
|
|
79
|
+
ignoredLabels: [],
|
|
80
|
+
pullRequests: targetPullRequests,
|
|
81
|
+
targetName: input.packageName,
|
|
82
|
+
targetScopedLabelPattern: packtoryConfig.changelog?.targetScopedLabelPattern
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return (sourceInput) => {
|
|
86
|
+
return async (input) => {
|
|
87
|
+
if (input.currentVersion === undefined) {
|
|
88
|
+
return '0.0.1';
|
|
89
|
+
}
|
|
90
|
+
return selectNextVersion(input.currentVersion, await collectLabeledPullRequests(input, sourceInput.packtoryConfig), createValidLabels(sourceInput.packtoryConfig));
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=pull-request-label-versioning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull-request-label-versioning.js","sourceRoot":"","sources":["../../../../../source/packages/command-line-interface/pull-request-label-versioning.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAwE,MAAM,cAAc,CAAC;AAIxH,OAAO,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AAatG,MAAM,wBAAwB,GAAgC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1F,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAC5C,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAErC,SAAS,eAAe,CAAC,IAAwE;IAC7F,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,YAAY,CAAC,IAAuC;IACzD,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAC1B,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC;QAClC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,+BAA+B;QAC/B,0BAA0B;KAC7B,CAAC,CAAC;AACP,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAsB;IAC7C,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,kBAAkB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,uBAAuB,CAC5B,WAAwC;IAExC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,OAAO;QACH,KAAK,EAAE,CAAC,UAAU,CAAC;QACnB,KAAK,EAAE,CAAC,SAAS,CAAC;QAClB,KAAK,EAAE,SAAS;KACnB,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAC3B,YAA6C,EAC7C,WAAwC;IAExC,MAAM,MAAM,GAAG,IAAI,GAAG,CAClB,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QAC7B,OAAO,WAAW,CAAC,KAAK,CAAC;IAC7B,CAAC,CAAC,CACL,CAAC;IACF,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC/D,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAuB;IAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,SAAS,iBAAiB,CACtB,cAAsB,EACtB,YAA6C,EAC7C,WAAwC;IAExC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC3E,OAAO,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,2CAA2C,CACvD,IAAuC;IAEvC,KAAK,UAAU,0BAA0B,CACrC,KAAqC,EACrC,cAA8B;QAE9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,uBAAuB,CAAC;YACtD,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,eAAe,EAAE,KAAK,CAAC,cAAc;YACrC,eAAe,EAAE,SAAS;YAC1B,gBAAgB,EAAE,cAAc,CAAC,SAAS,EAAE,gBAAgB;YAC5D,eAAe,EAAE,cAAc,CAAC,SAAS,EAAE,eAAe;SAC7D,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,yBAAyB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvG,MAAM,yBAAyB,GAAG,MAAM,WAAW,CAAC,2BAA2B,CAAC;YAC5E,UAAU;YACV,YAAY;SACf,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,WAAW,CAAC,+BAA+B,CAAC;YACnE,UAAU,EAAE,KAAK,CAAC,WAAW;YAC7B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,YAAY;YACZ,yBAAyB;YACzB,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;SACzD,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,wBAAwB,CAAC;YACxC,UAAU;YACV,WAAW;YACX,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,kBAAkB;YAChC,UAAU,EAAE,KAAK,CAAC,WAAW;YAC7B,wBAAwB,EAAE,cAAc,CAAC,SAAS,EAAE,wBAAwB;SAC/E,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,WAAW,EAAmB,EAAE;QACpC,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;YACnB,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,OAAO,CAAC;YACnB,CAAC;YACD,OAAO,iBAAiB,CACpB,KAAK,CAAC,cAAc,EACpB,MAAM,0BAA0B,CAAC,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,EACnE,iBAAiB,CAAC,WAAW,CAAC,cAAc,CAAC,CAChD,CAAC;QACN,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { compareValues } from "packtory/common/sort-values.js";
|
|
3
|
-
const changelogFileName = 'CHANGELOG.md';
|
|
4
3
|
function selectChangedPackages(packages) {
|
|
5
4
|
return packages.filter((packagePlan) => {
|
|
6
5
|
return packagePlan.changed;
|
|
@@ -10,7 +9,7 @@ function sortUniqueValues(values) {
|
|
|
10
9
|
return Array.from(values).toSorted(compareValues);
|
|
11
10
|
}
|
|
12
11
|
function isChangelogFilePath(filePath) {
|
|
13
|
-
return path.posix.basename(filePath) ===
|
|
12
|
+
return path.posix.basename(filePath) === 'CHANGELOG.md';
|
|
14
13
|
}
|
|
15
14
|
function collectChangelogPaths(packages) {
|
|
16
15
|
return sortUniqueValues(new Set(packages.flatMap((packagePlan) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packtory-changelog.js","sourceRoot":"","sources":["../../../../source/packtory/packtory-changelog.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAqCzD,
|
|
1
|
+
{"version":3,"file":"packtory-changelog.js","sourceRoot":"","sources":["../../../../source/packtory/packtory-changelog.ts"],"names":[],"mappings":"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"}
|
package/readme.md
CHANGED
|
@@ -22,6 +22,7 @@ packtory <command> [options]
|
|
|
22
22
|
- **release-diff:** Runs the same dry-run build as `preview` and shows, per package, the changes between the latest version currently published on the configured registry and the bundle the next run would publish.
|
|
23
23
|
- **changelog:** Builds the next release plan, attributes merged GitHub pull requests to changed packages, and prints grouped Markdown changelog output.
|
|
24
24
|
- **release:** Prints the next release plan by default, or runs one explicit release workflow when action flags and `--no-dry-run` are set.
|
|
25
|
+
- **release-pr:** Maintains, validates, and authorizes a reviewed release PR flow for generated changelog releases.
|
|
25
26
|
- **publish:** Bundles and publishes npm packages based on the configuration in `packtory.config.js`.
|
|
26
27
|
- **pack:** Builds a single configured package and writes it to disk as a zip archive, tarball, or expanded folder. Intended for ad-hoc artifact use cases such as AWS Lambda deployments, container builds, or local inspection — `pack` never talks to a registry.
|
|
27
28
|
|
|
@@ -38,6 +39,10 @@ packtory <command> [options]
|
|
|
38
39
|
- **release --tag:** Creates one annotated tag per released package, named `{packageName}@{version}`.
|
|
39
40
|
- **release --push:** Runs `git push --follow-tags`. Requires `--commit` or `--tag`.
|
|
40
41
|
- **release --github-release:** Creates one GitHub Release per package tag. Requires `--tag --push`.
|
|
42
|
+
- **release-pr maintain --no-dry-run:** Writes and commits configured changelogs, pushes the configured release branch, and creates or updates the release PR.
|
|
43
|
+
- **release-pr validate:** Validates the current GitHub `pull_request` or `merge_group` event against the release PR policy.
|
|
44
|
+
- **release-pr authorize-publish:** Writes `should_publish` and publish target outputs for a workflow that should publish only after a valid release PR merge.
|
|
45
|
+
- **release-pr authorize-publish --release-pull-request <number>:** Authorizes a manual retry from a merged release PR.
|
|
41
46
|
- **pack <package> --format <zip|tar|folder> --out <path>:** Selects which package from the configuration to build and where to write it. `--format` and `--out` are required.
|
|
42
47
|
- **pack --version <version>:** Stamps the produced manifest with the given version. Defaults to `0.0.0` when omitted, since `pack` is decoupled from the registry-driven automatic versioning used by `publish`.
|
|
43
48
|
- **pack --vendor-dependencies:** Resolves every external (and bundle) dependency from the local `node_modules` and materializes them next to the package files inside the artifact. Use this for self-contained deployments where the runtime cannot run `npm install` (e.g. AWS Lambda zips). Without the flag, dependencies are recorded in the generated `package.json` only.
|
|
@@ -95,6 +100,17 @@ packtory <command> [options]
|
|
|
95
100
|
- Packtory uses inherited Git configuration, environment, and credentials. In CI, configure commit identity with standard variables such as `GIT_AUTHOR_NAME`, `GIT_AUTHOR_EMAIL`, `GIT_COMMITTER_NAME`, and `GIT_COMMITTER_EMAIL`, and configure push credentials outside Packtory.
|
|
96
101
|
- GitHub Release creation reads `GH_TOKEN` first, then `GITHUB_TOKEN`.
|
|
97
102
|
|
|
103
|
+
**Release PR behavior:**
|
|
104
|
+
|
|
105
|
+
- `release-pr maintain --no-dry-run` runs the changelog commit part of `packtory release`, pushes the result to `releasePullRequest.branch`, creates or updates the release PR, and replaces its labels with `releasePullRequest.label`.
|
|
106
|
+
- If release planning produces no changelog commit, `maintain` closes the open release PR for that branch and deletes the remote release branch.
|
|
107
|
+
- Release PR settings live in top-level `releasePullRequest`. Defaults are `branch: 'release/packtory'`, `label: 'release'`, `title: 'Prepare release'`, `commitSubject: 'Release packages'`, `defaultBranch: 'main'`, and `automationAuthor: 'github-actions[bot]'`.
|
|
108
|
+
- The release PR policy derives allowed files from `changelog.outputs`. Repository and package changelog files are allowed. GitHub Release outputs are ignored because they do not write repository files.
|
|
109
|
+
- `release-pr validate` accepts normal PRs without a release label. Release-labeled PRs must match the configured branch, title, author, commit subject, base head, and allowed files. Merge groups must not batch release PRs with other PRs.
|
|
110
|
+
- `release-pr authorize-publish` writes GitHub step outputs when `$GITHUB_OUTPUT` exists, otherwise it prints them. Normal commits get `should_publish=false`. A merged valid release PR gets `should_publish=true`, `publish_commit_sha`, `release_commit_sha`, and `release_pull_request_number`.
|
|
111
|
+
- Set `releasePullRequest.githubActionsCi` only for the GitHub Actions `GITHUB_TOKEN` workaround. With `trigger: 'workflow-dispatch'`, `workflowFile`, and `requiredStatusContexts`, `maintain` dispatches CI for the release branch, waits for the exact release commit run, and mirrors the configured job names as commit statuses.
|
|
112
|
+
- Leave `githubActionsCi` unset when the release branch push already triggers normal CI, such as with a GitHub App token, PAT, human push, external automation, or non-GitHub CI.
|
|
113
|
+
|
|
98
114
|
**Pack behavior:**
|
|
99
115
|
|
|
100
116
|
- `packtory pack` runs the same validate → resolve → link → checks pipeline as the other commands, then emits the selected package's bundle to the path given by `--out`. It never reads from or writes to the configured registry.
|
package/sbom.cdx.json
CHANGED
|
@@ -9,16 +9,16 @@
|
|
|
9
9
|
{
|
|
10
10
|
"type": "application",
|
|
11
11
|
"name": "packtory",
|
|
12
|
-
"version": "0.0.
|
|
12
|
+
"version": "0.0.45"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
15
15
|
},
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "@packtory/cli",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/@packtory/cli@0.0.
|
|
21
|
-
"purl": "pkg:npm/@packtory/cli@0.0.
|
|
19
|
+
"version": "0.0.46",
|
|
20
|
+
"bom-ref": "pkg:npm/@packtory/cli@0.0.46",
|
|
21
|
+
"purl": "pkg:npm/@packtory/cli@0.0.46"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
@@ -35,6 +35,32 @@
|
|
|
35
35
|
],
|
|
36
36
|
"purl": "pkg:npm/@octokit/core@7.0.6"
|
|
37
37
|
},
|
|
38
|
+
{
|
|
39
|
+
"type": "library",
|
|
40
|
+
"name": "@octokit/plugin-paginate-rest",
|
|
41
|
+
"version": "14.0.0",
|
|
42
|
+
"bom-ref": "pkg:npm/@octokit/plugin-paginate-rest@14.0.0",
|
|
43
|
+
"scope": "required",
|
|
44
|
+
"licenses": [
|
|
45
|
+
{
|
|
46
|
+
"expression": "MIT"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"purl": "pkg:npm/@octokit/plugin-paginate-rest@14.0.0"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "library",
|
|
53
|
+
"name": "@octokit/plugin-rest-endpoint-methods",
|
|
54
|
+
"version": "17.0.0",
|
|
55
|
+
"bom-ref": "pkg:npm/@octokit/plugin-rest-endpoint-methods@17.0.0",
|
|
56
|
+
"scope": "required",
|
|
57
|
+
"licenses": [
|
|
58
|
+
{
|
|
59
|
+
"expression": "MIT"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"purl": "pkg:npm/@octokit/plugin-rest-endpoint-methods@17.0.0"
|
|
63
|
+
},
|
|
38
64
|
{
|
|
39
65
|
"type": "library",
|
|
40
66
|
"name": "@pr-log/core",
|
|
@@ -103,15 +129,15 @@
|
|
|
103
129
|
{
|
|
104
130
|
"type": "library",
|
|
105
131
|
"name": "packtory",
|
|
106
|
-
"version": "0.0.
|
|
107
|
-
"bom-ref": "pkg:npm/packtory@0.0.
|
|
132
|
+
"version": "0.0.46",
|
|
133
|
+
"bom-ref": "pkg:npm/packtory@0.0.46",
|
|
108
134
|
"scope": "required",
|
|
109
135
|
"licenses": [
|
|
110
136
|
{
|
|
111
137
|
"expression": "MIT"
|
|
112
138
|
}
|
|
113
139
|
],
|
|
114
|
-
"purl": "pkg:npm/packtory@0.0.
|
|
140
|
+
"purl": "pkg:npm/packtory@0.0.46"
|
|
115
141
|
},
|
|
116
142
|
{
|
|
117
143
|
"type": "library",
|
|
@@ -126,6 +152,19 @@
|
|
|
126
152
|
],
|
|
127
153
|
"purl": "pkg:npm/remeda@2.39.0"
|
|
128
154
|
},
|
|
155
|
+
{
|
|
156
|
+
"type": "library",
|
|
157
|
+
"name": "semver",
|
|
158
|
+
"version": "7.8.5",
|
|
159
|
+
"bom-ref": "pkg:npm/semver@7.8.5",
|
|
160
|
+
"scope": "required",
|
|
161
|
+
"licenses": [
|
|
162
|
+
{
|
|
163
|
+
"expression": "ISC"
|
|
164
|
+
}
|
|
165
|
+
],
|
|
166
|
+
"purl": "pkg:npm/semver@7.8.5"
|
|
167
|
+
},
|
|
129
168
|
{
|
|
130
169
|
"type": "library",
|
|
131
170
|
"name": "ts-pattern",
|
|
@@ -151,6 +190,19 @@
|
|
|
151
190
|
}
|
|
152
191
|
],
|
|
153
192
|
"purl": "pkg:npm/yoctocolors@2.1.2"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"type": "library",
|
|
196
|
+
"name": "zod",
|
|
197
|
+
"version": "4.4.3",
|
|
198
|
+
"bom-ref": "pkg:npm/zod@4.4.3",
|
|
199
|
+
"scope": "required",
|
|
200
|
+
"licenses": [
|
|
201
|
+
{
|
|
202
|
+
"expression": "MIT"
|
|
203
|
+
}
|
|
204
|
+
],
|
|
205
|
+
"purl": "pkg:npm/zod@4.4.3"
|
|
154
206
|
}
|
|
155
207
|
],
|
|
156
208
|
"dependencies": [
|
|
@@ -158,18 +210,28 @@
|
|
|
158
210
|
"ref": "pkg:npm/@octokit/core@7.0.6"
|
|
159
211
|
},
|
|
160
212
|
{
|
|
161
|
-
"ref": "pkg:npm/@
|
|
213
|
+
"ref": "pkg:npm/@octokit/plugin-paginate-rest@14.0.0"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"ref": "pkg:npm/@octokit/plugin-rest-endpoint-methods@17.0.0"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"ref": "pkg:npm/@packtory/cli@0.0.46",
|
|
162
220
|
"dependsOn": [
|
|
163
221
|
"pkg:npm/@octokit/core@7.0.6",
|
|
222
|
+
"pkg:npm/@octokit/plugin-paginate-rest@14.0.0",
|
|
223
|
+
"pkg:npm/@octokit/plugin-rest-endpoint-methods@17.0.0",
|
|
164
224
|
"pkg:npm/@pr-log/core@0.0.2",
|
|
165
225
|
"pkg:npm/@schema-hub/zod-error-formatter@0.0.11",
|
|
166
226
|
"pkg:npm/cmd-ts@0.15.0",
|
|
167
227
|
"pkg:npm/diff@9.0.0",
|
|
168
228
|
"pkg:npm/open@11.0.0",
|
|
169
|
-
"pkg:npm/packtory@0.0.
|
|
229
|
+
"pkg:npm/packtory@0.0.46",
|
|
170
230
|
"pkg:npm/remeda@2.39.0",
|
|
231
|
+
"pkg:npm/semver@7.8.5",
|
|
171
232
|
"pkg:npm/ts-pattern@5.9.0",
|
|
172
|
-
"pkg:npm/yoctocolors@2.1.2"
|
|
233
|
+
"pkg:npm/yoctocolors@2.1.2",
|
|
234
|
+
"pkg:npm/zod@4.4.3"
|
|
173
235
|
]
|
|
174
236
|
},
|
|
175
237
|
{
|
|
@@ -188,16 +250,22 @@
|
|
|
188
250
|
"ref": "pkg:npm/open@11.0.0"
|
|
189
251
|
},
|
|
190
252
|
{
|
|
191
|
-
"ref": "pkg:npm/packtory@0.0.
|
|
253
|
+
"ref": "pkg:npm/packtory@0.0.46"
|
|
192
254
|
},
|
|
193
255
|
{
|
|
194
256
|
"ref": "pkg:npm/remeda@2.39.0"
|
|
195
257
|
},
|
|
258
|
+
{
|
|
259
|
+
"ref": "pkg:npm/semver@7.8.5"
|
|
260
|
+
},
|
|
196
261
|
{
|
|
197
262
|
"ref": "pkg:npm/ts-pattern@5.9.0"
|
|
198
263
|
},
|
|
199
264
|
{
|
|
200
265
|
"ref": "pkg:npm/yoctocolors@2.1.2"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"ref": "pkg:npm/zod@4.4.3"
|
|
201
269
|
}
|
|
202
270
|
]
|
|
203
271
|
}
|