|
|
@@ -0,0 +1,60 @@
|
|
|
+# Long Term Support Policy
|
|
|
+
|
|
|
+WRT: https://github.com/external-secrets/external-secrets/issues/2044
|
|
|
+
|
|
|
+We want to provide security patches and critical bug fixes in a timely manner to our users.
|
|
|
+To do so, we offer long-term support for our latest two (N, N-1) software releases.
|
|
|
+We aim for a 2-3 month **minor** release cycle, i.e. a given release is supported for about 4-6 months.
|
|
|
+
|
|
|
+We want to cover the following cases:
|
|
|
+
|
|
|
+- weekly image rebuilds to update OS dependencies
|
|
|
+- weekly go dependency updates
|
|
|
+- backport bug fixes on demand
|
|
|
+
|
|
|
+Note: features cut off on a minor release will not be backported to older releases.
|
|
|
+
|
|
|
+## Automatic Updates
|
|
|
+
|
|
|
+We have set up a Github Action (GHA) which will automatically update the `go.mod` dependencies once per week or on request.
|
|
|
+The GHA will make the necessary code changes and opens a PR. Once approved and merged into `main` or `release-x.y` our build pipelines
|
|
|
+will build and push the artifact to ghcr.
|
|
|
+
|
|
|
+## Manual Updates
|
|
|
+
|
|
|
+Bug Fixes will be merged onto each release branch individually.
|
|
|
+This is achieved by creating separate PRs from a corresponding branch of the release
|
|
|
+(e.g. bug fixes targetting `release-1.0` should be created from `release-1.0` branch).
|
|
|
+Once approved and merged into `main` or `release-x.y`, ou build pipeline will build and push the artifact to ghcr
|
|
|
+
|
|
|
+## Process
|
|
|
+
|
|
|
+### Branch Management
|
|
|
+
|
|
|
+When a new **minor release** is cut and merged into `main`, we must branch off to `release-{major}.{minor}`.
|
|
|
+This is the long-lived release branch that will get dependency updates and bug fixes.
|
|
|
+In case we do a `patch` release we **must also merge** into the correct `release-{major}.{minor}` branch.
|
|
|
+
|
|
|
+### Release Issue Template
|
|
|
+
|
|
|
+We'll have a release issue template that gives the release lead a task list to work through all the steps needed to create a release.
|
|
|
+
|
|
|
+#### Release Preparation Tasks
|
|
|
+
|
|
|
+- [ ] ask in `#external-secrets-dev` if we're ready for a release cut-off or if something needs to get urgently in
|
|
|
+- [ ] docs: [stability & support page](https://external-secrets.io/main/introduction/stability-support/) is up to date
|
|
|
+ - [ ] version table
|
|
|
+ - [ ] Provider Stability and Support table
|
|
|
+ - [ ] Provider Feature Support table
|
|
|
+- [ ] docs: update [roadmap page](https://external-secrets.io/main/contributing/roadmap/)
|
|
|
+- [ ] tidy up [Project Board](https://github.com/orgs/external-secrets/projects/2)
|
|
|
+ - [ ] move issues to next milestone
|
|
|
+ - [ ] close milestone
|
|
|
+
|
|
|
+#### Release Execution
|
|
|
+
|
|
|
+- [ ] Follow the [Release Process guide](https://external-secrets.io/main/contributing/release/)
|
|
|
+
|
|
|
+#### After Release Tasks
|
|
|
+
|
|
|
+- [ ] Announce release on `#external-secrets` in Slack
|