@git.zone/cli 6.6.2 → 6.7.1
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/.smartconfig.json +2 -1
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/gitzone.cli.js +2 -2
- package/dist_ts/helpers.workflow.d.ts +3 -0
- package/dist_ts/helpers.workflow.js +14 -1
- package/dist_ts/mod_config/index.js +4 -1
- package/dist_ts/mod_deprecate/helpers.deprecation.d.ts +12 -0
- package/dist_ts/mod_deprecate/helpers.deprecation.js +87 -0
- package/dist_ts/mod_deprecate/index.d.ts +1 -1
- package/dist_ts/mod_deprecate/index.js +77 -40
- package/dist_ts/mod_format/classes.baseformatter.d.ts +6 -0
- package/dist_ts/mod_format/classes.baseformatter.js +61 -1
- package/dist_ts/mod_format/classes.formatplanner.js +14 -3
- package/dist_ts/mod_format/classes.formatstats.d.ts +4 -1
- package/dist_ts/mod_format/classes.formatstats.js +11 -1
- package/dist_ts/mod_format/formatters/readme.formatter.d.ts +2 -1
- package/dist_ts/mod_format/formatters/readme.formatter.js +80 -14
- package/dist_ts/mod_format/index.js +2 -1
- package/dist_ts/mod_format/interfaces.format.d.ts +6 -2
- package/dist_ts/mod_format/interfaces.format.js +1 -1
- package/dist_ts/mod_release/classes.releasejournal.d.ts +17 -3
- package/dist_ts/mod_release/classes.releasejournal.js +144 -12
- package/dist_ts/mod_release/helpers.npmartifact.d.ts +3 -1
- package/dist_ts/mod_release/helpers.npmartifact.js +64 -5
- package/dist_ts/mod_release/helpers.releasepublication.js +21 -19
- package/dist_ts/mod_release/index.d.ts +24 -0
- package/dist_ts/mod_release/index.js +82 -22
- package/dist_ts/plugins.d.ts +2 -1
- package/dist_ts/plugins.js +3 -2
- package/package.json +2 -2
- package/readme.md +72 -3
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/gitzone.cli.ts +1 -1
- package/ts/helpers.workflow.ts +17 -0
- package/ts/mod_config/index.ts +3 -0
- package/ts/mod_deprecate/helpers.deprecation.ts +151 -0
- package/ts/mod_deprecate/index.ts +92 -41
- package/ts/mod_format/classes.baseformatter.ts +71 -0
- package/ts/mod_format/classes.formatplanner.ts +16 -3
- package/ts/mod_format/classes.formatstats.ts +14 -1
- package/ts/mod_format/formatters/readme.formatter.ts +89 -14
- package/ts/mod_format/index.ts +1 -0
- package/ts/mod_format/interfaces.format.ts +7 -2
- package/ts/mod_release/classes.releasejournal.ts +219 -20
- package/ts/mod_release/helpers.npmartifact.ts +120 -23
- package/ts/mod_release/helpers.releasepublication.ts +49 -15
- package/ts/mod_release/index.ts +127 -30
- package/ts/plugins.ts +2 -0
- package/readme.hints.md +0 -596
- package/readme.plan.md +0 -176
|
@@ -6,7 +6,7 @@ import { inferVersionTypeFromPending, movePendingToVersion, readPendingChangelog
|
|
|
6
6
|
import { resolveReleaseDockerConfiguration, resolveReleaseWorkflow, resolveReleaseResumeConfiguration, } from "../helpers.workflow.js";
|
|
7
7
|
import * as commitHelpers from "../mod_commit/mod.helpers.js";
|
|
8
8
|
import { inspectReleaseBranch, integrateReleaseBranch, prepareReleaseIntegration, revalidatePreparedReleaseBranch, revalidateReleasePublicationState, releaseGitEnv, resolveReleaseMergeFlag, } from "./helpers.releasebranch.js";
|
|
9
|
-
import { ReleaseJournalStore, createInitialReleaseDockerJournal, createInitialTargetStatus, finalizeJournalCompletion, normalizeReleaseGitRemoteName, normalizeReleaseVersion, resolveGitCommonDirectory, } from "./classes.releasejournal.js";
|
|
9
|
+
import { ReleaseJournalStore, createInitialReleaseDockerJournal, createInitialTargetStatus, finalizeJournalCompletion, normalizeReleaseGitRemoteName, normalizeReleaseVersion, resolveGitCommonDirectory, getReleaseArtifacts, releasePackageArtifactFile, } from "./classes.releasejournal.js";
|
|
10
10
|
import { assertNoLegacyNpmPublisher, assertPnpmReleaseCapability, hashReleaseDestination, normalizeNpmRegistryUrl, packNpmArtifact, verifyStoredNpmArtifact, } from "./helpers.npmartifact.js";
|
|
11
11
|
import { executeReleasePublication } from "./helpers.releasepublication.js";
|
|
12
12
|
import { TsdockerReleaseClient, canonicalReleaseJson, createReleaseQualificationRequest, } from "./helpers.tsdockerprotocol.js";
|
|
@@ -63,6 +63,13 @@ const runInternal = async (argvArg) => {
|
|
|
63
63
|
planMode: workflow.confirmation === "plan",
|
|
64
64
|
});
|
|
65
65
|
printReleasePlan(workflow, branchContext);
|
|
66
|
+
if (workflow.targets.includes("npm") &&
|
|
67
|
+
workflow.npmPackageSource === "tspublish") {
|
|
68
|
+
const packagePlan = await planReleasePackages(branchContext.sourceCwd);
|
|
69
|
+
console.log("npm packages (dependency order):");
|
|
70
|
+
for (const module of packagePlan.modules)
|
|
71
|
+
console.log(` ${module.name} (${module.folder})`);
|
|
72
|
+
}
|
|
66
73
|
if (workflow.confirmation === "plan") {
|
|
67
74
|
return;
|
|
68
75
|
}
|
|
@@ -185,6 +192,10 @@ const assertReleaseConfiguration = (workflowArg, mergeRequestedArg) => {
|
|
|
185
192
|
if (!workflowArg.targets.includes("npm")) {
|
|
186
193
|
return;
|
|
187
194
|
}
|
|
195
|
+
if (workflowArg.npmPackageSource === "tspublish" &&
|
|
196
|
+
workflowArg.targets.includes("docker")) {
|
|
197
|
+
throw new Error("tspublish package releases support Git and npm targets; use a separate Docker release repository.");
|
|
198
|
+
}
|
|
188
199
|
if (workflowArg.npmRegistries.length === 0) {
|
|
189
200
|
throw new Error("The npm release target requires at least one registry.");
|
|
190
201
|
}
|
|
@@ -213,7 +224,16 @@ const createDockerQualificationRequest = (workflowArg, cwdArg, versionArg, revis
|
|
|
213
224
|
test: workflowArg.dockerTest,
|
|
214
225
|
version: versionArg,
|
|
215
226
|
});
|
|
216
|
-
const
|
|
227
|
+
export const planReleasePackages = async (cwdArg) => {
|
|
228
|
+
const plan = await new plugins.tspublish.TsPublish().plan(cwdArg);
|
|
229
|
+
for (const module of plan.modules) {
|
|
230
|
+
if (module.registries.length !== 1 || module.registries[0] !== "useBase") {
|
|
231
|
+
throw new Error(`${module.name}: GitZone-managed packages must declare registries: ["useBase"]. Configure destinations in release.targets.npm.`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return plan;
|
|
235
|
+
};
|
|
236
|
+
export const createReleaseJournal = async (optionsArg) => {
|
|
217
237
|
const gitCommonDirectory = await resolveGitCommonDirectory(optionsArg.smartshell, optionsArg.releaseCwd);
|
|
218
238
|
const store = new ReleaseJournalStore(gitCommonDirectory);
|
|
219
239
|
const releaseDirectory = store.getReleaseDirectory(optionsArg.version);
|
|
@@ -231,8 +251,29 @@ const createReleaseJournal = async (optionsArg) => {
|
|
|
231
251
|
let temporaryDirectory = await store.createTemporaryDirectory(optionsArg.version);
|
|
232
252
|
try {
|
|
233
253
|
let artifact = null;
|
|
254
|
+
const packages = [];
|
|
234
255
|
if (optionsArg.workflow.targets.includes("npm")) {
|
|
235
|
-
|
|
256
|
+
if (optionsArg.workflow.npmPackageSource === "tspublish") {
|
|
257
|
+
const plan = await planReleasePackages(optionsArg.releaseCwd);
|
|
258
|
+
if (plan.version !== optionsArg.version)
|
|
259
|
+
throw new Error("tspublish plan version differs from the release.");
|
|
260
|
+
const outputDirectory = plugins.path.join(temporaryDirectory, "prepared");
|
|
261
|
+
const prepared = await new plugins.tspublish.TsPublish().prepare(optionsArg.releaseCwd, outputDirectory);
|
|
262
|
+
if (JSON.stringify(prepared.map(({ directory, ...module }) => module)) !==
|
|
263
|
+
JSON.stringify(plan.modules)) {
|
|
264
|
+
throw new Error("tspublish package plan changed during preparation.");
|
|
265
|
+
}
|
|
266
|
+
for (const module of prepared) {
|
|
267
|
+
const packed = await packNpmArtifact(optionsArg.smartshell, module.directory, temporaryDirectory, optionsArg.version, releasePackageArtifactFile(module.name));
|
|
268
|
+
if (packed.packageName !== module.name)
|
|
269
|
+
throw new Error("Prepared package identity changed during packing.");
|
|
270
|
+
packages.push({ folder: module.folder, artifact: packed });
|
|
271
|
+
}
|
|
272
|
+
await plugins.fs.rm(outputDirectory, { recursive: true, force: true });
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
artifact = await packNpmArtifact(optionsArg.smartshell, optionsArg.releaseCwd, temporaryDirectory, optionsArg.version);
|
|
276
|
+
}
|
|
236
277
|
await verifyCleanTree(optionsArg.smartshell, optionsArg.releaseCwd, "npm pack lifecycle scripts changed the release worktree. Aborting release.");
|
|
237
278
|
await optionsArg.ensurePublicationState();
|
|
238
279
|
}
|
|
@@ -245,7 +286,7 @@ const createReleaseJournal = async (optionsArg) => {
|
|
|
245
286
|
const gitStatus = createInitialTargetStatus(gitEnabled);
|
|
246
287
|
const journal = finalizeJournalCompletion({
|
|
247
288
|
kind: "gitzone-release-journal",
|
|
248
|
-
schemaVersion: optionsArg.dockerRequest ? 2 : 1,
|
|
289
|
+
schemaVersion: packages.length ? 3 : optionsArg.dockerRequest ? 2 : 1,
|
|
249
290
|
revision: 1,
|
|
250
291
|
release: {
|
|
251
292
|
version: optionsArg.version,
|
|
@@ -254,6 +295,7 @@ const createReleaseJournal = async (optionsArg) => {
|
|
|
254
295
|
tagOid: optionsArg.refs.tagOid,
|
|
255
296
|
},
|
|
256
297
|
artifact,
|
|
298
|
+
...(packages.length ? { packages } : {}),
|
|
257
299
|
git: {
|
|
258
300
|
state: gitStatus.state,
|
|
259
301
|
attempts: gitStatus.attempts,
|
|
@@ -273,18 +315,24 @@ const createReleaseJournal = async (optionsArg) => {
|
|
|
273
315
|
alreadyPublished: optionsArg.workflow.targets.includes("npm")
|
|
274
316
|
? optionsArg.workflow.npmAlreadyPublished
|
|
275
317
|
: "success",
|
|
276
|
-
registries:
|
|
277
|
-
? optionsArg.workflow.npmRegistries.map((
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
318
|
+
registries: packages.length
|
|
319
|
+
? packages.flatMap((entry) => optionsArg.workflow.npmRegistries.map((registry) => ({
|
|
320
|
+
...createInitialTargetStatus(true),
|
|
321
|
+
registry,
|
|
322
|
+
packageName: entry.artifact.packageName,
|
|
323
|
+
})))
|
|
324
|
+
: optionsArg.workflow.targets.includes("npm")
|
|
325
|
+
? optionsArg.workflow.npmRegistries.map((registryArg) => {
|
|
326
|
+
const status = createInitialTargetStatus(true);
|
|
327
|
+
return {
|
|
328
|
+
state: status.state,
|
|
329
|
+
attempts: status.attempts,
|
|
330
|
+
attempt: status.attempt,
|
|
331
|
+
error: status.error,
|
|
332
|
+
registry: registryArg,
|
|
333
|
+
};
|
|
334
|
+
})
|
|
335
|
+
: [],
|
|
288
336
|
},
|
|
289
337
|
...(optionsArg.dockerRequest
|
|
290
338
|
? {
|
|
@@ -416,10 +464,12 @@ const runReleaseResume = async (argvArg, modeArg) => {
|
|
|
416
464
|
await tsdocker.assertCapabilities();
|
|
417
465
|
await tsdocker.validate(journal.docker.request);
|
|
418
466
|
}
|
|
419
|
-
if (journal.
|
|
467
|
+
if (getReleaseArtifacts(journal).length) {
|
|
420
468
|
await assertPnpmReleaseCapability(smartshellInstance, paths.cwd);
|
|
421
469
|
await assertNoLegacyNpmPublisher(paths.cwd);
|
|
422
|
-
|
|
470
|
+
for (const artifact of getReleaseArtifacts(journal)) {
|
|
471
|
+
await verifyStoredNpmArtifact(store.getArtifactPath(version, artifact.file), artifact);
|
|
472
|
+
}
|
|
423
473
|
}
|
|
424
474
|
const branchContext = await inspectReleaseBranch({
|
|
425
475
|
smartshell: smartshellInstance,
|
|
@@ -478,12 +528,17 @@ const assertResumeConfiguration = async (workflowArg, journalArg, cwdArg) => {
|
|
|
478
528
|
const currentRegistries = workflowArg.npmRegistries.map(normalizeNpmRegistryUrl);
|
|
479
529
|
if (journalArg.npm.registries.length > 0 &&
|
|
480
530
|
(JSON.stringify(currentRegistries) !==
|
|
481
|
-
JSON.stringify(
|
|
531
|
+
JSON.stringify([
|
|
532
|
+
...new Set(journalArg.npm.registries.map((registryArg) => registryArg.registry)),
|
|
533
|
+
]) ||
|
|
482
534
|
workflowArg.npmAccessLevel !== journalArg.npm.access ||
|
|
535
|
+
workflowArg.npmPackageSource !==
|
|
536
|
+
(journalArg.schemaVersion === 3 ? "tspublish" : "root") ||
|
|
483
537
|
workflowArg.npmAlreadyPublished !== journalArg.npm.alreadyPublished)) {
|
|
484
538
|
throw new Error("Current npm release configuration does not match the journal.");
|
|
485
539
|
}
|
|
486
|
-
if (journalArg.git.state !== "skipped" ||
|
|
540
|
+
if (journalArg.git.state !== "skipped" ||
|
|
541
|
+
getReleaseArtifacts(journalArg).length) {
|
|
487
542
|
await assertNoLegacyNpmPublisher(cwdArg);
|
|
488
543
|
}
|
|
489
544
|
};
|
|
@@ -494,7 +549,11 @@ const printReleaseJournalSummary = (journalArg) => {
|
|
|
494
549
|
console.log(`artifact: ${journalArg.artifact ? `${journalArg.artifact.integrity} (${journalArg.artifact.sha256})` : "none"}`);
|
|
495
550
|
console.log(`git: ${journalArg.git.state}`);
|
|
496
551
|
for (const registry of journalArg.npm.registries) {
|
|
497
|
-
console.log(`npm ${registry.registry}: ${registry.state}`);
|
|
552
|
+
console.log(`npm ${registry.packageName ? `${registry.packageName} ` : ""}${registry.registry}: ${registry.state}`);
|
|
553
|
+
}
|
|
554
|
+
if (journalArg.schemaVersion === 3) {
|
|
555
|
+
for (const { artifact } of journalArg.packages)
|
|
556
|
+
console.log(`artifact ${artifact.packageName}: ${artifact.integrity} (${artifact.sha256})`);
|
|
498
557
|
}
|
|
499
558
|
if (journalArg.schemaVersion === 2) {
|
|
500
559
|
console.log(`docker qualification ${journalArg.docker.request.candidateId}: ${journalArg.docker.qualification.state}`);
|
|
@@ -679,6 +738,7 @@ function printReleasePlan(workflow, branchContextArg) {
|
|
|
679
738
|
console.log(`targets: ${workflow.targets.length > 0 ? workflow.targets.join(", ") : "none"}`);
|
|
680
739
|
console.log(`changelog: ${workflow.changelogFile}#${workflow.changelogPendingSection}`);
|
|
681
740
|
if (workflow.targets.includes("npm")) {
|
|
741
|
+
console.log(`npm package source: ${workflow.npmPackageSource}`);
|
|
682
742
|
console.log(`npm registries: ${workflow.npmRegistries.length > 0 ? workflow.npmRegistries.join(", ") : "none"}`);
|
|
683
743
|
}
|
|
684
744
|
if (workflow.targets.includes("docker")) {
|
|
@@ -789,4 +849,4 @@ export function showHelp(mode) {
|
|
|
789
849
|
console.log(" --recover-attempt Recover one exact 32-character hexadecimal attempt ID after proving its publisher stopped");
|
|
790
850
|
console.log("");
|
|
791
851
|
}
|
|
792
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfcmVsZWFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDTCwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLG9CQUFvQixHQUNyQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsc0JBQXNCLEVBQ3RCLGlDQUFpQyxHQUdsQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxhQUFhLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIseUJBQXlCLEVBQ3pCLCtCQUErQixFQUMvQixpQ0FBaUMsRUFDakMsYUFBYSxFQUNiLHVCQUF1QixHQUV4QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsaUNBQWlDLEVBQ2pDLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN2Qix5QkFBeUIsR0FLMUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix1QkFBdUIsR0FDeEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLG9CQUFv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
|
|
852
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfcmVsZWFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDTCwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLG9CQUFvQixHQUNyQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsc0JBQXNCLEVBQ3RCLGlDQUFpQyxHQUdsQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxhQUFhLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIseUJBQXlCLEVBQ3pCLCtCQUErQixFQUMvQixpQ0FBaUMsRUFDakMsYUFBYSxFQUNiLHVCQUF1QixHQUV4QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsaUNBQWlDLEVBQ2pDLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLDBCQUEwQixHQU0zQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLHVCQUF1QixHQUN4QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9B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
|
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ import * as smartdelay from '@push.rocks/smartdelay';
|
|
|
20
20
|
import * as smartbucket from '@push.rocks/smartbucket';
|
|
21
21
|
import * as s3 from '@aws-sdk/client-s3';
|
|
22
22
|
import * as tsdockerReleaseProtocol from '@git.zone/tsdocker/dist_ts/classes.releaseprotocol.js';
|
|
23
|
+
import * as tspublish from '@git.zone/tspublish';
|
|
23
24
|
export type { IReleaseCapabilitiesResult, IReleaseCleanupResult, IReleaseDestinationEvidence, IReleaseProbeResult, IReleasePromotionContext, IReleasePromotionResult, IReleaseQualificationRequest, IReleaseQualificationResult, IReleaseValidationResult, TReleasePromotionEvidence, TReleaseProtocolCommand, } from '@git.zone/tsdocker/dist_ts/interfaces/index.js';
|
|
24
25
|
export declare const smartfs: SmartFs;
|
|
25
|
-
export { smartlog, smartlogDestinationLocal, smartconfig, path, os, fs, fsConstants, crypto, projectinfo, smartcli, smartpath, smartpromise, smartupdate, smartshell, smartnetwork, smartfile, smartinteract, smartdelay, smartbucket, s3, tsdockerReleaseProtocol, };
|
|
26
|
+
export { smartlog, smartlogDestinationLocal, smartconfig, path, os, fs, fsConstants, crypto, projectinfo, smartcli, smartpath, smartpromise, smartupdate, smartshell, smartnetwork, smartfile, smartinteract, smartdelay, smartbucket, s3, tsdockerReleaseProtocol, tspublish, };
|
package/dist_ts/plugins.js
CHANGED
|
@@ -20,7 +20,8 @@ import * as smartdelay from '@push.rocks/smartdelay';
|
|
|
20
20
|
import * as smartbucket from '@push.rocks/smartbucket';
|
|
21
21
|
import * as s3 from '@aws-sdk/client-s3';
|
|
22
22
|
import * as tsdockerReleaseProtocol from '@git.zone/tsdocker/dist_ts/classes.releaseprotocol.js';
|
|
23
|
+
import * as tspublish from '@git.zone/tspublish';
|
|
23
24
|
// Create smartfs instance for filesystem operations
|
|
24
25
|
export const smartfs = new SmartFs(new SmartFsProviderNode());
|
|
25
|
-
export { smartlog, smartlogDestinationLocal, smartconfig, path, os, fs, fsConstants, crypto, projectinfo, smartcli, smartpath, smartpromise, smartupdate, smartshell, smartnetwork, smartfile, smartinteract, smartdelay, smartbucket, s3, tsdockerReleaseProtocol, };
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
export { smartlog, smartlogDestinationLocal, smartconfig, path, os, fs, fsConstants, crypto, projectinfo, smartcli, smartpath, smartpromise, smartupdate, smartshell, smartnetwork, smartfile, smartinteract, smartdelay, smartbucket, s3, tsdockerReleaseProtocol, tspublish, };
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssd0JBQXdCLE1BQU0sd0NBQXdDLENBQUM7QUFDbkYsT0FBTyxLQUFLLFdBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxZQUFZLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxLQUFLLFdBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxZQUFZLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxLQUFLLGFBQWEsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6QyxPQUFPLEtBQUssdUJBQXVCLE1BQU0sdURBQXVELENBQUM7QUFDakcsT0FBTyxLQUFLLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQWdCakQsb0RBQW9EO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLG1CQUFtQixFQUFFLENBQUMsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsUUFBUSxFQUNSLHdCQUF3QixFQUN4QixXQUFXLEVBQ1gsSUFBSSxFQUNKLEVBQUUsRUFDRixFQUFFLEVBQ0YsV0FBVyxFQUNYLE1BQU0sRUFDTixXQUFXLEVBQ1gsUUFBUSxFQUNSLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNULGFBQWEsRUFDYixVQUFVLEVBQ1YsV0FBVyxFQUNYLEVBQUUsRUFDRix1QkFBdUIsRUFDdkIsU0FBUyxHQUNWLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@git.zone/cli",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.7.1",
|
|
5
5
|
"description": "A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
7
7
|
"typings": "dist_ts/index.d.ts",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@aws-sdk/client-s3": "3.1095.0",
|
|
50
50
|
"@git.zone/tsdoc": "^2.1.1",
|
|
51
51
|
"@git.zone/tsdocker": "3.5.2",
|
|
52
|
-
"@git.zone/tspublish": "^1.
|
|
52
|
+
"@git.zone/tspublish": "^1.12.1",
|
|
53
53
|
"@push.rocks/commitinfo": "^1.0.13",
|
|
54
54
|
"@push.rocks/early": "^4.0.4",
|
|
55
55
|
"@push.rocks/projectinfo": "^5.1.0",
|
package/readme.md
CHANGED
|
@@ -152,7 +152,7 @@ The release core is not configurable plumbing. It always follows the same profes
|
|
|
152
152
|
7. Create the local release commit and tag on `main`.
|
|
153
153
|
8. Run the configured release build, require a clean tree, and revalidate the release checkout.
|
|
154
154
|
9. When npm is selected, pack it once into an exact tarball.
|
|
155
|
-
10. Atomically install a durable journal before final publication.
|
|
155
|
+
10. Atomically install a durable journal before final publication. Root npm releases use journal schema 1; Docker releases use schema 2; tspublish component releases use schema 3 in the same storage tree.
|
|
156
156
|
11. For schema 2, run the project-local tSDocker qualification build and configured image tests, then durably record the candidate digest graph and complete ordered promotion set.
|
|
157
157
|
12. Publish and verify Git, then each npm registry, then each Docker destination. Remove only the exact qualified candidate after every destination is verified, or after a terminal qualification destination conflict before Git/npm publication.
|
|
158
158
|
|
|
@@ -218,7 +218,7 @@ for inspect/resume if publication is interrupted.
|
|
|
218
218
|
|
|
219
219
|
A selected Git target requires a canonical remote name and exactly one resolved push URL. Before any remote contact, including during `--plan`, GitZone rejects HTTP(S) usernames or passwords, embedded passwords, query strings, fragments, and unsupported protocols. Canonical local paths and SSH destinations may retain their required SSH username.
|
|
220
220
|
|
|
221
|
-
Every release that reaches final publication stores `journal.json` under the repository's Git common directory. npm releases additionally run `pnpm pack` once and store the resulting `package.tgz` beside it. The `v1` path names the storage format and
|
|
221
|
+
Every release that reaches final publication stores `journal.json` under the repository's Git common directory. Root npm releases additionally run `pnpm pack` once and store the resulting `package.tgz` beside it. The `v1` path names the storage format and contains all supported journal schemas:
|
|
222
222
|
|
|
223
223
|
```text
|
|
224
224
|
<git-common-dir>/gitzone/releases/v1/v<version>/package.tgz
|
|
@@ -229,6 +229,52 @@ The canonical journal binds the release commit, annotated tag object, hashed Git
|
|
|
229
229
|
|
|
230
230
|
Packing must leave the release tree clean. Each registry receives that exact stored tarball through `pnpm publish <tarball> --ignore-scripts`, so publish lifecycle scripts do not run. Success is recorded only after anonymous no-redirect probes verify version metadata, SHA-1 and integrity fields, the downloaded tarball bytes, and the `latest` dist-tag. A matching pre-existing version follows `release.targets.npm.alreadyPublished`; conflicting bytes always stop the release, while transient responses and dist-tag propagation remain retryable.
|
|
231
231
|
|
|
232
|
+
### Publishing independently installable components
|
|
233
|
+
|
|
234
|
+
Set `release.targets.npm.packageSource` to `"tspublish"` to release the named
|
|
235
|
+
`ts*/tspublish.json` modules in one repository. The default `"root"` continues
|
|
236
|
+
to publish the root package. A tspublish repository can use a private root
|
|
237
|
+
manifest as the shared dependency/version catalog. Each module must declare
|
|
238
|
+
`"registries": ["useBase"]`; GitZone owns the destinations and access settings.
|
|
239
|
+
Explicit, empty, and `extendBase` module registry declarations are rejected.
|
|
240
|
+
|
|
241
|
+
```json
|
|
242
|
+
{
|
|
243
|
+
"@git.zone/cli": {
|
|
244
|
+
"release": {
|
|
245
|
+
"targets": {
|
|
246
|
+
"npm": {
|
|
247
|
+
"enabled": true,
|
|
248
|
+
"packageSource": "tspublish",
|
|
249
|
+
"registries": ["https://registry.npmjs.org"],
|
|
250
|
+
"accessLevel": "public"
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
`gitzone release --plan` reads and validates the component plans and prints
|
|
259
|
+
their dependency order. It does not build, prepare, or publish packages.
|
|
260
|
+
The normal build must generate every component's compiled folders. GitZone
|
|
261
|
+
then uses tspublish's `prepare()` API to isolate those outputs, packs each
|
|
262
|
+
component once, and removes the disposable preparation directories.
|
|
263
|
+
|
|
264
|
+
Schema 3 records the ordered package set and every package/registry target.
|
|
265
|
+
Each retained tarball uses the canonical filename
|
|
266
|
+
`package.<sha256-of-package-name>.tgz` beside `journal.json`. Every package
|
|
267
|
+
uses the release version, and sibling dependencies use that exact version.
|
|
268
|
+
Git is published before any npm package. All stored hashes are checked before
|
|
269
|
+
publication; completion requires every package at every registry to verify.
|
|
270
|
+
If publication fails partway through, `release resume <version> -y` verifies
|
|
271
|
+
the completed targets and continues using the retained tarballs. Resume never
|
|
272
|
+
reruns component discovery, preparation, builds, or packing.
|
|
273
|
+
|
|
274
|
+
This component release mode supports Git and npm targets. A combined Docker
|
|
275
|
+
target is rejected before release mutation. Root-package Docker releases
|
|
276
|
+
continue to use schema 2.
|
|
277
|
+
|
|
232
278
|
Independent tag-triggered npm publishers are incompatible with this transaction. GitZone rejects a release while `.gitea/workflows/default_tags.yaml` or `.gitlab-ci.yml` still contains the legacy `npmci npm publish` command. Apply the v6 Gitea workflow template or remove the legacy GitLab job and commit that change first.
|
|
233
279
|
|
|
234
280
|
Inspect and resume without regenerating release identity:
|
|
@@ -249,7 +295,7 @@ Resume requires the local `main` commit, annotated release tag, and each journal
|
|
|
249
295
|
|
|
250
296
|
Resume probes remotely observable targets before acting. Exact state is accepted without republishing; positive byte, metadata, ref, or digest conflicts fail closed, while inconclusive results do not overwrite a previously verified state. A Git, npm, Docker qualification, promotion, or cleanup target left in `publishing` state retains authority until the exact recorded 32-character lowercase hexadecimal `attempt.id` is supplied after independently proving its publisher stopped. An interrupted tSDocker `preparing` record has no qualification evidence and cannot be promoted; when tSDocker reports `RECOVERY_REQUIRED`, the exact recovered qualification owner removes only that incomplete deterministic preparation before claiming a fresh qualification attempt. Promotion recovery first reclaims the retired owner's request files and probes the journaled destination; an exact qualified digest is accepted, pending state retires the old attempt and claims a fresh owner before retry, an inconclusive probe retains the old journal owner, and conflicts halt permanently. Final cleanup of a qualified candidate starts only after every promotion is verified and is itself idempotently recoverable. A terminal qualification destination conflict has no promotions, blocks Git/npm, and permits only exact qualified-candidate cleanup.
|
|
251
297
|
|
|
252
|
-
Schema 1 resumes final Git release-ref and npm publication after the journal is atomically installed. Schema 2 additionally resumes Docker qualification, ordered promotion, and cleanup.
|
|
298
|
+
Schema 1 resumes final Git release-ref and npm publication after the journal is atomically installed. Schema 2 additionally resumes Docker qualification, ordered promotion, and cleanup. Schema 3 resumes the complete npm package set. These schemas do not recover local version, changelog, commit, tag, build, or pack failures that occur before installation. `--merge` remains available only for non-Docker releases because its pre-release Git push would violate qualification-before-publication ordering. Pre-installation failures require explicit operator reconciliation.
|
|
253
299
|
|
|
254
300
|
## Standard Changelog
|
|
255
301
|
|
|
@@ -898,6 +944,9 @@ gitzone open pipelines
|
|
|
898
944
|
# Deprecate an old npm package interactively
|
|
899
945
|
gitzone deprecate
|
|
900
946
|
|
|
947
|
+
# Preview an explicit deprecation across both registries
|
|
948
|
+
gitzone deprecate --package @example/old --replacement @example/new --registries https://registry.npmjs.org,https://mirror.example.test --plan
|
|
949
|
+
|
|
901
950
|
# Prepare a project for local work
|
|
902
951
|
gitzone start
|
|
903
952
|
|
|
@@ -905,6 +954,13 @@ gitzone start
|
|
|
905
954
|
gitzone helpers shortid
|
|
906
955
|
```
|
|
907
956
|
|
|
957
|
+
For explicit deprecation, replace `--plan` with `-y` to apply the reviewed
|
|
958
|
+
operation. `--message` supplies migration instructions; otherwise the message
|
|
959
|
+
names the replacement. Deprecation applies to every version. GitZone verifies
|
|
960
|
+
an active replacement on all registries before issuing any change, invokes
|
|
961
|
+
`pnpm deprecate` with literal arguments, and verifies the old versions' metadata
|
|
962
|
+
after each registry operation. `--json` prints the plan without changing it.
|
|
963
|
+
|
|
908
964
|
## Troubleshooting
|
|
909
965
|
|
|
910
966
|
Format only previews changes:
|
|
@@ -920,6 +976,19 @@ Release says there is nothing to release:
|
|
|
920
976
|
gitzone commit
|
|
921
977
|
```
|
|
922
978
|
|
|
979
|
+
Packing fails while reading an excluded local service-data directory:
|
|
980
|
+
|
|
981
|
+
Use a clean release checkout with dependencies installed from the committed
|
|
982
|
+
lockfile. pnpm's packlist traversal can visit local data before applying the
|
|
983
|
+
package's `files` list; `.npmignore` does not prevent that traversal when
|
|
984
|
+
`files` is present. Keep service data and its permissions intact.
|
|
985
|
+
|
|
986
|
+
Inspect the release journal before retrying. An installed journal must be
|
|
987
|
+
resumed with its original artifacts. A failure before journal installation has
|
|
988
|
+
not started final publication and cannot use `release resume`; reconcile the
|
|
989
|
+
local release commit and tag explicitly, preserving their identities. A later
|
|
990
|
+
source correction can be released as a new version from the clean checkout.
|
|
991
|
+
|
|
923
992
|
Docker services fail to start:
|
|
924
993
|
|
|
925
994
|
```bash
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@git.zone/cli',
|
|
6
|
-
version: '6.
|
|
6
|
+
version: '6.7.1',
|
|
7
7
|
description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.'
|
|
8
8
|
}
|
package/ts/gitzone.cli.ts
CHANGED