Commit 562717f5 authored by Vladimir Shushlin's avatar Vladimir Shushlin Committed by Alessio Caiazza

Add guideline for supporting multiple golangs

parent d47ebd07
...@@ -453,6 +453,28 @@ are: ...@@ -453,6 +453,28 @@ are:
To reduce unnecessary differences between two distribution methods, Omnibus and To reduce unnecessary differences between two distribution methods, Omnibus and
CNG **should always use the same Go version**. CNG **should always use the same Go version**.
### Supporting multiple Go versions
Individual Golang-projects need to support multiple Go versions for the following reasons:
1. When a new Go release is out, we should start integrating it into the CI pipelines to verify compatibility with the new compiler.
1. We must support the [Omnibus official Go version](#updating-go-version), which may be behind the latest minor release.
1. When Omnibus switches Go version, we still may need to support the old one for security backports.
These 3 requirements may easily be satisfied by keeping support for the 3 latest minor versions of Go.
It's ok to drop support for the oldest Go version and support only 2 latest releases,
if this is enough to support backports to the last 3 GitLab minor releases.
Example:
In case we want to drop support for `go 1.11` in GitLab `12.10`, we need to verify which Go versions we are using in `12.9`, `12.8`, and `12.7`.
We will not consider the active milestone, `12.10`, because a backport for `12.7` will be required in case of a critical security release.
1. If both [Omnibus and CNG](#updating-go-version) were using Go `1.12` since GitLab `12.7`, then we safely drop support for `1.11`.
1. If Omnibus or CNG were using `1.11` in GitLab `12.7`, then we still need to keep support for Go `1.11` for easier backporting of security fixes.
## Secure Team standards and style guidelines ## Secure Team standards and style guidelines
The following are some style guidelines that are specific to the Secure Team. The following are some style guidelines that are specific to the Secure Team.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment