Replace config loader with a new loader #1428
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR replaces the current config loader that depends on the Terraform internal APIs with a new loader. The new loader decodes the minimum required configuration, so this is making it more robust against schema changes due to new Terraform features. Also, a minimal code base improves maintainability.
An important change is the position of the
terraform
package. Previously, the terraform package was treated as a copy of the Terraform internal packages, but now it is a unique package that reproduces Terraform semantics.By extending this package, we can add unique features for TFLint while preserving Terraform semantics. for example,
terraform init
.path.*
.This PR is the first step towards realizing these features.
In this change, we will try to keep the Loader interface as much as possible. Ideally, the new
terraform
package could be used to bring together concerns about other Terraform semantics, but that's a future improvement.