Thunderbirds are Go 1.6
Curtis Hovey-Canonical
curtis at canonical.com
Sun Apr 10 16:55:24 UTC 2016
Ladies and Gentlemen, We build with Go 1.6 everywhere.
Take a moment to consider the implications, because that means we do
not use Go 1.2, 1.3, or 1.5. Juju 1.x and 2.x for Windows, OS X, and
Linux (precise, trusty, wily, xenial, and centos7) are built with Go 1.6.
There was concern about how to support precise if the code grew 1.2
incompatibilities. Michael Hudson-Doyle's fabulous package was trivial
to backport to precise. We don't need to create a new process to support
precise. The golang-1.6 packages was also easy to copy to wily. since
the Go 1.5 unit tests are less reliable than the Go 1.6 unit tests, the
hour spent setting up wily to build with golang-1.6 will pay for itself
in a day.
Some unit tests combinations are still using Go 1.2 because the tests
assume OS features because of the Golang version instead of checking
the OS:
1. The Makefile rules for installing deps are very stale. Precise unit
tests will fail when forced to use Go 1.6 because they cannot
start mongo:
error command line: unknown option sslOnNormalPorts
But we see that actual deployments of precise built with Go 1.6 work.
2. Centos and Windows unit test are still Go 1.2 because many lxd
related tests fail when run with Go 1.6.
The git-merge-juju job is using the xenial daily image to gate merges.
The released image it too stale to do an unattended dist-upgrade
The unit test runs for xenial-amd64, xenial-arm64, xenial-s390x,
xenial-ppc64el, wily-amd64, trusty-amd64, trusty-i386, and
trusty-ppc64el will use the golang (1.6) or golang-1.6 (1.6) packages.
The go1.2 trusty unit tests amd64, arm64, i386, and ppc64el are gone.
Ubuntu source packages prefer the golang-1.6 package, and fallback to
golang (>= 1.2). We needed a new builder because Go 1.6 needs more
memory. We saw errors like this with 2G of memory
golang-1.6/pkg/tool/linux_amd64/link: running gcc failed:
fork/exec /usr/bin/gcc: cannot allocate memory
Centos is created using the same Go package as trusty. Windows is
cross compiled as 64 bit for agent and 32 bit for clients. OS X is
natively compiled using Go 1.6 on CI's OS X host.
We also got word is was safe to upgrade our arm64 host to xenial. This
is done. The ppc64el hosts were also upgraded this week. We are
expanding tests for arm64 and ppc64el
--
Curtis Hovey
Canonical Cloud Development and Operations
http://launchpad.net/~sinzui
More information about the Juju-dev
mailing list