By the way. Could @bflad or anyone else explain me how the registry recognizes possible packages from github artifacts? I mean, Goreleaser produces the following artifacts:
Are there any rules, constraints I need to respect? I foremost want to know, if someone needs to provide/support all architectures that are listed above to make the Terraform provider registry happy? Just for reference: .NET supports the following target runtimes: .NET Runtime Identifier (RID) catalog | Microsoft Learn
Are there any rules, constraints I need to respect? I foremost want to know, if someone needs to provide/support all architectures that are listed above to make the Terraform provider registry happy?
I really would like to know some details or context about this. Any chance @bflad, or someone else?
I do not believe the public Terraform Registry imposes minimum requirements for supported operating system and architectures on provider release ingest at this time, although I will say that a “base” set of these is likely expected by the ecosystem (in Go-based platform terms) due to their prevalence in Terraform development and execution environments:
darwin/amd64 (Intel-based macs, although diminishing over time)
darwin/arm64 (Apple silicon-based macs)
linux/amd64 (also the standard Terraform Cloud runner)
windows/amd64
Most of the provider ingress validation logic is around ensuring the trust chain (e.g. checksums and signature) is okay. The provider release asset filename checking/parsing is terraform-provider-<NAME>_<VERSION>_<OS>_<ARCH>.(.zip|.tar.gz). The checksum release asset must be terraform-provider-<NAME>_<VERSION>_SHA256SUMS, the signature release asset must be terraform-provider-<NAME>_<VERSION>_SHA256SUMS.sig, and the manifest release asset must be terraform-provider-<NAME>_<VERSION>_manifest.json.