This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Release and version policy
|
||||
|
||||
## Private development
|
||||
|
||||
- Workspace packages share one `0.0.x` version while contracts are private.
|
||||
- Every user-visible or contract-affecting change is recorded under `Unreleased`.
|
||||
- Machine-readable contracts carry their own positive integer schema version.
|
||||
- Breaking schema changes increment that schema version and include rejection tests for
|
||||
unsupported versions; consumers never guess.
|
||||
- Temporary Kiln identifiers are never published, globally installed, or treated as
|
||||
compatibility promises.
|
||||
|
||||
## Public releases
|
||||
|
||||
- Select and collision-check the final related naming system before the first public
|
||||
package, crate, executable, configuration namespace, or IPC endpoint.
|
||||
- Use Semantic Versioning for project packages; pre-1.0 compatibility remains explicit
|
||||
rather than implied stable.
|
||||
- A release derives from an annotated signed tag and clean repository state.
|
||||
- Release records include source revision, toolchain, lockfile, package/source inventory,
|
||||
hashes, SBOM, signatures, license notices, supported-platform matrix, and test evidence.
|
||||
- Bit-for-bit reproducibility is claimed only after independent reproduction.
|
||||
- No release resolves live AUR state or downloads unpinned executable installer plugins.
|
||||
|
||||
## Version ownership
|
||||
|
||||
The workspace version is changed once at the root and inherited by every project crate.
|
||||
Provider protocol/schema versions remain independent when their compatibility boundaries
|
||||
require it. Release tooling must reject mismatched workspace package versions.
|
||||
|
||||
Reference in New Issue
Block a user