Differentiate raw and inferred 1-part source string #3
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.
Hi @hashicorp/terraform-core 👋🏻
This (currently internal, but soon to be published) library is basically a 1-to-1 copy of what's currently in core:
The only minor change is internal
tfdiags
package replaced with custom error type. All the diagnostics from the address parser were sourceless anyway.This PR is related to our conversation we had some time ago on Slack about what does
ParseProviderSourceString
do with 1-part source string, such asaws
. In core's case it is parsed ashashicorp/aws
.Because this is IMO highly context-dependent I decided to introduce another parsing function -
ParseRawProviderSourceString
which instead treats 1-part source string as legacy, i.e.aws
is parsed as-/aws
.I also updated the readme to add some context on where and when to use which function.
With all that in mind the old
ParseProviderSourceString
is the newParseAndInferProviderSourceString
and is intended to be functionally equivalent. As such it should also allow you to adopt this library when it is published even in core.I'm open to suggestions, especially around the function names.
This PR unblocks hashicorp/terraform-schema#35