From 0e89ae182a1477bd355b25fc5bf81541c45dede0 Mon Sep 17 00:00:00 2001 From: James Blair Date: Wed, 23 Aug 2023 18:37:52 +1200 Subject: [PATCH] Document policy for etcd project golang version. Signed-off-by: James Blair --- .../dependency_management.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Documentation/contributor-guide/dependency_management.md b/Documentation/contributor-guide/dependency_management.md index 39c8f06f3a40..724033315b1a 100644 --- a/Documentation/contributor-guide/dependency_management.md +++ b/Documentation/contributor-guide/dependency_management.md @@ -11,6 +11,7 @@ - [arduino/setup-protoc](#arduinosetup-protoc) - [Rotation worksheet](#rotation-worksheet) - **[Stable branches](#stable-branches)** +- **[Golang versions](#golang-versions)** ## Main branch @@ -105,3 +106,23 @@ Usually we don't proactively bump dependencies for stable releases unless there If we have to do it, then follow the same guidance above. Note that there is no `./scripts/fix.sh` in release-3.4, so no need to execute it for 3.4. + +## Golang versions + +The etcd project aims to maintain a development branch that is on the latest [Go version](https://go.dev/dl), ideally this will align with the Go version in use for Kubernetes project development. For an example on how to update etcd to a new minor release of Go refer to issue and the linked pull requests. + +Suggested steps for performing a minor version upgrade for the etcd development branch: + +1. Carefully review new Go version release notes and blog for any deprecations, performance impacts or other considerations. +2. Create a github issue to signal intent to upgrade and invite discussion, example . +3. Complete the upgrade locally in your development environment. +4. Run performance benchmarks locally to compare before and after. +5. Raise a pull request for the changes, example . + +Stable etcd release branches will be maintained to stay on the latest patch release of a supported Go version, however upgrading minor versions will be avoided unless the minor version in use is now out of support. Refer to the [Go release policy](https://go.dev/doc/devel/release). + +For an example of how to update etcd to a new patch release of Go refer to issue and the linked pull requests. + +References: + +-