Adopt release policy 1.6 and preserve local release conventions
This commit is contained in:
@@ -29,6 +29,9 @@ License and notices: [MIT](licenses/MIT.txt) |
|
|||||||
|
|
||||||
Material: policy documents under `docs/policy/`, the root `AGENTS.md` orientation,
|
Material: policy documents under `docs/policy/`, the root `AGENTS.md` orientation,
|
||||||
and the Policy Reading Guide in `docs/development.md`, adapted for this repository.
|
and the Policy Reading Guide in `docs/development.md`, adapted for this repository.
|
||||||
|
The release policy incorporates revision `e833faddf120c789a9b45348edaf75720de16348`;
|
||||||
|
the remaining material incorporates revision
|
||||||
|
`d84a38ebab26f048cafbe59a2246700c35d29843`.
|
||||||
|
|
||||||
Copyright (C) 2026 Eric Rakestraw
|
Copyright (C) 2026 Eric Rakestraw
|
||||||
|
|
||||||
@@ -38,4 +41,9 @@ License and notices: [CC BY-SA 4.0](licenses/CC-BY-SA-4.0.txt) |
|
|||||||
[COPYRIGHT](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/COPYRIGHT) |
|
[COPYRIGHT](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/COPYRIGHT) |
|
||||||
[LICENSE](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/LICENSE).
|
[LICENSE](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/LICENSE).
|
||||||
|
|
||||||
[Source](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843).
|
Release-policy notices:
|
||||||
|
[COPYRIGHT](https://gitea.maximumdirect.net/eric/policy/src/commit/e833faddf120c789a9b45348edaf75720de16348/COPYRIGHT) |
|
||||||
|
[LICENSE](https://gitea.maximumdirect.net/eric/policy/src/commit/e833faddf120c789a9b45348edaf75720de16348/LICENSE).
|
||||||
|
|
||||||
|
[Release-policy source](https://gitea.maximumdirect.net/eric/policy/src/commit/e833faddf120c789a9b45348edaf75720de16348/docs/policy/release.md) |
|
||||||
|
[Other policy material source](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843).
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
# Release Policy
|
# Release Policy
|
||||||
|
|
||||||
**Base Policy Version:** 1.4
|
**Base Policy Version:** 1.6
|
||||||
|
|
||||||
**Last Updated**: 2026-10-08
|
**Last Updated**: 2026-10-08
|
||||||
|
|
||||||
**Upstream Source:** [release.md](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/docs/policy/release.md)
|
**Upstream Source:** [release.md](https://gitea.maximumdirect.net/eric/policy/src/commit/e833faddf120c789a9b45348edaf75720de16348/docs/policy/release.md)
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
@@ -12,6 +12,9 @@ This policy defines a proportionate workflow for validating and publishing an
|
|||||||
intended source revision under a fresh version. Releases should require little
|
intended source revision under a fresh version. Releases should require little
|
||||||
routine intervention, avoid repeated work, and preserve published contents.
|
routine intervention, avoid repeated work, and preserve published contents.
|
||||||
|
|
||||||
|
Adopt stronger verification or reproducibility requirements through an explicit
|
||||||
|
project-specific decision justified by the intended audience and support needs.
|
||||||
|
|
||||||
The repository-specific commands belong in `docs/release.md`. Historical release
|
The repository-specific commands belong in `docs/release.md`. Historical release
|
||||||
summaries belong in `docs/releases/`. The procedure must agree with the adopted
|
summaries belong in `docs/releases/`. The procedure must agree with the adopted
|
||||||
policy and link to it rather than introduce additional release requirements.
|
policy and link to it rather than introduce additional release requirements.
|
||||||
@@ -69,7 +72,8 @@ requires a deliberate update to the policy and procedure where needed.
|
|||||||
For releases at or after `v1.0.0`:
|
For releases at or after `v1.0.0`:
|
||||||
|
|
||||||
- a major release may make intentional incompatible changes;
|
- a major release may make intentional incompatible changes;
|
||||||
- a minor release may add backward-compatible behavior; and
|
- a minor release may add backward-compatible behavior or raise the Go consumer
|
||||||
|
minimum as described below; and
|
||||||
- a patch release may make backward-compatible fixes.
|
- a patch release may make backward-compatible fixes.
|
||||||
|
|
||||||
Before `v1.0.0`, a minor release may change a documented public, operational,
|
Before `v1.0.0`, a minor release may change a documented public, operational,
|
||||||
@@ -81,34 +85,42 @@ Additional compatibility promises and deliberate exceptions belong in the
|
|||||||
adopted policy or canonical contract documentation. Release notes explain
|
adopted policy or canonical contract documentation. Release notes explain
|
||||||
changes; they do not redefine current compatibility contracts.
|
changes; they do not redefine current compatibility contracts.
|
||||||
|
|
||||||
## Go Minimum And Release Toolchain
|
## Consumer Minimum And Release Toolchain
|
||||||
|
|
||||||
ReleaseKit provides reasonable support for routine build and release needs,
|
ReleaseKit provides reasonable support for routine build and release needs,
|
||||||
following [ADR 0002](../adr/0002-routine-releases.md). Its Go support policy relies
|
following [ADR 0002](../adr/0002-routine-releases.md). Distinguish the minimum Go
|
||||||
on upstream compatibility commitments and verification proportionate to those
|
toolchain supported for consumers from the toolchain maintainers use to build
|
||||||
needs.
|
and validate a release. The consumer minimum belongs in [go.mod](../../go.mod);
|
||||||
|
the [maintainer runbook](../release.md) defines the selected release toolchain
|
||||||
|
and its setup commands.
|
||||||
|
|
||||||
Select the Go series during release preparation. When advancing the consumer
|
Select the Go series during release preparation. When advancing the consumer
|
||||||
minimum, use the latest locally available stable series and record its initial
|
minimum, use the latest locally available stable series and record its initial
|
||||||
stable version in `go.mod`, such as `go 1.26.0`. Use a higher patch minimum when
|
stable version in `go.mod`, such as `go 1.26.0`. Use a higher patch minimum when
|
||||||
a dependency requirement or identified correctness fix requires it. Minimum
|
a dependency requirement or identified correctness fix requires it, and document
|
||||||
increases follow the versioning and compatibility rules above and are explained
|
the reason.
|
||||||
in the release note.
|
|
||||||
|
|
||||||
Build the maintainer release executable and validate the candidate with the
|
Build the maintainer release executable and validate the candidate with the
|
||||||
same latest locally available patch of the selected series. Keep that toolchain
|
same latest locally available patch of the selected series. Keep that toolchain
|
||||||
active throughout preparation, tool bootstrap, and validation, using local
|
active throughout preparation, tool bootstrap, and validation, using local
|
||||||
toolchain selection. Maintained CI images follow the chosen build toolchain.
|
toolchain selection. CI jobs performing release builds and validation use the
|
||||||
The patch used for these operations is separate from the consumer minimum.
|
selected toolchain; maintained CI images follow that choice. A newer validation
|
||||||
|
patch version alone leaves the consumer minimum unchanged.
|
||||||
|
|
||||||
Successful build and release validation on that patch serve as sufficient
|
For release-policy purposes, successful build and release validation on that
|
||||||
evidence of support from the series' initial stable release through subsequent
|
patch are sufficient to presume support across the selected Go series, subject
|
||||||
patch releases, subject to known dependency requirements or correctness issues.
|
to the declared consumer minimum and concrete evidence of incompatibility.
|
||||||
This relies on Go's [release policy](https://go.dev/doc/devel/release#policy) and
|
This relies on Go's [release policy](https://go.dev/doc/devel/release#policy) and
|
||||||
[compatibility commitments](https://go.dev/doc/go1compat). Additional
|
[compatibility commitments](https://go.dev/doc/go1compat). Investigate specific
|
||||||
patch-specific validation is warranted by concrete evidence; routine releases
|
compatibility concerns as they arise. Routine releases require no patch-version
|
||||||
require no patch-version matrix. Record the actual validation toolchain in the
|
matrix. Record the actual validation toolchain in the release evidence.
|
||||||
release evidence.
|
|
||||||
|
A minor release may raise the Go consumer minimum, including from one Go series
|
||||||
|
to the next, both before and after `v1.0.0`. This is an explicit exception to the
|
||||||
|
backward-compatibility requirement for minor releases. Patch releases preserve
|
||||||
|
the consumer minimum. Explain an increase's impact and required consumer action
|
||||||
|
in the release note. Other incompatible changes remain subject to the versioning
|
||||||
|
rules above.
|
||||||
|
|
||||||
## Release Documentation And Preparation
|
## Release Documentation And Preparation
|
||||||
|
|
||||||
@@ -161,8 +173,8 @@ checks when their distinct protection justifies their cost. A one-time migration
|
|||||||
check must not silently become a permanent release requirement.
|
check must not silently become a permanent release requirement.
|
||||||
|
|
||||||
Release tests must not require real credentials, mutable application services,
|
Release tests must not require real credentials, mutable application services,
|
||||||
paid APIs, or live service probes. The procedure may describe dependency
|
paid APIs, live service probes, or inference calls. The procedure may describe
|
||||||
preparation separately from offline validation.
|
dependency preparation separately from offline validation.
|
||||||
|
|
||||||
Avoid duplicate validation across release phases. Successful checks for the
|
Avoid duplicate validation across release phases. Successful checks for the
|
||||||
same final candidate need not be repeated solely to satisfy another phase;
|
same final candidate need not be repeated solely to satisfy another phase;
|
||||||
@@ -229,7 +241,8 @@ release without replacing its contents or reusing its version.
|
|||||||
Create and maintain `docs/release.md` with the first working publication command
|
Create and maintain `docs/release.md` with the first working publication command
|
||||||
as a short, executable maintainer runbook. It must identify:
|
as a short, executable maintainer runbook. It must identify:
|
||||||
|
|
||||||
1. prerequisites, primary branch, and authoritative remote;
|
1. prerequisites, selected release toolchain, primary branch, and authoritative
|
||||||
|
remote;
|
||||||
2. version and release-note preparation;
|
2. version and release-note preparation;
|
||||||
3. one publication command with its selected local checks and automated guards;
|
3. one publication command with its selected local checks and automated guards;
|
||||||
4. declared deliverables, required build targets, and automation responsibilities;
|
4. declared deliverables, required build targets, and automation responsibilities;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ go version
|
|||||||
```
|
```
|
||||||
|
|
||||||
Record the reported version with the validation results. The
|
Record the reported version with the validation results. The
|
||||||
[Go support policy](policy/release.md#go-minimum-and-release-toolchain) owns
|
[Go support policy](policy/release.md#consumer-minimum-and-release-toolchain) owns
|
||||||
series selection, consumer minima, patch exceptions, and validation scope.
|
series selection, consumer minima, patch exceptions, and validation scope.
|
||||||
The maintained [source-delivery image](../examples/woodpecker/releasekit-source-delivery.yml)
|
The maintained [source-delivery image](../examples/woodpecker/releasekit-source-delivery.yml)
|
||||||
and [consumer template image](../examples/woodpecker/tag-delivery.yml) follow the
|
and [consumer template image](../examples/woodpecker/tag-delivery.yml) follow the
|
||||||
|
|||||||
Reference in New Issue
Block a user