pulumi/sdk/go
Thomas Gummerer 73e073efc6
disallow OutputState to be deepcopied (#16690)
We have this deepcopy utility in our public API, but it does not work
properly on structs with unexported values. Make a note of that, and
also disallow OutputState from being copied, since OutputState has
required unexported fields that we can't deepcopy.

Not sure if we should special case `OutputState` here, which I've done
since that has come up in particular, or maybe even disallow
deepcopy'ing any values that have unexported fields? That would be a
breaking change though, so I've shied away from it for now.

Fixes https://github.com/pulumi/pulumi/issues/16634
2024-07-18 12:56:36 +00:00
..
auto Support `--remove` for `destroy` in the Go, NodeJS and Python Automation API SDKs (#16674) 2024-07-17 09:07:30 +00:00
common disallow OutputState to be deepcopied (#16690) 2024-07-18 12:56:36 +00:00
internal turn on the golangci-lint exhaustive linter (#15028) 2024-01-17 16:50:41 +00:00
property Property map keys are just strings (#15767) 2024-03-25 17:26:41 +00:00
pulumi name invoke transforms RegisterInvokeTransform in the Go SDK (#16691) 2024-07-18 07:37:16 +00:00
pulumi-language-go Enable the l1-empty test for Go (#16686) 2024-07-17 13:15:07 +00:00
pulumix Use EqualError/ErrorContains instead of Error (#14737) 2023-12-08 06:40:14 +00:00
Makefile make(sdk/go): Use -C instead of cd for 'go' commands (#13853) 2023-08-31 21:12:03 +00:00
README.md `pulumi update` => `pulumi up` (#2702) 2019-05-06 14:00:18 -07:00

README.md

Pulumi Golang SDK

This directory contains support for writing Pulumi programs in the Go language. There are two aspects to this:

  • pulumi/ contains the client language bindings Pulumi program's code directly against;
  • pulumi-language-go/ contains the language host plugin that the Pulumi engine uses to orchestrate updates.

To author a Pulumi program in Go, simply say so in your Pulumi.yaml

name: <my-project>
runtime: go

and ensure you have pulumi-language-go on your path (it is distributed in the Pulumi download automatically).

By default, the language plugin will use your project's name, <my-project>, as the executable that it loads. This too must be on your path for the language provider to load it when you run pulumi preview or pulumi up.