Description
Introduction
TFLint is a Terraform static analysis framework and exposes an API for plugins to provide its functionality widely. The SDK is already 3 years old since the release of v0.1.0, and looks stable enough after migrating to gRPC.
API compatibility is important for custom ruleset developers. However, the SDK's current status is experimental, and developers must be prepared for sudden breaking changes.
Proposal
We are ending the experimental status of the TFLint plugin API and making it GA.
Plugin API compatibility is guaranteed as much as possible. Older versions of the SDK support will be dropped approximately 6 months after the next version is released. The following features assist in this gradual migration:
- host2plugin: Add SDKVersion tflint-plugin-sdk#203
- host2plugin: Allow plugins to set host version constraints tflint-plugin-sdk#202
However, please note that we may break this promise due to significant feature changes. This is just one guideline.
Before we announce GA, the following issues are blockers:
- Redesign inspection model for child/parent modules tflint-plugin-sdk#193
EnsureNoError
is a bad interface tflint-plugin-sdk#196- Configure go-plugin's
SecureConfig
tflint-plugin-sdk#192 - feat: Add a --fix option to auto fix small issues like eslint #266
- Keyless signing #1351
- Introduce dependency lockfile #1634
- Improve multiple error handling #1669