P3.4a: dist ci publish happy path + persistence (manifest->store->validate->publish->db.json->JSON)
Real local publish success pipeline replacing the ci-publish stub: validate manifest, find/create app + draft release, per-artifact content-address store (P2.2) + common validation (P3.3) with optional manifest-declared size/sha256 (PO ruling), publish via the repo integrity transaction with channel promotion + audit events (P2.3), persist db.json (P2.3), emit stable JSON (release id, artifact ids, sha256, file:// URLs) with --json purity. make publish-example target + tests/publish_happy.sx (fail-before/pass-after). Salvaged from a worker that completed the work (make test 10/10) but hit the 50-min wall before committing; manager-verified at ground truth (make test green, make publish-example exit 0, stored object re-hashes to its key via shasum, db.json records release/2 artifacts/ channel/4 audit events).
This commit is contained in:
@@ -21,6 +21,10 @@
|
||||
|
||||
#import "modules/std.sx";
|
||||
#import "modules/std/json.sx";
|
||||
// Also reached through an alias so the json reader is called as `jsonp.parse`
|
||||
// — a bare `parse` would bind to `std.cli`'s `parse` once both modules share
|
||||
// one program (the `dist` CLI), which returns a different type.
|
||||
jsonp :: #import "modules/std/json.sx";
|
||||
#import "modules/fs.sx";
|
||||
#import "../domain/platform.sx";
|
||||
#import "../domain/app.sx";
|
||||
@@ -360,7 +364,7 @@ audit_from_json :: (o: Object, alloc: Allocator) -> (AuditEvent, !LoadErr) {
|
||||
load_into :: (repo: *Repo, bytes: string, scratch: Allocator) -> !LoadErr {
|
||||
oa := repo.own_allocator;
|
||||
|
||||
root_val, pe := parse(bytes, scratch);
|
||||
root_val, pe := jsonp.parse(bytes, scratch);
|
||||
if pe { raise error.Parse; }
|
||||
ro := try req_obj(root_val);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user