Prepare source release validation
This commit is contained in:
@@ -7,10 +7,10 @@
|
||||
## Purpose and applicability
|
||||
|
||||
ConfigKit is an opinionated Go library for consistent YAML configuration loading
|
||||
and resolution across consuming applications. This policy governs contributions
|
||||
now; it does not claim that the target features are implemented. The
|
||||
[component overview](../internal/overview.md) owns implementation inventory and
|
||||
[initial roadmap](../roadmap/initial.md) owns unimplemented target behavior.
|
||||
and resolution across consuming applications. This policy governs contributions.
|
||||
The [component overview](../internal/overview.md) owns implementation inventory, the
|
||||
[configuration contract](../config.md) owns implemented behavior, and the
|
||||
[initial target record](../roadmap/initial.md) preserves deferred scope.
|
||||
|
||||
## Success criteria
|
||||
|
||||
@@ -48,8 +48,8 @@ existing primitives cannot accommodate it cleanly, and show how the extension
|
||||
preserves a coherent model. Application-specific interpretation and validation
|
||||
remain appropriate. Reuse Narratio's applicable infrastructure under these
|
||||
boundaries, and keep simple consumers independent of optional composition
|
||||
features. The [consumer API design](../roadmap/initial.md#consumer-api-design)
|
||||
describes the proposed surface; this policy does not claim it is implemented.
|
||||
features. The [consumer adoption guide](../consumers/README.md) demonstrates the
|
||||
implemented surface against representative simple and complex shapes.
|
||||
|
||||
## Responsibility boundaries
|
||||
|
||||
@@ -103,12 +103,12 @@ decoding. Preserve presence and source information through processing. Ordinary
|
||||
values must not be used to infer whether input was absent. Final configuration,
|
||||
metadata, and effective inspection must agree, including application resolution
|
||||
changes; see [ADR 0003](../adr/0003-preserve-presence-and-resolution-history.md).
|
||||
Safe historical values and an explanation renderer belong to the initial target,
|
||||
Safe historical values and an explanation renderer are part of the implemented contract,
|
||||
including superseded/deleted paths and effective source attribution. Inspection
|
||||
must agree with the final typed snapshot and apply historical sensitivity rules.
|
||||
See [ADR 0005](../adr/0005-explicit-overrides-and-safe-explanation.md).
|
||||
Detailed syntax and operation tables belong to the target roadmap until their
|
||||
current configuration contract is implemented.
|
||||
Detailed syntax and operation tables belong to the
|
||||
[current configuration contract](../config.md).
|
||||
|
||||
## Ownership and confidentiality
|
||||
|
||||
@@ -136,6 +136,7 @@ for safe messages supplied by their hooks.
|
||||
Do not introduce automatic directory discovery, network providers, arbitrary
|
||||
merge strategies, additional configuration languages, or application runtime
|
||||
management without concrete consumer evidence and an explicit design decision.
|
||||
The roadmap owns the complete deferred-feature inventory. Significant boundary
|
||||
The [initial target record](../roadmap/initial.md#explicit-non-goals-and-deferred-scope)
|
||||
owns the deferred-feature inventory. Significant boundary
|
||||
changes require an ADR and corresponding policy/contract updates; implementation
|
||||
convenience alone is not a reason to broaden the public API.
|
||||
|
||||
@@ -62,24 +62,24 @@ handling, not secret values.
|
||||
| Documentation rules | `docs/policy/documentation.md` | Ownership and document lifecycle |
|
||||
| Testing rules | `docs/policy/testing.md` | Risk-based sufficiency, test boundaries, and maintenance principles |
|
||||
| Release rules | `docs/policy/release.md` | Compatibility, integrity, gates, immutability, and exceptions |
|
||||
| Release procedure | `docs/release.md`, when operational | Exact maintainer commands, prerequisites, supported targets, and verification |
|
||||
| Release procedure | `docs/release.md` | Exact maintainer commands, prerequisites, supported targets, and verification |
|
||||
| Exported Go API | Go documentation beside declarations | Symbol contracts, errors, ownership, and lifecycle API behavior |
|
||||
| YAML and resolution semantics | `docs/config.md`, as behavior lands | Syntax, composition, precedence, conversion, secret references/bootstrap, and explanation semantics; Go reference docs link here for shared rules |
|
||||
| Consumer walkthroughs | `docs/consumers/`, when useful | Task-oriented usage and consumer responsibilities, not duplicate API reference |
|
||||
| Component inventory | `docs/internal/overview.md` | Implemented components and links to their owners |
|
||||
| Component mechanics | Other `docs/internal/` files, when needed | Detailed implementation behavior and change recipes |
|
||||
| Architectural decisions | `docs/adr/` | Context, decisions, alternatives, consequences, and supersession history |
|
||||
| Initial target | `docs/roadmap/initial.md` | Unimplemented end-state and deferred feature scope |
|
||||
| Initial target record | `docs/roadmap/initial.md` | Implemented-feature owner links and deferred feature scope until roadmap retirement |
|
||||
| Implementation plan | `docs/roadmap/implementation.md` | Stages, dependencies, acceptance gates, and progress |
|
||||
| Release readiness gaps | `docs/roadmap/release-readiness.md` | Outstanding release prerequisites and closure evidence |
|
||||
| Release readiness evidence | `docs/roadmap/release-readiness.md` | Closed preparation gaps and outstanding candidate/publication evidence until roadmap retirement |
|
||||
| Historical release notes | `docs/releases/` | Version-specific historical summaries required by release policy |
|
||||
| Complete examples | `examples/` and executable Go examples | Maintained artifacts; prose links instead of duplicating full examples |
|
||||
|
||||
A listed future owner is not a requirement to create an empty file now. Create
|
||||
API, consumer, example, and component documents when the corresponding behavior
|
||||
A listed owner is not a requirement to create an empty file before it has useful
|
||||
content. Create API, consumer, example, and component documents when the corresponding behavior
|
||||
exists and there is useful content to own. Link only to existing files; use plain
|
||||
code paths for planned files. Release prerequisites have the explicit temporary
|
||||
exception recorded in the release policy.
|
||||
code paths for planned files. Unvalidated candidate and publication work has the
|
||||
explicit temporary exception recorded in the release policy.
|
||||
|
||||
ConfigKit has no owned HTTP service, application CLI, or runtime operations
|
||||
interface. Do not create those reference documents for consuming applications.
|
||||
|
||||
@@ -222,17 +222,21 @@ restating or redefining its requirements.
|
||||
|
||||
### Temporary bootstrap deferral
|
||||
|
||||
The release procedure (`docs/release.md`) and complete release-check command are
|
||||
not yet present because ConfigKit has no Go module or implementation to validate.
|
||||
Their creation is temporarily deferred during initial development. This exception
|
||||
permits implementation work; it does not permit publishing a release without
|
||||
any gate required above.
|
||||
The release procedure and automated source-candidate checker now exist, but no exact
|
||||
release candidate, version-matched release note, native macOS execution evidence, or
|
||||
post-publication module retrieval has been validated. Initial implementation may be
|
||||
completed without fabricating those later facts. This exception does not authorize
|
||||
publication or waive any candidate, platform, remote, or consumer-verification gate.
|
||||
|
||||
Compensating controls: no release may be published until the
|
||||
[release-readiness gaps](../roadmap/release-readiness.md) are closed, the runbook
|
||||
and checker exist, and the exact candidate passes all applicable gates. The
|
||||
maintainer preparing the first release owns closure. Remove this temporary
|
||||
exception when readiness is verified. Any other exception requires a documented repository constraint, rationale,
|
||||
Compensating controls: the [release procedure](../release.md) keeps every unvalidated
|
||||
step as an explicit maintainer gate, and the
|
||||
[release-readiness evidence](../roadmap/release-readiness.md) records what is closed
|
||||
and outstanding. No release may be published until an exact committed candidate has
|
||||
the required release note, passes all applicable automated and native-platform gates,
|
||||
is verified against `origin/main`, and completes guarded tag publication and clean
|
||||
consumer retrieval. The maintainer preparing the first release owns closure. Remove
|
||||
this temporary exception when that evidence is recorded and obsolete roadmap files
|
||||
are retired. Any other exception requires a documented repository constraint, rationale,
|
||||
compensating controls, scope, and closure condition here; none is currently
|
||||
adopted. Do not silently weaken the base integrity, validation, documentation,
|
||||
verification, or immutability guarantees.
|
||||
|
||||
@@ -39,7 +39,7 @@ boundaries. No credential bytes may appear in inspection or failure fixtures'
|
||||
expected output; use disposable canaries to prove non-disclosure.
|
||||
|
||||
Baseline commands belong in the [development guide](../development.md). Release
|
||||
gates belong in the [release policy](release.md) and its eventual runbook. This
|
||||
gates belong in the [release policy](release.md) and [maintainer runbook](../release.md). This
|
||||
policy does not imply that those tools or tests already exist.
|
||||
|
||||
## Every test has a cost
|
||||
|
||||
Reference in New Issue
Block a user