terraform/internal/getmodules
Martin Atkins 84df5562f2 moduleaddrs: Terraform now owns module source address normalization
We've been gradually chipping away at how much we use go-getter for source
packages, because it's generally been a bit of a nightmare and sharing it
with other codebases means that any time someone wants to change something
we end up needing to find some way to prevent it breaking Terraform's
compatibility promises.

Here we make one further step: Terraform owns the "detectors" idea that
deals with source address normalization, and now always produces
fully-qualified addresses for go-getter to chew on only for the getting
and decompressing steps.

Retaining go-getter for the actual getting part is helpful because we can
then benefit from security fixes upstream, but Terraform owning the first
layer of parsing means that we can fix in place the definition of what
"module source address" syntax means, and thus we can avoid having
everything in this codebase indirectly depend on go-getter just because it
wants to parse module source addresses.

Now only the module installer actually depends indirectly on go-getter,
which finally disconnects go-getter's subtree from all of the remote state
backend dependency graphs.
2024-03-14 09:58:30 -07:00
..
moduleaddrs moduleaddrs: Terraform now owns module source address normalization 2024-03-14 09:58:30 -07:00
doc.go Update copyright file headers to BUSL-1.1 2023-08-10 23:43:27 +01:00
getter.go moduleaddrs: Terraform now owns module source address normalization 2024-03-14 09:58:30 -07:00
installer.go Update copyright file headers to BUSL-1.1 2023-08-10 23:43:27 +01:00