hadara 0.3.0-rc.2 → 0.3.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
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<img alt="
|
|
9
|
-
<img alt="Source
|
|
8
|
+
<img alt="Stable npm release" src="https://img.shields.io/badge/npm-0.3.0-blue">
|
|
9
|
+
<img alt="Source version" src="https://img.shields.io/badge/source-0.3.0-orange">
|
|
10
10
|
<img alt="Node.js" src="https://img.shields.io/badge/node-%3E%3D22-brightgreen">
|
|
11
11
|
<img alt="License" src="https://img.shields.io/badge/license-MIT-lightgrey">
|
|
12
12
|
</p>
|
|
@@ -21,27 +21,21 @@ This repository is both the HADARA source checkout and the HADARA protocol works
|
|
|
21
21
|
|
|
22
22
|
## Release Status
|
|
23
23
|
|
|
24
|
-
Current
|
|
24
|
+
Current stable npm release:
|
|
25
25
|
|
|
26
26
|
```text
|
|
27
|
-
hadara@0.3.0
|
|
27
|
+
hadara@0.3.0
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
Previous npm release candidate:
|
|
31
31
|
|
|
32
32
|
```text
|
|
33
33
|
hadara@0.3.0-rc.2
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
Previous published npm release:
|
|
37
|
-
|
|
38
|
-
```text
|
|
39
|
-
hadara@0.3.0-rc.0
|
|
40
|
-
```
|
|
41
|
-
|
|
42
36
|
The 0.3.0 line is the Phase 7 Surface Refactor. It organizes HADARA's existing task, evidence, proof, lifecycle, release, and document surfaces so agents can distinguish primary lifecycle commands, diagnostics, advanced surfaces, canonical documents, historical documents, and safe Markdown update boundaries.
|
|
43
37
|
|
|
44
|
-
Phase 7.x labels are internal implementation phases, not npm release-candidate labels.
|
|
38
|
+
Phase 7.x labels are internal implementation phases, not npm release-candidate labels. The stable `0.3.0` package is published through the approval-gated release path with explicit operator confirmation.
|
|
45
39
|
|
|
46
40
|
| Surface | Status |
|
|
47
41
|
|---|---|
|
|
@@ -50,8 +44,9 @@ Phase 7.x labels are internal implementation phases, not npm release-candidate l
|
|
|
50
44
|
| `hadara@0.2.0-rc.2` | Previous published npm RC. |
|
|
51
45
|
| `hadara@0.2.0-rc.3` | Previous published npm RC. |
|
|
52
46
|
| `hadara@0.3.0-rc.0` | Previous published npm RC; package metadata lacks the intended discovery fields. |
|
|
53
|
-
| `hadara@0.3.0-rc.1` |
|
|
54
|
-
| `hadara@0.3.0-rc.2` |
|
|
47
|
+
| `hadara@0.3.0-rc.1` | Previous published npm RC; T-0301 publish evidence verified `npm view` returned `0.3.0-rc.1`. |
|
|
48
|
+
| `hadara@0.3.0-rc.2` | Previous published npm RC; T-0310 publish evidence verified `npm view` returned `0.3.0-rc.2`. |
|
|
49
|
+
| `hadara@0.3.0` | Current stable npm release. |
|
|
55
50
|
| GitHub Release | Secondary target, approval-gated. |
|
|
56
51
|
| Docker image | Deferred. |
|
|
57
52
|
| PyPI/Python package | `hadara==0.2.0rc1` published preview bridge. |
|
|
@@ -63,10 +58,10 @@ No release command should publish, create a GitHub Release, build Docker images,
|
|
|
63
58
|
|
|
64
59
|
Requires Node.js 22.
|
|
65
60
|
|
|
66
|
-
Install the
|
|
61
|
+
Install the stable release:
|
|
67
62
|
|
|
68
63
|
```bash
|
|
69
|
-
npm install -g hadara@0.3.0
|
|
64
|
+
npm install -g hadara@0.3.0
|
|
70
65
|
hadara help
|
|
71
66
|
hadara doctor --json
|
|
72
67
|
```
|
|
@@ -74,8 +69,8 @@ hadara doctor --json
|
|
|
74
69
|
Run without a global install:
|
|
75
70
|
|
|
76
71
|
```bash
|
|
77
|
-
npx hadara@0.3.0
|
|
78
|
-
npx hadara@0.3.0
|
|
72
|
+
npx hadara@0.3.0 help
|
|
73
|
+
npx hadara@0.3.0 doctor --json
|
|
79
74
|
```
|
|
80
75
|
|
|
81
76
|
## What HADARA Gives You
|
|
@@ -11,6 +11,7 @@ exports.parseManagedSections = parseManagedSections;
|
|
|
11
11
|
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
12
12
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
13
13
|
const node_path_1 = __importDefault(require("node:path"));
|
|
14
|
+
const fs_1 = require("../core/fs");
|
|
14
15
|
const START_MARKER = /^<!--\s*hadara:managed:start\s+([A-Za-z0-9_.-]+)\s+(\{.*\})\s*-->\s*$/;
|
|
15
16
|
const END_MARKER = /^<!--\s*hadara:managed:end\s+([A-Za-z0-9_.-]+)\s*-->\s*$/;
|
|
16
17
|
const KNOWN_TARGETS = [
|
|
@@ -134,7 +135,18 @@ function createDocsPatchPlanReport(projectRoot, options) {
|
|
|
134
135
|
const patches = patch ? [patch] : [];
|
|
135
136
|
if (options.mode === 'execute' && patch && issues.every((issue) => issue.severity !== 'error')) {
|
|
136
137
|
const nextContent = replaceSectionBody(targetContent, section, contentFileResult.content);
|
|
137
|
-
|
|
138
|
+
try {
|
|
139
|
+
(0, fs_1.atomicWriteTextFile)(projectRoot, targetPath, nextContent);
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
issues.push({
|
|
143
|
+
severity: 'error',
|
|
144
|
+
code: 'MANAGED_PATCH_WRITE_FAILED',
|
|
145
|
+
path: targetPath,
|
|
146
|
+
sectionId: section.id,
|
|
147
|
+
message: `Could not apply managed patch atomically; target file was preserved if the atomic rename failed: ${error instanceof Error ? error.message : String(error)}`
|
|
148
|
+
});
|
|
149
|
+
}
|
|
138
150
|
}
|
|
139
151
|
return {
|
|
140
152
|
schemaVersion: 'hadara.docs.patchPlan.v1',
|
|
@@ -334,8 +334,8 @@ function checkPackageMetadataReadiness(packageJson, licenseText, testStrategy, r
|
|
|
334
334
|
packageJson?.version === '0.0.0-bootstrap' &&
|
|
335
335
|
packageJson?.private === true &&
|
|
336
336
|
bin.hadara === './dist/cli/main.js';
|
|
337
|
-
const
|
|
338
|
-
/^0\.\d+\.0-rc\.\d+$/.test(String(packageJson?.version ?? '')) &&
|
|
337
|
+
const publishablePackageMetadataOk = packageJson?.name === 'hadara' &&
|
|
338
|
+
(/^0\.\d+\.0-rc\.\d+$/.test(String(packageJson?.version ?? '')) || /^0\.\d+\.0$/.test(String(packageJson?.version ?? ''))) &&
|
|
339
339
|
packageJson?.private === false &&
|
|
340
340
|
packageJson?.license === 'MIT' &&
|
|
341
341
|
bin.hadara === './dist/cli/main.js' &&
|
|
@@ -364,13 +364,13 @@ function checkPackageMetadataReadiness(packageJson, licenseText, testStrategy, r
|
|
|
364
364
|
'Before adding more T-0128+ release/install/package-smoke readiness markers, prefer moving the structured readiness source to `docs/RELEASE_READINESS.md` or `docs/release-readiness.json`'
|
|
365
365
|
];
|
|
366
366
|
const docsOk = includesAll(testStrategy, metadataMarkers) || includesAll(releaseReadiness, metadataMarkers);
|
|
367
|
-
const ok = (bootstrapMetadataOk ||
|
|
367
|
+
const ok = (bootstrapMetadataOk || publishablePackageMetadataOk) && docsOk;
|
|
368
368
|
return {
|
|
369
369
|
code: 'PACKAGE_METADATA_RELEASE_READINESS',
|
|
370
370
|
name: 'Package metadata release readiness',
|
|
371
371
|
status: ok ? 'passed' : readinessFailureStatus(mode),
|
|
372
372
|
summary: ok
|
|
373
|
-
? 'Package name,
|
|
373
|
+
? 'Package name, publishable version, private transition, files target, license path, publish target, and installed CLI verification decisions are documented without publishing.'
|
|
374
374
|
: 'Package metadata release-readiness decisions must be documented before publishability is accepted.'
|
|
375
375
|
};
|
|
376
376
|
}
|
|
@@ -14,7 +14,7 @@ function createReleasePublishReport(options) {
|
|
|
14
14
|
const mode = options.mode ?? 'dry-run';
|
|
15
15
|
const env = options.env ?? process.env;
|
|
16
16
|
const metadata = readPackageMetadata(options.projectRoot);
|
|
17
|
-
const metadataPublishable = !metadata.private && /^0\.\d+\.0-rc\.\d+$/.test(metadata.packageVersion);
|
|
17
|
+
const metadataPublishable = !metadata.private && (/^0\.\d+\.0-rc\.\d+$/.test(metadata.packageVersion) || /^0\.\d+\.0$/.test(metadata.packageVersion));
|
|
18
18
|
const dryRun = (0, release_dry_run_1.createReleaseDryRunReport)(options.projectRoot);
|
|
19
19
|
const approval = {
|
|
20
20
|
required: true,
|
|
@@ -33,7 +33,9 @@ function createReleasePublishReport(options) {
|
|
|
33
33
|
code: 'PACKAGE_PUBLISHABLE_METADATA',
|
|
34
34
|
name: 'Package publishable metadata',
|
|
35
35
|
status: metadataPublishable ? 'passed' : 'error',
|
|
36
|
-
summary: metadataPublishable
|
|
36
|
+
summary: metadataPublishable
|
|
37
|
+
? 'Package metadata is in publishable version mode.'
|
|
38
|
+
: 'Package metadata must be 0.x.0-rc.N or 0.x.0 with private false before publish/deploy readiness can pass.'
|
|
37
39
|
},
|
|
38
40
|
{
|
|
39
41
|
code: 'APPROVAL_RECORD',
|