Build selected targets with version injection

This commit is contained in:
2026-10-05 19:20:58 +00:00
parent c83313b3b9
commit 5d6a6d10bd
12 changed files with 927 additions and 34 deletions

View File

@@ -1,7 +1,6 @@
# ReleaseKit staged implementation plan
Status: Proposed. All stages are pending; this document introduces no implemented
features or published contracts.
Status: In progress. Stages 1–10 are complete; later stages remain pending.
Date: 2026-10-05
@@ -683,7 +682,7 @@ ReleaseKit release was published.
## Stage 10: Build selected targets with shared version injection
Status: Pending. Depends on Stage 9.
Status: Complete. Depends on Stage 9.
1. Implement public build values and internal build execution using the fixed
flags, version symbol, filename convention, and prepared Go environment.
@@ -702,6 +701,17 @@ does not select the smoke host. Empty targets perform no build or smoke test;
missing main packages, build failures, incorrect version output, unsafe binary
names, and cancellation fail with useful partial results.
Evidence: `releasekit.Build` and `internal/build` compile Linux amd64, Linux
arm64, and macOS arm64 artifacts using the shared linker symbol and prepared
local Go environment. The consumer fixture imports `buildinfo` and reports the
injected version through its `version` invocation. Results retain the observed
source commit, compiler identity, normalized targets, absolute paths, filenames,
and SHA-256 digests. Tests cover host selection despite ambient cross-target
variables, empty target sets, existing output preservation, partial target
failure, missing packages, incorrect version output, unsafe names, and
cancellation with completed artifacts retained. No byte-reproducibility or
cross-platform execution guarantee is added.
## Stage 11: Integrate candidate builds and artifact command
Status: Pending. Depends on Stage 10.

View File

@@ -2,8 +2,8 @@
This is a proposal based on a review of PromptKit, ConfigKit, Audita, Notarius,
Narratio, and Scriptorium on 2026-09-29. The implementation plan records the
current implemented boundary; builds, delivery, and broader integrations remain
proposed. The public facade architecture is accepted in
current implemented boundary; CLI build integration, delivery, and broader
integrations remain planned. The public facade architecture is accepted in
[ADR 0001](../adr/0001-public-facade.md) and is implemented for runtime version,
candidate validation, and source publication.
The [implementation plan](implementation.md) owns ordered stages, execution
@@ -55,8 +55,9 @@ cleanup.
The [architecture policy](../policy/architecture.md) owns the adopted
responsibility and dependency rules, including the runtime version boundary.
The root `releasekit` package provides the public facade for candidate
validation and source publication; builds and delivery remain planned. The
separate public `buildinfo` package provides lightweight runtime version access.
validation, source publication, and selected-target builds; CLI build
integration and delivery remain planned. The separate public `buildinfo`
package provides lightweight runtime version access.
Each facade owns its public named types and documented contracts. Public
operations, inputs, outcomes, errors, and callbacks express deliberately