pulumi/sdk
Luke Hoban c50e58f3e1 Avoid accidental mutation of transform arguments
The contract for `transformations` functions is that they should not modify the `props` and `opts` arguments, but should instead return a new `props` and/or `opts`. However, this isn't enforced, and if user code *does* mutate the objects passed in - this can lead to unexpected results.

With this change, we shallow clone the `props` and `opts` passed to user code to avoid these issues.  This is only a shllow clone, as the objects themselves are complex (and can have internal cycles).  This does still mean users could theoretically mutate state in an unsafe way - but the common case is still protected against.

Fixes #5318.
2020-12-09 09:58:50 -08:00
..
dotnet Bump Grpc NuGet packages to 2.34.0 (#5862) 2020-12-04 16:58:18 +01:00
go Re-apply #5857 (#5893) 2020-12-08 17:38:59 -08:00
nodejs Avoid accidental mutation of transform arguments 2020-12-09 09:58:50 -08:00
proto Add support for serialized resource references. (#5041) 2020-10-27 10:12:12 -07:00
python Avoid accidental mutation of transform arguments 2020-12-09 09:58:50 -08:00
README.md Updating .NET references 2020-04-27 12:42:11 -07:00
go.mod Add a python shim script to work around https://github.com/golang/go/issues/42919 2020-12-07 14:17:45 -08:00
go.sum Add a python shim script to work around https://github.com/golang/go/issues/42919 2020-12-07 14:17:45 -08:00

README.md

Pulumi Language SDKs

This directory contains the Pulumi SDKs for all supported languages.

Please see the respective READMEs for information about installing and using these libraries:

The language providers work by implementing gRPC interfaces defined in proto/.