Skip to content

Releases: terraform-linters/tflint-plugin-sdk

v0.20.0

02 May 14:06
Compare
Choose a tag to compare

0.20.0 (2024-05-02)

Enhancements

  • #316: Bump github.com/hashicorp/hcl/v2 from 2.19.1 to 2.20.1
    • This is required for provider-defined functions support

Chores

  • #311: Bump google.golang.org/protobuf from 1.32.0 to 1.33.0
  • #314: Bump github.com/zclconf/go-cty from 1.14.2 to 1.14.4
  • #317: Bump github.com/hashicorp/go-hclog from 1.6.2 to 1.6.3
  • #319: Bump golang.org/x/tools from 0.18.0 to 0.20.0
  • #320: Bump google.golang.org/grpc from 1.61.1 to 1.63.2
  • #321: Bump golang.org/x/net from 0.21.0 to 0.23.0
  • #322: deps: Go 1.22.2
  • #323: Bump google.golang.org/protobuf from 1.33.0 to 1.34.0

v0.19.0

25 Feb 14:58
Compare
Choose a tag to compare

0.19.0 (2024-02-25)

Chores

  • #281 #307: deps: Go 1.22
  • #283: Bump actions/checkout from 3 to 4
  • #294: Bump github.com/google/go-cmp from 0.5.9 to 0.6.0
  • #297: Bump github.com/hashicorp/hcl/v2 from 2.17.0 to 2.19.1
  • #299: Bump google.golang.org/grpc from 1.57.0 to 1.61.1
  • #300: Bump github.com/hashicorp/go-plugin from 1.4.10 to 1.6.0
  • #301: Bump github.com/zclconf/go-cty from 1.13.2 to 1.14.2
  • #302: Bump golang.org/x/tools from 0.11.0 to 0.18.0
  • #303: Bump github/codeql-action from 2 to 3
  • #304: Bump actions/setup-go from 4 to 5
  • #305: Bump github.com/hashicorp/go-hclog from 1.5.0 to 1.6.2
  • #306: Bump google.golang.org/protobuf from 1.31.0 to 1.32.0

v0.18.0

29 Jul 13:58
Compare
Choose a tag to compare

0.18.0 (2023-07-29)

Breaking Changes

  • #268: helper: Un-export NewLocalRunner and AddLocalFile
  • #273: Internalize unnecessarily published plugin packages
  • #274: tflint: Remove deprecated IncludeNotCreated option

Enhancements

  • #271: hclext: Add support for expression unwrapping in hclext.BoundExpr

Chores

  • #267: Bump google.golang.org/protobuf from 1.30.0 to 1.31.0
  • #270: Bump golang.org/x/tools from 0.10.0 to 0.11.0
  • #272: Bump google.golang.org/grpc from 1.55.0 to 1.57.0

v0.17.0

18 Jun 07:35
Compare
Choose a tag to compare

0.17.0 (2023-06-18)

This release adds support for autofix API. The EmitIssueWithFix API allows you to implement autofix in your plugin using tflint.Fixer. Autofix is available in TFLint v0.47+. In earlier versions, the autofix is ignored.

This SDK version no longer supports TFLint v0.40/v0.41. This means that plugins built using this SDK require TFLint v0.42+.

Also, the Check method has been removed from tflint.RuleSet as a minor change. This means that if you override the Check method in a custom ruleset that embeds tflint.RuleSet, it will not be called. This is classified as a breaking change, but since the Check method is not supposed to be overwritten, it is recommended to use something like NewRunner.

Breaking Changes

  • #258: tflint: Remove Check method from tflint.RuleSet interface
  • #263: Drop support for TFLint v0.40/v0.41

Enhancements

  • #254: Introduce autofix API

Chores

  • #253: Configure aqua to install protoc
  • #255: Bump google.golang.org/grpc from 1.54.0 to 1.55.0
  • #257: Bump github.com/zclconf/go-cty from 1.13.1 to 1.13.2
  • #261: Bump github.com/hashicorp/go-plugin from 1.4.9 to 1.4.10
  • #262: Bump github.com/hashicorp/hcl/v2 from 2.16.2 to 2.17.0
  • #264: Bump golang.org/x/tools from 0.8.0 to 0.10.0

v0.16.1

13 Apr 13:52
Compare
Choose a tag to compare

0.16.1 (2023-04-13)

BugFixes

  • #252: ruleset: Fix NewRunner hook not injecting a custom runner

Chores

  • #251: Bump golang.org/x/tools from 0.7.0 to 0.8.0

v0.16.0

02 Apr 13:53
Compare
Choose a tag to compare

0.16.0 (2023-04-02)

This release deprecates the runner.EnsureNoError helper. This helper is still available in this version, but we recommend migrating to the function callback approach.

// Before
var val string
err := runner.EvaluateExpr(expr, &val, nil)
err = runner.EnsureNoError(err, func () error {
  // Test values
})
if err != nil {
  return err
}

// After
err := runner.EvaluateExpr(expr, func (val string), error {
  // Test values
}, nil)

See also terraform-linters/tflint-ruleset-template#76 for an example of upgrading the SDK.

Enhancements

  • #225: ruleset: Allow a runner to be redefined within a ruleset
    • The NewRunner method has been added to the tflint.RuleSet interface.
  • #239: plugin2host: Send marked values over the wire
    • With this change, sensitive values can now be handled by plugins (requires TFLint v0.46+). Previously, tflint.ErrSensitive was always returned.
  • #246 #247: runner: Add support for function callbacks as the target of EvaluateExpr
    • This allows reproducing the same behavior as before without using EnsureNoError.
  • #248: runner: Add support for the bool type as a target value of EvaluateExpr

Changes

  • #236: runner: Deprecate EnsureNoError helper
    • This helper is still available in this version, but we recommend migrating to the function callback approach.

Chores

  • #233: Bump golang.org/x/net from 0.3.0 to 0.7.0
  • #234: Go 1.20
  • #235: plugin2host: Handle eval errors on the client side
  • #238: Bump github.com/hashicorp/go-plugin from 1.4.8 to 1.4.9
  • #240: Bump github.com/hashicorp/hcl/v2 from 2.15.0 to 2.16.2
  • #241: Bump golang.org/x/tools from 0.4.0 to 0.7.0
  • #243: Bump actions/setup-go from 3 to 4
  • #244: Bump github.com/zclconf/go-cty from 1.12.1 to 1.13.1
  • #245: Bump google.golang.org/protobuf from 1.28.1 to 1.30.0
  • #249: Bump github.com/hashicorp/go-hclog from 1.4.0 to 1.5.0
  • #250: Bump google.golang.org/grpc from 1.51.0 to 1.54.0

v0.15.0

26 Dec 07:05
Compare
Choose a tag to compare

0.15.0 (2022-12-26)

Enhancements

  • #224: Add GetOriginalwd method

Chores

  • #214: Bump github.com/hashicorp/hcl/v2 from 2.14.1 to 2.15.0
  • #219: Bump google.golang.org/grpc from 1.50.1 to 1.51.0
  • #220: Bump github.com/hashicorp/go-plugin from 1.4.5 to 1.4.8
  • #221: Bump github.com/go-test/deep from 1.0.8 to 1.1.0
  • #222: Bump github.com/hashicorp/go-hclog from 1.3.1 to 1.4.0
  • #223: Bump golang.org/x/tools from 0.1.12 to 0.4.0

v0.14.0

23 Oct 08:09
Compare
Choose a tag to compare

0.14.0 (2022-10-23)

This release includes several new features for plugin developers. Introduced the Schema Mode to get all attributes, and added an option to set constraints on compatible TFLint versions. These may not work with older TFLint versions, so set version constraints as needed.

The evaluation of each.* and count.* added in TFLint v0.42 requires plugins built with this version. In earlier versions, these values are always unknown.

IncludeNotCreated in GetModuleContentOption has been deprecated. Use ExpandModeNone instead. The old option will still work, but will be removed in a future version.

Enhancements

  • #201: hclext: Add schema mode to BodySchema
    • This is available only for TFLint v0.42+. Schema mode is ignored in earlier versions. Set >= 0.42.0 as a version constraint if you cannot tolerate being ignored.
  • #202: host2plugin: Allow plugins to set host version constraints
    • This is available only for TFLint v0.42+. Version constraints are ignored in earlier versions. Note that version constraints may not work in v0.40, v0.41.
  • #203: host2plugin: Add SDKVersion
  • #205: hclext: Add hclext.BoundExpr
    • This is necessary due to the evaluation of each.* and count.* added in TFLint v0.42. Plugins not built with SDK v0.14+ will always evaluate to unknown values.
  • #206: hclext: Add Copy() to structures
  • #207: hclext: Add WalkAttribute to hclext.BodyContent
  • #208: plugin2host: Add ExpandMode to GetModuleContentOption
    • IncludeNotCreated is deprecated. Use ExpandModeNone instread.

Chores

  • #199: Bump github.com/hashicorp/hcl/v2 from 2.14.0 to 2.14.1
  • #200: Bump github.com/hashicorp/go-hclog from 1.3.0 to 1.3.1
  • #209: Bump google.golang.org/grpc from 1.49.0 to 1.50.1

v0.13.0

17 Sep 12:54
Compare
Choose a tag to compare

0.13.0 (2022-09-17)

Enhancements

  • #198: host2plugin: Allow ruleset to accept Only option
    • This change is necessary due to a priority bug with the --only option. Most plugins are unaffected by this change.

Chores

  • #197: Bump github.com/google/go-cmp from 0.5.8 to 0.5.9

v0.12.0

07 Sep 14:49
Compare
Choose a tag to compare

0.12.0 (2022-09-07)

This release adds GetModulePath() API. This is a breaking change and all plugins need to be built using this version in order to work with TFLint v0.40+.

See also terraform-linters/tflint-ruleset-template#62 for an example of upgrading the SDK.

Breaking Changes

  • #171: Add GetModulePath method
  • #188: Bump protocol version

Enhancements

  • #169: hclext: Add hclext.Blocks's OfType helper
  • #170: hclext: Add AsNative helper
  • #172: tflint: Add GetProviderContent helper
  • #174: tflint: Add tflint.ErrSensitive
  • #177: helper: Add support for JSON syntax in TestRunner
  • #178: Allow calling DecodeRuleConfig without rule config
  • #180: terraform: Add lang.ReferencesInExpr
  • #181: tflint: Add WalkExpressions function

BugFixes

  • #190: logger: Do not set location offset in go-plugin

Chores

  • #161 #182: Bump github.com/hashicorp/go-plugin from 1.4.3 to 1.4.5
  • #166 #194: Bump github.com/hashicorp/hcl/v2 from 2.12.0 to 2.14.0
  • #168 #187: Bump google.golang.org/grpc from 1.46.0 to 1.49.0
  • #173 #195: Bump github.com/hashicorp/go-hclog from 1.2.0 to 1.3.0
  • #175: Bump google.golang.org/protobuf from 1.28.0 to 1.28.1
  • #176: build: go 1.19
  • #179: build: Use go-version-file instead of go-version
  • #183: Bump golang.org/x/tools from 0.1.11 to 0.1.12
  • #184: Bump github.com/go-test/deep from 1.0.3 to 1.0.8
  • #185: Remove unused ruleset function
  • #186: Bump github.com/zclconf/go-cty from 1.10.0 to 1.11.0