Repository: appc/spec
Pull request #632 (2016-06-23 14:45:44)

Replaced Godeps with glide
The same as for the other appc repositories. I have entirely replaced Godeps with glide and while I have imported Godeps into glide it still updated some dependencies.

jonboulle: Same as elsewhere - this imports a bunch of cruft - could you run glide-vc please?
tboerger: > Same as elsewhere - this imports a bunch of cruft - could you run glide-vc please?

Did that now, thousands of changes lesser now.
jonboulle: how about with the --no-tests flag? :-)
tboerger: `glide-vc --no-tests --only-code` is a working combination. Applied it.
s-urbaniak: @tboerger thanks! Just a few nitpicks from my side:
- travis is failing, because the `build` script was renamed to `build.sh` in your PR.
- Do you mind to add a `glide-update.sh` script, so others can bump dependencies in a reproducible way (see https://github.com/coreos/rkt/blob/master/scripts/glide-update.sh)?
- I am wondering if we should document the glide update process, maybe in `CONTRIBUTING.md`?
tboerger: Except the documentation on `CONTRIBUTING.md` I have applied the comments.
jonboulle: @s-urbaniak rereview?
s-urbaniak: @tboerger added a few version pointers for the glide.yaml, where available. We bumped to k8s 1.3.0 in master, so you'll have to revendor and rebase.
tboerger: @s-urbaniak I think now it should be fine :)
s-urbaniak: great, thanks, hopefully you won't kill me now if I ask you to reformat the commit messages to comply to https://github.com/appc/spec/blob/master/CONTRIBUTING.md#format-of-the-commit-message ;-)
tboerger: @s-urbaniak hopefully you are happy now? :)

Patch:
diff --git a/.travis.yml b/.travis.yml
index 6ebf652..7fd21b7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,9 +8,8 @@ matrix:
       env: GO15VENDOREXPERIMENT=1
     - go: 1.6.2
 
-# Stop Travis mucking about with godeps:
-# https://docs.travis-ci.com/user/languages/go#godep-support
+# Nothing to install, it's part of vendoring.
 install: true
 
 script:
- - ./test
+ - ./test.sh
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 58250e5..2079be1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,9 +1,3 @@
-### v0.8.6
-
-This is a minor release of the spec with one new feature and some updated dependencies:
-- Added optional _recursive_ field to volumes in the spec (#630)
-- Update vendored Kubernetes dependencies (#635)
-
 ### v0.8.5
 
 This is a minor release of the spec, containing one new backwards-compatible feature, and several tooling improvements:
diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json
deleted file mode 100644
index 251e61b..0000000
--- a/Godeps/Godeps.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
-	"ImportPath": "github.com/appc/spec",
-	"GoVersion": "go1.6",
-	"GodepVersion": "v64",
-	"Packages": [
-		"./..."
-	],
-	"Deps": [
-		{
-			"ImportPath": "github.com/coreos/go-semver/semver",
-			"Rev": "6fe83ccda8fb9b7549c9ab4ba47f47858bc950aa"
-		},
-		{
-			"ImportPath": "github.com/gogo/protobuf/proto",
-			"Comment": "v0.2",
-			"Rev": "4168943e65a2802828518e95310aeeed6d84c4e5"
-		},
-		{
-			"ImportPath": "github.com/spf13/pflag",
-			"Rev": "94e98a55fb412fcbcfc302555cb990f5e1590627"
-		},
-		{
-			"ImportPath": "go4.org/errorutil",
-			"Rev": "03efcb870d84809319ea509714dd6d19a1498483"
-		},
-		{
-			"ImportPath": "golang.org/x/net/html",
-			"Rev": "ccfcd82c7124abd517842acbacc3b8c1e390c73d"
-		},
-		{
-			"ImportPath": "golang.org/x/net/html/atom",
-			"Rev": "ccfcd82c7124abd517842acbacc3b8c1e390c73d"
-		},
-		{
-			"ImportPath": "gopkg.in/inf.v0",
-			"Comment": "v0.9.0",
-			"Rev": "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4"
-		},
-		{
-			"ImportPath": "k8s.io/kubernetes/pkg/api/resource",
-			"Comment": "v1.3.0",
-			"Rev": "283137936a498aed572ee22af6774b6fb6e9fd94"
-		},
-		{
-			"ImportPath": "k8s.io/kubernetes/pkg/conversion",
-			"Comment": "v1.3.0",
-			"Rev": "283137936a498aed572ee22af6774b6fb6e9fd94"
-		},
-		{
-			"ImportPath": "k8s.io/kubernetes/third_party/forked/reflect",
-			"Comment": "v1.3.0",
-			"Rev": "283137936a498aed572ee22af6774b6fb6e9fd94"
-		}
-	]
-}
diff --git a/Godeps/Readme b/Godeps/Readme
deleted file mode 100644
index 4cdaa53..0000000
--- a/Godeps/Readme
+++ /dev/null
@@ -1,5 +0,0 @@
-This directory tree is generated automatically by godep.
-
-Please do not edit.
-
-See https://github.com/tools/godep for more information.
diff --git a/README.md b/README.md
index f4a9f44..ea14dc5 100644
--- a/README.md
+++ b/README.md
@@ -83,7 +83,7 @@ $ find /tmp/my-app/
 $ cat /tmp/my-app/manifest
 {
     "acKind": "ImageManifest",
-    "acVersion": "0.8.6",
+    "acVersion": "0.8.5",
     "name": "my-app",
     "labels": [
         {"name": "os", "value": "linux"},
@@ -115,7 +115,7 @@ and verify that the manifest was embedded appropriately
 $ tar xf /tmp/my-app.aci manifest -O | python -m json.tool
 {
     "acKind": "ImageManifest",
-    "acVersion": "0.8.6",
+    "acVersion": "0.8.5",
     "annotations": null,
     "app": {
         "environment": [],
diff --git a/VERSION b/VERSION
index 9020f87..56065da 100644
--- a/VERSION
+++ b/VERSION
@@ -1,1 +1,1 @@
-0.8.6+git
+0.8.5+git
diff --git a/ace/image_manifest_main.json.in b/ace/image_manifest_main.json.in
index 9f3f02c..3a9e4a6 100644
--- a/ace/image_manifest_main.json.in
+++ b/ace/image_manifest_main.json.in
@@ -1,9 +1,9 @@
 {
-    "acVersion": "0.8.6",
+    "acVersion": "0.8.5",
     "acKind": "ImageManifest",
     "name": "coreos.com/ace-validator-main",
     "labels": [
-        { "name": "version", "value": "0.8.6" },
+        { "name": "version", "value": "0.8.5" },
         { "name": "os", "value": "@GOOS@" },
         { "name": "arch", "value": "@GOARCH@" }
     ],
diff --git a/ace/image_manifest_sidekick.json.in b/ace/image_manifest_sidekick.json.in
index 93ebb61..f66bdd3 100644
--- a/ace/image_manifest_sidekick.json.in
+++ b/ace/image_manifest_sidekick.json.in
@@ -1,9 +1,9 @@
 {
-    "acVersion": "0.8.6",
+    "acVersion": "0.8.5",
     "acKind": "ImageManifest",
     "name": "coreos.com/ace-validator-sidekick",
     "labels": [
-        { "name": "version", "value": "0.8.6" },
+        { "name": "version", "value": "0.8.5" },
         { "name": "os", "value": "@GOOS@" },
         { "name": "arch", "value": "@GOARCH@" }
     ],
diff --git a/build b/build
deleted file mode 100755
index a8d78e5..0000000
--- a/build
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-ORG_PATH="github.com/appc"
-REPO_PATH="${ORG_PATH}/spec"
-
-if [ ! -h gopath/src/${REPO_PATH} ]; then
-	mkdir -p gopath/src/${ORG_PATH}
-	ln -s ../../../.. gopath/src/${REPO_PATH} || exit 255
-fi
-
-export GOBIN=${PWD}/bin
-export GOPATH=${PWD}/gopath
-export GO15VENDOREXPERIMENT=1
-
-eval $(go env)
-export GOOS GOARCH
-
-if [ "${GOOS}" = "freebsd" ]; then
-    # /usr/bin/cc is clang on freebsd, but we need to tell it to go to
-    # make it generate proper flavour of code that doesn't emit
-    # warnings.
-    export CC=clang
-fi
-
-echo "Building actool..."
-go build -o $GOBIN/actool ${REPO_PATH}/actool
-
-if ! [[ -d "$(go env GOROOT)/pkg/${GOOS}_${GOARCH}" ]]; then
-	echo "go ${GOOS}/${GOARCH} not bootstrapped, not building ACE validator"
-else
-	echo "Building ACE validator..."
-	CGO_ENABLED=0 go build -a -installsuffix ace -ldflags '-extldflags "-static"' -o $GOBIN/ace-validator ${REPO_PATH}/ace
-fi
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..4c03d7d
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+set -e
+
+# Gets the directory that this script is stored in.
+# https://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+ORG_PATH="github.com/appc"
+REPO_PATH="${ORG_PATH}/spec"
+
+if [ ! -h ${DIR}/gopath/src/${REPO_PATH} ]; then
+  mkdir -p ${DIR}/gopath/src/${ORG_PATH}
+  cd ${DIR} && ln -s ../../../.. gopath/src/${REPO_PATH} || exit 255
+fi
+
+export GO15VENDOREXPERIMENT=1
+export GOBIN=${DIR}/bin
+export GOPATH=${DIR}/gopath
+export GOOS GOARCH
+
+eval $(go env)
+
+if [ "${GOOS}" = "freebsd" ]; then
+  # /usr/bin/cc is clang on freebsd, but we need to tell it to go to
+  # make it generate proper flavour of code that doesn't emit
+  # warnings.
+  export CC=clang
+fi
+
+echo "Building actool..."
+go build -o ${GOBIN}/actool ${REPO_PATH}/actool
+
+if ! [[ -d "$(go env GOROOT)/pkg/${GOOS}_${GOARCH}" ]]; then
+	echo "go ${GOOS}/${GOARCH} not bootstrapped, not building ACE validator"
+else
+	echo "Building ACE validator..."
+	CGO_ENABLED=0 go build -a -installsuffix ace -ldflags '-extldflags "-static"' -o ${GOBIN}/ace-validator ${REPO_PATH}/ace
+fi
diff --git a/examples/image.json b/examples/image.json
index 0311d0d..e7272de 100644
--- a/examples/image.json
+++ b/examples/image.json
@@ -1,6 +1,6 @@
 {
     "acKind": "ImageManifest",
-    "acVersion": "0.8.6",
+    "acVersion": "0.8.5",
     "name": "example.com/reduce-worker",
     "labels": [
         {
diff --git a/examples/pod_runtime.json b/examples/pod_runtime.json
index 1407610..5f9e631 100644
--- a/examples/pod_runtime.json
+++ b/examples/pod_runtime.json
@@ -1,6 +1,6 @@
 {
     "acKind": "PodManifest",
-    "acVersion": "0.8.6",
+    "acVersion": "0.8.5",
     "apps": [
         {
             "name": "reduce-worker",
diff --git a/glide.lock b/glide.lock
new file mode 100644
index 0000000..db5bc7e
--- /dev/null
+++ b/glide.lock
@@ -0,0 +1,31 @@
+hash: 272f875960af6af2a372ccc62e3155654d203f78cc83d5489f613500fc956ac2
+updated: 2016-07-06T16:35:25.445306953+02:00
+imports:
+- name: github.com/coreos/go-semver
+  version: 294930c1e79c64e7dbe360054274fdad492c8cf5
+  subpackages:
+  - semver
+- name: github.com/gogo/protobuf
+  version: 4168943e65a2802828518e95310aeeed6d84c4e5
+  subpackages:
+  - proto
+- name: github.com/spf13/pflag
+  version: 94e98a55fb412fcbcfc302555cb990f5e1590627
+- name: go4.org
+  version: 03efcb870d84809319ea509714dd6d19a1498483
+  subpackages:
+  - errorutil
+- name: golang.org/x/net
+  version: ccfcd82c7124abd517842acbacc3b8c1e390c73d
+  subpackages:
+  - html
+  - html/atom
+- name: gopkg.in/inf.v0
+  version: 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4
+- name: k8s.io/kubernetes
+  version: a639d02cbff6f21e89eb639c7b7e5ad268bd4c29
+  subpackages:
+  - pkg/api/resource
+  - pkg/conversion
+  - third_party/forked/reflect
+devImports: []
diff --git a/glide.yaml b/glide.yaml
new file mode 100644
index 0000000..3a613c8
--- /dev/null
+++ b/glide.yaml
@@ -0,0 +1,29 @@
+package: "github.com/appc/spec"
+import:
+- package: github.com/coreos/go-semver
+  version: ~0.1.0
+  subpackages:
+  - semver
+- package: github.com/gogo/protobuf
+  version: ~0.2
+  subpackages:
+  - proto
+- package: github.com/spf13/pflag
+  version: 94e98a55fb412fcbcfc302555cb990f5e1590627
+- package: go4.org
+  version: 03efcb870d84809319ea509714dd6d19a1498483
+  subpackages:
+  - errorutil
+- package: golang.org/x/net
+  version: ccfcd82c7124abd517842acbacc3b8c1e390c73d
+  subpackages:
+  - html
+  - html/atom
+- package: gopkg.in/inf.v0
+  version: 3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4
+- package: k8s.io/kubernetes
+  version: ~1.3.0
+  subpackages:
+  - pkg/api/resource
+  - pkg/conversion
+  - third_party/forked/reflect
diff --git a/schema/version.go b/schema/version.go
index cb7861a..19e1b3d 100644
--- a/schema/version.go
+++ b/schema/version.go
@@ -22,7 +22,7 @@ const (
 	// version represents the canonical version of the appc spec and tooling.
 	// For now, the schema and tooling is coupled with the spec itself, so
 	// this must be kept in sync with the VERSION file in the root of the repo.
-	version string = "0.8.6+git"
+	version string = "0.8.5+git"
 )
 
 var (
diff --git a/scripts/glide-update b/scripts/glide-update
new file mode 100755
index 0000000..063331f
--- /dev/null
+++ b/scripts/glide-update
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+set -e
+
+if ! [[ "$0" =~ "scripts/glide-update"  ]]; then
+  echo "must be run from repository root"
+  exit 255
+fi
+
+if [ ! $(command -v glide)  ]; then
+  echo "glide: command not found"
+  exit 255
+fi
+
+if [ ! $(command -v glide-vc)  ]; then
+  echo "glide-vc: command not found"
+  exit 255
+fi
+
+glide update --strip-vcs --strip-vendor --update-vendored --delete
+glide-vc --only-code --no-tests
diff --git a/spec/aci.md b/spec/aci.md
index 6c06f4e..ade9642 100644
--- a/spec/aci.md
+++ b/spec/aci.md
@@ -78,7 +78,7 @@ JSON Schema for the Image Manifest (app image manifest, ACI manifest), conformin
 ```json
 {
     "acKind": "ImageManifest",
-    "acVersion": "0.8.6",
+    "acVersion": "0.8.5",
     "name": "example.com/reduce-worker",
     "labels": [
         {
diff --git a/spec/pods.md b/spec/pods.md
index 1b985b3..fe96b90 100644
--- a/spec/pods.md
+++ b/spec/pods.md
@@ -28,7 +28,7 @@ JSON Schema for the Pod Manifest, conforming to [RFC4627](https://tools.ietf.org
 
 ```json
 {
-    "acVersion": "0.8.6",
+    "acVersion": "0.8.5",
     "acKind": "PodManifest",
     "apps": [
         {
diff --git a/vendor/github.com/coreos/go-semver/example.go b/vendor/github.com/coreos/go-semver/example.go
new file mode 100644
index 0000000..fd2ee5a
--- /dev/null
+++ b/vendor/github.com/coreos/go-semver/example.go
@@ -0,0 +1,20 @@
+package main
+
+import (
+	"fmt"
+	"github.com/coreos/go-semver/semver"
+	"os"
+)
+
+func main() {
+	vA, err := semver.NewVersion(os.Args[1])
+	if err != nil {
+		fmt.Println(err.Error())
+	}
+	vB, err := semver.NewVersion(os.Args[2])
+	if err != nil {
+		fmt.Println(err.Error())
+	}
+
+	fmt.Printf("%s < %s == %t\n", vA, vB, vA.LessThan(*vB))
+}
diff --git a/vendor/github.com/coreos/go-semver/semver/semver.go b/vendor/github.com/coreos/go-semver/semver/semver.go
index 4e10221..000a020 100644
--- a/vendor/github.com/coreos/go-semver/semver/semver.go
+++ b/vendor/github.com/coreos/go-semver/semver/semver.go
@@ -1,3 +1,18 @@
+// Copyright 2013-2015 CoreOS, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Semantic Versions http://semver.org
 package semver
 
 import (
@@ -32,15 +47,15 @@ func splitOff(input *string, delim string) (val string) {
 func NewVersion(version string) (*Version, error) {
 	v := Version{}
 
+	v.Metadata = splitOff(&version, "+")
+	v.PreRelease = PreRelease(splitOff(&version, "-"))
+
 	dotParts := strings.SplitN(version, ".", 3)
 
 	if len(dotParts) != 3 {
 		return nil, errors.New(fmt.Sprintf("%s is not in dotted-tri format", version))
 	}
 
-	v.Metadata = splitOff(&dotParts[2], "+")
-	v.PreRelease = PreRelease(splitOff(&dotParts[2], "-"))
-
 	parsed := make([]int64, 3, 3)
 
 	for i, v := range dotParts[:3] {
@@ -58,25 +73,64 @@ func NewVersion(version string) (*Version, error) {
 	return &v, nil
 }
 
-func (v *Version) String() string {
+func Must(v *Version, err error) *Version {
+	if err != nil {
+		panic(err)
+	}
+	return v
+}
+
+func (v Version) String() string {
 	var buffer bytes.Buffer
 
-	base := fmt.Sprintf("%d.%d.%d", v.Major, v.Minor, v.Patch)
-	buffer.WriteString(base)
+	fmt.Fprintf(&buffer, "%d.%d.%d", v.Major, v.Minor, v.Patch)
 
 	if v.PreRelease != "" {
-		buffer.WriteString(fmt.Sprintf("-%s", v.PreRelease))
+		fmt.Fprintf(&buffer, "-%s", v.PreRelease)
 	}
 
 	if v.Metadata != "" {
-		buffer.WriteString(fmt.Sprintf("+%s", v.Metadata))
+		fmt.Fprintf(&buffer, "+%s", v.Metadata)
 	}
 
 	return buffer.String()
 }
 
-func (v *Version) LessThan(versionB Version) bool {
-	versionA := *v
+func (v *Version) UnmarshalYAML(unmarshal func(interface{}) error) error {
+	var data string
+	if err := unmarshal(&data); err != nil {
+		return err
+	}
+	vv, err := NewVersion(data)
+	if err != nil {
+		return err
+	}
+	*v = *vv
+	return nil
+}
+
+func (v Version) MarshalJSON() ([]byte, error) {
+	return []byte(`"` + v.String() + `"`), nil
+}
+
+func (v *Version) UnmarshalJSON(data []byte) error {
+	l := len(data)
+	if l == 0 || string(data) == `""` {
+		return nil
+	}
+	if l < 2 || data[0] != '"' || data[l-1] != '"' {
+		return errors.New("invalid semver string")
+	}
+	vv, err := NewVersion(string(data[1 : l-1]))
+	if err != nil {
+		return err
+	}
+	*v = *vv
+	return nil
+}
+
+func (v Version) LessThan(versionB Version) bool {
+	versionA := v
 	cmp := recursiveCompare(versionA.Slice(), versionB.Slice())
 
 	if cmp == 0 {
@@ -91,12 +145,12 @@ func (v *Version) LessThan(versionB Version) bool {
 }
 
 /* Slice converts the comparable parts of the semver into a slice of strings */
-func (v *Version) Slice() []int64 {
+func (v Version) Slice() []int64 {
 	return []int64{v.Major, v.Minor, v.Patch}
 }
 
-func (p *PreRelease) Slice() []string {
-	preRelease := string(*p)
+func (p PreRelease) Slice() []string {
+	preRelease := string(p)
 	return strings.Split(preRelease, ".")
 }
 
@@ -146,7 +200,8 @@ func recursivePreReleaseCompare(versionA []string, versionB []string) int {
 	a := versionA[0]
 	b := versionB[0]
 
-	aInt := false; bInt := false
+	aInt := false
+	bInt := false
 
 	aI, err := strconv.Atoi(versionA[0])
 	if err == nil {
diff --git a/vendor/github.com/coreos/go-semver/semver/sort.go b/vendor/github.com/coreos/go-semver/semver/sort.go
index 8620300..e256b41 100644
--- a/vendor/github.com/coreos/go-semver/semver/sort.go
+++ b/vendor/github.com/coreos/go-semver/semver/sort.go
@@ -1,3 +1,17 @@
+// Copyright 2013-2015 CoreOS, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package semver
 
 import (
diff --git a/vendor/github.com/gogo/protobuf/proto/Makefile b/vendor/github.com/gogo/protobuf/proto/Makefile
deleted file mode 100644
index 23a6b17..0000000
--- a/vendor/github.com/gogo/protobuf/proto/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# Go support for Protocol Buffers - Google's data interchange format
-#
-# Copyright 2010 The Go Authors.  All rights reserved.
-# https://github.com/golang/protobuf
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-install:
-	go install
-
-test: install generate-test-pbs
-	go test
-
-
-generate-test-pbs:
-	make install
-	make -C testdata
-	protoc-min-version --version="3.0.0" --proto_path=.:../../../../ --gogo_out=. proto3_proto/proto3.proto
-	make
diff --git a/vendor/github.com/spf13/pflag/README.md b/vendor/github.com/spf13/pflag/README.md
deleted file mode 100644
index a12d94d..0000000
--- a/vendor/github.com/spf13/pflag/README.md
+++ /dev/null
@@ -1,155 +0,0 @@
-## Description
-
-pflag is a drop-in replacement for Go's flag package, implementing
-POSIX/GNU-style --flags.
-
-pflag is compatible with the [GNU extensions to the POSIX recommendations
-for command-line options][1]. For a more precise description, see the
-"Command-line flag syntax" section below.
-
-[1]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html
-
-pflag is available under the same style of BSD license as the Go language,
-which can be found in the LICENSE file.
-
-## Installation
-
-pflag is available using the standard `go get` command.
-
-Install by running:
-
-    go get github.com/ogier/pflag
-
-Run tests by running:
-
-    go test github.com/ogier/pflag
-
-## Usage
-
-pflag is a drop-in replacement of Go's native flag package. If you import
-pflag under the name "flag" then all code should continue to function
-with no changes.
-
-``` go
-import flag "github.com/ogier/pflag"
-```
-
-There is one exception to this: if you directly instantiate the Flag struct
-there is one more field "Shorthand" that you will need to set.
-Most code never instantiates this struct directly, and instead uses
-functions such as String(), BoolVar(), and Var(), and is therefore
-unaffected.
-
-Define flags using flag.String(), Bool(), Int(), etc.
-
-This declares an integer flag, -flagname, stored in the pointer ip, with type *int.
-
-``` go
-var ip *int = flag.Int("flagname", 1234, "help message for flagname")
-```
-
-If you like, you can bind the flag to a variable using the Var() functions.
-
-``` go
-var flagvar int
-func init() {
-    flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
-}
-```
-
-Or you can create custom flags that satisfy the Value interface (with
-pointer receivers) and couple them to flag parsing by
-
-``` go
-flag.Var(&flagVal, "name", "help message for flagname")
-```
-
-For such flags, the default value is just the initial value of the variable.
-
-After all flags are defined, call
-
-``` go
-flag.Parse()
-```
-
-to parse the command line into the defined flags.
-
-Flags may then be used directly. If you're using the flags themselves,
-they are all pointers; if you bind to variables, they're values.
-
-``` go
-fmt.Println("ip has value ", *ip)
-fmt.Println("flagvar has value ", flagvar)
-```
-
-After parsing, the arguments after the flag are available as the
-slice flag.Args() or individually as flag.Arg(i).
-The arguments are indexed from 0 through flag.NArg()-1.
-
-The pflag package also defines some new functions that are not in flag,
-that give one-letter shorthands for flags. You can use these by appending
-'P' to the name of any function that defines a flag.
-
-``` go
-var ip = flag.IntP("flagname", "f", 1234, "help message")
-var flagvar bool
-func init() {
-    flag.BoolVarP("boolname", "b", true, "help message")
-}
-flag.VarP(&flagVar, "varname", "v", 1234, "help message")
-```
-
-Shorthand letters can be used with single dashes on the command line.
-Boolean shorthand flags can be combined with other shorthand flags.
-
-The default set of command-line flags is controlled by
-top-level functions.  The FlagSet type allows one to define
-independent sets of flags, such as to implement subcommands
-in a command-line interface. The methods of FlagSet are
-analogous to the top-level functions for the command-line
-flag set.
-
-## Command line flag syntax
-
-```
---flag    // boolean flags only
---flag=x
-```
-
-Unlike the flag package, a single dash before an option means something
-different than a double dash. Single dashes signify a series of shorthand
-letters for flags. All but the last shorthand letter must be boolean flags.
-
-```
-// boolean flags
--f
--abc
-
-// non-boolean flags
--n 1234
--Ifile
-
-// mixed
--abcs "hello"
--abcn1234
-```
-
-Flag parsing stops after the terminator "--". Unlike the flag package,
-flags can be interspersed with arguments anywhere on the command line
-before this terminator.
-
-Integer flags accept 1234, 0664, 0x1234 and may be negative.
-Boolean flags (in their long form) accept 1, 0, t, f, true, false,
-TRUE, FALSE, True, False.
-Duration flags accept any input valid for time.ParseDuration.
-
-## More info
-
-You can see the full reference documentation of the pflag package
-[at godoc.org][3], or through go's standard documentation system by
-running `godoc -http=:6060` and browsing to
-[http://localhost:6060/pkg/github.com/ogier/pflag][2] after
-installation.
-
-[2]: http://localhost:6060/pkg/github.com/ogier/pflag
-[3]: http://godoc.org/github.com/ogier/pflag
diff --git a/vendor/go4.org/errorutil/highlight.go b/vendor/go4.org/errorutil/highlight.go
index aace6a4..1b1efb0 100644
--- a/vendor/go4.org/errorutil/highlight.go
+++ b/vendor/go4.org/errorutil/highlight.go
@@ -15,7 +15,7 @@ limitations under the License.
 */
 
 // Package errorutil helps make better error messages.
-package errorutil
+package errorutil // import "go4.org/errorutil"
 
 import (
 	"bufio"
diff --git a/vendor/gopkg.in/inf.v0/dec.go b/vendor/gopkg.in/inf.v0/dec.go
index d17ad94..3b4afed 100644
--- a/vendor/gopkg.in/inf.v0/dec.go
+++ b/vendor/gopkg.in/inf.v0/dec.go
@@ -20,7 +20,7 @@
 //  + combined operations such as AddRound/MulAdd etc
 //  + exchanging data in decimal32/64/128 formats
 //
-package inf
+package inf // import "gopkg.in/inf.v0"
 
 // TODO:
 //  - avoid excessive deep copying (quo and rounders)
diff --git a/vendor/k8s.io/kubernetes/pkg/api/resource/generated.proto b/vendor/k8s.io/kubernetes/pkg/api/resource/generated.proto
deleted file mode 100644
index e1c2a3d..0000000
--- a/vendor/k8s.io/kubernetes/pkg/api/resource/generated.proto
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-Copyright 2016 The Kubernetes Authors All rights reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-
-// This file was autogenerated by go-to-protobuf. Do not edit it manually!
-
-syntax = 'proto2';
-
-package k8s.io.kubernetes.pkg.api.resource;
-
-import "k8s.io/kubernetes/pkg/util/intstr/generated.proto";
-
-// Package-wide variables from generator "generated".
-option go_package = "resource";
-
-// Quantity is a fixed-point representation of a number.
-// It provides convenient marshaling/unmarshaling in JSON and YAML,
-// in addition to String() and Int64() accessors.
-// 
-// The serialization format is:
-// 
-// <quantity>        ::= <signedNumber><suffix>
-//   (Note that <suffix> may be empty, from the "" case in <decimalSI>.)
-// <digit>           ::= 0 | 1 | ... | 9
-// <digits>          ::= <digit> | <digit><digits>
-// <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits>
-// <sign>            ::= "+" | "-"
-// <signedNumber>    ::= <number> | <sign><number>
-// <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI>
-// <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei
-//   (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)
-// <decimalSI>       ::= m | "" | k | M | G | T | P | E
-//   (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)
-// <decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber>
-// 
-// No matter which of the three exponent forms is used, no quantity may represent
-// a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal
-// places. Numbers larger or more precise will be capped or rounded up.
-// (E.g.: 0.1m will rounded up to 1m.)
-// This may be extended in the future if we require larger or smaller quantities.
-// 
-// When a Quantity is parsed from a string, it will remember the type of suffix
-// it had, and will use the same type again when it is serialized.
-// 
-// Before serializing, Quantity will be put in "canonical form".
-// This means that Exponent/suffix will be adjusted up or down (with a
-// corresponding increase or decrease in Mantissa) such that:
-//   a. No precision is lost
-//   b. No fractional digits will be emitted
-//   c. The exponent (or suffix) is as large as possible.
-// The sign will be omitted unless the number is negative.
-// 
-// Examples:
-//   1.5 will be serialized as "1500m"
-//   1.5Gi will be serialized as "1536Mi"
-// 
-// NOTE: We reserve the right to amend this canonical format, perhaps to
-//   allow 1.5 to be canonical.
-// TODO: Remove above disclaimer after all bikeshedding about format is over,
-//   or after March 2015.
-// 
-// Note that the quantity will NEVER be internally represented by a
-// floating point number. That is the whole point of this exercise.
-// 
-// Non-canonical values will still parse as long as they are well formed,
-// but will be re-emitted in their canonical form. (So always use canonical
-// form, or don't diff.)
-// 
-// This format is intended to make it difficult to use these numbers without
-// writing some sort of special handling code in the hopes that that will
-// cause implementors to also use a fixed point implementation.
-// 
-// +gencopy=false
-// +protobuf=true
-// +protobuf.embed=string
-// +protobuf.options.marshal=false
-// +protobuf.options.(gogoproto.goproto_stringer)=false
-message Quantity {
-  optional string string = 1;
-}
-
diff --git a/vendor/k8s.io/kubernetes/pkg/conversion/OWNERS b/vendor/k8s.io/kubernetes/pkg/conversion/OWNERS
deleted file mode 100644
index a046efc..0000000
--- a/vendor/k8s.io/kubernetes/pkg/conversion/OWNERS
+++ /dev/null
@@ -1,5 +0,0 @@
-assignees:
-  - derekwaynecarr
-  - lavalamp
-  - smarterclayton
-  - wojtek-t


Test patch:
diff --git a/aci/file_test.go b/aci/file_test.go
index c44fdca..6a6e37d 100644
--- a/aci/file_test.go
+++ b/aci/file_test.go
@@ -28,7 +28,7 @@ func newTestACI(usedotslash bool) (*os.File, error) {
 		return nil, err
 	}
 
-	manifestBody := `{"acKind":"ImageManifest","acVersion":"0.8.6","name":"example.com/app"}`
+	manifestBody := `{"acKind":"ImageManifest","acVersion":"0.8.5","name":"example.com/app"}`
 
 	gw := gzip.NewWriter(tf)
 	tw := tar.NewWriter(gw)
diff --git a/pkg/acirenderer/acirenderer_test.go b/pkg/acirenderer/acirenderer_test.go
index 8532258..1fbc56e 100644
--- a/pkg/acirenderer/acirenderer_test.go
+++ b/pkg/acirenderer/acirenderer_test.go
@@ -2149,7 +2149,7 @@ func TestEmptyRootFsDir(t *testing.T) {
 			`
 		            {
 		                "acKind": "ImageManifest",
-		                "acVersion": "0.8.6",
+		                "acVersion": "0.8.5",
 		                "name": "example.com/test_empty_rootfs"
 		            }
                         `,
@@ -2175,7 +2175,7 @@ func TestEmptyRootFsDir(t *testing.T) {
 			`
 		            {
 		                "acKind": "ImageManifest",
-		                "acVersion": "0.8.6",
+		                "acVersion": "0.8.5",
 		                "name": "example.com/test_empty_rootfs_pwl",
                                 "pathWhitelist": ["foo"]
 		            }
diff --git a/schema/image_test.go b/schema/image_test.go
index 8558ee8..6c95a5e 100644
--- a/schema/image_test.go
+++ b/schema/image_test.go
@@ -20,7 +20,7 @@ func TestEmptyApp(t *testing.T) {
 	imj := `
 		{
 		    "acKind": "ImageManifest",
-		    "acVersion": "0.8.6",
+		    "acVersion": "0.8.5",
 		    "name": "example.com/test"
 		}
 		`
diff --git a/schema/lastditch/image_test.go b/schema/lastditch/image_test.go
index ab2761f..68861cb 100644
--- a/schema/lastditch/image_test.go
+++ b/schema/lastditch/image_test.go
@@ -77,7 +77,7 @@ func TestBogusImageManifest(t *testing.T) {
 	bogus := []string{`
 		{
 		    "acKind": "Bogus",
-		    "acVersion": "0.8.6",
+		    "acVersion": "0.8.5",
 		}
 		`, `
 		<html>
@@ -101,7 +101,7 @@ func imgJ(name, labels, extra string) string {
 		{
 		    %s
 		    "acKind": "ImageManifest",
-		    "acVersion": "0.8.6",
+		    "acVersion": "0.8.5",
 		    "name": "%s",
 		    "labels": %s
 		}`, extra, name, labels)
@@ -110,7 +110,7 @@ func imgJ(name, labels, extra string) string {
 // imgI returns an image manifest instance with given name and labels
 func imgI(name string, labels Labels) ImageManifest {
 	return ImageManifest{
-		ACVersion: "0.8.6",
+		ACVersion: "0.8.5",
 		ACKind:    "ImageManifest",
 		Name:      name,
 		Labels:    labels,
diff --git a/schema/lastditch/pod_test.go b/schema/lastditch/pod_test.go
index f76dce7..9214eed 100644
--- a/schema/lastditch/pod_test.go
+++ b/schema/lastditch/pod_test.go
@@ -109,7 +109,7 @@ func TestBogusPodManifest(t *testing.T) {
 		`
 			{
 			    "acKind": "Bogus",
-			    "acVersion": "0.8.6",
+			    "acVersion": "0.8.5",
 			}
 			`,
 		`
@@ -134,7 +134,7 @@ func podJ(apps, extra string) string {
 		{
 		    %s
 		    "acKind": "PodManifest",
-		    "acVersion": "0.8.6",
+		    "acVersion": "0.8.5",
 		    "apps": %s
 		}`, extra, apps)
 }
@@ -142,7 +142,7 @@ func podJ(apps, extra string) string {
 // podI returns a pod manifest instance with given apps
 func podI(apps AppList) PodManifest {
 	return PodManifest{
-		ACVersion: "0.8.6",
+		ACVersion: "0.8.5",
 		ACKind:    "PodManifest",
 		Apps:      apps,
 	}
diff --git a/test b/test.sh
similarity index 98%
rename from test
rename to test.sh
index 20c8d1e..c3be042 100755
--- a/test
+++ b/test.sh
@@ -14,7 +14,7 @@ set -e
 # Invoke ./cover for HTML output
 COVER=${COVER:-"-cover"}
 
-source ./build
+source ./build.sh
 
 TESTABLE_AND_FORMATTABLE="aci discovery pkg/acirenderer pkg/tarheader schema schema/lastditch schema/types"
 FORMATTABLE="$TESTABLE_AND_FORMATTABLE ace actool"