Skip to content

Releases: hashicorp/terraform-plugin-sdk

v2.17.0

31 May 14:20
Compare
Choose a tag to compare

NOTES:

  • helper/resource: Provider references or external installation can now be handled at either the TestCase or TestStep level. Using the TestStep handling, advanced use cases are now enabled such as state upgrade acceptance testing. (#972)

ENHANCEMENTS:

  • helper/resource: Added TestStep type ExternalProviders, ProtoV5ProviderFactories, ProtoV6ProviderFactories, and ProviderFactories fields (#972)

BUG FIXES:

  • helper/resource: Removed extraneous terraform state show command when not using the TestStep type Taint field (#972)

v2.16.0

10 May 11:36
6d1ca8f
Compare
Choose a tag to compare

ENHANCEMENTS:

  • helper/resource: Added error logging before failing tests, so errors are visible in test output and any separate log file (#958)

BUG FIXES:

v2.15.0

04 May 16:33
Compare
Choose a tag to compare

FEATURES:

  • helper/resource: New TestCheckResourceAttrWith test helper, that simplifies checking of attribute values via custom functions (#950)

ENHANCEMENTS:

  • helper/schema: Propagated tf_data_source_type, tf_req_id, tf_resource_type, and tf_rpc fields in log entries (#955)

BUG FIXES:

  • helper/resource: Prevented Unable to create logging subsystem with AdditionalLocationOffset due to missing root logger options warning logs during acceptance testing (#955)

v2.14.0

14 Apr 17:09
Compare
Choose a tag to compare

NOTES:

  • This Go module has been updated to Go 1.17 per the Go support policy. Any consumers building on earlier Go versions may experience errors. (#934)

BUG FIXES:

  • helper/resource: Ensured Terraform CLI logs are written to TF_LOG_PATH_MASK environment variable value when both TF_ACC_LOG_PATH and TF_LOG_PATH_MASK are set (#938)
  • helper/resource: Ensured @caller in SDK logging entries accurately reflected calling code location (#939)
  • helper/resource: Prevented regression since 2.13.0 with the removal of environment variables, including TF_VAR_*, when calling Terraform CLI commands (#937)
  • helper/schema: Ensured @caller in SDK logging entries accurately reflected calling code location (#939)
  • helper/schema: Prevented missing SDK logging entries and confusing provider.stdio TRACE logging entries (#936)

v2.13.0

31 Mar 18:58
Compare
Choose a tag to compare

NOTES:

  • helper/resource: False positive checks of list, map, and set attributes with TestCheckNoResourceAttr and TestCheckResourceAttrSet will now return an error to explain how to accurately check those types of attributes. Some previously passing tests will now fail until the check is correctly updated. (#920)
  • helper/schema: Any returned non-nil error with an Error() method that returns an empty string (""), will now return an error diagnostic with an "Empty Error String" summary instead of a panic. Enabling Terraform logging at the WARN level (e.g. TF_LOG=WARN terraform apply) can help locate the problematic error by searching for the detected empty error string log message. (#914)

ENHANCEMENTS:

  • helper/resource: Added error when errantly checking list, map, or set attributes in TestCheckNoResourceAttr, TestCheckResourceAttr, and TestCheckResourceAttrSet (#920)
  • helper/resource: Execute Terraform CLI commands during acceptance testing with CHECKPOINT_DISABLE=1 set, removing extraneous calls to checkpoint.hashicorp.com to check for latest Terraform CLI version (#913)

BUG FIXES:

  • helper/schema: Allowed Schema with TypeInt to accept string values from DefaultFunc, such as EnvDefaultFunc (#841) (#841)
  • helper/schema: Prevented panics during error to diagnostic conversion for a non-nil error with an Error() method that returns an empty string ("") (#914)
  • helper/validation: Prevented panics with ToDiagFunc() function when used inside Schema type Elem field, such as validating TypeList elements (#915)

v2.12.0

17 Mar 17:53
Compare
Choose a tag to compare

ENHANCEMENTS:

  • helper/resource: Support JSON in TestStep type Config field (#722)

BUG FIXES:

  • customdiff: Prevented unexpected non-existent key errors in ComputedIf, ForceNewIf, and ForceNewIfChange since 2.11.0, using a warning log for backwards compatibility instead (#909)

v2.11.0

11 Mar 19:05
Compare
Choose a tag to compare

NOTES:

  • The underlying terraform-plugin-log dependency has been updated to v0.3.0, which includes a breaking change in the optional additional fields parameter of logging function calls to ensure correctness and catch coding errors during compilation. Any early adopter provider logging which calls those functions may require updates. (#900)
  • helper/resource: The new terraform-plugin-log sdk.helper_resource logger inherits the TF_LOG, TF_LOG_PATH_MASK, and TF_ACC_LOG_PATH environment variable settings, similar to the prior logging. The TF_LOG_SDK_HELPER_RESOURCE environment variable can be used to separately control the new logger level. (#891)
  • helper/schema: Started using terraform-plugin-log to write some SDK-level logs. Very few logs use this functionality now, but in the future, the environment variable TF_LOG_SDK_HELPER_SCHEMA will be able to set the log level for the SDK separately from the provider. (#837)
  • helper/schema: The Schema type DiffSuppressOnRefresh field opts in to using DiffSuppressFunc to detect normalization changes during refresh, using the same rules as for planning. This can prevent normalization cascading downstream and producing confusing changes in other resources, and will avoid reporting "Values changed outside of Terraform" for normalization-only situations. This is a desirable behavior for most attributes that have DiffSuppressFunc and so would ideally be on by default, but it is opt-in for backward compatibility reasons. (#882)
  • plugin: The Debug function has been deprecated in preference of setting the Debug field in the ServeOpts passed into the Serve function. (#857)

ENHANCEMENTS:

  • helper/resource: Added more visible logging for test steps skipped via the TestStep type SkipFunc field. (#889)
  • helper/resource: Added terraform-plugin-log sdk.helper_resource logger and extensive TRACE log entries (#891)
  • helper/schema: Added the DiffSuppressOnRefresh field to the Schema type (#882)
  • plugin: Added support for writing protocol data to disk by setting TF_LOG_SDK_PROTO_DATA_DIR environment variable (#857)
  • plugin: Increased maximum gRPC send and receive message size limit to 256MB (#857)

BUG FIXES:

  • helper/resource: Removed extraneous Terraform CLI show command each TestStep unless using TestCase.IDRefreshName (#892)
  • plugin: Prevent potential process leak on Windows platforms (#856)