github.com/bendemaree/terraform@v0.5.4-0.20150613200311-f50d97d6eee6/RELEASING.md (about) 1 # Releasing Terraform 2 3 This document contains details about the Terraform release process. 4 5 ## Schedule 6 7 Terraform currently has no fixed release schedule, the HashiCorp maintainers 8 can usually give a feel for roughly when the next release is planned. 9 10 ## Versioning 11 12 As a pre-1.0 project, we use the MINOR and PATCH versions as follows: 13 14 * a `MINOR` version increment indicates a release that may contain backwards 15 incompatible changes 16 * a `PATCH` version increment indicates a release that may contain bugfixes as 17 well as additive (backwards compatible) features and enhancements 18 19 ## Process 20 21 For maintainer documentation purposes, here is the current release process: 22 23 ```sh 24 # Verify tests pass 25 make test 26 27 # Prep release commit 28 export VERSION="vX.Y.Z" 29 # Edit CHANGELOG, adding current date to unreleased version header 30 # Edit version.go, setting VersionPrelease to empty string 31 32 # Snapshot dependency information 33 godep save 34 mv Godeps/Godeps.json deps/$(echo $VERSION | sed 's/\./-/g').json 35 rm -rf Godeps 36 37 # Make and tag release commit 38 git commit -a -m "${VERSION}" 39 git tag -m "${VERSION}" "${VERSION}" 40 41 # Build release in Vagrant machine 42 vagrant destroy -f; vagrant up # Build a fresh VM for a clean build 43 vagrant ssh 44 cd /opt/gopath/src/github.com/hashicorp/terraform/ 45 make release 46 47 # Zip and push release to bintray 48 export BINTRAY_API_KEY="..." 49 ./scripts/dist "X.Y.Z" # no `v` prefix here 50 51 # -- "Point of no return" -- 52 # -- Process can be aborted safely at any point before this -- 53 54 # Push the release commit and tag 55 git push origin master 56 git push origin vX.Y.Z 57 58 # Click "publish" on the release from the Bintray Web UI 59 60 # -- Release is complete! -- 61 62 # Make a follow-on commit to master restoring VersionPrerelease to "dev" and 63 setting up a new CHANGELOG section. 64 ```