terraform/configs
Alisdair McDiarmid 7ca7b1f0fe configs: Simplify required_providers blocks
We now permit at most one `required_providers` block per module (except
for overrides). This prevents users (and Terraform) from struggling to
understand how to merge multiple `required_providers` configurations,
with `version` and `source` attributes split across multiple blocks.

Because only one `required_providers` block is permitted, there is no
need to concatenate version constraints and resolve them. This allows us
to simplify the structs used to represent provider requirements,
aligning more closely with other structs in this package.

This commit also fixes a semantic use-before-initialize bug, where
resources defined before a `required_providers` block would be unable to
use its source attribute. We achieve this by processing the module's
`required_providers` configuration (and overrides) before resources.

Overrides for `required_providers` work as before, replacing the entire
block per provider.
2020-04-24 13:44:08 -04:00
..
configload configs: use local set of go-getter detectors 2020-01-07 09:38:46 -08:00
configschema Add support for provider metadata to modules. (#22583) 2020-03-05 16:53:24 -08:00
hcl2shim vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
testdata configs: Simplify required_providers blocks 2020-04-24 13:44:08 -04:00
backend.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
compat_shim.go configs: Warn for deprecated interpolation and quoted type constraints 2019-11-13 07:55:55 -08:00
config.go configs: Simplify required_providers blocks 2020-04-24 13:44:08 -04:00
config_build.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
config_build_test.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
config_test.go command/providers: refactor with new provider types and functions 2020-04-10 15:08:10 -04:00
depends_on.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
doc.go configs: Additional guidance in doc.go 2018-02-15 15:56:39 -08:00
experiments.go config: Allow module authors to specify validation rules for variables 2020-01-10 15:23:25 -08:00
experiments_test.go experiments: a mechanism for opt-in experimental language features 2019-12-10 09:27:05 -08:00
module.go configs: Simplify required_providers blocks 2020-04-24 13:44:08 -04:00
module_call.go don't allow count && for_each 2020-04-07 14:18:08 -04:00
module_call_test.go don't allow count && for_each 2020-04-07 14:18:08 -04:00
module_merge.go configs: Simplify required_providers blocks 2020-04-24 13:44:08 -04:00
module_merge_body.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
module_merge_test.go configs: Simplify required_providers blocks 2020-04-24 13:44:08 -04:00
module_test.go configs: Simplify required_providers blocks 2020-04-24 13:44:08 -04:00
named_values.go config: Allow module authors to specify validation rules for variables 2020-01-10 15:23:25 -08:00
parser.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
parser_config.go configs: Simplify required_providers blocks 2020-04-24 13:44:08 -04:00
parser_config_dir.go fix diagnostics handling 2019-11-21 09:14:50 -05:00
parser_config_dir_test.go move IsEmptyDir to configs package 2019-07-18 13:07:10 -04:00
parser_config_test.go fix comment text 2020-02-13 20:46:48 -05:00
parser_test.go terraform: provider source test (#24342) 2020-03-12 12:00:00 -04:00
parser_values.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
parser_values_test.go configs: update values file invalid syntax test for new HCL behavior 2018-03-08 11:17:39 -08:00
provider.go Initial steps towards AbsProviderConfig/LocalProviderConfig separation (#23978) 2020-01-31 08:23:07 -05:00
provider_meta.go Add support for provider metadata to modules. (#22583) 2020-03-05 16:53:24 -08:00
provider_requirements.go configs: Simplify required_providers blocks 2020-04-24 13:44:08 -04:00
provider_requirements_test.go configs: Simplify required_providers blocks 2020-04-24 13:44:08 -04:00
provider_test.go terraform: provider source test (#24342) 2020-03-12 12:00:00 -04:00
provisioner.go convert destroy provisioner warnings to errors 2020-02-13 15:42:10 -05:00
provisioneronfailure_string.go stringer: Regenerate files with latest version 2019-05-13 15:34:27 +01:00
provisionerwhen_string.go stringer: Regenerate files with latest version 2019-05-13 15:34:27 +01:00
resource.go terraform: large refactor to use Provider from configs.Resource (#24396) 2020-03-18 08:58:20 -04:00
synth_body.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
synth_body_test.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
util.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
variable_type_hint.go Version tools per Go convention under tools.go 2019-10-17 22:23:39 +02:00
variabletypehint_string.go stringer: Regenerate files with latest version 2019-05-13 15:34:27 +01:00
version_constraint.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00