Commit graph

6502 commits

Author SHA1 Message Date
Emiliza Gutierrez 083ea657c1
Updating version of pulumi sdk used to v3.14.0 (#8150) 2021-10-06 11:30:24 -07:00
Emiliza Gutierrez e5f7349576
Prepare for v3.14.0 release (#8149) 2021-10-06 11:15:50 -07:00
Anton Tayanovskyy 19a18e7b53
Bring back PR automatic outdated commit check pre-emption (#8145)
* Bring back PR automatic outdated commit check pre-emption

* Trigger a re-run
2021-10-06 13:35:38 -04:00
Liam White f545f56f1b
Turn off grpc info log in Provider (#7891)
Resolves https://github.com/pulumi/pulumi/issues/7156

Signed-off-by: Liam White <liam@tetrate.io>
2021-10-06 09:10:00 -07:00
Anton Tayanovskyy 5f9f38c9c9
Do not share maps so tests can run in parallel (#8136)
* Do not share maps so tests can run in parallel

* Fix comment

* Try not to break dependencies

* Address PR feedback

* Fix downstream compilation failure

* Fix lint

* Address PR feedback
2021-10-06 11:03:21 -04:00
Komal b6c6108edd
[sdk/python] - Python 3.10 compatibility (#8130) 2021-10-05 11:43:52 -07:00
Praneet Loke 13a0c8b2c5
[codegen/docs] Add Nomad to the docs gen title lookup (#8128) 2021-10-04 23:10:49 -07:00
alexander-minchin 43f73f2cc1
Fix typo in Output.apply docstring (#8133) 2021-10-04 18:06:43 -07:00
Anton Tayanovskyy 1ee85d8d2f
Fix 8110 (#8116)
* Add a test demonstrating the problem

* Fix the bug

* Accept changes over the example set

* Accept go changes

* Accept python codegen; avoid nil lang info panic

* Accept .NET changes, compile

* Accept docs changes

* Add changelog notes

* Fix lint

* Add parens sparingly

* Flatten unions

* PR feedback
2021-10-04 17:26:49 -04:00
Jeremy Dartigalongue 25f396bf49
Fix Go automation API --target / --replace args (#8109) 2021-10-04 11:55:23 -07:00
Anton Tayanovskyy 836b410911
Disable ConcurrentUpdateError test (#7953)
* Better logging from ConcurrentUpdateError test

* Disable the test
2021-10-04 13:31:31 -04:00
Alex Mullans 8208191795
Merge pull request #8119 from pulumi/infin8x/provider-names
Update gen.go
2021-10-04 07:52:56 -07:00
Pat Gavlin 4eec3b7e1b
[sdk/python] Add a smoke test for output deps (#8113)
Ensure that output property dependencies are deserialized and translated
properly.

Fixes #7444.

Co-authored-by: Justin Van Patten <jvp@justinvp.com>
2021-10-02 09:06:11 -07:00
Alex Mullans d31c769267
Update gen.go 2021-10-01 14:46:46 -07:00
Emiliza Gutierrez 33953c0a6b
Revert "Cancel checks on outdated PR commits (#8016)" (#8118)
This reverts commit a9c9853e85.
2021-10-01 14:31:51 -07:00
Justin Van Patten 230f4ee006
Support "lifting" single-valued method returns to their return type (#8111)
This change allows lifting single valued method returns rather than using an output structure.
2021-10-01 11:33:02 -07:00
Praneet Loke 8f89ab6e3a
[codegen/docs] Generate a package tree that can be serialized as JSON (#8102)
* Add an initialize func. Add a new func that generates the package tree
2021-09-30 17:35:44 -07:00
Pat Gavlin 5f9d211cae
[testing] Stack context for value generation (#8108)
These changes add a context type to `resource/testing` that can be used to
generate property values that are valid with respect to certain rules. The
context represents a Pulumi stack, and contains a project name, stack name,
and a list of resources.

- URNs generated using a context will always use the context's project
  and stack name
- Resource references generated using a context will always refer to
  resources in the context's resource list
- Output values generated using a context will always pull dependencies
  from the context's resource list
2021-09-30 14:39:09 -07:00
Anton Tayanovskyy 98ef06ecb8
Go codegen flag to disable fnOutput generation to save space (#8106) 2021-09-30 14:56:42 -04:00
Pat Gavlin 10816d6414 [developer-docs] Change some type system terms.
- Remove a reference to monads
- s/type constructor/type function/
2021-09-30 09:51:34 -07:00
Pat Gavlin f21eda521f
[codegen] Rename the PCL package. (#8103)
It's just confusing that PCL lives in a package named `hcl2`.
2021-09-29 20:11:56 -07:00
Vivek Lakshmanan 664f6eddbb
Merge pull request #8101 from pulumi/vl/Updatedocalias
Update doc alias
2021-09-29 17:06:54 -07:00
Praneet Loke 90be3930ad Fix typo in matrix ref 2021-09-29 16:12:58 -07:00
Praneet Loke 63febd8d94 Use setup-go@v2 for the docs generation PR workflow 2021-09-29 16:10:43 -07:00
Pat Gavlin e6d95a8aa9
[engine/test] Add a repro for #7786. (#8097)
This test is derived from a user-reported issue rooted in dependencies
on remote comoponents.
2021-09-29 16:05:45 -07:00
Pat Gavlin aeaeb1fbb9
[developer-docs] Add preliminary type system docs. (#8096)
Just what it says on the tin: add some initial documentation for the
abstract Pulumi type system. Over time, this documentation will be
fleshed out to describe the relationship between the abstract type
system and its wire representations, Pulumi package schemas, and
language SDK implementations.

Co-authored-by: Andrew Fitzgerald <131809+fitzoh@users.noreply.github.com>
Co-authored-by: Ian Wahbe <ian@wahbe.com>
2021-09-29 15:01:50 -07:00
Vivek Lakshmanan 4a3e00b86a Update doc alias 2021-09-29 13:33:27 -07:00
Ian Wahbe 9f6589ed8c
iwahbe/7802/compile program generator test output (#8036)
* Move program tests into folders

* update package schema

* Enabled tests pass

* Fix lints and begin to update test cases

* Re-enable tests

* Update aws version to v4

* Refactor language specific parts

* Hook up dotnet and nodejs

* Update tests from master

* SSOT for schema/version

* Name blocking errors. Leave tests in valid state

* Give each language its own folder

* Remove SkipCompile for azure-sa (bug was fixed)

* Fix nits + changes asserts to require

* Remove unused import

* One last assert => require
2021-09-29 11:33:57 -07:00
Paul Stack 09a8cc7079
[cli] Add the ability to control auto-refresh of stacks by Pulumi.yaml (#8071)
Co-authored-by: Komal Ali <komal@pulumi.com>
2021-09-29 12:43:48 +03:00
Komal 4dc9c4bf39
Check worktree is clean before releasing (#8093)
* Check worktree is clean before releasing
2021-09-28 16:55:16 -07:00
Ian Wahbe 9df8d3a028
Bold in-progress diffs diffrently (#7918)
* Initial take on coloring in-progress diffs

* Update CHANGELOG_PENDING.md

* Add high and low color levels

* Don't print functions

* Change colorprogress to bold

* Fix @komalali's nits.

* Restore background colors comment
2021-09-28 15:16:09 -07:00
Komal 4765f98d0c
Release cleanup (#8094) 2021-09-28 11:46:04 -07:00
Pat Gavlin 0a45f8d3ab
[codegen/go] Rewrite cyclic types. (#8049)
When computing the type name for a field of an object type, we must
ensure that we do not generate invalid recursive struct types. A struct
type T contains invalid recursion if the closure of its fields and its
struct-typed fields' fields includes a field of type T. A few examples:

Directly invalid:

    type T struct { Invalid T }

Indirectly invalid:

    type T struct { Invalid S }

    type S struct { Invalid T }

In order to avoid generating invalid struct types, we replace all
references to types involved in a cyclical definition with *T. The
examples above therefore become:

(1) type T struct { Valid *T }

(2) type T struct { Valid *S }

    type S struct { Valid *T }

We do this using a rewriter that turns all fields involved in reference
cycles into optional fields.

These changes also include an enhancement to the SDK codegen test
driver in the interest of making iterating and debugging more convenient:  if the -sdk.no-checks flag is passed, the driver will not run post-generation checks.
2021-09-28 07:33:14 -07:00
Justin Van Patten a182f103cf
Update pkg -> sdk dependency (#8088) 2021-09-27 23:05:36 -07:00
Justin Van Patten 6de2890046
Prepare for v3.13.2 release (#8087) 2021-09-27 22:56:31 -07:00
Justin Van Patten 472f14c992
Tidy pkg/go.sum (#8086) 2021-09-27 22:46:12 -07:00
Justin Van Patten ec8409bd4e
Update tests/go.mod (#8085) 2021-09-27 22:29:06 -07:00
Justin Van Patten 6f33762c32 Update pkg -> sdk dependency 2021-09-27 20:32:06 -07:00
Justin Van Patten 49e1b0c38c
Prepare for v3.13.1 release (#8083) 2021-09-27 20:28:42 -07:00
Justin Van Patten ea44ae3d0f
[sdk/go] Fix unmarshaling known output values in provider (#8082)
`ConstructInputs.CopyTo` can error when falling back to the old marshaling behavior when it's lacking an input type registration for a _known_ output value. In such cases, it tries to unmarshal a known output value, it can't unmarshal it because of a missing switch case. This change adds the missing case.
2021-09-27 18:46:30 -07:00
Josh Kodroff 6117cde94e
Merge pull request #8060 from pulumi/change-docker-build-action
Change Docker build to use Pulumi's fork of action-docker-build.
2021-09-27 15:47:10 -04:00
Justin Van Patten 9deb5ca0ec
[sdk/go] Marshal output values (#7958)
This change adds support for marshaling outputs as output values in the Go SDK.
2021-09-27 09:01:40 -07:00
Josh Kodroff e117e21b99 Change Docker build to use Pulumi's fork of action-docker-build. 2021-09-27 11:05:07 -04:00
Komal 74dfa83de5
[codegen/nodejs] - Fix provider enum with env var (#8051)
* Add failing test

* Fix

* PR feedback
2021-09-24 15:02:56 -07:00
Anton Tayanovskyy e14f74fbe7
Do report stdout and stderr in case of failure (#8055)
* Do report stdout and stderr in case of failure

* PR feedback
2021-09-24 15:25:30 -04:00
Justin Van Patten 3027d01f25
Enable output values by default (#8014)
* Enable output values by default

Enable output values by default in the resource monitor and change the polarity of the envvar from `PULUMI_ENABLE_OUTPUT_VALUES` to `PULUMI_DISABLE_OUTPUT_VALUES`.

* Marshal unknown as unknown string when `!KeepOutputValues`

Marshal all unknown output values as `resource.MakeComputed(resource.NewStringProperty(""))` when not keeping output values, which is consistent with what the SDKs do.

Otherwise, when `v.OutputValue().Element` is nil, `resource.MakeComputed(v.OutputValue().Element)` will be marshaled as a null value rather than as an unknown sentinel.

* Add MarshalOptions.DontSkipOutputs and use where needed

Before we expanded the meaning of `resource.Output`, `MarshalProperties` always skipped output values:

```go
if v.IsOutput() {
    logging.V(9).Infof("Skipping output property for RPC[%s]: %v", opts.Label, key)
}
```

As part of expanding the meaning of `resource.Output`, I'd adjusted `MarshalProperties` to only skip output values when the value was unknown and when not keeping output values:

```go
if v.IsOutput() && !v.OutputValue().Known && !opts.KeepOutputValues {
    logging.V(9).Infof("Skipping output property for RPC[%s]: %v", opts.Label, key)
}
```

However, this doesn't work the way we want when marshaling properties that include unknown output values to a provider that does not accept outputs. In that case, `opts.KeepOutputValues` will be `false` because we want the marshaler to fall back to returning non-output-values (e.g. unknown sentinel value for unknown output values), but instead of getting the intended fallback values, the unknown output values are skipped (not what we want).

I suspect we may be able to delete the output value skipping in `MarshalProperties` altogether (it's odd that it is skipping `resource.Output` but not `resource.Computed`), but to avoid any unintended side effects of doing that, instead, this commit introduces a new `MarshalOptions.DontSkipOutputs` option that can be set to `true` to opt-in to not skipping output values when marshaling. The check in `MarshalProperties` now looks like this:

```go
if !opts.DontSkipOutputs && v.IsOutput() && !v.OutputValue().Known {
    logging.V(9).Infof("Skipping output property for RPC[%s]: %v", opts.Label, key)
}
```

`opts.DontSkipOutputs` is set to `true` when marshaling properties for calls to a provider's `Construct` and `Call`.

* [sdk/nodejs] Deserialize output values

This commit adds support for deserializing output values, which is needed in some cases when serialized inputs are returned as outputs in the SDK.

* [sdk/python] Deserialize output values

This commit adds support for deserializing output values, which is needed in some cases when serialized inputs are returned as outputs in the SDK.
2021-09-24 08:57:04 -07:00
Justin Van Patten 1e09626bc7
[sdk/{nodejs,python}] Fix errors when testing remote components with mocks (#8053)
v3.13.0 introduces support for serializing outputs in inputs as special output value objects in the Node.js and Python SDKs when serializing inputs for remote components and method calls. This functionality is currently disabled by default in the engine (setting the `PULUMI_ENABLE_OUTPUT_VALUES` envvar to a truthy value enables it).

However, unit testing remote components with mocks results in errors being raised in v3.13.0, related to the new output value support. This is due to the mock monitor implementation saying it supports all features (which now includes output values), so the SDK serializers are serializing outputs as output values, which the mock monitor can't handle correctly.

This change addresses the issue by updating the mock monitor implementation in the Node.js and Python SDKs to indicate the specific features that are supported, excluding support for output values. New tests with mocks fail before the change and pass after.
2021-09-24 06:08:13 -07:00
Komal b8b6f3dd70
[codegen/go] - Resolve type name collisions (#7985) 2021-09-23 15:42:48 -07:00
Ian Wahbe d43b8984fd
iwahbe/turn on dotnet compile checks (#8044)
* Add dotnet tests back in

* Merge in new test results from master

* re-enable output-funcs code
2021-09-23 14:31:17 -07:00
Anton Tayanovskyy 3f6f9bc398
Fix build by accepting nodejs codegen output (#8045) 2021-09-23 15:59:48 -04:00