Development Guide

This document is intended to be the canonical source of truth for things like supported toolchain versions for building Pack. If you find a requirement that this doc does not capture, please submit an issue on github.

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 Pack should not change.

Build Pack

Some of the Pack development helper scripts rely on a fairly up-to-date GNU tools environment, so most recent Linux distros should work just fine out-of-the-box.

Setup GO

Pack is written in Google’s GO programming language. Currently, Pack is developed and tested on go 1.9.2. If you haven’t set up a GO development environment, please follow these instructions to install GO.

Download Source

$ go get
$ cd $(go env GOPATH)/src/

Install Dev tools

To install various dev tools for Pack, run the following command:

# setting up dependencies for compiling pack...
$ ./hack/

Build Binary

$ ./hack/
$ pack version

Dependency management

Pack uses Dep to manage dependencies. Dependencies are already checked in the vendor folder. If you want to update/add dependencies, run:

$ dep ensure

Generate Kubepack Reference Docs

$ ./hack/gendocs/

Subscribe to our free technical newsletter!

Join thousands of subscribers and stay up-to-date on AppsCode.