terraform/internal
Martin Atkins ae080481c0 internal/providercache: Installer records its selections in a file
Just as with the old installer mechanism, our goal is that explicit
provider installation is the only way that new provider versions can be
selected.

To achieve that, we conclude each call to EnsureProviderVersions by
writing a selections lock file into the target directory. A later caller
can then recall the selections from that file by calling SelectedPackages,
which both ensures that it selects the same set of versions and also
verifies that the checksums recorded by the installer still match.

This new selections.json file has a different layout than our old
plugins.json lock file. Not only does it use a different hashing algorithm
than before, we also record explicitly which version of each provider
was selected. In the old model, we'd repeat normal discovery when
reloading the lock file and then fail with a confusing error message if
discovery happened to select a different version, but now we'll be able
to distinguish between a package that's gone missing since installation
(which could previously have then selected a different available version)
from a package that has been modified.
2020-04-06 09:24:23 -07:00
..
copydir internal/copydir: Factor out our recursive directory copy for reuse 2020-03-25 11:29:48 -07:00
earlyconfig internal/getproviders: A new shared model for provider requirements 2020-03-27 09:01:32 -07:00
getproviders internal/getproviders: A new shared model for provider requirements 2020-03-27 09:01:32 -07:00
initwd internal/copydir: Factor out our recursive directory copy for reuse 2020-03-25 11:29:48 -07:00
modsdir Module Expansion: Part 2 (#24154) 2020-02-24 17:42:32 -05:00
providercache internal/providercache: Installer records its selections in a file 2020-04-06 09:24:23 -07:00
tfplugin5 Add support for provider metadata to modules. (#22583) 2020-03-05 16:53:24 -08:00