Skip to content

Commit

Permalink
Make go version requirements clearer
Browse files Browse the repository at this point in the history
  • Loading branch information
thockin committed Dec 10, 2015
1 parent b9aa710 commit 0df0742
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 13 deletions.
20 changes: 17 additions & 3 deletions docs/devel/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,29 @@ Documentation for other releases can be found at

# Development Guide

# Releases and Official Builds
This document is intended to be the canonical source of truth for things like
supported toolchain versions for building Kubernetes. If you find a
requirement that this doc does not capture, please file a bug. If you find
other docs with references to requirements that are not simply links to this
doc, please file a bug.

This document is intended to be relative to the branch in which it is found.
It is guaranteed that requirements will change over time for the development
branch, but release branches of Kubernetes should not change.

## Releases and Official Builds

Official releases are built in Docker containers. Details are [here](http://releases.k8s.io/HEAD/build/README.md). You can do simple builds and development with just a local Docker installation. If want to build go locally outside of docker, please continue below.

## Go development environment

Kubernetes is written in [Go](http://golang.org) programming language. If you haven't set up Go development environment, please follow [this instruction](http://golang.org/doc/code.html) to install go tool and set up GOPATH. Ensure your version of Go is at least 1.3.
Kubernetes is written in the [Go](http://golang.org) programming language. If you haven't set up a Go development environment, please follow [these instructions](http://golang.org/doc/code.html) to install the go tools and set up a GOPATH.

### Go versions

Requires Go version 1.4.x or 1.5.x

## Git Setup
## Git setup

Below, we outline one of the more common git workflows that core developers use. Other git workflows are also valid.

Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started-guides/locally.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ You need an [etcd](https://github.com/coreos/etcd/releases) in your path, please

#### go

You need [go](https://golang.org/doc/install) at least 1.3+ in your path, please make sure it is installed and in your ``$PATH``.
You need [go](https://golang.org/doc/install) in your path (see [here](../devel/development.md#go-versions) for supported versions), please make sure it is installed and in your ``$PATH``.

### Clone the repository

Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started-guides/mesos.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ Further information is available in the Kubernetes on Mesos [contrib directory][
- A running [Mesos cluster on Google Compute Engine][5]
- A [VPN connection][10] to the cluster
- A machine in the cluster which should become the Kubernetes *master node* with:
- GoLang > 1.2
- Go (see [here](../devel/development.md#go-versions) for required versions)
- make (i.e. build-essential)
- Docker

Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started-guides/vsphere.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ convenient).
### Prerequisites

1. You need administrator credentials to an ESXi machine or vCenter instance.
2. You must have Go (version 1.2 or later) installed: [www.golang.org](http://www.golang.org).
2. You must have Go (see [here](../devel/development.md#go-versions) for supported versions) installed: [www.golang.org](http://www.golang.org).
3. You must have your `GOPATH` set up and include `$GOPATH/bin` in your `PATH`.

```sh
Expand Down
6 changes: 3 additions & 3 deletions hack/lib/golang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -240,12 +240,12 @@ EOF
if [[ "${TRAVIS:-}" != "true" ]]; then
local go_version
go_version=($(go version))
if [[ "${go_version[2]}" < "go1.2" ]]; then
if [[ "${go_version[2]}" < "go1.4" ]]; then
kube::log::usage_from_stdin <<EOF
Detected go version: ${go_version[*]}.
Kubernetes requires go version 1.2 or greater.
Please install Go version 1.2 or later.
Kubernetes requires go version 1.4 or greater.
Please install Go version 1.4 or later.
EOF
exit 2
Expand Down
4 changes: 2 additions & 2 deletions hack/update-gofmt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..

GO_VERSION=($(go version))

if [[ -z $(echo "${GO_VERSION[2]}" | grep -E 'go1.2|go1.3|go1.4|go1.5') ]]; then
echo "Unknown go version '${GO_VERSION}', skipping gofmt."
if [[ -z $(echo "${GO_VERSION[2]}" | grep -E 'go1.4|go1.5') ]]; then
echo "Unsupported go version '${GO_VERSION}', skipping gofmt."
exit 0
fi

Expand Down
4 changes: 2 additions & 2 deletions hack/verify-gofmt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..

GO_VERSION=($(go version))

if [[ -z $(echo "${GO_VERSION[2]}" | grep -E 'go1.2|go1.3|go1.4|go1.5') ]]; then
echo "Unknown go version '${GO_VERSION}', skipping gofmt."
if [[ -z $(echo "${GO_VERSION[2]}" | grep -E 'go1.4|go1.5') ]]; then
echo "Unsupported go version '${GO_VERSION}', skipping gofmt."
exit 0
fi

Expand Down

0 comments on commit 0df0742

Please sign in to comment.