pulumi/sdk
Pat Gavlin 248f78bafe [sdk/*] Add support for resource source positions
Add support to the core SDKs for reporting resource source positions.

In each SDK, this is implemented by crawling the stack when a resource
is registered in order to determine the position of the user code that
registered the resource.

This is somewhat brittle in that it expects a call stack of the form:
- Resource class constructor
- abstract Resource subclass constructor
- concrete Resource subclass constructor
- user code

This stack reflects the expected class hierarchy of "cloud resource /
component resource < customresource/componentresource < resource".

For example, consider the AWS S3 Bucket resource. When user code
instantiates a Bucket, the stack will look like
this in NodeJS:

    new Resource (/path/to/resource.ts:123:45)
    new CustomResource (/path/to/resource.ts:678:90)
    new Bucket (/path/to/bucket.ts:987:65)
    <user code> (/path/to/index.ts:4:3)

In order to determine the source position, we locate the fourth frame
(the `<user code>` frame).
2023-07-13 16:46:04 -07:00
..
go [sdk/*] Add support for resource source positions 2023-07-13 16:46:04 -07:00
nodejs [sdk/*] Add support for resource source positions 2023-07-13 16:46:04 -07:00
proto/go [engine] Add support for source positions 2023-07-10 14:35:40 -07:00
python [sdk/*] Add support for resource source positions 2023-07-13 16:46:04 -07:00
README.md Cleanup sdk/README.md 2023-01-03 17:12:12 -05:00
go.mod deps(go): Upgrade to grpc 1.56.1 2023-07-06 09:04:16 -07:00
go.sum deps(go): Upgrade to grpc 1.56.1 2023-07-06 09:04:16 -07:00

README.md

Pulumi Language SDKs

This directory contains Pulumi SDKs for the following languages:

See the respective READMEs for information about installing and using these libraries.

The language providers work by implementing gRPC interfaces defined in the top level directory proto.