From 00aba6ee8778f368da5998e5ceb89d23c0cc5947 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 26 Jun 2014 10:33:39 -0700 Subject: [PATCH] update README --- Makefile | 5 ++++- README.md | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 3619ad1b14..462466fb20 100644 --- a/Makefile +++ b/Makefile @@ -25,6 +25,9 @@ libucl: vendor/libucl/$(LIBUCL_NAME) test: libucl go test $(TEST) $(TESTARGS) +updatedeps: + go get -u -v ./... + vendor/libucl/libucl.a: vendor/libucl cd vendor/libucl && \ cmake cmake/ && \ @@ -44,4 +47,4 @@ vendor/libucl: clean: rm -rf vendor -.PHONY: clean default libucl test +.PHONY: clean default libucl test updatedeps diff --git a/README.md b/README.md index a388cf1c25..c835f8b0a5 100644 --- a/README.md +++ b/README.md @@ -6,3 +6,42 @@ Terraform is a tool for building and changing infrastructure safetly and efficiently. + +## Developing Terraform + +If you wish to work on Terraform itself or any of its built-in providers, +you'll first need [Go](http://www.golang.org) installed (version 1.2+ is +_required_). Make sure Go is properly installed, including setting up +a [GOPATH](http://golang.org/doc/code.html#GOPATH). Make sure Go is compiled +with cgo support. You can verify this by running `go env` and checking that +`CGOENABLED` is set to "1". + +Next, install [Git](http://git-scm.com/), which is needed for some dependencies. + +Finally, install [Gox](https://github.com/mitchellh/gox), which is used +as a compilation tool on top of Go: + + $ go get -u github.com/mitchellh/gox + +Next, clone this repository into `$GOPATH/src/github.com/hashicorp/terraform` +and then just type `make`. This will compile some dependencies and then +run the tests. If this exits with exit status 0, then everything is working! + + $ make + ... + +To compile a development version of Terraform and the built-in plugins, +run `make dev`. This will put Terraform binaries in the `bin` folder: + + $ make dev + ... + $ bin/terraform + ... + + +If you're developing a specific package, you can run tests for just that +package by specifying the `TEST` variable. For example below, only +`terraform` package tests will be run. + + $ make test TEST=./terraform + ...