| # 0.22.0 (January 21, 2025) |
| |
| ENHANCEMENTS: |
| * tfexec: Add support for `terraform init --json` via `InitJSON` ([#478](https://github.com/hashicorp/terraform-exec/pull/478)) |
| |
| INTERNAL: |
| * go: Require Go 1.22 (previously 1.18) ([#499](https://github.com/hashicorp/terraform-exec/pull/499)) |
| |
| # 0.21.0 (May 17, 2024) |
| |
| ENHANCEMENTS: |
| - tfexec: Add `-allow-deferral` to `(Terraform).Apply()` and `(Terraform).Plan()` methods ([#447](https://github.com/hashicorp/terraform-exec/pull/447)) |
| |
| # 0.20.0 (December 20, 2023) |
| |
| ENHANCEMENTS: |
| - Add `JSONNumber` option to `Show` to enable `json.Number` representation of numerical values in returned `tfjson.Plan` and `tfjson.State` values ([#427](https://github.com/hashicorp/terraform-exec/pull/427)) |
| |
| # 0.19.0 (August 31, 2023) |
| |
| ENHANCEMENTS: |
| - Add support for `terraform test` command ([#398](https://github.com/hashicorp/terraform-exec/issues/398)) |
| - Add support for `-refresh-only` flag for `Plan` and `Apply` methods. ([#402](https://github.com/hashicorp/terraform-exec/issues/402)) |
| - Add support for `-destroy` flag for `Apply` ([#292](https://github.com/hashicorp/terraform-exec/issues/292)) |
| |
| BUG FIXES: |
| |
| - Fix bug in which the `TF_WORKSPACE` env var was set to an empty string, instead of being unset as intended. ([#388](https://github.com/hashicorp/terraform-exec/issues/388)) |
| |
| # 0.18.1 (March 01, 2023) |
| |
| BUG FIXES: |
| |
| - Fix bug in which errors returned from commands such as `(Terraform).Apply()` were missing stderr output from Terraform. ([#372](https://github.com/hashicorp/terraform-exec/issues/372)) |
| |
| # 0.18.0 (February 20, 2023) |
| |
| BREAKING CHANGES: |
| |
| - The following error types have been removed. These errors were based on regex parsing of Terraform CLI's human-readable output into custom error cases. ([#352](https://github.com/hashicorp/terraform-exec/issues/352)) |
| - `ErrConfigInvalid` |
| - `ErrLockIdInvalid` |
| - `ErrMissingVar` |
| - `ErrNoConfig` |
| - `ErrNoInit` |
| - `ErrNoWorkspace` |
| - `ErrStateLocked` |
| - `ErrStatePlanRead` |
| - `ErrTFVersionMismatch` |
| - `ErrWorkspaceExists` |
| |
| ENHANCEMENTS: |
| |
| - tfexec: Add `(Terraform).ApplyJSON()`, `(Terraform).DestroyJSON()`, `(Terraform).PlanJSON()` and `(Terraform).RefreshJSON()` methods ([#354](https://github.com/hashicorp/terraform-exec/pull/354)) |
| - tfexec: Add `(Terraform).MetadataFunctions()` method ([#358](https://github.com/hashicorp/terraform-exec/issues/358)) |
| |
| # 0.17.3 (August 31, 2022) |
| |
| Please note that terraform-exec now requires Go 1.18. |
| |
| BUG FIXES: |
| |
| - Fix bug in which `terraform init` was always called with the `-force-copy` flag ([#268](https://github.com/hashicorp/terraform-exec/issues/268)) |
| - Always pass `-no-color` flag when calling `terraform force-unlock` ([#270](https://github.com/hashicorp/terraform-exec/issues/270)) |
| |
| # 0.17.2 (July 01, 2022) |
| |
| ENHANCEMENTS: |
| |
| - tfexec: Add `(Terraform).SetLogCore()` and `(Terraform).SetLogProvider()` methods ([#324](https://github.com/hashicorp/terraform-exec/pull/324)) |
| |
| INTERNAL: |
| |
| - Bump github.com/hashicorp/go-version from 1.5.0 to 1.6.0 ([#323](https://github.com/hashicorp/terraform-exec/pull/323)) |
| |
| # 0.17.1 (June 27, 2022) |
| |
| BUG FIXES: |
| |
| - Fix bug in which `StatePush` would fail with "Exactly one argument expected" ([#316](https://github.com/hashicorp/terraform-exec/issues/316)) |
| |
| # 0.17.0 (June 22, 2022) |
| |
| FEATURES: |
| |
| - Add `SetLog()` method for `Terraform` ([#291](https://github.com/hashicorp/terraform-exec/pull/291)) |
| - Add support for `state pull` and `state push` ([#215](https://github.com/hashicorp/terraform-exec/pull/215)) |
| - Add support for running e2e tests against a local Terraform executable with `TFEXEC_E2ETEST_TERRAFORM_PATH` ([#305](https://github.com/hashicorp/terraform-exec/pull/305)) |
| |
| BUG FIXES: |
| |
| - Avoid data race conditions ([#299](https://github.com/hashicorp/terraform-exec/pull/299)) |
| |
| INTERNAL: |
| |
| - Bump github.com/hashicorp/go-version from 1.4.0 to 1.5.0 ([#306](https://github.com/hashicorp/terraform-exec/pull/306)) |
| |
| # 0.16.1 (April 13, 2022) |
| |
| This patch version removes some unnecessary dependencies, and bumps Go module compatibility to 1.17. |
| |
| # 0.16.0 (January 31, 2022) |
| |
| This release removes the experimental `tfinstall` package. We recommend users of `tfinstall` switch to https://github.com/hashicorp/hc-install. |
| |
| Please note also terraform-exec's Go version support policy, which, like Go's own release policy, commits to supporting the last two major releases. This means that currently terraform-exec requires Go 1.17 or later. |
| |
| BREAKING CHANGES: |
| |
| - Remove `tfinstall` and `cmd/tfinstall` packages ([#235](https://github.com/hashicorp/terraform-exec/issues/235)) |
| - Remove support for `add` command ([#232](https://github.com/hashicorp/terraform-exec/issues/232)) |
| |
| FEATURES: |
| |
| - Add support for `workspace delete` command ([#212](https://github.com/hashicorp/terraform-exec/issues/212)) |
| - Add support for `workspace show` command ([#245](https://github.com/hashicorp/terraform-exec/issues/245)) |
| - Add support for `force-unlock` command ([#223](https://github.com/hashicorp/terraform-exec/issues/223)) |
| - Add support for `graph` command ([#257](https://github.com/hashicorp/terraform-exec/issues/257)) |
| - Add support for `taint` command ([#251](https://github.com/hashicorp/terraform-exec/issues/251)) |
| - Add support for `untaint` command ([#251](https://github.com/hashicorp/terraform-exec/issues/251)) |
| - Add `ErrStatePlanRead`, returned when Terraform cannot read a given state or plan file ([#273](https://github.com/hashicorp/terraform-exec/issues/273)) |
| |
| # 0.15.0 (October 05, 2021) |
| |
| FEATURES: |
| |
| - Add support for `providers lock` command ([#203](https://github.com/hashicorp/terraform-exec/issues/203)) |
| - Add support for `add` command ([#209](https://github.com/hashicorp/terraform-exec/issues/209)) |
| - Add support for `Plan`/`Apply` `Replace` option ([#211](https://github.com/hashicorp/terraform-exec/issues/211)) |
| |
| ENHANCEMENTS: |
| |
| - Introduce `tfexec.ErrStateLocked` to represent locked state error ([#221](https://github.com/hashicorp/terraform-exec/issues/221)) |
| - Account for upcoming init error message change ([#228](https://github.com/hashicorp/terraform-exec/issues/228)) |
| |
| INTERNAL: |
| |
| - deps: Bump terraform-json to `0.13.0` to address panic & support v1 JSON format ([#224](https://github.com/hashicorp/terraform-exec/issues/224)) |
| |
| # 0.14.0 (June 24, 2021) |
| |
| FEATURES: |
| - Add `ProtocolVersion` to `ReattachConfig` struct, enabling provider protocol v6 support in reattach mode, provided that Terraform and the provider plugin are both using go-plugin v1.4.1 or later. This change is backwards-compatible, as zero values for this field are interpreted as protocol v5. ([#182](https://github.com/hashicorp/terraform-exec/issues/182)) |
| - Introduce `tfexec.Get()` for downloading modules ([#176](https://github.com/hashicorp/terraform-exec/issues/176)) |
| - Introduce `tfexec.Upgrade013()` ([#178](https://github.com/hashicorp/terraform-exec/issues/178)) |
| |
| INTERNAL: |
| |
| - Update `terraform-json` to account for changes in state & plan JSON output in Terraform v1.0.1+ ([#194](https://github.com/hashicorp/terraform-exec/issues/194)) |
| - Improve error message for incompatible Terraform version ([#191](https://github.com/hashicorp/terraform-exec/issues/191)) |
| |
| # 0.13.3 (April 23, 2021) |
| |
| SECURITY: |
| - `tfinstall`: The HashiCorp PGP signing key has been rotated ([HCSEC-2021-12](https://discuss.hashicorp.com/t/hcsec-2021-12-codecov-security-event-and-hashicorp-gpg-key-exposure/23512)). This key is used to verify downloaded versions of Terraform. We recommend all users of terraform-exec upgrade to v0.13.3 for this security fix. ([#166](https://github.com/hashicorp/terraform-exec/issues/166)) |
| |
| N.B. Versions of terraform-exec prior to v0.13.3 will continue to verify older versions of Terraform (up to and including v0.15.0) for a limited period. **Installation of Terraform using older versions of terraform-exec will stop working soon, and we recommend upgrading as soon as possible to avoid any interruption.** |
| |
| # 0.13.2 (April 06, 2021) |
| |
| BUG FIXES: |
| - Update `terraform-json` to support 0.15 changes in plan & config JSON output ([#153](https://github.com/hashicorp/terraform-exec/issues/153)) |
| - Update `go-getter` to prevent race conditions where consumers would require `go-cleanhttp` `>=0.5.2` (which tfexec itself didn't depend on until now) ([#154](https://github.com/hashicorp/terraform-exec/issues/154)) |
| |
| # 0.13.1 (March 29, 2021) |
| |
| BUG FIXES: |
| - Bump version of terraform-json library to handle latest Terraform 0.15 output format ([#143](https://github.com/hashicorp/terraform-exec/issues/143)) |
| |
| NOTES: |
| - This release no longer supports Go 1.12 (1.13+ is required) |
| |
| # 0.13.0 (February 05, 2021) |
| |
| Please note that this is the first release of terraform-exec compatible with Terraform 0.15. Running Terraform 0.15 commands with previous versions of terraform-exec may produce unexpected results. |
| |
| FEATURES: |
| - Compatibility checks for CLI flags removed in Terraform 0.15 ([#120](https://github.com/hashicorp/terraform-exec/issues/120)) |
| - Introduce `StateRm` method ([#122](https://github.com/hashicorp/terraform-exec/issues/122)) |
| |
| # 0.12.0 (December 18, 2020) |
| |
| BREAKING CHANGES: |
| - Move Git ref installation to subpackage so that consumers can limit dependencies ([#98](https://github.com/hashicorp/terraform-exec/issues/98)) |
| |
| FEATURES: |
| - Improve error handling for formatting command on unsupported version (`<0.7.7`) ([#88](https://github.com/hashicorp/terraform-exec/issues/88)) |
| - Introduce `Format` method with `io.Reader`/`io.Writer` interfaces ([#96](https://github.com/hashicorp/terraform-exec/issues/96)) |
| - Introduce `Validate` method with `tfjson` defined diagnostic types. Those types reflect exactly the types used in `terraform validate -json` output ([#68](https://github.com/hashicorp/terraform-exec/issues/68)) |
| - Introduce `StateMv` method ([#112](https://github.com/hashicorp/terraform-exec/issues/112)) |
| - Introduce `Upgrade012` method ([#105](https://github.com/hashicorp/terraform-exec/issues/105)) |
| |
| BUG FIXES: |
| - Fix issue in tfinstall.GitRef where it assumed a `vendor` directory was present ([#89](https://github.com/hashicorp/terraform-exec/issues/89)) |
| - Use `json.Number` instead of `float64` when parsing state ([#113](https://github.com/hashicorp/terraform-exec/issues/113)) |
| - Support long variable names in `ErrMissingVar` ([#110](https://github.com/hashicorp/terraform-exec/issues/110)) |
| |
| # 0.11.0 (September 23, 2020) |
| |
| FEATURES: |
| - Added Terraform fmt support with the ability to format and write files/folders, check if files/folders need formatting, and format strings directly ([#82](https://github.com/hashicorp/terraform-exec/issues/82)) |
| - Added support for refs in the tfinstall CLI ([#80](https://github.com/hashicorp/terraform-exec/issues/80)) |
| |
| N.B. tfinstall binaries for all supported platforms are now available via GitHub Releases. |
| |
| # 0.10.0 (September 15, 2020) |
| |
| FEATURES: |
| - Added the ability to customize the `User-Agent` header for some `tfinstall` finders ([#76](https://github.com/hashicorp/terraform-exec/issues/76)) |
| - Added well known error for a mismatch for `required_version` ([#66](https://github.com/hashicorp/terraform-exec/issues/66)) |
| - Added new `ShowPlanFileRaw` function to obtain the human-friendly output of a plan ([#83](https://github.com/hashicorp/terraform-exec/issues/83)) |
| |
| # 0.9.0 (September 09, 2020) |
| |
| BREAKING CHANGES: |
| - `context.Context` added to `tfinstall.Find` to allow for cancellation, timeouts, etc ([#51](https://github.com/hashicorp/terraform-exec/issues/51)) |
| - You can no longer use `TF_WORKSPACE` for workspace management, you must use `Terraform.WorkspaceSelect` ([#75](https://github.com/hashicorp/terraform-exec/issues/75)) |
| |
| FEATURES: |
| - Add `ErrWorkspaceExists` for when workspaces with the same name already exist when calling `Terraform.WorkspaceNew` ([#67](https://github.com/hashicorp/terraform-exec/issues/67)) |
| - Added `tfinstall.GitRef` to support installation of Terraform from a git ref instead of by released version ([#51](https://github.com/hashicorp/terraform-exec/issues/51)) |
| - Created the **tfinstall** CLI utility (this is mostly for use in things like CI automation) ([#29](https://github.com/hashicorp/terraform-exec/issues/29)) |
| - Added `ReattachOption` for plugin reattach functionality ([#78](https://github.com/hashicorp/terraform-exec/issues/78)) |
| |
| # 0.8.0 (August 29, 2020) |
| |
| BREAKING CHANGES: |
| - Add `-detailed-exit-code` to `Terraform.Plan` calls, `Terraform.Plan` now also returns a bool indicating if any diff is present ([#55](https://github.com/hashicorp/terraform-exec/issues/55)) |
| |
| FEATURES: |
| - Added `Terraform.SetAppendUserAgent` for User-Agent management from consuming applications ([#46](https://github.com/hashicorp/terraform-exec/issues/46)) |
| - Added `Terraform.WorkspaceList`, `Terraform.WorkspaceNew`, and `Terraform.WorkspaceSelect` along with the `ErrNoWorkspace` error to indicate a workspace does not exist ([#56](https://github.com/hashicorp/terraform-exec/issues/56)) |
| - Added support for using multiple `VarFile` options ([#61](https://github.com/hashicorp/terraform-exec/issues/61)) |
| |
| BUG FIXES: |
| - Fix bug with checking for empty path before executing version command ([#62](https://github.com/hashicorp/terraform-exec/issues/62)) |
| |
| # 0.7.0 (August 20, 2020) |
| |
| FEATURES: |
| - Added `Terraform.Refresh` method ([#53](https://github.com/hashicorp/terraform-exec/issues/53)) |
| - Added `Terraform.ShowStateFile` and `Terraform.ShowPlanFile` ([#54](https://github.com/hashicorp/terraform-exec/issues/54)) |
| - Added support for `DIR` positional arg in init, destroy, and plan ([#52](https://github.com/hashicorp/terraform-exec/issues/52)) |
| - Relaxed logger interface ([#57](https://github.com/hashicorp/terraform-exec/issues/57)) |
| - Added error for missing required variable ([#57](https://github.com/hashicorp/terraform-exec/issues/57)) |
| |
| BUG FIXES: |
| - Fixed logging issue for error cmd ([#57](https://github.com/hashicorp/terraform-exec/issues/57)) |
| |
| # 0.6.0 (August 14, 2020) |
| |
| FEATURES: |
| - Added `Terraform.SetStdout` and `Terraform.SetStderr` to let consumers log CLI output ([#49](https://github.com/hashicorp/terraform-exec/issues/49)) |
| |
| BUG FIXES: |
| - Fixed miscategorization of `ErrNoInit` on Terraform 0.13 ([#48](https://github.com/hashicorp/terraform-exec/issues/48)) |
| |
| # 0.5.0 (August 14, 2020) |
| |
| FEATURES: |
| - Version compatibility testing for `terraform show` ([#41](https://github.com/hashicorp/terraform-exec/issues/41)) |
| |
| BUG FIXES: |
| - Tolerate reversed `terraform version` output order ([#47](https://github.com/hashicorp/terraform-exec/issues/47)) |
| |
| # 0.4.0 (July 30, 2020) |
| |
| FEATURES: |
| - Added `Terraform.SetLogPath` method to set `TF_LOG_PATH` environment variable, and prevented manual setting of programmatically supported environment variables ([#32](https://github.com/hashicorp/terraform-exec/issues/32)) |
| - Added `Terraform.Version` method to get executable version information ([#7](https://github.com/hashicorp/terraform-exec/issues/7)) |
| |
| BUG FIXES: |
| - Fixed `-var` handling issue ([#34](https://github.com/hashicorp/terraform-exec/issues/34)) |
| |
| # 0.3.0 (July 17, 2020) |
| |
| BREAKING CHANGES: |
| - Stop exporting `exec.Cmd` versions of methods ([#25](https://github.com/hashicorp/terraform-exec/issues/25)) |
| - Require `address` and `id` arguments in `Import()` ([#24](https://github.com/hashicorp/terraform-exec/issues/24)) |
| - Rename `StateShow()` to `Show()` ([#30](https://github.com/hashicorp/terraform-exec/issues/30)) |
| |
| BUG FIXES: |
| - Fix bug in `Import()` config argument ([#28](https://github.com/hashicorp/terraform-exec/issues/28)) |
| |
| # 0.2.2 (July 13, 2020) |
| |
| BUG FIXES: |
| - Version number is now correctly reported by the tfinstall package. Please note that `tfinstall.Version` was incorrect between versions 0.1.1 and 0.2.1 inclusive. |
| |
| # 0.2.1 (July 10, 2020) |
| |
| BUG FIXES: |
| - Minor code changes to allow for compilation in Go 1.12 ([#21](https://github.com/hashicorp/terraform-exec/pull/21)) |
| |
| # 0.2.0 (July 8, 2020) |
| |
| FEATURES: |
| - add `Import()` function ([#20](https://github.com/hashicorp/terraform-exec/pull/20)) |
| |
| # 0.1.1 (July 7, 2020) |
| |
| BUG FIXES: |
| - Downgrade `github.com/hashicorp/go-getter` dependency, which added a requirement for Go 1.13. |
| |
| # 0.1.0 (July 3, 2020) |
| |
| Initial release. |
| |
| This Go module contains two packages, `github.com/hashicorp/terraform-exec/tfexec`, and `github.com/hashicorp/terraform-exec/tfinstall`, which share the same version. |