Move release mechanics behind the public facade
This commit is contained in:
@@ -198,11 +198,13 @@ removes the previous receipt. Affected suites pass.
|
||||
|
||||
### R5 — Medium: The root facade still owns release mechanics
|
||||
|
||||
Status: Resolved.
|
||||
|
||||
Category: Architectural ownership gap and maintainability.
|
||||
|
||||
**Evidence:** [candidate_build.go](../../candidate_build.go) implements temporary
|
||||
**Evidence:** [candidate_build.go](../../internal/build/candidate.go) implements temporary
|
||||
storage allocation, containment checking, cleanup, and candidate-build
|
||||
coordination in the public package. [delivery_assets.go](../../delivery_assets.go)
|
||||
coordination in the public package. [delivery_assets.go](../../internal/delivery/assets.go)
|
||||
implements artifact inventory validation, file opening/stat/hash checks,
|
||||
filename derivation, and manifest assembly there. These are substantial
|
||||
implementation responsibilities beyond forwarding and type conversion.
|
||||
@@ -220,11 +222,17 @@ assembly API or generic framework.
|
||||
checks remain valid after the move. Confirm filesystem and artifact algorithms
|
||||
are owned internally without introducing inward imports of public facades.
|
||||
|
||||
**Resolution:** Candidate-build coordination now belongs to `internal/build`;
|
||||
artifact inventory, hashing, and manifest assembly belong to `internal/delivery`.
|
||||
The root facade performs conversions and forwarding only. Existing artifact
|
||||
tests moved with their implementation; external API and CLI tests, the complete
|
||||
offline suite, and compiled-export/import checks pass.
|
||||
|
||||
### R6 — Medium: Builds require a writable parent of the repository
|
||||
|
||||
Category: Inadvertently strengthened filesystem prerequisite.
|
||||
|
||||
**Evidence:** [Candidate builds](../../candidate_build.go), around line 21,
|
||||
**Evidence:** [Candidate builds](../../internal/build/candidate.go), around line 21,
|
||||
and [CLI delivery builds](../../cmd/releasekit/main.go), around line 194,
|
||||
allocate temporary storage with `os.MkdirTemp(filepath.Dir(repositoryDir), ...)`.
|
||||
The requirement is disposable output outside the worktree, not sibling output.
|
||||
|
||||
Reference in New Issue
Block a user