Part of pulumi/pulumi-yaml#599.
Pulumi YAML uses the schema defined here to type check outputs from the
`pulumi:pulumi:StackReference` resource. This changes the type of
`outputs` from `map[string]string` to `map[string]any`, permitting list,
map, and numeric outputs to be used as inputs to other resources.
To release this fix, we will need to release Pulumi twice and YAML once
if we are to use our ordinary release process:
1. Merge this PR.
2. Release sdk and pkg dependencies with this update applied.
3. Merge https://github.com/pulumi/pulumi-yaml/pull/600
4. Create and merge a PR to update Pulumi YAML's dependency on
`github.com/pulumi/pkg/v3`, as YAML links to the schema loader and will
read the updated schema here:
7f48ca370d/pkg/codegen/schema/loader.go (L136-L140)
5. Release Pulumi YAML
6. Create and merge a PR to update the YAML language plugin shipped with
Pulumi
7. Release Pulumi
Migrates all remaining usages of
`contract.Assert*` and `contract.Require*` to the f variants,
which require adding meaningful error messages.
There were a couple cases where a `testing.T` or `testing.B`
was already available.
For those, this uses t.FailNow or require.NoError.
Refs #12132
This ensures the schema is fully validated by the spec parser, the old
schema wasn't even codegen-able because of various fields not being
linked up correctly.