pulumi/proto
Fraser Waters fa6c5b2451
Add LanguageInfo to conformance tests (#17315)
This allows a language test to add language specific options to all the
schemas it loads from the conformance test system. This applies to
schemas loaded in GeneratePackage but also GenerateProject.

This is part of fixing https://github.com/pulumi/pulumi/issues/17294
because it turns out that repros iff "inputTypes" is set to
"classes-and-dicts" but during program code generation, which the
current schema overload method we were using for setting toml loading
can't easily support.

This new way covers the toml use case, and can also be used for the
inputTypes scenario as well.
2024-09-20 10:34:17 +00:00
..
build-container Update node sdk to use typescript definitions for grpc and protobufs. (#14415) 2023-12-04 15:22:44 +00:00
google/protobuf Compile protobufs with "pulumi" namespace (#10074) 2022-07-12 14:45:03 +01:00
pulumi Add LanguageInfo to conformance tests (#17315) 2024-09-20 10:34:17 +00:00
.checksum.txt Add LanguageInfo to conformance tests (#17315) 2024-09-20 10:34:17 +00:00
README.md Generate reference documentation from Protobufs (#17120) 2024-08-30 17:04:16 +00:00
generate.sh Update node sdk to use typescript definitions for grpc and protobufs. (#14415) 2023-12-04 15:22:44 +00:00
grpc_version.txt Add getOrganization to nodejs and python (#10504) 2022-08-31 10:33:29 +01:00

README.md

Protobuf and gRPC interfaces

This package contains Protobuf definitions for the various types, messages and interfaces that Pulumi components use to communicate. These definitions serve as the source of truth for several parts of the wider codebase.

Code generation

:::{note} Code generated from Protobuf files is committed to the repository. If you change one or more .proto files, you should run make build_proto to regenerate the necessary stubs and commit the changes as part of the same piece of work. :::

The gh-file:pulumi#proto/generate.sh script in this directory (called by the build_proto target in the top-level gh-file:pulumi#Makefile) generates types and gRPC clients for the languages supported in this repository (Go, NodeJS/TypeScript and Python). Generated code is committed to the repository, typically in proto directories at the relevant use sites (e.g. gh-file:pulumi#sdk/nodejs/proto).

Documentation

We use the protoc-gen-doc plugin to protoc to generate Markdown documentation from the Protobuf files. This process is handled by the gh-file:pulumi#docs/Makefile in the docs directory and uses the gh-file:pulumi#docs/references/proto.md.tmpl template. Generated documentation ends up in the docs/_generated directory (which is .gitignored), so e.g. this index links to files in this folder.

Index

:::{toctree} :maxdepth: 1 :titlesonly:

/docs/_generated/proto/resource /docs/_generated/proto/provider /docs/_generated/proto/plugin /docs/_generated/proto/language /docs/_generated/proto/callback /docs/_generated/proto/loader /docs/_generated/proto/converter /docs/_generated/proto/analyzer /docs/_generated/proto/alias /docs/_generated/proto/engine /docs/_generated/proto/errors /docs/_generated/proto/source :::