Minimum supported version of golang
Currently, https://github.com/kata-containers/documentation/wiki/Developer-Guide#assumptions states we support "golang version 1.8.3 or newer.".
Range of golang versions supported
We need to decide on a strategy for determining which versions of golang we support:
$ cd $GOPATH/src/github.com/kata-containers
$ cat */.travis.yml|grep -A 4 "go:"|sed 's/^ *//g'|egrep -- "- (1.[0-9]|tip)"|sort -u
- 1.8
- 1.9
- tip
Consistency
What isn't clear from the uniq(1)'d list above is that different components are testing with a different range of golang versions.
Introduce Process
We should be fine to retain go1.8.3 as our minimum version, but we do need a process to decide:
- how we decide the range of go versions we support.
- how we move to a new version for CI/PnP.
- how we remove old versions.
Something similar to:
How do we handle the "bleeding edge"?
There is also the issue of whether we test with golang "tip" or not, and if we do, whether that should block a PR (probably not):
Travis-specifics
The problem becomes easier to manage once we move away from Travis (see kata-containers/ci#4) as we can centralise the logic rather than having 'n' different .travis.yml files to manage...
Where to store range of golang versions
Note that ideally we would specify a list of supported golang versions in a file like a versions.txt database (see kata-containers/runtime#11).
That way, we can have a central list that everything else that needs to know this version range can consume, namely:
Consumers of golang versions list
Minimum supported version of
golangCurrently, https://github.com/kata-containers/documentation/wiki/Developer-Guide#assumptions states we support "golang version 1.8.3 or newer.".
Range of
golangversions supportedWe need to decide on a strategy for determining which versions of golang we support:
Consistency
What isn't clear from the
uniq(1)'d list above is that different components are testing with a different range of golang versions.Introduce Process
We should be fine to retain go1.8.3 as our minimum version, but we do need a process to decide:
Something similar to:
How do we handle the "bleeding edge"?
There is also the issue of whether we test with golang "tip" or not, and if we do, whether that should block a PR (probably not):
Travis-specifics
The problem becomes easier to manage once we move away from Travis (see kata-containers/ci#4) as we can centralise the logic rather than having
'n'different.travis.ymlfiles to manage...Where to store range of
golangversionsNote that ideally we would specify a list of supported golang versions in a file like a
versions.txtdatabase (see kata-containers/runtime#11).That way, we can have a central list that everything else that needs to know this version range can consume, namely:
Consumers of
golangversions list(where all code repos would defer to https://github.com/kata-containers/tests/tree/master/.ci to determine the details, as usual).
(to ensure the same version of golang is used as the version the code was tested with).