If you'd like to build OpenTF from source, you can do so using the Go build toolchain and the options specified in this document.
- Ensure you've installed the Go language version specified in
.go-version
. - Clone this repository to a location of your choice.
OpenTF accepts certain options passed using ldflags
at build time which control the behavior of the resulting binary.
OpenTF will include a -dev
flag when reporting its own version (ex: 1.5.0-dev) unless version.dev
is set to no
:
go build -ldflags "-w -s -X 'github.com/placeholderplaceholderplaceholder/opentf/version.dev=no'" -o bin/ .
Experimental features of OpenTF will be disabled unless main.experimentsAllowed
is set to yes
:
go build -ldflags "-w -s -X 'main.experimentsAllowed=yes'" -o bin/ .
For the most part, the OpenTF release process relies on the Go toolchain defaults for the target operating system and processor architecture.
One exception is the CGO_ENABLED
option, which is set explicitly when building OpenTF binaries. For most platforms, we build with CGO_ENABLED=0
in order to produce a statically linked binary. For MacOS/Darwin operating systems, we build with CGO_ENABLED=1
to avoid a platform-specific issue with DNS resolution.