github.com/magodo/terraform@v0.11.12-beta1/BUILDING.md (about) 1 # Building Terraform 2 3 This document contains details about the process for building binaries for 4 Terraform. 5 6 ## Versioning 7 8 As a pre-1.0 project, we use the MINOR and PATCH versions as follows: 9 10 * a `MINOR` version increment indicates a release that may contain backwards 11 incompatible changes 12 * a `PATCH` version increment indicates a release that may contain bugfixes as 13 well as additive (backwards compatible) features and enhancements 14 15 ## Process 16 17 If only need to build binaries for the platform you're running (Windows, Linux, 18 Mac OS X etc..), you can follow the instructions in the README for [Developing 19 Terraform][1]. 20 21 The guide below outlines the steps HashiCorp takes to build the official release 22 binaries for Terraform. This process will generate a set of binaries for each supported 23 platform, using the [gox](https://github.com/mitchellh/gox) tool. 24 25 A Vagrant virtual machine is used to provide a consistent environment with 26 the pre-requisite tools in place. The specifics of this VM are defined in the 27 [Vagrantfile](Vagrantfile). 28 29 30 ```sh 31 # clone the repository if needed 32 git clone https://github.com/hashicorp/terraform.git 33 cd terraform 34 35 # Spin up a fresh build VM 36 vagrant destroy -f 37 vagrant up 38 vagrant ssh 39 40 # The Vagrantfile installs Go and configures the $GOPATH at /opt/gopath 41 # The current "terraform" directory is then sync'd into the gopath 42 cd /opt/gopath/src/github.com/hashicorp/terraform/ 43 44 # Verify unit tests pass 45 make test 46 47 # Build the release 48 # This generates binaries for each platform and places them in the pkg folder 49 make bin 50 ``` 51 52 After running these commands, you should have binaries for all supported 53 platforms in the `pkg` folder. 54 55 56 [1]: https://github.com/hashicorp/terraform#developing-terraform