From 8ec8360a73af7140da55ef9c4a2252bf968d6280 Mon Sep 17 00:00:00 2001 From: Tatiana Nesterenko Date: Thu, 29 Feb 2024 21:48:40 +0000 Subject: [PATCH] go: Add info how to work with the new Go version Signed-off-by: Tatiana Nesterenko --- go.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 go.md diff --git a/go.md b/go.md new file mode 100644 index 0000000..e9ba00f --- /dev/null +++ b/go.md @@ -0,0 +1,28 @@ +# GO + +## Version updates + +Upon the release of a new version of Go, all repositories are updated +according to the following conventions: +* The minimum supported version of Go is set to two versions back from +the previous one. For example, upon the release of Go 1.22, the minimum +version becomes 1.20. +* All dependency packages are updated (sometimes, according to project +requirements, some deprecated package methods may be updated as well.) +* New Go version features are adapted where they make sense or can improve +performance. +* Go versions in GitHub workflows are also updated as follows: + + 1. Testing is performed on the last three versions of Go. In the example + mentioned above, this would be `[ '1.20', '1.21', '1.22' ]`. + 2. For build and cover jobs, the latest version should be used. In the + example mentioned above, this would be 1.22. + 3. If there are new versions of GitHub actions, they can also be updated + (for example, actions/checkout, actions/setup-go, actions/upload-artifact, + etc.). + 4. The Go version for the linter equals the minimum supported version and + is usually taken from the `go.mod` file by specifying in the *.yml file: + ``` + with: + go-version-file: 'go.mod' + ```