Move release mechanics behind the public facade
This commit is contained in:
@@ -34,9 +34,9 @@ these implemented packages:
|
||||
| `cmd/releasekit` | Executable entry point, command routing, output, and exit status. |
|
||||
| `cmd/releasekit/internal/cli` | Command parsing, strict JSON profile loading, configured checks, and private build receipts. |
|
||||
| `internal/apicheck` | Compiled-export and import-boundary checks run during development. |
|
||||
| `internal/build` | Selected Go target compilation, version injection, native smoke check, and artifact digests. |
|
||||
| `internal/build` | Candidate-build coordination, selected Go target compilation, version injection, native smoke check, and artifact digests. |
|
||||
| `internal/candidate` | Stable-version, note, repository-state, candidate capture, and post-validation checks. |
|
||||
| `internal/delivery` | Tagged-checkout verification and coordination of release pages, assets, and delivery results. |
|
||||
| `internal/delivery` | Tagged-checkout verification, artifact inventory/hash validation, manifest assembly, and coordination of hosted delivery results. |
|
||||
| `internal/git` | Git command boundary, push-destination resolution, exact ref inspection, and tag operations. |
|
||||
| `internal/gitea` | Gitea API transport, hosted release pages, asset inspection, manifests, and uploads. |
|
||||
| `internal/process` | Cancellable child-process execution with per-command environment overlays. |
|
||||
|
||||
@@ -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