opentofu/go.mod

338 lines
17 KiB
Modula-2
Raw Permalink Normal View History

module github.com/opentofu/opentofu
go 1.25.6
go.mod: Use the new "tool" directive Previously the Go toolchain had no explicit support for "tools" and so we used the typical Go community workaround of adding "tools.go" files (two, for some reason) that existed only to trick the Go toolchain into considering the tools as dependencies we could track in go.mod. Go 1.24 introduced explicit support for tracking tools as part of go.mod, and the ability to run those using "go tool" instead of "go run", and so this commit switches us over to using that strategy for everything we were previously managing in tools.go. There are some intentional exceptions here: - The protobuf-compile script can't use "go tool" or "go run" because the tools in question are run only indirectly through protoc. However, we do still use the "tool" directive in go.mod to tell the Go toolchain that we depend on those tools, so that it'll track which versions we are currently using as part of go.mod. - Our golangci-lint Makefile target uses "go run" to run a specific version of golangci-lint. We _intentionally_ don't consider that tool to be a direct dependency of OpenTofu because it has a lot of indirect dependencies that would pollute our go.mod file. Therefore that continues to use "go run" after this commit. - Both of our tools.go files previously referred to github.com/nishanths/exhaustive , but nothing actually appears to be using that tool in the current OpenTofu tree, so it's no longer a dependency after this commit. All of the dependencies we have _only_ for tools are now classified as "indirect" in the go.mod file. This is the default behavior of the Go toolchain and appears to be motivated by making it clearer that these modules do not contribute anything to the runtime behavior of OpenTofu. This also corrected a historical oddity in our go.mod where for some reason the "indirect" dependencies had been split across two different "require" directives; they are now all grouped together in a single directive. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 14:01:32 -04:00
// At the time of adding this configuration, the new Go feature introduced here https://github.com/golang/go/issues/67061,
// was having a good amount of issues linked to, affecting AWS Firewall, GCP various services and a lot more.
// In go1.23 the godebug flag for this was named 'tlskyber', renamed in go1.24 to 'tlsmlkem'. https://tip.golang.org/doc/godebug#go-124
godebug (
tlsmlkem=0
winsymlink=0 // See https://github.com/opentofu/opentofu/pull/3289
)
require (
cloud.google.com/go/kms v1.23.2
cloud.google.com/go/storage v1.57.0
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.8.1
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.4.0
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.3
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2
github.com/ProtonMail/go-crypto v1.3.0
github.com/agext/levenshtein v1.2.3
github.com/aliyun/alibaba-cloud-sdk-go v1.63.107
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible
github.com/aliyun/aliyun-tablestore-go-sdk v4.1.3+incompatible
2020-07-08 10:57:57 -04:00
github.com/apparentlymart/go-cidr v1.1.0
github.com/apparentlymart/go-shquot v0.0.1
github.com/apparentlymart/go-userdirs v0.0.0-20200915174352-b0c018a67c13
github.com/apparentlymart/go-versions v1.0.3
github.com/apparentlymart/go-workgraph v0.0.0-20250609024419-b3453ef8d3e6
github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2
github.com/aws/aws-sdk-go-v2 v1.41.0
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.51.0
github.com/aws/aws-sdk-go-v2/service/kms v1.45.6
github.com/aws/aws-sdk-go-v2/service/s3 v1.88.4
github.com/aws/smithy-go v1.24.0
github.com/bgentry/speakeasy v0.2.0
github.com/bmatcuk/doublestar/v4 v4.9.1
github.com/chzyer/readline v1.5.1
github.com/cli/browser v1.3.0
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
2022-03-01 16:52:48 -05:00
github.com/dylanmei/winrmtest v0.0.0-20210303004826-fbc9ae56efb6
github.com/go-logr/stdr v1.2.2
github.com/go-viper/mapstructure/v2 v2.4.0
github.com/google/go-cmp v0.7.0
github.com/google/uuid v1.6.0
github.com/googleapis/gax-go/v2 v2.15.0
github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.67
github.com/hashicorp/consul/api v1.32.4
github.com/hashicorp/consul/sdk v0.16.3
github.com/hashicorp/errwrap v1.1.0
github.com/hashicorp/go-cleanhttp v0.5.2
github.com/hashicorp/go-getter v1.8.2
github.com/hashicorp/go-hclog v1.6.3
github.com/hashicorp/go-multierror v1.1.1
github.com/hashicorp/go-plugin v1.7.0
github.com/hashicorp/go-retryablehttp v0.7.8
github.com/hashicorp/go-tfe v1.95.0
github.com/hashicorp/go-uuid v1.0.3
github.com/hashicorp/go-version v1.8.0
github.com/hashicorp/hcl v1.0.1-vault-5
github.com/hashicorp/hcl/v2 v2.20.1
github.com/hashicorp/jsonapi v1.5.0
deps: Bump github.com/aws/aws-sdk-go@v1.37.0 Changes: ``` * backend/s3: Support for AWS Single-Sign On (SSO) cached credentials ``` Updated via: ``` go get github.com/aws/aws-sdk-go@v1.37.0 go mod tidy ``` Please note that Terraform CLI will not initiate or perform the AWS SSO login flow. It is expected that you have already performed the SSO login flow using AWS CLI using the `aws sso login` command, or by some other mechanism before executing Terraform. More precisely, this credential handling must find a valid non-expired access token for the AWS SSO user portal URL in `~/.aws/sso/cache`. If a cached token is not found, is expired, or the file is malformed an error will be returned. You can use configure AWS SSO credentials from the AWS shared configuration file by specifying the required keys in the profile: ``` sso_account_id sso_region sso_role_name sso_start_url ``` For example, the following defines a profile "devsso" and specifies the AWS SSO parameters that defines the target account, role, sign-on portal, and the region where the user portal is located. Note: all SSO arguments must be provided, or an error will be returned. ``` [profile devsso] sso_start_url = https:my-sso-portal.awsapps.com/start sso_role_name = SSOReadOnlyRole sso_region = us-east-1 sso_account_id = 123456789012 ``` Additional Resources * [Configuring the AWS CLI to use AWS Single Sign-On](https:docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) * [AWS Single Sign-On User Guide](https:docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
2021-01-28 15:22:01 -05:00
github.com/jmespath/go-jmespath v0.4.0
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0
github.com/lib/pq v1.10.9
github.com/masterzen/winrm v0.0.0-20200615185753-c42b5136ff88
github.com/mattn/go-isatty v0.0.20
github.com/mattn/go-shellwords v1.0.12
github.com/mitchellh/cli v1.1.5
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
github.com/mitchellh/copystructure v1.2.0
github.com/mitchellh/go-homedir v1.1.0
github.com/mitchellh/go-linereader v0.0.0-20190213213312-1b945b3263eb
github.com/mitchellh/go-wordwrap v1.0.1
github.com/mitchellh/reflectwalk v1.0.2
github.com/openbao/openbao/api/v2 v2.4.0
github.com/opencontainers/go-digest v1.0.0
github.com/opencontainers/image-spec v1.1.1
Adopt OpenTofu's own "svchost" module Previously we were using a third-party library, but that doesn't have any support for passing context.Context through its API and so isn't suitable for our goals of adding OpenTelemetry tracing for all outgoing network requests. We now have our own fork that is updated to use context.Context. It also has a slightly reduced scope no longer including various details that are tightly-coupled to our cliconfig mechanism and so better placed in the main OpenTofu codebase so we can evolve it in future without making lockstep library releases. The "registry-address" library also uses svchost and uses some of its types in its public API, so this also incorporates v2 of that library that is updated to use our own svchost module. Unfortunately this commit is a mix of mechanical updates to the new libraries and some new code dealing with the functionality that is removed in our fork of svchost. The new code is primarily in the "svcauthconfig" package, which is similar in purpose "ociauthconfig" but for OpenTofu's own auth mechanism instead of the OCI Distribution protocol's auth mechanism. This includes some additional plumbing of context.Context where it was possible to do so without broad changes to files that would not otherwise have been included in this commit, but there are a few leftover spots that are context.TODO() which we'll address separately in later commits. This removes the temporary workaround from d079da6e9e55, since we are now able to plumb the OpenTelemetry span tree all the way to the service discovery requests. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-05-14 20:19:22 -04:00
github.com/opentofu/registry-address/v2 v2.0.0-20250611143131-d0a99bd8acdd
github.com/opentofu/svchost v0.0.0-20250610175836-86c9e5e3d8c8
github.com/packer-community/winrmcp v0.0.0-20180921211025-c76d91c1e7db
deps: github.com/aws/aws-sdk-go@v1.30.12 [master] (#24745) * update github.com/aws/aws-sdk-go to v1.30.9 * deps: github.com/aws/aws-sdk-go@v1.30.12 Reference: https://github.com/hashicorp/terraform/issues/24710 Reference: https://github.com/hashicorp/terraform/issues/24741 Changes: ``` NOTES: * backend/s3: Region validation now automatically supports the new `af-south-1` (Africa (Cape Town)) region. For AWS operations to work in the new region, the region must be explicitly enabled as outlined in the [AWS Documentation](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable). When the region is not enabled, the Terraform S3 Backend will return errors during credential validation (e.g. `error validating provider credentials: error calling sts:GetCallerIdentity: InvalidClientTokenId: The security token included in the request is invalid`). ENHANCEMENTS: * backend/s3: Support automatic region validation for `af-south-1` ``` Updated via: ```console $ go get github.com/aws/aws-sdk-go@v1.30.12 $ go mod tidy $ go mod vendor ``` Output from acceptance testing: ```console $ TF_ACC=1 go test -v ./backend/remote-state/s3 | grep '^--- ' --- PASS: TestBackend_impl (0.00s) --- PASS: TestBackendConfig (1.68s) --- PASS: TestBackendConfig_invalidKey (0.00s) --- PASS: TestBackendConfig_invalidSSECustomerKeyLength (0.00s) --- PASS: TestBackendConfig_invalidSSECustomerKeyEncoding (0.00s) --- PASS: TestBackendConfig_conflictingEncryptionSchema (0.00s) --- PASS: TestBackend (15.07s) --- PASS: TestBackendLocked (26.40s) --- PASS: TestBackendSSECustomerKey (16.99s) --- PASS: TestBackendExtraPaths (12.05s) --- PASS: TestBackendPrefixInWorkspace (5.55s) --- PASS: TestKeyEnv (45.07s) --- PASS: TestRemoteClient_impl (0.00s) --- PASS: TestRemoteClient (5.39s) --- PASS: TestRemoteClientLocks (14.30s) --- PASS: TestForceUnlock (20.08s) --- PASS: TestRemoteClient_clientMD5 (16.43s) --- PASS: TestRemoteClient_stateChecksum (24.58s) ``` Co-authored-by: Nicola Senno <nicola.senno@workday.com>
2020-04-24 12:20:04 -04:00
github.com/pkg/errors v0.9.1
github.com/posener/complete v1.2.3
github.com/spf13/afero v1.15.0
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.41
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts v1.1.11
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tag v1.1.0
github.com/tencentyun/cos-go-sdk-v5 v0.7.70
github.com/xanzy/ssh-agent v0.3.3
github.com/xlab/treeprint v1.2.0
github.com/zclconf/go-cty v1.17.0
github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940
github.com/zclconf/go-cty-yaml v1.2.0
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
go.opentelemetry.io/contrib/exporters/autoexport v0.63.0
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0
go.opentelemetry.io/otel v1.39.0
go.opentelemetry.io/otel/sdk v1.39.0
go.opentelemetry.io/otel/trace v1.39.0
go.uber.org/mock v0.6.0
golang.org/x/crypto v0.47.0
golang.org/x/mod v0.32.0
golang.org/x/net v0.49.0
golang.org/x/oauth2 v0.34.0
golang.org/x/sync v0.19.0
golang.org/x/sys v0.40.0
golang.org/x/term v0.39.0
golang.org/x/text v0.33.0
google.golang.org/api v0.252.0
Use the latest protobuf tools and libraries throughout Previously we were using a mixture of old and new, with our code generation using the plugin from the old github.com/golang/protobuf library but our callers using the modern google.golang.org/protobuf . We were also using pretty ancient version of protoc. This brings us up to the current latest releases and consistently using the new Go protobuf library. There have been some notable changes to these tools in the meantime: Previously the protoc-gen-go plugin handled grpc by having its own additional level of Go-specific "plugins" of which the gRPC codegen was an example. Now the protobuf generator and the gRPC generator are separate plugins handled directly by protoc, which means the command line arguments are a different shape and the gRPC stubs get generated in a separate file from the main protobuf messages, rather than all being in one .pb.go file as before.The results are otherwise similar, though. The grpc codegen now also defaults to requiring that implementations embed the generated "unimplemented" server, which is an implementation of each service where the methods just immediately return the "unimplemented" error. This is not super important for us because we maintain the generated interfaces and their implementations together in the same repository anyway, but adding the "unimplemented" server embeds was not a big change and so seems better to follow the prevailing convention. Using these new versions means that we could in principle now switch to using protobuf edition 2024 and the new "sealed" style for Go code generation, but this commit does not include any such changes and focuses only on getting things upgraded with as few other changes as possible. We can discuss using different codegen style later and deal with that in separate commits. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-06 20:25:14 -04:00
google.golang.org/grpc v1.76.0
google.golang.org/protobuf v1.36.10
k8s.io/api v0.34.1
k8s.io/apimachinery v0.34.1
k8s.io/client-go v0.34.1
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
oras.land/oras-go/v2 v2.6.0
2021-10-08 15:54:13 -04:00
)
require (
cel.dev/expr v0.24.0 // indirect
cloud.google.com/go v0.121.6 // indirect
cloud.google.com/go/auth v0.17.0 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
cloud.google.com/go/compute/metadata v0.9.0 // indirect
cloud.google.com/go/iam v1.5.2 // indirect
cloud.google.com/go/longrunning v0.6.7 // indirect
cloud.google.com/go/monitoring v1.24.2 // indirect
github.com/AlecAivazis/survey/v2 v2.3.6 // indirect
go.mod: Use the new "tool" directive Previously the Go toolchain had no explicit support for "tools" and so we used the typical Go community workaround of adding "tools.go" files (two, for some reason) that existed only to trick the Go toolchain into considering the tools as dependencies we could track in go.mod. Go 1.24 introduced explicit support for tracking tools as part of go.mod, and the ability to run those using "go tool" instead of "go run", and so this commit switches us over to using that strategy for everything we were previously managing in tools.go. There are some intentional exceptions here: - The protobuf-compile script can't use "go tool" or "go run" because the tools in question are run only indirectly through protoc. However, we do still use the "tool" directive in go.mod to tell the Go toolchain that we depend on those tools, so that it'll track which versions we are currently using as part of go.mod. - Our golangci-lint Makefile target uses "go run" to run a specific version of golangci-lint. We _intentionally_ don't consider that tool to be a direct dependency of OpenTofu because it has a lot of indirect dependencies that would pollute our go.mod file. Therefore that continues to use "go run" after this commit. - Both of our tools.go files previously referred to github.com/nishanths/exhaustive , but nothing actually appears to be using that tool in the current OpenTofu tree, so it's no longer a dependency after this commit. All of the dependencies we have _only_ for tools are now classified as "indirect" in the go.mod file. This is the default behavior of the Go toolchain and appears to be motivated by making it clearer that these modules do not contribute anything to the runtime behavior of OpenTofu. This also corrected a historical oddity in our go.mod where for some reason the "indirect" dependencies had been split across two different "require" directives; they are now all grouped together in a single directive. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 14:01:32 -04:00
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0 // indirect
2021-10-08 15:54:13 -04:00
github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0 // indirect
github.com/BurntSushi/toml v1.2.1 // indirect
2021-10-08 15:54:13 -04:00
github.com/ChrisTrenkamp/goxpath v0.0.0-20190607011252-c5096ec8773d // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver/v3 v3.1.1 // indirect
github.com/Masterminds/sprig/v3 v3.2.2 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
2022-03-01 16:52:48 -05:00
github.com/antchfx/xmlquery v1.3.5 // indirect
github.com/antchfx/xpath v1.1.10 // indirect
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/armon/go-metrics v0.4.1 // indirect
2021-10-08 15:54:13 -04:00
github.com/armon/go-radix v1.0.0 // indirect
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 // indirect
github.com/aws/aws-sdk-go-v2/config v1.31.12 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.18.16 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.9 // indirect
github.com/aws/aws-sdk-go-v2/service/iam v1.47.7 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.0 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.11.9 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.9 // indirect
github.com/aws/aws-sdk-go-v2/service/sns v1.38.5 // indirect
github.com/aws/aws-sdk-go-v2/service/sqs v1.42.8 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
github.com/beorn7/perks v1.0.1 // indirect
2021-10-08 15:54:13 -04:00
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
github.com/bradleyfalzon/ghinstallation/v2 v2.1.0 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/clbanning/mxj v1.8.4 // indirect
github.com/cli/go-gh v1.0.0 // indirect
github.com/cli/safeexec v1.0.0 // indirect
github.com/cli/shurcooL-graphql v0.0.2 // indirect
github.com/cloudflare/circl v1.6.1 // indirect
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect
github.com/creack/pty v1.1.18 // indirect
2021-10-08 15:54:13 -04:00
github.com/dylanmei/iso8601 v0.1.0 // indirect
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.5.4 // indirect
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
github.com/go-jose/go-jose/v4 v4.1.2 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-openapi/errors v0.20.2 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/strfmt v0.21.3 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
2022-03-01 16:52:48 -05:00
github.com/gofrs/uuid v4.0.0+incompatible // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v4 v4.5.2 // indirect
github.com/golang-jwt/jwt/v5 v5.3.0 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/gnostic-models v0.7.0 // indirect
github.com/google/go-github/v45 v45.2.0 // indirect
2021-10-08 15:54:13 -04:00
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/s2a-go v0.1.9 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect
go.mod: Use the new "tool" directive Previously the Go toolchain had no explicit support for "tools" and so we used the typical Go community workaround of adding "tools.go" files (two, for some reason) that existed only to trick the Go toolchain into considering the tools as dependencies we could track in go.mod. Go 1.24 introduced explicit support for tracking tools as part of go.mod, and the ability to run those using "go tool" instead of "go run", and so this commit switches us over to using that strategy for everything we were previously managing in tools.go. There are some intentional exceptions here: - The protobuf-compile script can't use "go tool" or "go run" because the tools in question are run only indirectly through protoc. However, we do still use the "tool" directive in go.mod to tell the Go toolchain that we depend on those tools, so that it'll track which versions we are currently using as part of go.mod. - Our golangci-lint Makefile target uses "go run" to run a specific version of golangci-lint. We _intentionally_ don't consider that tool to be a direct dependency of OpenTofu because it has a lot of indirect dependencies that would pollute our go.mod file. Therefore that continues to use "go run" after this commit. - Both of our tools.go files previously referred to github.com/nishanths/exhaustive , but nothing actually appears to be using that tool in the current OpenTofu tree, so it's no longer a dependency after this commit. All of the dependencies we have _only_ for tools are now classified as "indirect" in the go.mod file. This is the default behavior of the Go toolchain and appears to be motivated by making it clearer that these modules do not contribute anything to the runtime behavior of OpenTofu. This also corrected a historical oddity in our go.mod where for some reason the "indirect" dependencies had been split across two different "require" directives; they are now all grouped together in a single directive. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 14:01:32 -04:00
github.com/hashicorp/copywrite v0.16.3 // indirect
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
2021-10-08 15:54:13 -04:00
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
github.com/hashicorp/go-secure-stdlib/parseutil v0.2.0 // indirect
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
github.com/hashicorp/go-slug v0.16.8 // indirect
github.com/hashicorp/go-sockaddr v1.0.7 // indirect
github.com/hashicorp/golang-lru v0.5.4 // indirect
github.com/hashicorp/serf v0.10.1 // indirect
github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect
github.com/hashicorp/yamux v0.1.2 // indirect
github.com/henvic/httpretty v0.0.6 // indirect
github.com/huandu/xstrings v1.3.3 // indirect
github.com/imdario/mergo v0.3.13 // indirect
github.com/inconshreveable/mousetrap v1.0.1 // indirect
github.com/jedib0t/go-pretty v4.3.0+incompatible // indirect
github.com/jedib0t/go-pretty/v6 v6.4.4 // indirect
github.com/joho/godotenv v1.3.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
github.com/klauspost/compress v1.18.0 // indirect
github.com/knadh/koanf v1.5.0 // indirect
go.mod: Use the new "tool" directive Previously the Go toolchain had no explicit support for "tools" and so we used the typical Go community workaround of adding "tools.go" files (two, for some reason) that existed only to trick the Go toolchain into considering the tools as dependencies we could track in go.mod. Go 1.24 introduced explicit support for tracking tools as part of go.mod, and the ability to run those using "go tool" instead of "go run", and so this commit switches us over to using that strategy for everything we were previously managing in tools.go. There are some intentional exceptions here: - The protobuf-compile script can't use "go tool" or "go run" because the tools in question are run only indirectly through protoc. However, we do still use the "tool" directive in go.mod to tell the Go toolchain that we depend on those tools, so that it'll track which versions we are currently using as part of go.mod. - Our golangci-lint Makefile target uses "go run" to run a specific version of golangci-lint. We _intentionally_ don't consider that tool to be a direct dependency of OpenTofu because it has a lot of indirect dependencies that would pollute our go.mod file. Therefore that continues to use "go run" after this commit. - Both of our tools.go files previously referred to github.com/nishanths/exhaustive , but nothing actually appears to be using that tool in the current OpenTofu tree, so it's no longer a dependency after this commit. All of the dependencies we have _only_ for tools are now classified as "indirect" in the go.mod file. This is the default behavior of the Go toolchain and appears to be motivated by making it clearer that these modules do not contribute anything to the runtime behavior of OpenTofu. This also corrected a historical oddity in our go.mod where for some reason the "indirect" dependencies had been split across two different "require" directives; they are now all grouped together in a single directive. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 14:01:32 -04:00
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
2021-10-08 15:54:13 -04:00
github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-runewidth v0.0.13 // indirect
github.com/mergestat/timediff v0.0.3 // indirect
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
go.mod: Use the new "tool" directive Previously the Go toolchain had no explicit support for "tools" and so we used the typical Go community workaround of adding "tools.go" files (two, for some reason) that existed only to trick the Go toolchain into considering the tools as dependencies we could track in go.mod. Go 1.24 introduced explicit support for tracking tools as part of go.mod, and the ability to run those using "go tool" instead of "go run", and so this commit switches us over to using that strategy for everything we were previously managing in tools.go. There are some intentional exceptions here: - The protobuf-compile script can't use "go tool" or "go run" because the tools in question are run only indirectly through protoc. However, we do still use the "tool" directive in go.mod to tell the Go toolchain that we depend on those tools, so that it'll track which versions we are currently using as part of go.mod. - Our golangci-lint Makefile target uses "go run" to run a specific version of golangci-lint. We _intentionally_ don't consider that tool to be a direct dependency of OpenTofu because it has a lot of indirect dependencies that would pollute our go.mod file. Therefore that continues to use "go run" after this commit. - Both of our tools.go files previously referred to github.com/nishanths/exhaustive , but nothing actually appears to be using that tool in the current OpenTofu tree, so it's no longer a dependency after this commit. All of the dependencies we have _only_ for tools are now classified as "indirect" in the go.mod file. This is the default behavior of the Go toolchain and appears to be motivated by making it clearer that these modules do not contribute anything to the runtime behavior of OpenTofu. This also corrected a historical oddity in our go.mod where for some reason the "indirect" dependencies had been split across two different "require" directives; they are now all grouped together in a single directive. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 14:01:32 -04:00
github.com/mitchellh/gox v1.0.1 // indirect
2021-10-08 15:54:13 -04:00
github.com/mitchellh/iochan v1.0.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
2021-10-08 15:54:13 -04:00
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
2021-10-08 15:54:13 -04:00
github.com/mozillazg/go-httpheader v0.3.0 // indirect
github.com/muesli/termenv v0.12.0 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
2021-10-08 15:54:13 -04:00
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d // indirect
github.com/oklog/run v1.1.0 // indirect
github.com/oklog/ulid v1.3.1 // indirect
github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b // indirect
go.mod: Use the new "tool" directive Previously the Go toolchain had no explicit support for "tools" and so we used the typical Go community workaround of adding "tools.go" files (two, for some reason) that existed only to trick the Go toolchain into considering the tools as dependencies we could track in go.mod. Go 1.24 introduced explicit support for tracking tools as part of go.mod, and the ability to run those using "go tool" instead of "go run", and so this commit switches us over to using that strategy for everything we were previously managing in tools.go. There are some intentional exceptions here: - The protobuf-compile script can't use "go tool" or "go run" because the tools in question are run only indirectly through protoc. However, we do still use the "tool" directive in go.mod to tell the Go toolchain that we depend on those tools, so that it'll track which versions we are currently using as part of go.mod. - Our golangci-lint Makefile target uses "go run" to run a specific version of golangci-lint. We _intentionally_ don't consider that tool to be a direct dependency of OpenTofu because it has a lot of indirect dependencies that would pollute our go.mod file. Therefore that continues to use "go run" after this commit. - Both of our tools.go files previously referred to github.com/nishanths/exhaustive , but nothing actually appears to be using that tool in the current OpenTofu tree, so it's no longer a dependency after this commit. All of the dependencies we have _only_ for tools are now classified as "indirect" in the go.mod file. This is the default behavior of the Go toolchain and appears to be motivated by making it clearer that these modules do not contribute anything to the runtime behavior of OpenTofu. This also corrected a historical oddity in our go.mod where for some reason the "indirect" dependencies had been split across two different "require" directives; they are now all grouped together in a single directive. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 14:01:32 -04:00
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
github.com/prometheus/client_golang v1.23.0 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.65.0 // indirect
github.com/prometheus/otlptranslator v0.0.2 // indirect
github.com/prometheus/procfs v0.17.0 // indirect
github.com/rivo/uniseg v0.2.0 // indirect
github.com/ryanuber/go-glob v1.0.0 // indirect
github.com/samber/lo v1.37.0 // indirect
github.com/shopspring/decimal v1.3.1 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.6.1 // indirect
github.com/spf13/pflag v1.0.6 // indirect
github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect
github.com/stretchr/testify v1.11.1 // indirect
github.com/thanhpk/randstr v1.0.4 // indirect
github.com/thlib/go-timezone-local v0.0.0-20210907160436-ef149e42d28e // indirect
github.com/ulikunitz/xz v0.5.15 // indirect
github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/zeebo/errs v1.4.0 // indirect
go.mongodb.org/mongo-driver v1.11.6 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
go.opentelemetry.io/contrib/bridges/prometheus v0.63.0 // indirect
go.opentelemetry.io/contrib/detectors/gcp v1.36.0 // indirect
go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.63.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.60.0 // indirect
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0 // indirect
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 // indirect
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 // indirect
go.opentelemetry.io/otel/log v0.14.0 // indirect
go.opentelemetry.io/otel/metric v1.39.0 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
go.opentelemetry.io/otel/sdk/log v0.14.0 // indirect
go.opentelemetry.io/otel/sdk/metric v1.39.0 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
go.opentelemetry.io/proto/otlp v1.7.1 // indirect
go.yaml.in/yaml/v2 v2.4.2 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/exp v0.0.0-20250808145144-a408d31f581a // indirect
golang.org/x/exp/typeparams v0.0.0-20221208152030-732eee02a75a // indirect
golang.org/x/time v0.13.0 // indirect
golang.org/x/tools v0.40.0 // indirect
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
go.mod: go get go.opentelemetry.io/contrib/exporters/autoexport@v0.63.0 We were previously running a very old untagged commit of this module, and the code in this module has been rearranged a lot in the meantime making it hard to compare, but it seems like it's still implementing essentially the same main functionality for tracing setup, just now extended for more elaborate forms of the standard OpenTelemetry environment variables. Unfortunately, the purpose of this module is to make dynamic runtime decisions about exactly which transports to use and so this new version brings in many additional indirect dependencies than before, most of which are irrelevant for OpenTofu's current purposes because they related to the logging and tracing parts of OpenTelemetry, whereas OpenTofu currently focuses only on tracing. The logging and metrics part of OpenTelemetry were still very early and experimental at the time of the commit we previously depended on, and so it seems that the main upstream change here has been improved support for those other use-cases. Most of these new indirect dependencies are therefore unreachable at runtime by OpenTofu in practice. For OpenTofu's purposes the only significant new capability here is to set OTEL_TRACES_EXPORTER to "console" to write trace information to stdout, but that remains unreachable in OpenTofu in practice because we currently ignore that environment variable unless it is set to "otlp" exactly. We could consider supporting "console" in a future release, but this mode is questionable for OpenTofu because writing to stdout would interfere with OpenTofu's main UI or machine-readable output. We'll wait for another day to discuss the tradeoffs of that. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 19:28:04 -04:00
google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20251002232023-7c0ddcbb5797 // indirect
go.mod: Use the new "tool" directive Previously the Go toolchain had no explicit support for "tools" and so we used the typical Go community workaround of adding "tools.go" files (two, for some reason) that existed only to trick the Go toolchain into considering the tools as dependencies we could track in go.mod. Go 1.24 introduced explicit support for tracking tools as part of go.mod, and the ability to run those using "go tool" instead of "go run", and so this commit switches us over to using that strategy for everything we were previously managing in tools.go. There are some intentional exceptions here: - The protobuf-compile script can't use "go tool" or "go run" because the tools in question are run only indirectly through protoc. However, we do still use the "tool" directive in go.mod to tell the Go toolchain that we depend on those tools, so that it'll track which versions we are currently using as part of go.mod. - Our golangci-lint Makefile target uses "go run" to run a specific version of golangci-lint. We _intentionally_ don't consider that tool to be a direct dependency of OpenTofu because it has a lot of indirect dependencies that would pollute our go.mod file. Therefore that continues to use "go run" after this commit. - Both of our tools.go files previously referred to github.com/nishanths/exhaustive , but nothing actually appears to be using that tool in the current OpenTofu tree, so it's no longer a dependency after this commit. All of the dependencies we have _only_ for tools are now classified as "indirect" in the go.mod file. This is the default behavior of the Go toolchain and appears to be motivated by making it clearer that these modules do not contribute anything to the runtime behavior of OpenTofu. This also corrected a historical oddity in our go.mod where for some reason the "indirect" dependencies had been split across two different "require" directives; they are now all grouped together in a single directive. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 14:01:32 -04:00
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
go.mod: Use the new "tool" directive Previously the Go toolchain had no explicit support for "tools" and so we used the typical Go community workaround of adding "tools.go" files (two, for some reason) that existed only to trick the Go toolchain into considering the tools as dependencies we could track in go.mod. Go 1.24 introduced explicit support for tracking tools as part of go.mod, and the ability to run those using "go tool" instead of "go run", and so this commit switches us over to using that strategy for everything we were previously managing in tools.go. There are some intentional exceptions here: - The protobuf-compile script can't use "go tool" or "go run" because the tools in question are run only indirectly through protoc. However, we do still use the "tool" directive in go.mod to tell the Go toolchain that we depend on those tools, so that it'll track which versions we are currently using as part of go.mod. - Our golangci-lint Makefile target uses "go run" to run a specific version of golangci-lint. We _intentionally_ don't consider that tool to be a direct dependency of OpenTofu because it has a lot of indirect dependencies that would pollute our go.mod file. Therefore that continues to use "go run" after this commit. - Both of our tools.go files previously referred to github.com/nishanths/exhaustive , but nothing actually appears to be using that tool in the current OpenTofu tree, so it's no longer a dependency after this commit. All of the dependencies we have _only_ for tools are now classified as "indirect" in the go.mod file. This is the default behavior of the Go toolchain and appears to be motivated by making it clearer that these modules do not contribute anything to the runtime behavior of OpenTofu. This also corrected a historical oddity in our go.mod where for some reason the "indirect" dependencies had been split across two different "require" directives; they are now all grouped together in a single directive. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 14:01:32 -04:00
honnef.co/go/tools v0.4.2 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
)
replace github.com/hashicorp/hcl/v2 v2.20.1 => github.com/opentofu/hcl/v2 v2.20.2-0.20251021132045-587d123c2828
go.mod: Use the new "tool" directive Previously the Go toolchain had no explicit support for "tools" and so we used the typical Go community workaround of adding "tools.go" files (two, for some reason) that existed only to trick the Go toolchain into considering the tools as dependencies we could track in go.mod. Go 1.24 introduced explicit support for tracking tools as part of go.mod, and the ability to run those using "go tool" instead of "go run", and so this commit switches us over to using that strategy for everything we were previously managing in tools.go. There are some intentional exceptions here: - The protobuf-compile script can't use "go tool" or "go run" because the tools in question are run only indirectly through protoc. However, we do still use the "tool" directive in go.mod to tell the Go toolchain that we depend on those tools, so that it'll track which versions we are currently using as part of go.mod. - Our golangci-lint Makefile target uses "go run" to run a specific version of golangci-lint. We _intentionally_ don't consider that tool to be a direct dependency of OpenTofu because it has a lot of indirect dependencies that would pollute our go.mod file. Therefore that continues to use "go run" after this commit. - Both of our tools.go files previously referred to github.com/nishanths/exhaustive , but nothing actually appears to be using that tool in the current OpenTofu tree, so it's no longer a dependency after this commit. All of the dependencies we have _only_ for tools are now classified as "indirect" in the go.mod file. This is the default behavior of the Go toolchain and appears to be motivated by making it clearer that these modules do not contribute anything to the runtime behavior of OpenTofu. This also corrected a historical oddity in our go.mod where for some reason the "indirect" dependencies had been split across two different "require" directives; they are now all grouped together in a single directive. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 14:01:32 -04:00
tool (
github.com/hashicorp/copywrite
github.com/mitchellh/gox
github.com/opentofu/opentofu/cmd/tofu
github.com/opentofu/opentofu/tools/find-dep-upgrades
github.com/opentofu/opentofu/tools/loggraphdiff
github.com/opentofu/opentofu/tools/protobuf-compile
github.com/opentofu/opentofu/tools/selected-go-version
go.mod: Use the new "tool" directive Previously the Go toolchain had no explicit support for "tools" and so we used the typical Go community workaround of adding "tools.go" files (two, for some reason) that existed only to trick the Go toolchain into considering the tools as dependencies we could track in go.mod. Go 1.24 introduced explicit support for tracking tools as part of go.mod, and the ability to run those using "go tool" instead of "go run", and so this commit switches us over to using that strategy for everything we were previously managing in tools.go. There are some intentional exceptions here: - The protobuf-compile script can't use "go tool" or "go run" because the tools in question are run only indirectly through protoc. However, we do still use the "tool" directive in go.mod to tell the Go toolchain that we depend on those tools, so that it'll track which versions we are currently using as part of go.mod. - Our golangci-lint Makefile target uses "go run" to run a specific version of golangci-lint. We _intentionally_ don't consider that tool to be a direct dependency of OpenTofu because it has a lot of indirect dependencies that would pollute our go.mod file. Therefore that continues to use "go run" after this commit. - Both of our tools.go files previously referred to github.com/nishanths/exhaustive , but nothing actually appears to be using that tool in the current OpenTofu tree, so it's no longer a dependency after this commit. All of the dependencies we have _only_ for tools are now classified as "indirect" in the go.mod file. This is the default behavior of the Go toolchain and appears to be motivated by making it clearer that these modules do not contribute anything to the runtime behavior of OpenTofu. This also corrected a historical oddity in our go.mod where for some reason the "indirect" dependencies had been split across two different "require" directives; they are now all grouped together in a single directive. Signed-off-by: Martin Atkins <mart@degeneration.co.uk>
2025-10-09 14:01:32 -04:00
go.uber.org/mock/mockgen
golang.org/x/tools/cmd/stringer
google.golang.org/grpc/cmd/protoc-gen-go-grpc
google.golang.org/protobuf/cmd/protoc-gen-go
honnef.co/go/tools/cmd/staticcheck
)