New Terraform Plugin SDK

The Terraform Plugin SDK is now officially extracted as a Go module!

This release aims to be nearly 100% backwards compatible with the existing SDK that has lived inside Terraform Core. With the switch to a standalone SDK, we can now design and release major versions of Terraform itself and the plugin SDK separately.

For more details on the wire protocol that Terraform Core uses to communicate with provider plugins, please see https://github.com/hashicorp/terraform/tree/master/docs/plugin-protocol.

Projects importing the plugin SDK will no longer need to deal with the complicated dependency graphs that come from importing Terraform Core.

This SDK currently only supports the provider protocol for Terraform. We ask that community provisioners and other projects that import Terraform continue to import Core for now. Going forward issues and pull requests that are related to the SDK should be raised against the SDK repository. For questions about Terraform Provider Development, please post on this community forum.

What you need to do

If you maintain a Terraform provider, you should switch to the standalone plugin SDK. This is an automated process using our migration tooling. Please see the documentation.

Future versions of Core will no longer contain the plugin SDK and are not intended to be used in Terraform providers.