pulumi/pkg/codegen
Fraser Waters d00528918e
Add a conformance test for preserving map keys (#17350)
This adds a conformance test checking we can use map keys like "MY_KEY"
and maintain their casing through program gen. For Python we need to
simplify the type passed to genObjectConsExpression so that we can
reliably determine the target type and check if it's a `TypedDict` or
not, otherwise we might treat it as a plain object and preserve the
keys, instead of `PyName`ing them.

This deletes the "typeddict" test from the codegen tests. Firstly this
is now covered by these conformance tests, secondly it wasn't actually
valid because the schema it was testing against wasn't a valid schema,
and the program snapshot was only how it was because of a bug in
programgen.

That bug is now fixed in this change which fixes
https://github.com/pulumi/pulumi/issues/17294.

---------

Co-authored-by: Julien Poissonnier <julien@caffeine.lu>
2024-10-11 13:34:46 +00:00
..
cgstrings Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
convert Have `Host.Provider` accept a `PackageDescriptor` (#17244) 2024-09-12 13:17:30 +00:00
docs Enable some more linting rules (#17456) 2024-10-03 17:37:13 +00:00
dotnet Don't publish test code in `pkg/codegen` (#17517) 2024-10-09 11:09:54 +00:00
gen_program_test Don't publish test code in `pkg/codegen` (#17517) 2024-10-09 11:09:54 +00:00
go Don't publish test code in `pkg/codegen` (#17517) 2024-10-09 11:09:54 +00:00
hcl2 [go/conformance] Fix l2-resource-primitives test (#17332) 2024-09-26 05:15:38 +00:00
nodejs Don't publish test code in `pkg/codegen` (#17517) 2024-10-09 11:09:54 +00:00
pcl [pcl] Detect and error on binding component nodes that self-reference their source (#17538) 2024-10-11 12:45:16 +00:00
python Add a conformance test for preserving map keys (#17350) 2024-10-11 13:34:46 +00:00
report Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
schema Enable some more linting rules (#17456) 2024-10-03 17:37:13 +00:00
testing Add a conformance test for preserving map keys (#17350) 2024-10-11 13:34:46 +00:00
README.md Document code generation concepts (#17162) 2024-09-05 13:12:59 +00:00
docs.go Support "lifting" single-valued method returns to their return type (#8111) 2021-10-01 11:33:02 -07:00
docs_test.go ci: radical idea - what if slow tests & no stdout makes GH consider runner dead? 2022-03-06 14:52:13 -08:00
programs.md Document code generation concepts (#17162) 2024-09-05 13:12:59 +00:00
sdks.md Document code generation concepts (#17162) 2024-09-05 13:12:59 +00:00
utilities.go Use slice.Prealloc instead of make([]T, 0, ...) 2023-06-29 11:27:50 +01:00
utilities_test.go ci: radical idea - what if slow tests & no stdout makes GH consider runner dead? 2022-03-06 14:52:13 -08:00
utilities_types.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00

README.md

(codegen)= (crosscode)=

Code generation

Code generation is essential to Pulumi's ability to support both a variety of programming languages and a variety of cloud providers. This package defines the core components of Pulumi's code generation functionality (known as Pulumi CrossCode). At a high level, code generation is used to manage three categories of output: SDKs, programs, and documentation. At a lower level, these all make use of a number of shared concepts such as schema and Pulumi Configuration Language (PCL).

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

/pkg/codegen/sdks.md /pkg/codegen/programs.md /pkg/codegen/docs/README /pkg/codegen/schema/README /pkg/codegen/pcl/README :::