Skip to content

Decide on golang version strategy #15

@jodh-intel

Description

@jodh-intel

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleIssue or PR was not updated in a timely fashion

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions