Refresh architecture policy for the implemented library
This commit is contained in:
@@ -2,31 +2,29 @@
|
|||||||
|
|
||||||
**Base Policy Version:** 1.3
|
**Base Policy Version:** 1.3
|
||||||
|
|
||||||
**Last Updated**: 2026-10-05
|
**Last Updated**: 2026-10-06
|
||||||
|
|
||||||
**Upstream Source:** [architecture.md](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/docs/policy/architecture.md)
|
**Upstream Source:** [architecture.md](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/docs/policy/architecture.md)
|
||||||
|
|
||||||
## Purpose And Ownership
|
## Purpose And Ownership
|
||||||
|
|
||||||
ReleaseKit is being designed as an opinionated Go library and release executable
|
ReleaseKit is an opinionated Go library and release executable for common
|
||||||
for common publication, builds, version injection, and delivery. This policy owns
|
publication, builds, version injection, and delivery. This policy owns
|
||||||
responsibility boundaries, dependency direction, and adopted constraints for
|
responsibility boundaries, dependency direction, and adopted constraints for
|
||||||
development. The [product roadmap](../roadmap/releasekit.md) owns proposed
|
development. The [product roadmap](../roadmap/releasekit.md) owns proposed
|
||||||
capabilities, implementation status, and sequencing.
|
capabilities, implementation status, and sequencing.
|
||||||
|
|
||||||
Describe concrete package inventory and implementation mechanics in internal
|
The [internal documentation](../internal/overview.md) owns concrete package
|
||||||
documentation when those packages exist. Link to canonical public contracts
|
inventory and implementation mechanics. Canonical public contracts own exact
|
||||||
for exact behavior and to ADRs for decision rationale.
|
behavior; ADRs record decision rationale.
|
||||||
|
|
||||||
## Adopted Constraints And Implemented Structure
|
## Adopted Constraints And Implemented Structure
|
||||||
|
|
||||||
Architectural constraints govern current and future development. Record
|
Architectural constraints govern current and future development and reflect
|
||||||
implemented structure accurately, proposals and implementation status in the
|
deliberately selected requirements and decisions. Current architecture describes
|
||||||
roadmap, and significant decisions and rationale in ADRs. Describe a target
|
implemented structure. Roadmaps record proposals, implementation status, and
|
||||||
structure as implemented when its changes land.
|
sequencing; ADRs record significant decisions and rationale. Internal
|
||||||
|
implementation choices evolve within these constraints.
|
||||||
Constraints must reflect deliberately selected requirements and decisions.
|
|
||||||
Do not promote incidental implementation choices into architectural invariants.
|
|
||||||
|
|
||||||
## Success Criteria
|
## Success Criteria
|
||||||
|
|
||||||
@@ -55,9 +53,9 @@ errors and outcomes, including partial progress and uncertain publication state.
|
|||||||
Consumers map those values to their own user interfaces.
|
Consumers map those values to their own user interfaces.
|
||||||
|
|
||||||
ReleaseKit builds and tests independently of consuming repositories. Production
|
ReleaseKit builds and tests independently of consuming repositories. Production
|
||||||
dependencies use supported public contracts; consumer-private packages and local
|
dependencies use supported public contracts available independently of consumer
|
||||||
checkout paths remain outside its dependency graph. Temporary local development
|
checkouts. Committed module and workspace configuration supports independent
|
||||||
configuration stays outside committed module and workspace state.
|
builds; temporary local development configuration remains local.
|
||||||
|
|
||||||
## Public Facades And Dependency Direction
|
## Public Facades And Dependency Direction
|
||||||
|
|
||||||
@@ -81,11 +79,11 @@ durable consumer need.
|
|||||||
|
|
||||||
Go declarations and GoDoc own exact API contracts. Compiled-export checks,
|
Go declarations and GoDoc own exact API contracts. Compiled-export checks,
|
||||||
dependency checks, and external-package behavioral tests protect the selected
|
dependency checks, and external-package behavioral tests protect the selected
|
||||||
facade boundaries as implementation lands.
|
facade boundaries.
|
||||||
|
|
||||||
## Runtime Version Boundary
|
## Runtime Version Boundary
|
||||||
|
|
||||||
The `buildinfo` public API exposes only runtime information justified by
|
The `buildinfo` public API exposes runtime information justified by
|
||||||
consumer needs. Its implementation uses the standard library and a small
|
consumer needs. Its implementation uses the standard library and a small
|
||||||
internal dependency graph independent of release orchestration. Applications
|
internal dependency graph independent of release orchestration. Applications
|
||||||
read their embedded version through its supported accessor.
|
read their embedded version through its supported accessor.
|
||||||
@@ -104,18 +102,20 @@ The library owns reusable outcomes and failure handling; the executable owns
|
|||||||
presentation and process exits.
|
presentation and process exits.
|
||||||
|
|
||||||
Source publication and asynchronous delivery have distinct outcomes. The
|
Source publication and asynchronous delivery have distinct outcomes. The
|
||||||
[release policy](release.md) governs releases of ReleaseKit itself. Consumer
|
[release policy](release.md) governs releases of ReleaseKit itself. Go
|
||||||
release capabilities and their implementation remain in the product roadmap
|
declarations and GoDoc define supported consumer API contracts;
|
||||||
until supported contracts exist.
|
[consumer guides](../consumers/) explain their use, and
|
||||||
|
[integration guides](../integrations/) define external formats and protocols.
|
||||||
|
The product roadmap records planned capabilities and implementation status.
|
||||||
|
|
||||||
## Trust Boundaries And Threat Scope
|
## Trust Boundaries And Threat Scope
|
||||||
|
|
||||||
Base defenses and guarantees on selected requirements. Candidate validation,
|
Base defenses and guarantees on selected requirements. Candidate validation,
|
||||||
remote-state changes, transport failures, and partial delivery require explicit
|
remote-state changes, transport failures, and partial delivery receive explicit
|
||||||
handling when those operations are implemented. Additional threat scenarios
|
handling. Additional threat scenarios require a deliberate scope decision under
|
||||||
require a deliberate scope decision under the [agent policy](agents.md).
|
the [agent policy](agents.md).
|
||||||
|
|
||||||
Credential supply and runtime handling belong in the applicable public or
|
Public API, [configuration](../config.md), and integration contracts own
|
||||||
integration contracts when implemented. Internal documents own the mechanisms.
|
credential supply and observable handling. Internal documents own the mechanisms.
|
||||||
Tests use local collaborators and controlled failures as specified by the
|
Tests use local collaborators and controlled failures as specified by the
|
||||||
[testing policy](testing.md).
|
[testing policy](testing.md).
|
||||||
|
|||||||
Reference in New Issue
Block a user