Commit Graph

183 Commits

Author SHA1 Message Date
Pulumi Bot e4b764498d
Changelog and go.mod updates for v3.116.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-05-13 09:21:44 +00:00
Pulumi Bot f47458fbf8
Changelog and go.mod updates for v3.115.2 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-05-06 21:03:38 +00:00
Thomas Gummerer b072edb017
avoid showing repeated messages ()
Sometimes we show hundreds of repeated messages in the logs, e.g.
"waiting for quiescence; 3 outputs outstanding". This just makes the
logs harder to read. Since we need to wait for the test to finish before
any of this is shown anyway, only log each message once and show a
little blurb about how often the message has been repeated.

(Note that for simplicity if the last message is repeated we don't show
the same blurb, but that should be okay since the last messages we're
logging are always different.)

Based on https://github.com/pulumi/pulumi/pull/16117 where I noticed
this, and I didn't want to rebase it to avoid conflicts.
2024-05-06 13:20:06 +00:00
Pulumi Bot e8b62fa9b4
Changelog and go.mod updates for v3.115.1 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-05-06 11:45:43 +00:00
Thomas Gummerer 9b4c9dc57e
truncate debug log output in conformance tests ()
This debug log output can get way too long, and GitHub Actions logs
can't even display it anymore when there are test failures. Cut each
individual message short, with an escape hatch in case someone wants to
run with the full output locally.

I had a look at the test failure in
https://github.com/pulumi/pulumi/pull/16116 and it seems like it's still
having the same issue. Looking again at the test output it's actually
this t.Log that includes the registered resource outputs, that contains
the large amounts of data. I arbitrarily decided to make the cutoff 100
chars, but that could be adjusted.
2024-05-06 07:52:44 +00:00
Fraser Waters 3d4291e2f8
Fix folder archives in the engine ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes https://github.com/pulumi/pulumi/issues/16092.

Last part of the fix started in
https://github.com/pulumi/pulumi/pull/16100. That last PR fixed assets
and archive files, but not archive folders.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-05-06 07:26:48 +00:00
Will Jones 6f4cb73ba9
Sort `requirements.txt` files when generating Python code ()
A couple of our tests now generate multi-line `requirements.txt` whose
order is dependent on that in which we enumerate packages when testing.
This PR changes this so that we always sort them, meaning we can
consistently check against snapshotted results (as opposed to having
flaky tests that only pass when the generated order matches the one we
happened to snapshot last).

Fixes https://github.com/pulumi/pulumi/issues/16113
2024-05-03 15:07:56 +00:00
Pulumi Bot 11b7845500
Changelog and go.mod updates for v3.115.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-05-03 08:23:43 +00:00
Fraser Waters bb6b9c675a
Add asset/archive to conformance tests and fix engine working dir issues ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes https://github.com/pulumi/pulumi/issues/16092.

Two main changes in this PR. Firstly we add a test for assets/archives
to the conformance tests, and had to fix up some small issues in the
test runner to enable this (copying test data files, correcting project
directory layout, handling multi-word package names).

The other change is to fix the engine to respect the programs working
directory when serialising/deserialising assets and archives. It does
this by passing the programs working directory as a MarshalOption (n.b
this option is only really needed in the engine, program SDK doesn't
really need it because it doesn't change directories).

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-05-02 11:32:54 +00:00
Pulumi Bot 59efa58c01
Changelog and go.mod updates for v3.114.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-04-27 00:39:30 +00:00
Justin Van Patten 61c5b03dc7
Bump go modules ()
This is a replacement of https://github.com/pulumi/pulumi/pull/16043,
with an additional commit that includes the changes after running `make
tidy`.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-25 14:30:00 +00:00
Fraser Waters f1f4d223f4
Add large string conformance test ()
In the hopes of having a conformance test to trigger
https://github.com/pulumi/pulumi-dotnet/issues/249, this adds a
conformance test that has a provider send back a large (~100mb) string
which is then exported as a stack output.
2024-04-25 08:14:34 +00:00
Thomas Gummerer 4169755866
Implement up --continue-on-error ()
Similar to destroy --continue-on-error, this flag allows `pulumi up`
to continue if any errors are encountered.

Currently when we encounter an error while creating/updating a
resource, we cancel the context of the deployment executor, and thus
the deployment stops once the resources that are being processed in
parallel with the failed one finish being updated.

For --continue-on-error, we ignore these errors, and let the
deployment executor continue.  In order for the deployment executor to
exit eventually we also have to mark these steps as done, as the
deployment executor will otherwise just hang, and callers with open
channels waiting for it to finish/report back will hang indefinitely.

The errors in the step will still be reported back to the user by the
OnResourceStepPost callback.

Fixes https://github.com/pulumi/pulumi/issues/14515

---------

Co-authored-by: Fraser Waters <fraser@pulumi.com>
2024-04-22 11:12:45 +00:00
Pulumi Bot f4b76a901a
Changelog and go.mod updates for v3.113.3 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-04-19 20:00:12 +00:00
Thomas Gummerer ae8134f5ad
upgrade to latest version of golangci-lint ()
The version we currently have doesn't support Go 1.22 properly, so it
throws a bunch of warnings locally when trying to run it with the latest
Go version installed. Just running the latest version locally also
doesn't quite work, since it throws a bunch of errors from the
perfsprint linter, which seems to have gotten stricter.

Upgrade to the latest version of golangci-lint, and fix all the errors
we're getting from it. Mostly done via `perfsprint -fix`, with some
manual changes that `perfsprint -fix` wouldn't touch.
2024-04-19 06:20:33 +00:00
Pulumi Bot 30c343d6e2
Changelog and go.mod updates for v3.113.2 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-04-19 01:21:51 +00:00
Pulumi Bot 10e63ccb96
Changelog and go.mod updates for v3.113.1 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-04-18 13:07:23 +00:00
Fraser Waters 901c2f5e9c
Add StackReference conformance test ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes https://github.com/pulumi/pulumi/issues/15932.

This adds a conformance test that checks that StackReferences work.
Tests a plain string and a secret string output.

To support this test we add a new intrinsic `getOutput` that takes a
stack reference resource and a string and calls the
`get_output/getOutput/GetOutput` method on the stack reference resource
type.


## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [ ] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-04-16 11:13:25 +00:00
Pulumi Bot 4c67ab76f8
Changelog and go.mod updates for v3.113.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-04-16 00:06:35 +00:00
Thomas Gummerer fbfe3904a5
Upgrade gocloud.dev to 0.37 ()
Upgrade gocloud.dev to 0.37.  

Given what I found in
https://github.com/pulumi/pulumi/issues/15786#issuecomment-2051667094, I
don't believe this will help with this issue, but we should probably
upgrade this to the latest version anyway.

This should not be merged until
https://github.com/pulumi/pulumi/pull/15906 is also merged.
2024-04-15 07:47:29 +00:00
Thomas Gummerer 80f6ea9686
Add AWS access key to environment variables ()
This should make the AWS tests actually be run in CI instead of them
being skipped.

Fixes: https://github.com/pulumi/pulumi/issues/15908
2024-04-12 09:34:53 +00:00
Fraser Waters 9cd05b41b1
Add array conformance test ()
Add an array output test to the conformance suite. Similar to the other
basic output tests.
2024-04-10 16:00:24 +00:00
Fraser Waters 883f6b6ac9
Add negative number to the number output conformance test () 2024-04-06 12:31:58 +00:00
Fraser Waters 922823e9c8
Test string outputs in conformance tests ()
This adds a conformance test that we can generate programs that return
various strings as stack output values.
2024-03-29 14:24:29 +00:00
Fraser Waters 553f23cf5f
Add a conformance test for number outputs ()
This adds a conformance test that we can generate programs that return
various numbers as stack output values.
2024-03-29 12:12:31 +00:00
Pulumi Bot 28f098a660
Changelog and go.mod updates for v3.112.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-03-28 14:14:56 +00:00
Fraser Waters 19f67eb163
Add 'typechecker' option to python runtime ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Fixes https://github.com/pulumi/pulumi/issues/15724.

This adds a new runtime option to the python language host `typeChecker`
which can be set to either "mypy" or "pyright". If it's set the language
host will run the mypy/pyright module before running the program.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-03-28 10:41:22 +00:00
Zaid Ajaj 00b685606d
[docs] Implement Java constructor syntax examples ()
# Description

This PR implements Java constructor syntax examples, rendering them into
the docs. It upgrades pulumi-java to 0.10.0 which includes features from
https://github.com/pulumi/pulumi-java/pull/1338

It also updates contructor syntax generator to emit an unbound variable
for resource-typed properties. We use the name of the resource as the
name of the variable:
```typescript
const example = new Resource("name", { pet: randomPet })
````
where `pet` is a property that is typed as `random.RandomPet` so it gets
assigned the (unbound) variable called `randomPet`

Previously we would skip emitting any code for resource-typed
properties. I think this gives better docs even though it doesn't
compile

## Checklist

- [ ] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-03-28 00:03:58 +00:00
Ian Wahbe 41e38c9a27
Fix coming soon misrender ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

Fixes a render bug when `Coming soon!` is written.

Fixes https://github.com/pulumi/registry/issues/4202

## Checklist

- [X] I have run `make tidy` to update any new dependencies
- [X] I have run `make lint` to verify my code passes the lint check
  - [X] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [X] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [X] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-03-26 17:24:37 +00:00
Fraser Waters d45ac04b46
Make local dependencies absolute or relative paths ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

We need this for local dependencies in conformance tests for SDKs and
programs. Things like NodeJS just record the path as is in the
package.json put into the packed tgz, if a program then uses that tgz
via a relative path NodeJS doesn't re-resolve the relative relative
paths.
Making these absolute for conformance testing fixes that as all the
conformance tests do run in a stable folder location. We fix writing
that folder path to the snapshots using the new regex replace facility
added in https://github.com/pulumi/pulumi/pull/15747.


## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-03-25 10:27:56 +00:00
Fraser Waters 2366960ae5
Test both setup.py and pyproject.toml in python conformance tests ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->

Run python conformance tests with setup.py and pyproject.toml. This is
to ensure SDK generation and resolution works correctly for both project
styles.

Hopefully at some point we can deprecate and remove setup.py support,
and halve the number of tests needed to run here.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-03-22 21:33:14 +00:00
Fraser Waters 3043adeeb3
Add SupportPack to schemas to write out in the new style ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->


This adds a new flag to the schema metadata to tell codegen to use the
new proposed style of SDKs where we fill in versions and write go.mods
etc.

I've reworked pack to operate on packages assuming they're in this new
style. That is pack no longer has the responsibility to fill in any
version information.

This updates python and node codegen to write out SDKs in this new
style, and fixes their core libraries to still be buildable via pack.
There are two approaches to fixing those, I've chosen option 1 below but
could pretty easily rework for option 2.

1) Write the version information directly to the SDKs at the same time
as we edit the .version file. To simplify this I've added a new
'set-version.py' script that takes a version string an writes it to all
the relevant places (.version, package.json, etc).

2) Write "pack" in the language host to search up the directory tree for
the ".version" file and then fill in the version information as we we're
doing before with envvar tricks and copying and editing package.json.

I think 1 is simpler long term, but does force some amount of cleanup in
unrelated bits of the system right now (release makefiles need a small
edit). 2 is much more localised but keeps this complexity that
sdk/nodejs sdk/python aren't actually valid source modules.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-03-22 09:25:46 +00:00
Justin Van Patten 14babed82b
Bump google.golang.org/protobuf, golang.org/x/crypto, and github.com/moby/moby ()
Bumps google.golang.org/protobuf,
[golang.org/x/crypto](https://github.com/golang/crypto) and
[github.com/moby/moby](https://github.com/moby/moby).

Replaces  -- running the acceptance tests on that PR is having
problems

Fixes 

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-17 22:20:32 +00:00
Pulumi Bot c0257cc107
Changelog and go.mod updates for v3.111.1 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-03-16 10:30:59 +00:00
Pulumi Bot 507a8b26bd
Changelog and go.mod updates for v3.111.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-03-15 11:36:24 +00:00
Pulumi Bot 1f39f8aa57
Changelog and go.mod updates for v3.110.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-03-14 15:20:55 +00:00
Pulumi Bot d7c4025734
Changelog and go.mod updates for v3.109.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-03-07 22:24:05 +00:00
Thomas Gummerer 898a682ef6
Make sure non-targeted resources are not updated ()
When the `--target` option is used, resources that already exist in the
snapshot, but aren't directly targeted should not be updated at all.
Internally in the engine, this is done by turning them into a
`SameStep`, meaning no updates will actually be preformed, and we will
make it look like the resource stayed the same.

However, we currently still write the "new" state of the resource (e.g.
updated dependencies, inputs, etc.) into the snapshot. This is mostly
fine as long as the new dependencies already exist. If a dependency on a
resource is that doesn't already exist is added however this breaks.
Since the resource that's being depended on doesn't exist in the
snapshot and isn't targeted, we won't create it. At the same time we're
adding a dependency on that virtually non-existing resource, which makes
the snapshot invalid.

Since we're in `--target` mode, we should do what we promised the user,
and only update the targeted resources, nothing else. Introduce a new
`NonTargetedSameStep` here, which does exactly that. It's essentially
the same as a `SameStep`, but we always use the *old* state instead of
the new one when writing it out. Since the resource is not targeted,
this leaves it in the same state as before.

Fixes 
Fixes 
2024-03-05 07:49:11 +00:00
Justin Van Patten 4f2373cafd
Python: Fix determining plugins for old packages ()
The Python language host determines which Pulumi plugins are required by
the program by calling out to `python -m pip list -v -format json` to
get the list of installed packages. If a package contains a
`pulumi-plugin.json` file that indicates it is for a resource plugin,
then that package is considered a Pulumi package that has an associated
plugin.

As a fallback for older packages that do not have a `pulumi-plugin.json`
file, if the package name is prefixed with `pulumi-`, it is also
considered to have an associated Pulumi plugin.

However, this fallback no longer works when using recent versions of
setuptools because of a behavior change in v69.0.3 and later of
setuptools. Previously, underscores were replaced by dashes. So `python
-m pip list --format json` would return the name of the package as:

```
{"name": "pulumi-cloudinit", "version": "1.3.0"}
```

But now with setuptools v69.0.3 and later, it returns the name as
pulumi_cloudinit (with an underscore rather than dash):

```
{"name": "pulumi_cloudinit", "version": "1.3.0"}
```

The underscore in the name is now preserved and the name is no longer
prefixed with pulumi-, so the langhost no longer considers it to have an
associated Pulumi plugin.

This commit fixes the fallback to consider packages prefixed by either
`pulumi_` or `pulumi-` to be Pulumi packages.

Fixes 
2024-03-04 07:23:34 +00:00
Pulumi Bot 6d4049e639
Changelog and go.mod updates for v3.108.1 ()
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Justin Van Patten <jvp@justinvp.com>
2024-03-01 22:33:54 +00:00
Thomas Gummerer 31dbc79469
Allow multiple updates in a single conformance test ()
# Description

Currently conformance tests are one and done, meaning they simulate one
update, and that's it. However it's often useful to simulate multiple
steps, e.g. resources being created and later destroyed. This PR adds
support for just that, having multiple steps in each conformance test,
that all happen in the same stack.

Note that this will be much easier to review ignoring whitespace
changes, since a lot of code indentation changed.

---------

Co-authored-by: Fraser Waters <fraser@pulumi.com>
2024-03-01 12:20:12 +00:00
Justin Van Patten 91aa685304 chore: post-release go.mod and changelog updates for v3.108.0 2024-02-29 21:48:42 -08:00
Thomas Gummerer 661d28ff71
allow engine options to be passed in conformance tests ()
Often it's useful to be able to pass engine options in conformance
tests, e.g. to pass in a target. Allow doing so, only overriding the
Host since that's only known to the pulumi-test-language program.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-02-23 12:47:02 +00:00
Pulumi Bot e654626abf
Changelog and go.mod updates for v3.107.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-02-22 00:35:07 +00:00
Pulumi Bot def21b977e
Changelog and go.mod updates for v3.106.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-02-16 04:14:52 +00:00
Pulumi Bot 7d03ac7174
Changelog and go.mod updates for v3.105.0 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-02-08 08:59:28 +00:00
Fraser Waters 7e08c78f7a
Test GetDependencies and library versions in conformance testing ()
<!--- 
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->

# Description

<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->


This adds testing to the language conformance test command to check that
GetProgramDependencies returns the expected data.

## Checklist

- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
  - [x] I have formatted my code using `gofumpt`

<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!--- 
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-02-06 12:38:44 +00:00
Justin Van Patten cc631241b3
[sdkgen/python] Require Python >=3.8 ()
Python 3.7 is unsupported and has been end-of-life since 6/27/2023. See
https://devguide.python.org/versions/

The core `pulumi` Python SDK package is being updated to indicate that
Python 3.8 or greater is required (see ).

This change updates the default minimum required Python version for
generated provider SDKs to Python 3.8 or greater as well.

Fixes 
2024-02-04 19:07:53 +00:00
Pulumi Bot 3f376fe182
Changelog and go.mod updates for v3.104.2 ()
Co-authored-by: github-actions <github-actions@github.com>
2024-02-01 12:34:33 +00:00
Fraser Waters 7bb2a3c2ac
Auto-fix encrypted keys in the wrong format due to gocloud.dev upgrade regression ()
When attempting another gocloud.dev upgrade, some users ran into a
regression related to the format change of encrypted keys between
gocloud versions, which part of the system was not accounting for. This
PR addresses the issue and includes a fix that automatically fixes
forward state that has an encrypted key in the wrong format, and
includes a regression test and test for the auto-fix behavior.

Fixes 

Co-authored-by: Thomas Gummerer <t.gummerer@gmail.com>
2024-02-01 09:39:41 +00:00