• Martin Atkins's avatar
    terraform: Ugly huge change to weave in new State and Plan types · a3403f27
    Martin Atkins authored
    Due to how often the state and plan types are referenced throughout
    Terraform, there isn't a great way to switch them out gradually. As a
    consequence, this huge commit gets us from the old world to a _compilable_
    new world, but still has a large number of known test failures due to
    key functionality being stubbed out.
    
    The stubs here are for anything that interacts with providers, since we
    now need to do the follow-up work to similarly replace the old
    terraform.ResourceProvider interface with its replacement in the new
    "providers" package. That work, along with work to fix the remaining
    failing tests, will follow in subsequent commits.
    
    The aim here was to replace all references to terraform.State and its
    downstream types with states.State, terraform.Plan with plans.Plan,
    state.State with statemgr.State, and switch to the new implementations of
    the state and plan file formats. However, due to the number of times those
    types are used, this also ended up affecting numerous other parts of core
    such as terraform.Hook, the backend.Backend interface, and most of the CLI
    commands.
    
    Just as with 5861dbf3 before, I apologize
    in advance to the person who inevitably just found this huge commit while
    spelunking through the commit history.
    a3403f27