| --- |
| page_title: Upgrading to Terraform v1.0 |
| description: Upgrading to Terraform v1.0 |
| --- |
| |
| # Upgrading to Terraform v1.0 |
| |
| Terraform v1.0 is an unusual release in that its primary focus is on stability, |
| and it represents the culmination of several years of work in previous major |
| releases to make sure that the Terraform language and internal architecture |
| will be a suitable foundation for forthcoming additions that will remain |
| backward-compatible. |
| |
| Terraform v1.0.0 intentionally has no significant changes compared to Terraform |
| v0.15.5. You can consider the v1.0 series as a direct continuation of the v0.15 |
| series. |
| |
| There are no special steps to take if you are upgrading from the previous |
| major release, Terraform v0.15. |
| |
| You can also upgrade directly from Terraform v0.14 if you wish, although please |
| still consider the notes from [the Terraform v0.15 upgrade guide](/language/upgrade-guides/0-15). |
| If you are affected by the notes in that upgrade guide, you will still need to |
| take the steps described there but you can do so as part of upgrading to v1.0, |
| without any need for an intermediate step of running Terraform v0.15. |
| |
| If you are currently using Terraform v0.13 or earlier then we strongly |
| recommend upgrading one major version at a time until you reach Terraform v0.14, |
| following the upgrade guides of each of those versions, because those earlier |
| versions include mechanisms to automatically detect necessary changes to your |
| configuration, and in some cases also automatically edit your configuration |
| to include those changes. Once you reach Terraform v0.14 you can then skip |
| directly from there to Terraform v1.0. |
| |
| The following table summarizes the above recommendations. In each case, we |
| recommend using the latest patch release from each major version in order to |
| complete your upgrade. |
| |
| | Current Version | Recommendation | |
| | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| | v0.10 or earlier | Refer to the upgrade guides for these historical versions until you have upgraded to the latest v0.11 release, then refer to the following item. | |
| | v0.11 | Use [the `terraform 0.12checklist` command](/language/upgrade-guides/0-12#pre-upgrade-checklist) to detect any situations that must be addressed before upgrading to v0.12, resolve them, and then upgrade to the latest v0.12 release and follow [the v0.12 Upgrade Guide](/language/upgrade-guides/0-12). | |
| | v0.12 | Upgrade to the latest Terraform v0.13 release and then follow [the v0.13 upgrade guide](/language/upgrade-guides/0-13) to upgrade your configuration and state for explicit provider requirements. | |
| | v0.13 | Upgrade to the latest Terraform v0.14 release and attempt a normal Terraform run. If you encounter any new errors, refer to [the v0.14 upgrade guide](/language/upgrade-guides/0-14) for resolution steps. | |
| | v0.14 | Upgrade directly to the latest Terraform v1.0 release and attempt a normal Terraform run. If you encounter any new errors, refer to [the v0.15 upgrade guide](/language/upgrade-guides/0-15) for resolution steps. | |
| | v0.15 | Upgrade directly to the latest Terraform v1.0 release and attempt a normal Terraform run. Terraform v1.0 is a continuation of the v0.15 series, and so v1.0.0 and later are directly backward-compatible with Terraform v0.15.5. | |
| |
| -> If you run into any problems during upgrading, please feel free to start a |
| topic in [the Terraform community forum](https://discuss.hashicorp.com/c/terraform-core), |
| describing the problem you've encountered in enough detail that other readers |
| may be able to reproduce it and offer advice. |
| |
| ## Remote State Compatibility |
| |
| In a more complex system you might have multiple separate Terraform |
| configurations that collaborate together using |
| [the `terraform_remote_state` data source](/language/state/remote-state-data). |
| |
| In that case, it's typical for some configurations to be applied with a new |
| version before others do, causing differences in the state snapshot format |
| between your different configurations. |
| |
| If you are upgrading from Terraform v0.14 or Terraform v0.15 to Terraform v1.0 |
| then you can upgrade your configurations in any order, because all three of |
| these versions have intercompatible state snapshot formats. |
| |
| Upgrading from v0.13 or earlier in a multi-configuration environment may |
| require more explicit planning to ensure state snapshot compatibility. Please |
| refer to the previous release upgrade guides for more information, and upgrade |
| only one major version at a time until you reach Terraform v0.14. |