From 371e625ea938ebfc947ea5540bf60fca1bd34278 Mon Sep 17 00:00:00 2001 From: Sarah French <15078782+SarahFrench@users.noreply.github.com> Date: Tue, 1 Apr 2025 09:37:12 +0100 Subject: [PATCH] Update URLs from `www.terraform.io` to `developer.hashicorp.com` (#36792) * Update URLs from www.terraform.io to developer.hashicorp.com * More updates to URLs linking to documentation in documentation and user-facing warnings/errors * More updates to URLs linking to documentation, in docs, code, test fixtures * Replace www.terraform.io/community with link to Community Forum * Apply suggestions from code review Co-authored-by: Rose M Koron <32436232+rkoron007@users.noreply.github.com> --------- Co-authored-by: Rose M Koron <32436232+rkoron007@users.noreply.github.com> --- .github/CONTRIBUTING.md | 4 +- .github/ISSUE_TEMPLATE/bug_report.yml | 4 +- .../ISSUE_TEMPLATE/documentation_issue.yml | 4 +- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- README.md | 14 +- docs/README.md | 4 +- docs/architecture.md | 2 +- docs/planning-behaviors.md | 2 +- docs/plugin-protocol/README.md | 2 +- docs/plugin-protocol/object-wire-format.md | 4 +- internal/backend/remote-state/s3/backend.go | 2 +- .../plan-redacted.json | 163 +++++++++++++++++- .../plan-redacted.json | 4 +- .../plan-redacted.json | 4 +- .../testdata/apply-json/plan-redacted.json | 4 +- .../plan-redacted.json | 4 +- .../plan-json-basic/plan-redacted.json | 4 +- .../plan-json-no-changes/plan-redacted.json | 4 +- internal/cloud/testdata/test-verbose/test.log | 4 +- internal/command/import.go | 2 +- internal/command/meta_backend_migrate.go | 4 +- internal/command/version.go | 2 +- internal/command/version_test.go | 2 +- internal/command/views/init.go | 2 +- .../views/testdata/plans/redacted-plan.json | 4 +- internal/providercache/installer_test.go | 4 +- internal/providercache/package_install.go | 4 +- tools/terraform-bundle/README.md | 4 +- website/docs/cli/commands/version.mdx | 2 +- 29 files changed, 213 insertions(+), 52 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 0c388d41f5..1026407579 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -4,7 +4,7 @@ This repository contains Terraform core, which includes the command line interface and the main graph engine. -Providers are implemented as plugins that each have their own repository linked from the [Terraform Registry index](https://registry.terraform.io/browse/providers). Instructions for developing each provider are usually in the associated README file. For more information, see [the provider development overview](https://www.terraform.io/docs/plugins/provider.html). +Providers are implemented as plugins that each have their own repository linked from the [Terraform Registry index](https://registry.terraform.io/browse/providers). Instructions for developing each provider are usually in the associated README file. For more information, see [the provider development overview](https://developer.hashicorp.com/terraform/plugin). This document provides guidance on Terraform contribution recommended practices. It covers what we're looking for in order to help set expectations and help you get the most out of participation in this project. @@ -100,7 +100,7 @@ Provisioners are an area of concern in Terraform for a number of reasons. Chiefl There are two main types of provisioners in Terraform, the generic provisioners (`file`,`local-exec`, and `remote-exec`) and the tool-specific provisioners (`chef`, `habbitat`, `puppet` & `salt-masterless`). **The tool-specific provisioners [are deprecated](https://discuss.hashicorp.com/t/notice-terraform-to-begin-deprecation-of-vendor-tool-specific-provisioners-starting-in-terraform-0-13-4/13997).** In practice this means we will not be accepting PRs for these areas of the codebase. -From our [documentation](https://www.terraform.io/docs/provisioners/index.html): +From our [documentation](https://developer.hashicorp.com/terraform/language/resources/provisioners/syntax): > ... they [...] add a considerable amount of complexity and uncertainty to Terraform usage.[...] we still recommend attempting to solve it [your problem] using other techniques first, and use provisioners only if there is no other option. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 3c7f0d74b4..643149eb63 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -12,7 +12,7 @@ body: The [hashicorp/terraform](https://github.com/hashicorp/terraform) issue tracker is reserved for bug reports relating to the core Terraform CLI application and configuration language. - For general usage questions, please see: https://www.terraform.io/community.html. + For general usage questions, please see the [Community Forum](https://discuss.hashicorp.com/c/terraform-core/27). ## If your issue relates to: * **HCP Terraform or Terraform Enterprise**: please email tf-cloud@hashicorp.support or [open a new request](https://support.hashicorp.com/hc/en-us/requests/new). @@ -30,7 +30,7 @@ body: * Set defaults on (or omit) any variables. The person reproducing it should not need to invent variable settings * If multiple steps are required, such as running terraform twice, consider scripting it in a simple shell script. Providing a script can be easier than explaining what changes to make to the config between runs. * Omit any unneeded complexity: remove variables, conditional statements, functions, modules, providers, and resources that are not needed to trigger the bug - * When possible, use the [null resource](https://www.terraform.io/docs/providers/null/resource.html) provider rather than a real provider in order to minimize external dependencies. We know this isn't always feasible. The Terraform Core team doesn't have deep domain knowledge in every provider, or access to every cloud platform for reproduction cases. + * When possible, use the [null resource](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) provider rather than a real provider in order to minimize external dependencies. We know this isn't always feasible. The Terraform Core team doesn't have deep domain knowledge in every provider, or access to every cloud platform for reproduction cases. - type: textarea id: tf-version diff --git a/.github/ISSUE_TEMPLATE/documentation_issue.yml b/.github/ISSUE_TEMPLATE/documentation_issue.yml index 6c188df117..44da6b2888 100644 --- a/.github/ISSUE_TEMPLATE/documentation_issue.yml +++ b/.github/ISSUE_TEMPLATE/documentation_issue.yml @@ -10,9 +10,9 @@ body: value: | # Thank you for opening a documentation change request. - Please only use the [hashicorp/terraform](https://github.com/hashicorp/terraform) `Documentation` issue type to report problems with the documentation on [https://www.terraform.io/docs](). Only technical writers (not engineers) monitor this issue type. Report Terraform bugs or feature requests with the `Bug report` or `Feature Request` issue types instead to get engineering attention. + Please only use the [hashicorp/terraform](https://github.com/hashicorp/terraform) `Documentation` issue type to report problems with the documentation on [https://developer.hashicorp.com/terraform/docs](). Only technical writers (not engineers) monitor this issue type. Report Terraform bugs or feature requests with the `Bug report` or `Feature Request` issue types instead to get engineering attention. - For general usage questions, please see: https://www.terraform.io/community.html. + For general usage questions, please see the [Community Forum](https://discuss.hashicorp.com/c/terraform-core/27). - type: textarea id: tf-version diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 0cb1cd11ec..9d30a8bd7c 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -12,7 +12,7 @@ body: The [hashicorp/terraform](https://github.com/hashicorp/terraform) issue tracker is reserved for feature requests relating to the core Terraform CLI application and configuration language. - For general usage questions, please see: https://www.terraform.io/community.html. + For general usage questions, please see the [Community Forum](https://discuss.hashicorp.com/c/terraform-core/27). ## If your feature request relates to: * **HCP Terraform or Terraform Enterprise**: please email tf-cloud@hashicorp.support or [open a new request](https://support.hashicorp.com/hc/en-us/requests/new). diff --git a/README.md b/README.md index 24d1bf843d..ff9e27d11d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Terraform -- Website: https://www.terraform.io +- Website: https://developer.hashicorp.com/terraform - Forums: [HashiCorp Discuss](https://discuss.hashicorp.com/c/terraform-core) -- Documentation: [https://www.terraform.io/docs/](https://www.terraform.io/docs/) -- Tutorials: [HashiCorp's Learn Platform](https://learn.hashicorp.com/terraform) +- Documentation: [https://developer.hashicorp.com/terraform/docs](https://developer.hashicorp.com/terraform/docs) +- Tutorials: [HashiCorp's Learn Platform](https://developer.hashicorp.com/terraform/tutorials) - Certification Exam: [HashiCorp Certified: Terraform Associate](https://www.hashicorp.com/certification/#hashicorp-certified-terraform-associate) Terraform @@ -24,10 +24,10 @@ For more information, refer to the [What is Terraform?](https://www.terraform.io ## Getting Started & Documentation -Documentation is available on the [Terraform website](https://www.terraform.io): +Documentation is available on the [Terraform website](https://developer.hashicorp.com/terraform): -- [Introduction](https://www.terraform.io/intro) -- [Documentation](https://www.terraform.io/docs) +- [Introduction](https://developer.hashicorp.com/terraform/intro) +- [Documentation](https://developer.hashicorp.com/terraform/docs) If you're new to Terraform and want to get started creating infrastructure, please check out our [Getting Started guides](https://learn.hashicorp.com/terraform#getting-started) on HashiCorp's learning platform. There are also [additional guides](https://learn.hashicorp.com/terraform#operations-and-development) to continue your learning. @@ -35,7 +35,7 @@ Show off your Terraform knowledge by passing a certification exam. Visit the [ce ## Developing Terraform -This repository contains only Terraform core, which includes the command line interface and the main graph engine. Providers are implemented as plugins, and Terraform can automatically download providers that are published on [the Terraform Registry](https://registry.terraform.io). HashiCorp develops some providers, and others are developed by other organizations. For more information, see [Extending Terraform](https://www.terraform.io/docs/extend/index.html). +This repository contains only Terraform core, which includes the command line interface and the main graph engine. Providers are implemented as plugins, and Terraform can automatically download providers that are published on [the Terraform Registry](https://registry.terraform.io). HashiCorp develops some providers, and others are developed by other organizations. For more information, refer to [Plugin development](https://developer.hashicorp.com/terraform/plugin). - To learn more about compiling Terraform and contributing suggested changes, refer to [the contributing guide](.github/CONTRIBUTING.md). diff --git a/docs/README.md b/docs/README.md index d70ae2d0fd..d18d8ee5f4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -4,7 +4,7 @@ This directory contains some documentation about the Terraform Core codebase, aimed at readers who are interested in making code contributions. If you're looking for information on _using_ Terraform, please instead refer -to [the main Terraform CLI documentation](https://www.terraform.io/docs/cli/index.html). +to [the main Terraform CLI documentation](https://developer.hashicorp.com/terraform/cli). ## Terraform Core Architecture Documents @@ -26,7 +26,7 @@ to [the main Terraform CLI documentation](https://www.terraform.io/docs/cli/inde SDK and so wish to conform to them. (If you are planning to write a new provider using the _official_ SDK then - please refer to [the Extend documentation](https://www.terraform.io/docs/extend/index.html) + please refer to [the Plugin development documentation](https://developer.hashicorp.com/terraform/plugin) instead; it presents similar information from the perspective of the SDK API, rather than the plugin wire protocol.) diff --git a/docs/architecture.md b/docs/architecture.md index 5db79b48bb..971d32ca39 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -43,7 +43,7 @@ object that describes an action to be taken. An _operation_ consists of: * The action to be taken (e.g. "plan", "apply"). -* The name of the [workspace](https://www.terraform.io/docs/state/workspaces.html) +* The name of the [workspace](https://developer.hashicorp.com/terraform/language/state/workspaces) where the action will be taken. * Root module input variables to use for the action. * For the "plan" operation, a path to the directory containing the configuration's root module. diff --git a/docs/planning-behaviors.md b/docs/planning-behaviors.md index ecb6fb3011..a9ce2151c0 100644 --- a/docs/planning-behaviors.md +++ b/docs/planning-behaviors.md @@ -20,7 +20,7 @@ their behaviors in a way comparable to the resource instance behaviors. This is developer-oriented documentation rather than user-oriented documentation. See -[the main Terraform documentation](https://www.terraform.io/docs) for +[the main Terraform documentation](https://developer.hashicorp.com/terraform/docs) for information on existing planning behaviors and other behaviors as viewed from an end-user perspective. diff --git a/docs/plugin-protocol/README.md b/docs/plugin-protocol/README.md index f65873d5c8..63c5b66c64 100644 --- a/docs/plugin-protocol/README.md +++ b/docs/plugin-protocol/README.md @@ -10,7 +10,7 @@ the SDK's API. ---- **If you want to write a plugin for Terraform, please refer to -[Extending Terraform](https://www.terraform.io/docs/extend/index.html) instead.** +[Plugin development](https://developer.hashicorp.com/terraform/plugin) instead.** This documentation is for those who are developing _Terraform SDKs_, rather than those implementing plugins. diff --git a/docs/plugin-protocol/object-wire-format.md b/docs/plugin-protocol/object-wire-format.md index 9552f35023..2b57493e2b 100644 --- a/docs/plugin-protocol/object-wire-format.md +++ b/docs/plugin-protocol/object-wire-format.md @@ -63,7 +63,7 @@ The key-value pairs representing nested block types have values based on The MessagePack serialization of an attribute value depends on the value of the `type` field of the corresponding `Schema.Attribute` message. The `type` field is a compact JSON serialization of a -[Terraform type constraint](https://www.terraform.io/docs/configuration/types.html), +[Terraform type constraint](https://developer.hashicorp.com/terraform/language/expressions/type-constraints), which consists either of a single string value (for primitive types) or a two-element array giving a type kind and a type argument. @@ -212,7 +212,7 @@ The properties representing nested block types have property values based on The JSON serialization of an attribute value depends on the value of the `type` field of the corresponding `Schema.Attribute` message. The `type` field is a compact JSON serialization of a -[Terraform type constraint](https://www.terraform.io/docs/configuration/types.html), +[Terraform type constraint](https://developer.hashicorp.com/terraform/language/expressions/type-constraints), which consists either of a single string value (for primitive types) or a two-element array giving a type kind and a type argument. diff --git a/internal/backend/remote-state/s3/backend.go b/internal/backend/remote-state/s3/backend.go index f53c22c3d3..be1af3f6fd 100644 --- a/internal/backend/remote-state/s3/backend.go +++ b/internal/backend/remote-state/s3/backend.go @@ -903,7 +903,7 @@ func (b *Backend) Configure(obj cty.Value) tfdiags.Diagnostics { cfg := &awsbase.Config{ AccessKey: stringAttr(obj, "access_key"), APNInfo: stdUserAgentProducts(), - CallerDocumentationURL: "https://www.terraform.io/docs/language/settings/backends/s3.html", + CallerDocumentationURL: "https://developer.hashicorp.com/terraform/language/backend/s3", CallerName: "S3 Backend", Logger: baselog, MaxRetries: intAttrDefault(obj, "max_retries", 5), diff --git a/internal/cloud/testdata/apply-json-with-outputs/plan-redacted.json b/internal/cloud/testdata/apply-json-with-outputs/plan-redacted.json index c6ee2776a2..71932744fa 100644 --- a/internal/cloud/testdata/apply-json-with-outputs/plan-redacted.json +++ b/internal/cloud/testdata/apply-json-with-outputs/plan-redacted.json @@ -1 +1,162 @@ -{"plan_format_version":"1.1","resource_drift":[],"resource_changes":[{"address":"null_resource.foo","mode":"managed","type":"null_resource","name":"foo","provider_name":"registry.terraform.io/hashicorp/null","change":{"actions":["create"],"before":null,"after":{"triggers":null},"after_unknown":{"id":true},"before_sensitive":false,"after_sensitive":{}}}],"relevant_attributes":[],"output_changes":{"complex":{"actions":["create"],"before":null,"after":{"keyA":{"someList":[1,2,3]},"keyB":{"someBool":true,"someStr":"hello"}},"after_unknown":false,"before_sensitive":false,"after_sensitive":false},"secret":{"actions":["create"],"before":null,"after":"8517896e47af3c9ca19a694ea0d6cc30b0dccf08598f33d93e583721fd5f3032","after_unknown":false,"before_sensitive":true,"after_sensitive":true},"simple":{"actions":["create"],"before":null,"after":["some","list"],"after_unknown":false,"before_sensitive":false,"after_sensitive":false}},"provider_schemas":{"registry.terraform.io/hashicorp/null":{"provider":{"version":0,"block":{"description_kind":"plain"}},"resource_schemas":{"null_resource":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"This is set to a random value at create time.","description_kind":"plain","computed":true},"triggers":{"type":["map","string"],"description":"A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners.","description_kind":"plain","optional":true}},"description":"The `null_resource` resource implements the standard resource lifecycle but takes no further action.\n\nThe `triggers` argument allows specifying an arbitrary set of values that, when changed, will cause the resource to be replaced.","description_kind":"plain"}}},"data_source_schemas":{"null_data_source":{"version":0,"block":{"attributes":{"has_computed_default":{"type":"string","description":"If set, its literal value will be stored and returned. If not, its value defaults to `\"default\"`. This argument exists primarily for testing and has little practical use.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"This attribute is only present for some legacy compatibility issues and should not be used. It will be removed in a future version.","description_kind":"plain","deprecated":true,"computed":true},"inputs":{"type":["map","string"],"description":"A map of arbitrary strings that is copied into the `outputs` attribute, and accessible directly for interpolation.","description_kind":"plain","optional":true},"outputs":{"type":["map","string"],"description":"After the data source is \"read\", a copy of the `inputs` map.","description_kind":"plain","computed":true},"random":{"type":"string","description":"A random value. This is primarily for testing and has little practical use; prefer the [hashicorp/random provider](https://registry.terraform.io/providers/hashicorp/random) for more practical random number use-cases.","description_kind":"plain","computed":true}},"description":"The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n","description_kind":"plain","deprecated":true}}}}},"provider_format_version":"1.0"} \ No newline at end of file +{ + "plan_format_version": "1.1", + "resource_drift": [], + "resource_changes": [ + { + "address": "null_resource.foo", + "mode": "managed", + "type": "null_resource", + "name": "foo", + "provider_name": "registry.terraform.io/hashicorp/null", + "change": { + "actions": [ + "create" + ], + "before": null, + "after": { + "triggers": null + }, + "after_unknown": { + "id": true + }, + "before_sensitive": false, + "after_sensitive": {} + } + } + ], + "relevant_attributes": [], + "output_changes": { + "complex": { + "actions": [ + "create" + ], + "before": null, + "after": { + "keyA": { + "someList": [ + 1, + 2, + 3 + ] + }, + "keyB": { + "someBool": true, + "someStr": "hello" + } + }, + "after_unknown": false, + "before_sensitive": false, + "after_sensitive": false + }, + "secret": { + "actions": [ + "create" + ], + "before": null, + "after": "8517896e47af3c9ca19a694ea0d6cc30b0dccf08598f33d93e583721fd5f3032", + "after_unknown": false, + "before_sensitive": true, + "after_sensitive": true + }, + "simple": { + "actions": [ + "create" + ], + "before": null, + "after": [ + "some", + "list" + ], + "after_unknown": false, + "before_sensitive": false, + "after_sensitive": false + } + }, + "provider_schemas": { + "registry.terraform.io/hashicorp/null": { + "provider": { + "version": 0, + "block": { + "description_kind": "plain" + } + }, + "resource_schemas": { + "null_resource": { + "version": 0, + "block": { + "attributes": { + "id": { + "type": "string", + "description": "This is set to a random value at create time.", + "description_kind": "plain", + "computed": true + }, + "triggers": { + "type": [ + "map", + "string" + ], + "description": "A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners.", + "description_kind": "plain", + "optional": true + } + }, + "description": "The `null_resource` resource implements the standard resource lifecycle but takes no further action.\n\nThe `triggers` argument allows specifying an arbitrary set of values that, when changed, will cause the resource to be replaced.", + "description_kind": "plain" + } + } + }, + "data_source_schemas": { + "null_data_source": { + "version": 0, + "block": { + "attributes": { + "has_computed_default": { + "type": "string", + "description": "If set, its literal value will be stored and returned. If not, its value defaults to `\"default\"`. This argument exists primarily for testing and has little practical use.", + "description_kind": "plain", + "optional": true, + "computed": true + }, + "id": { + "type": "string", + "description": "This attribute is only present for some legacy compatibility issues and should not be used. It will be removed in a future version.", + "description_kind": "plain", + "deprecated": true, + "computed": true + }, + "inputs": { + "type": [ + "map", + "string" + ], + "description": "A map of arbitrary strings that is copied into the `outputs` attribute, and accessible directly for interpolation.", + "description_kind": "plain", + "optional": true + }, + "outputs": { + "type": [ + "map", + "string" + ], + "description": "After the data source is \"read\", a copy of the `inputs` map.", + "description_kind": "plain", + "computed": true + }, + "random": { + "type": "string", + "description": "A random value. This is primarily for testing and has little practical use; prefer the [hashicorp/random provider](https://registry.terraform.io/providers/hashicorp/random) for more practical random number use-cases.", + "description_kind": "plain", + "computed": true + } + }, + "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://developer.hashicorp.com/terraform/language/values/locals).\n", + "description_kind": "plain", + "deprecated": true + } + } + } + } + }, + "provider_format_version": "1.0" +} \ No newline at end of file diff --git a/internal/cloud/testdata/apply-json-with-provisioner-error/plan-redacted.json b/internal/cloud/testdata/apply-json-with-provisioner-error/plan-redacted.json index 9becf1bcd0..935799605f 100644 --- a/internal/cloud/testdata/apply-json-with-provisioner-error/plan-redacted.json +++ b/internal/cloud/testdata/apply-json-with-provisioner-error/plan-redacted.json @@ -104,7 +104,7 @@ "computed": true } }, - "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n", + "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://developer.hashicorp.com/terraform/language/values/locals).\n", "description_kind": "plain", "deprecated": true } @@ -113,4 +113,4 @@ } }, "provider_format_version": "1.0" -} +} \ No newline at end of file diff --git a/internal/cloud/testdata/apply-json-with-provisioner/plan-redacted.json b/internal/cloud/testdata/apply-json-with-provisioner/plan-redacted.json index 9becf1bcd0..935799605f 100644 --- a/internal/cloud/testdata/apply-json-with-provisioner/plan-redacted.json +++ b/internal/cloud/testdata/apply-json-with-provisioner/plan-redacted.json @@ -104,7 +104,7 @@ "computed": true } }, - "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n", + "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://developer.hashicorp.com/terraform/language/values/locals).\n", "description_kind": "plain", "deprecated": true } @@ -113,4 +113,4 @@ } }, "provider_format_version": "1.0" -} +} \ No newline at end of file diff --git a/internal/cloud/testdata/apply-json/plan-redacted.json b/internal/cloud/testdata/apply-json/plan-redacted.json index 9becf1bcd0..935799605f 100644 --- a/internal/cloud/testdata/apply-json/plan-redacted.json +++ b/internal/cloud/testdata/apply-json/plan-redacted.json @@ -104,7 +104,7 @@ "computed": true } }, - "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n", + "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://developer.hashicorp.com/terraform/language/values/locals).\n", "description_kind": "plain", "deprecated": true } @@ -113,4 +113,4 @@ } }, "provider_format_version": "1.0" -} +} \ No newline at end of file diff --git a/internal/cloud/testdata/plan-json-basic-no-unredacted/plan-redacted.json b/internal/cloud/testdata/plan-json-basic-no-unredacted/plan-redacted.json index 9becf1bcd0..935799605f 100644 --- a/internal/cloud/testdata/plan-json-basic-no-unredacted/plan-redacted.json +++ b/internal/cloud/testdata/plan-json-basic-no-unredacted/plan-redacted.json @@ -104,7 +104,7 @@ "computed": true } }, - "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n", + "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://developer.hashicorp.com/terraform/language/values/locals).\n", "description_kind": "plain", "deprecated": true } @@ -113,4 +113,4 @@ } }, "provider_format_version": "1.0" -} +} \ No newline at end of file diff --git a/internal/cloud/testdata/plan-json-basic/plan-redacted.json b/internal/cloud/testdata/plan-json-basic/plan-redacted.json index 9becf1bcd0..935799605f 100644 --- a/internal/cloud/testdata/plan-json-basic/plan-redacted.json +++ b/internal/cloud/testdata/plan-json-basic/plan-redacted.json @@ -104,7 +104,7 @@ "computed": true } }, - "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n", + "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://developer.hashicorp.com/terraform/language/values/locals).\n", "description_kind": "plain", "deprecated": true } @@ -113,4 +113,4 @@ } }, "provider_format_version": "1.0" -} +} \ No newline at end of file diff --git a/internal/cloud/testdata/plan-json-no-changes/plan-redacted.json b/internal/cloud/testdata/plan-json-no-changes/plan-redacted.json index b945f22534..f107442992 100644 --- a/internal/cloud/testdata/plan-json-no-changes/plan-redacted.json +++ b/internal/cloud/testdata/plan-json-no-changes/plan-redacted.json @@ -106,7 +106,7 @@ "computed": true } }, - "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n", + "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://developer.hashicorp.com/terraform/language/values/locals).\n", "description_kind": "plain", "deprecated": true } @@ -115,4 +115,4 @@ } }, "provider_format_version": "1.0" -} +} \ No newline at end of file diff --git a/internal/cloud/testdata/test-verbose/test.log b/internal/cloud/testdata/test-verbose/test.log index 4763511200..7d355a40c8 100644 --- a/internal/cloud/testdata/test-verbose/test.log +++ b/internal/cloud/testdata/test-verbose/test.log @@ -2,11 +2,11 @@ {"@level":"info","@message":"Found 1 file and 2 run blocks","@module":"terraform.ui","@timestamp":"2023-09-12T08:30:36.453493+02:00","test_abstract":{"main.tftest.hcl":["defaults","overrides"]},"type":"test_abstract"} {"@level":"info","@message":"main.tftest.hcl... in progress","@module":"terraform.ui","@testfile":"main.tftest.hcl","@timestamp":"2023-09-12T08:30:36.453557+02:00","test_file":{"path":"main.tftest.hcl","progress":"starting"},"type":"test_file"} {"@level":"info","@message":" \"defaults\"... pass","@module":"terraform.ui","@testfile":"main.tftest.hcl","@testrun":"defaults","@timestamp":"2023-09-12T08:30:37.184747+02:00","test_run":{"path":"main.tftest.hcl","run":"defaults","progress":"complete","status":"pass"},"type":"test_run"} -{"@level":"info","@message":"-verbose flag enabled, printing plan","@module":"terraform.ui","@testfile":"main.tftest.hcl","@testrun":"defaults","@timestamp":"2023-09-12T08:30:37.184891+02:00","test_plan":{"plan_format_version":"1.2","output_changes":{"input":{"actions":["create"],"before":null,"after":"Hello, world!","after_unknown":false,"before_sensitive":false,"after_sensitive":false}},"relevant_attributes":[{"resource":"data.null_data_source.values","attribute":["outputs","data"]}],"provider_format_version":"1.0","provider_schemas":{"registry.terraform.io/hashicorp/null":{"provider":{"version":0,"block":{"description_kind":"plain"}},"resource_schemas":{"null_resource":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"This is set to a random value at create time.","description_kind":"plain","computed":true},"triggers":{"type":["map","string"],"description":"A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners.","description_kind":"plain","optional":true}},"description":"The `null_resource` resource implements the standard resource lifecycle but takes no further action.\n\nThe `triggers` argument allows specifying an arbitrary set of values that, when changed, will cause the resource to be replaced.","description_kind":"plain"}}},"data_source_schemas":{"null_data_source":{"version":0,"block":{"attributes":{"has_computed_default":{"type":"string","description":"If set, its literal value will be stored and returned. If not, its value defaults to `\"default\"`. This argument exists primarily for testing and has little practical use.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"This attribute is only present for some legacy compatibility issues and should not be used. It will be removed in a future version.","description_kind":"plain","deprecated":true,"computed":true},"inputs":{"type":["map","string"],"description":"A map of arbitrary strings that is copied into the `outputs` attribute, and accessible directly for interpolation.","description_kind":"plain","optional":true},"outputs":{"type":["map","string"],"description":"After the data source is \"read\", a copy of the `inputs` map.","description_kind":"plain","computed":true},"random":{"type":"string","description":"A random value. This is primarily for testing and has little practical use; prefer the [hashicorp/random provider](https://registry.terraform.io/providers/hashicorp/random) for more practical random number use-cases.","description_kind":"plain","computed":true}},"description":"The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n","description_kind":"plain","deprecated":true}}}}}},"type":"test_plan"} +{"@level":"info","@message":"-verbose flag enabled, printing plan","@module":"terraform.ui","@testfile":"main.tftest.hcl","@testrun":"defaults","@timestamp":"2023-09-12T08:30:37.184891+02:00","test_plan":{"plan_format_version":"1.2","output_changes":{"input":{"actions":["create"],"before":null,"after":"Hello, world!","after_unknown":false,"before_sensitive":false,"after_sensitive":false}},"relevant_attributes":[{"resource":"data.null_data_source.values","attribute":["outputs","data"]}],"provider_format_version":"1.0","provider_schemas":{"registry.terraform.io/hashicorp/null":{"provider":{"version":0,"block":{"description_kind":"plain"}},"resource_schemas":{"null_resource":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"This is set to a random value at create time.","description_kind":"plain","computed":true},"triggers":{"type":["map","string"],"description":"A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners.","description_kind":"plain","optional":true}},"description":"The `null_resource` resource implements the standard resource lifecycle but takes no further action.\n\nThe `triggers` argument allows specifying an arbitrary set of values that, when changed, will cause the resource to be replaced.","description_kind":"plain"}}},"data_source_schemas":{"null_data_source":{"version":0,"block":{"attributes":{"has_computed_default":{"type":"string","description":"If set, its literal value will be stored and returned. If not, its value defaults to `\"default\"`. This argument exists primarily for testing and has little practical use.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"This attribute is only present for some legacy compatibility issues and should not be used. It will be removed in a future version.","description_kind":"plain","deprecated":true,"computed":true},"inputs":{"type":["map","string"],"description":"A map of arbitrary strings that is copied into the `outputs` attribute, and accessible directly for interpolation.","description_kind":"plain","optional":true},"outputs":{"type":["map","string"],"description":"After the data source is \"read\", a copy of the `inputs` map.","description_kind":"plain","computed":true},"random":{"type":"string","description":"A random value. This is primarily for testing and has little practical use; prefer the [hashicorp/random provider](https://registry.terraform.io/providers/hashicorp/random) for more practical random number use-cases.","description_kind":"plain","computed":true}},"description":"The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://developer.hashicorp.com/terraform/language/values/locals).\n","description_kind":"plain","deprecated":true}}}}}},"type":"test_plan"} {"@level":"warn","@message":"Warning: Deprecated","@module":"terraform.ui","@testfile":"main.tftest.hcl","@testrun":"defaults","@timestamp":"2023-09-12T08:30:37.185952+02:00","diagnostic":{"severity":"warning","summary":"Deprecated","detail":"The null_data_source was historically used to construct intermediate values to re-use elsewhere in configuration, the same can now be achieved using locals","address":"data.null_data_source.values","range":{"filename":"main.tf","start":{"line":7,"column":34,"byte":104},"end":{"line":7,"column":35,"byte":105}},"snippet":{"context":"data \"null_data_source\" \"values\"","code":"data \"null_data_source\" \"values\" {","start_line":7,"highlight_start_offset":33,"highlight_end_offset":34,"values":[]}},"type":"diagnostic"} {"@level":"warn","@message":"Warning: Deprecated","@module":"terraform.ui","@testfile":"main.tftest.hcl","@testrun":"defaults","@timestamp":"2023-09-12T08:30:37.186067+02:00","diagnostic":{"severity":"warning","summary":"Deprecated","detail":"The null_data_source was historically used to construct intermediate values to re-use elsewhere in configuration, the same can now be achieved using locals","address":"data.null_data_source.values","range":{"filename":"main.tf","start":{"line":7,"column":34,"byte":104},"end":{"line":7,"column":35,"byte":105}},"snippet":{"context":"data \"null_data_source\" \"values\"","code":"data \"null_data_source\" \"values\" {","start_line":7,"highlight_start_offset":33,"highlight_end_offset":34,"values":[]}},"type":"diagnostic"} {"@level":"info","@message":" \"overrides\"... pass","@module":"terraform.ui","@testfile":"main.tftest.hcl","@testrun":"overrides","@timestamp":"2023-09-12T08:30:37.246268+02:00","test_run":{"path":"main.tftest.hcl","run":"overrides","progress":"complete","status":"pass"},"type":"test_run"} -{"@level":"info","@message":"-verbose flag enabled, printing state","@module":"terraform.ui","@testfile":"main.tftest.hcl","@testrun":"overrides","@timestamp":"2023-09-12T08:30:37.246362+02:00","test_state":{"state_format_version":"1.0","root_module":{"resources":[{"address":"data.null_data_source.values","mode":"data","type":"null_data_source","name":"values","provider_name":"registry.terraform.io/hashicorp/null","schema_version":0,"values":{"has_computed_default":"default","id":"static","inputs":{"data":"Hello, universe!"},"outputs":{"data":"Hello, universe!"},"random":"8484833523059069761"},"sensitive_values":{"inputs":{},"outputs":{}}}]},"outputs":{"input":{"sensitive":false,"value":"Hello, universe!","type":"string"}},"provider_format_version":"1.0","provider_schemas":{"registry.terraform.io/hashicorp/null":{"provider":{"version":0,"block":{"description_kind":"plain"}},"resource_schemas":{"null_resource":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"This is set to a random value at create time.","description_kind":"plain","computed":true},"triggers":{"type":["map","string"],"description":"A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners.","description_kind":"plain","optional":true}},"description":"The `null_resource` resource implements the standard resource lifecycle but takes no further action.\n\nThe `triggers` argument allows specifying an arbitrary set of values that, when changed, will cause the resource to be replaced.","description_kind":"plain"}}},"data_source_schemas":{"null_data_source":{"version":0,"block":{"attributes":{"has_computed_default":{"type":"string","description":"If set, its literal value will be stored and returned. If not, its value defaults to `\"default\"`. This argument exists primarily for testing and has little practical use.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"This attribute is only present for some legacy compatibility issues and should not be used. It will be removed in a future version.","description_kind":"plain","deprecated":true,"computed":true},"inputs":{"type":["map","string"],"description":"A map of arbitrary strings that is copied into the `outputs` attribute, and accessible directly for interpolation.","description_kind":"plain","optional":true},"outputs":{"type":["map","string"],"description":"After the data source is \"read\", a copy of the `inputs` map.","description_kind":"plain","computed":true},"random":{"type":"string","description":"A random value. This is primarily for testing and has little practical use; prefer the [hashicorp/random provider](https://registry.terraform.io/providers/hashicorp/random) for more practical random number use-cases.","description_kind":"plain","computed":true}},"description":"The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n","description_kind":"plain","deprecated":true}}}}}},"type":"test_state"} +{"@level":"info","@message":"-verbose flag enabled, printing state","@module":"terraform.ui","@testfile":"main.tftest.hcl","@testrun":"overrides","@timestamp":"2023-09-12T08:30:37.246362+02:00","test_state":{"state_format_version":"1.0","root_module":{"resources":[{"address":"data.null_data_source.values","mode":"data","type":"null_data_source","name":"values","provider_name":"registry.terraform.io/hashicorp/null","schema_version":0,"values":{"has_computed_default":"default","id":"static","inputs":{"data":"Hello, universe!"},"outputs":{"data":"Hello, universe!"},"random":"8484833523059069761"},"sensitive_values":{"inputs":{},"outputs":{}}}]},"outputs":{"input":{"sensitive":false,"value":"Hello, universe!","type":"string"}},"provider_format_version":"1.0","provider_schemas":{"registry.terraform.io/hashicorp/null":{"provider":{"version":0,"block":{"description_kind":"plain"}},"resource_schemas":{"null_resource":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"This is set to a random value at create time.","description_kind":"plain","computed":true},"triggers":{"type":["map","string"],"description":"A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners.","description_kind":"plain","optional":true}},"description":"The `null_resource` resource implements the standard resource lifecycle but takes no further action.\n\nThe `triggers` argument allows specifying an arbitrary set of values that, when changed, will cause the resource to be replaced.","description_kind":"plain"}}},"data_source_schemas":{"null_data_source":{"version":0,"block":{"attributes":{"has_computed_default":{"type":"string","description":"If set, its literal value will be stored and returned. If not, its value defaults to `\"default\"`. This argument exists primarily for testing and has little practical use.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"This attribute is only present for some legacy compatibility issues and should not be used. It will be removed in a future version.","description_kind":"plain","deprecated":true,"computed":true},"inputs":{"type":["map","string"],"description":"A map of arbitrary strings that is copied into the `outputs` attribute, and accessible directly for interpolation.","description_kind":"plain","optional":true},"outputs":{"type":["map","string"],"description":"After the data source is \"read\", a copy of the `inputs` map.","description_kind":"plain","computed":true},"random":{"type":"string","description":"A random value. This is primarily for testing and has little practical use; prefer the [hashicorp/random provider](https://registry.terraform.io/providers/hashicorp/random) for more practical random number use-cases.","description_kind":"plain","computed":true}},"description":"The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://developer.hashicorp.com/terraform/language/values/locals).\n","description_kind":"plain","deprecated":true}}}}}},"type":"test_state"} {"@level":"warn","@message":"Warning: Deprecated","@module":"terraform.ui","@testfile":"main.tftest.hcl","@testrun":"overrides","@timestamp":"2023-09-12T08:30:37.247116+02:00","diagnostic":{"severity":"warning","summary":"Deprecated","detail":"The null_data_source was historically used to construct intermediate values to re-use elsewhere in configuration, the same can now be achieved using locals","address":"data.null_data_source.values","range":{"filename":"main.tf","start":{"line":7,"column":34,"byte":104},"end":{"line":7,"column":35,"byte":105}},"snippet":{"context":"data \"null_data_source\" \"values\"","code":"data \"null_data_source\" \"values\" {","start_line":7,"highlight_start_offset":33,"highlight_end_offset":34,"values":[]}},"type":"diagnostic"} {"@level":"warn","@message":"Warning: Deprecated","@module":"terraform.ui","@testfile":"main.tftest.hcl","@testrun":"overrides","@timestamp":"2023-09-12T08:30:37.247182+02:00","diagnostic":{"severity":"warning","summary":"Deprecated","detail":"The null_data_source was historically used to construct intermediate values to re-use elsewhere in configuration, the same can now be achieved using locals","address":"data.null_data_source.values","range":{"filename":"main.tf","start":{"line":7,"column":34,"byte":104},"end":{"line":7,"column":35,"byte":105}},"snippet":{"context":"data \"null_data_source\" \"values\"","code":"data \"null_data_source\" \"values\" {","start_line":7,"highlight_start_offset":33,"highlight_end_offset":34,"values":[]}},"type":"diagnostic"} {"@level":"info","@message":"main.tftest.hcl... tearing down","@module":"terraform.ui","@testfile":"main.tftest.hcl","@timestamp":"2023-09-12T08:30:37.247905+02:00","test_file":{"path":"main.tftest.hcl","progress":"teardown"},"type":"test_file"} diff --git a/internal/command/import.go b/internal/command/import.go index beccfa51f0..7f3173beca 100644 --- a/internal/command/import.go +++ b/internal/command/import.go @@ -341,7 +341,7 @@ func (c *ImportCommand) Synopsis() string { } const importCommandInvalidAddressReference = `For information on valid syntax, see: -https://www.terraform.io/docs/cli/state/resource-addressing.html` +https://developer.hashicorp.com/terraform/cli/state/resource-addressing` const importCommandMissingResourceFmt = `[reset][bold][red]Error:[reset][bold] resource address %q does not exist in the configuration.[reset] diff --git a/internal/command/meta_backend_migrate.go b/internal/command/meta_backend_migrate.go index f01b4a82c7..ce9da101b4 100644 --- a/internal/command/meta_backend_migrate.go +++ b/internal/command/meta_backend_migrate.go @@ -1011,7 +1011,7 @@ const errTFCMigrateNotYetImplemented = ` Migrating state from HCP Terraform or Terraform Enterprise to another backend is not yet implemented. -Please use the API to do this: https://www.terraform.io/docs/cloud/api/state-versions.html +Please use the API to do this: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions ` const errInteractiveInputDisabled = ` @@ -1036,7 +1036,7 @@ workspaces are named uniquely across all configurations used within an organizat strategy to start with is -- (e.g. networking-prod-us-east, networking-staging-us-east). -For more information on workspace naming, see https://www.terraform.io/docs/cloud/workspaces/naming.html +For more information on workspace naming, see https://developer.hashicorp.com/terraform/cloud-docs/workspaces/create When migrating existing workspaces from the backend %[1]q to %[2]s, would you like to rename your workspaces? Enter 1 or 2. diff --git a/internal/command/version.go b/internal/command/version.go index 878031dc5a..418febf991 100644 --- a/internal/command/version.go +++ b/internal/command/version.go @@ -161,7 +161,7 @@ func (c *VersionCommand) Run(args []string) int { if outdated { c.Ui.Output(fmt.Sprintf( "\nYour version of Terraform is out of date! The latest version\n"+ - "is %s. You can update by downloading from https://www.terraform.io/downloads.html", + "is %s. You can update by downloading from https://developer.hashicorp.com/terraform/install", latest)) } diff --git a/internal/command/version_test.go b/internal/command/version_test.go index 8b835e65f6..5a65849616 100644 --- a/internal/command/version_test.go +++ b/internal/command/version_test.go @@ -106,7 +106,7 @@ func TestVersion_outdated(t *testing.T) { } actual := strings.TrimSpace(ui.OutputWriter.String()) - expected := "Terraform v4.5.6\non aros_riscv64\n\nYour version of Terraform is out of date! The latest version\nis 4.5.7. You can update by downloading from https://www.terraform.io/downloads.html" + expected := "Terraform v4.5.6\non aros_riscv64\n\nYour version of Terraform is out of date! The latest version\nis 4.5.7. You can update by downloading from https://developer.hashicorp.com/terraform/install" if actual != expected { t.Fatalf("wrong output\ngot: %#v\nwant: %#v", actual, expected) } diff --git a/internal/command/views/init.go b/internal/command/views/init.go index 92868d1161..cd91daa428 100644 --- a/internal/command/views/init.go +++ b/internal/command/views/init.go @@ -359,7 +359,7 @@ version control system if they represent changes you intended to make.` const partnerAndCommunityProvidersInfo = "\nPartner and community providers are signed by their developers.\n" + "If you'd like to know more about provider signing, you can read about it here:\n" + - "https://www.terraform.io/docs/cli/plugins/signing.html" + "https://developer.hashicorp.com/terraform/cli/plugins/signing" const errInitConfigError = ` [reset]Terraform encountered problems during initialisation, including problems diff --git a/internal/command/views/testdata/plans/redacted-plan.json b/internal/command/views/testdata/plans/redacted-plan.json index 9becf1bcd0..935799605f 100644 --- a/internal/command/views/testdata/plans/redacted-plan.json +++ b/internal/command/views/testdata/plans/redacted-plan.json @@ -104,7 +104,7 @@ "computed": true } }, - "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n", + "description": "The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://developer.hashicorp.com/terraform/language/values/locals).\n", "description_kind": "plain", "deprecated": true } @@ -113,4 +113,4 @@ } }, "provider_format_version": "1.0" -} +} \ No newline at end of file diff --git a/internal/providercache/installer_test.go b/internal/providercache/installer_test.go index cafad868c2..0463a6b7c8 100644 --- a/internal/providercache/installer_test.go +++ b/internal/providercache/installer_test.go @@ -2018,7 +2018,7 @@ func TestEnsureProviderVersions(t *testing.T) { beepProvider: getproviders.MustParseVersionConstraints(">= 1.0.0"), }, WantErr: `some providers could not be installed: -- example.com/foo/beep: the local package for example.com/foo/beep 1.0.0 doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://www.terraform.io/language/provider-checksum-verification`, +- example.com/foo/beep: the local package for example.com/foo/beep 1.0.0 doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://developer.hashicorp.com/terraform/language/files/dependency-lock#checksum-verification`, WantEvents: func(inst *Installer, dir *Dir) map[addrs.Provider][]*testInstallerEventLogItem { return map[addrs.Provider][]*testInstallerEventLogItem{ noProvider: { @@ -2064,7 +2064,7 @@ func TestEnsureProviderVersions(t *testing.T) { Error string }{ "1.0.0", - `the local package for example.com/foo/beep 1.0.0 doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://www.terraform.io/language/provider-checksum-verification`, + `the local package for example.com/foo/beep 1.0.0 doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://developer.hashicorp.com/terraform/language/files/dependency-lock#checksum-verification`, }, }, }, diff --git a/internal/providercache/package_install.go b/internal/providercache/package_install.go index 762b149adb..78de3ad064 100644 --- a/internal/providercache/package_install.go +++ b/internal/providercache/package_install.go @@ -106,7 +106,7 @@ func installFromLocalArchive(ctx context.Context, meta getproviders.PackageMeta, ) } else if !matches { return authResult, fmt.Errorf( - "the current package for %s %s doesn't match any of the checksums previously recorded in the dependency lock file; for more information: https://www.terraform.io/language/provider-checksum-verification", + "the current package for %s %s doesn't match any of the checksums previously recorded in the dependency lock file; for more information: https://developer.hashicorp.com/terraform/language/files/dependency-lock#checksum-verification", meta.Provider, meta.Version, ) } @@ -196,7 +196,7 @@ func installFromLocalDir(ctx context.Context, meta getproviders.PackageMeta, tar ) } else if !matches { return authResult, fmt.Errorf( - "the local package for %s %s doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://www.terraform.io/language/provider-checksum-verification", + "the local package for %s %s doesn't match any of the checksums previously recorded in the dependency lock file (this might be because the available checksums are for packages targeting different platforms); for more information: https://developer.hashicorp.com/terraform/language/files/dependency-lock#checksum-verification", meta.Provider, meta.Version, ) } diff --git a/tools/terraform-bundle/README.md b/tools/terraform-bundle/README.md index 26df43a397..87ff8d672d 100644 --- a/tools/terraform-bundle/README.md +++ b/tools/terraform-bundle/README.md @@ -8,11 +8,11 @@ change to distribute providers separately from Terraform CLI. The Terraform v0.13 series introduced our intended longer-term solutions to this need: -* [Alternative provider installation methods](https://www.terraform.io/docs/cli/config/config-file.html#provider-installation), +* [Alternative provider installation methods](https://developer.hashicorp.com/terraform/cli/config/config-file#provider-installation), including the possibility of running server containing a local mirror of providers you intend to use which Terraform can then use instead of the origin registry. -* [The `terraform providers mirror` command](https://www.terraform.io/docs/cli/commands/providers/mirror.html), +* [The `terraform providers mirror` command](https://developer.hashicorp.com/terraform/cli/commands/providers/mirror), built in to Terraform v0.13.0 and later, can automatically construct a suitable directory structure to serve from a local mirror based on your current Terraform configuration, serving a similar (though not identical) diff --git a/website/docs/cli/commands/version.mdx b/website/docs/cli/commands/version.mdx index 3d776d5b60..d2f0d3a4e8 100644 --- a/website/docs/cli/commands/version.mdx +++ b/website/docs/cli/commands/version.mdx @@ -35,7 +35,7 @@ on darwin_amd64 + provider registry.terraform.io/hashicorp/null v3.0.0 Your version of Terraform is out of date! The latest version -is X.Y.Z. You can update by downloading from https://www.terraform.io/downloads.html +is X.Y.Z. You can update by downloading from https://developer.hashicorp.com/terraform/install ``` As JSON: