Skip to content

Commit 3ba5084

Browse files
committed
Update README.md to document the update process
1 parent ec806f2 commit 3ba5084

File tree

1 file changed

+18
-43
lines changed

1 file changed

+18
-43
lines changed

README.md

Lines changed: 18 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,25 @@
11
# Terraform Plugin SDK
22

3-
This SDK enables building Terraform plugin which allows Terraform's users to manage existing and popular service providers as well as custom in-house solutions.
3+
This is a fork of Hashicorp's [terraform-plugin-sdk](https://github.com/hashicorp/terraform-plugin-sdk).
44

5-
Terraform itself is a tool for building, changing, and versioning infrastructure safely and efficiently. You can find more about Terraform on its [website](https://www.terraform.io) and [its GitHub repository](https://github.com/hashicorp/terraform).
5+
## Updating the fork
66

7-
## Documentation
7+
When a new version of the terraform-plugin-sdk comes out, we need to update our fork. This is necessary to avoid build errors in newer providers.
88

9-
See [Extending Terraform](https://www.terraform.io/docs/extend/index.html) section on the website.
9+
To update our fork:
10+
1. Checkout the latest upstream branch: `git checkout upstream-${LATEST_VERSION}`.
11+
2. Create a new branch: `git checkout -b upstream-${NEW_VERSION}`.
12+
3. Ensure that original repository is a remote and up to date:
1013

11-
## Scope (Providers VS Core)
14+
``` shell
15+
𝛌 git remote -v
16+
origin https://github.com/pulumi/terraform-plugin-sdk.git (fetch)
17+
origin https://github.com/pulumi/terraform-plugin-sdk.git (push)
18+
tf https://github.com/hashicorp/terraform-plugin-sdk.git (fetch)
19+
tf https://github.com/hashicorp/terraform-plugin-sdk.git (push)
20+
𝛌 git fetch tf
21+
```
22+
4. Merge the new version into your branch: `git merge ${NEW_VERSION}`.
23+
5. Resolve any conflicts and push the new version.
1224

13-
### Terraform Core
14-
15-
- acts as gRPC _client_
16-
- interacts with the user
17-
- parses (HCL/JSON) configuration
18-
- manages state as whole, asks **Provider(s)** to mutate provider-specific parts of state
19-
- handles backends & provisioners
20-
- handles inputs, outputs, modules, and functions
21-
- discovers **Provider(s)** and their versions per configuration
22-
- manages **Provider(s)** lifecycle (i.e. spins up & tears down provider process)
23-
- passes relevant parts of parsed (valid JSON/HCL) and interpolated configuration to **Provider(s)**
24-
- decides ordering of (Create, Read, Update, Delete) operations on resources and data sources
25-
- ...
26-
27-
### Terraform Provider (via this SDK)
28-
29-
- acts as gRPC _server_
30-
- executes any domain-specific logic based on received parsed configuration
31-
- (Create, Read, Update, Delete, Import, Validate) a Resource
32-
- Read a Data Source
33-
- tests domain-specific logic via provided acceptance test framework
34-
- provides **Core** updated state of a resource or data source and/or appropriate feedback in the form of validation or other errors
35-
36-
## Migrating to SDK v1 from built-in SDK
37-
38-
Migrating to the standalone SDK v1 is covered on the [Plugin SDK section](https://www.terraform.io/docs/extend/plugin-sdk.html) of the website.
39-
40-
## Versioning
41-
42-
The Terraform Plugin SDK is a [Go module](https://github.com/golang/go/wiki/Modules) versioned using [semantic versioning](https://semver.org/).
43-
44-
## Contributing
45-
46-
See [`.github/CONTRIBUTING.md`](https://github.com/hashicorp/terraform-plugin-sdk/blob/master/.github/CONTRIBUTING.md)
47-
48-
## License
49-
50-
[Mozilla Public License v2.0](https://github.com/hashicorp/terraform-plugin-sdk/blob/master/LICENSE)
25+
We do not use the `master` branch for this.

0 commit comments

Comments
 (0)