Update the go.mod files for pkg and the sdks to 1.21. We can't build on
1.20 anymore, as we use the `slices` package that was introduced in
1.21. We don't bump all the way to 1.22 to avoid breaking for no reason,
but we don't make any real guarantees about maintaining compatibility
with 1.21.
This change switches back to using the stdlib's `os/user` to get the
current user. We originally used `os/user` but moved to a drop-in
replacement (https://github.com/tweekmonster/luser) in #5065 which
worked better without `cgo` at the time. However,
https://github.com/tweekmonster/luser no longer appears to be maintained
and the stdlib's `os/user` has a pure Go implementation (which doesn't
require `cgo`) which has improved since then, so we should be able to
switch back to it now.
Commits:
1. Update the *.go files
2. Result of running `make tidy`
Fixes#17123
When using the `--use-language-version-tools` flag with `pulumi
install`, and `fnm` is installed, we look for `.nvmrc` and
`.node-version` files and install the requested version.
This is meant to be used within containers where we don’t run within a
shell. When running locally, fnm, nvm and similar tools manage the
nodejs version via their shell integration and ensure the correct
version is set.
pulumi-docker-containers makes use of this in
https://github.com/pulumi/pulumi-docker-containers/pull/253
The latest version of golangci-lint (1.60.3) flags a bunch of new issues
in our code base. This PR addresses part of them ahead of the upgrade.
* A dynamic string passed to printf style functions as first argument,
this can lead to bad `%` interpolations. The fix is typically to use
`"%s"` as first argument and pass the dynamic string as 2nd argument.
* Using `os.ModePerm` in tests instead of more restricted file
permissions. The fix is to use 0o600 for files, or 0o700 for
directories.
* Int conversion overflows. The fix has to be done case by case,
checking that no overflow can occur.
The condition had a single `=` in the string instead of a `==`.
This PR also ensures that stop scanning for errors when the process
ends, so we don’t wait for the scanning timeout in case the node process
crashes with another error.
Fixes https://github.com/pulumi/pulumi/issues/17040
While looking at https://github.com/pulumi/pulumi/issues/17040 I noticed
that the condition in the OOM detection was missing parentheses. This
could potentially make us call `close(o.waitChain)` twice, resulting in
a panic. In practice this does not happen because we only ever see at
most one of the two strings we are looking for.
Note that this does *not* fix
https://github.com/pulumi/pulumi/issues/17040
We have added `getOrganization` fucntions to all SDKs. So we can now
lift this into PCL. This is needed to support `pulumi.organization` in
YAML, so that convert from YAML can target PCL and other downstream
languages.
Part of https://github.com/pulumi/pulumi-yaml/issues/461.
---------
Co-authored-by: Fraser Waters <fraser@pulumi.com>
This takes https://github.com/pulumi/pulumi/pull/16392 and updates local
SDK generation for nodejs and adds parametrisation support for invokes
---------
Co-authored-by: Fraser Waters <fraser@pulumi.com>
Co-authored-by: Will Jones <will@sacharissa.co.uk>
This adds a new provider with just a couple of invokes and a single
resource, and two small projects that uses that invoke to fill in a
stack output.
The first just uses one of the invokes to fill stack outputs.
The second tests that output'y inputs work and that no arguments to the
invoke work.
Currently disabled for Go because it doesn't handle the multi-return
invoke expression in the stack output value context.
We don't need to search upwards for PolicyPack files, we already know
that there aren't any since we don't recurse into policy packs. The
directory traversal is plenty fast on Linux, however it is much slower
on Windows. Node modules often have fairly wide and deep directory
structures, so this can considerably slow down any Pulumi operation that
runs `GetRequiredPlugins`.
Fixes https://github.com/pulumi/pulumi/issues/16863
On an `was-typescript` example, we can see the impact with
`Measure-Command {start-process pulumi -argumentlist "about" -Wait}`,
which goes from 25 seconds to 2 seconds on an Azure Windows VM.
Provider internal state is now separated from provider user config. This
allows providers to use a config key like "pluginDownloadURL" which
previously would have conflicted with the engines internal state. It
also allows the engine to add new internal state fields without concern
for clashing with existing or future provider config keys.
"version" is maintained as a root level key because providers already
look at this field, and we use it in conformance tests. However it's
been fixed to be the package version, not the plugin version. That's the
same for normal providers, but for a parameterised provider it will be
the version of the parameterised package, not the base plugin version.
As part of this I've made schema more strict that a provider can't
define its own version field. This would have clashed with the use of
version to set the plugin version to download, and is better set by
users by using the version resource option.
Fixes https://github.com/pulumi/pulumi/issues/16757.
---------
Co-authored-by: Will Jones <will@sacharissa.co.uk>
Fixes#15410Fixes#13339
## Problem Context
When using `pulumi import` we generate code snippets for the resources
that were imported. Sometimes the user specifies `--parent
parentName=URN` or `--provider providerName=URN` which tweak the parent
or provider that the imported resources uses. When using `--parent` or
`--provider` the generated code emits a resource option `parent =
parentName` (in case of using `--parent`) where `parentName` is an
unbound variable.
Usually unbound variables would result in a _bind_ error such as `error:
undefined variable parentName` when type-checking the program however in
the import code generation we specify the bind option
`pcl.AllowMissingVariables` which turns that unbound variable errors
into warnings and code generation can continue to emit code.
This is all good and works as expected. However in the issues linked
above, we do get an _error_ for unbound variables in generated code even
though we specified `AllowMissingVariables`.
The problem as it turns out is when we are trying to generate code via
dynamically loaded `LangaugeRuntime` plugins. Specifically for NodeJS
and Python, we load `pulumi-language-nodejs` or `pulumi-language-python`
and call `GenerateProgram` to get the generated program. That function
`GenerateProgram` takes the text _SOURCE_ of the a bound program (one
that was bound using option `AllowMissingVariables`) and re-binds again
inside the implementation of the language plugin. The second time we
bind the program, we don't pass it the option `AllowMissingVariables`
and so it fails with `unboud variable` error.
I've verified that the issue above don't repro when doing an import for
dotnet (probably same for java/yaml) because we use the statically
linked function `codegen/{lang}/gen_program.go -> GenerateProgram`
## Solution
The problem can be solved by propagating the bind options from the CLI
to the language hosts during import so that they know how to bind the
program. I've extended the gRPC interface in `GenerateProgramRequest`
with a property `Strict` which follows the same logic from `pulumi
convert --strict` and made it such that the import command sends
`strict=false` to the language plugins when doing `GenerateProgram`.
This is consistent with `GenerateProject` that uses the same flag. When
`strict=false` we use `pcl.NonStrictBindOptions()` which includes
`AllowMissingVariables` .
## Repro
Once can test the before and after behaviour by running `pulumi up
--yes` on the following TypeScript program:
```ts
import * as pulumi from "@pulumi/pulumi";
import * as random from "@pulumi/random";
export class MyComponent extends pulumi.ComponentResource {
public readonly randomPetId: pulumi.Output<string>;
constructor(name: string, opts?: pulumi.ComponentResourceOptions) {
super("example:index:MyComponent", name, {}, opts);
const randomPet = new random.RandomPet("randomPet", {}, {
parent: this
});
this.randomPetId = randomPet.id;
this.registerOutputs({
randomPetId: randomPet.id,
});
}
}
const example = new MyComponent("example");
export const randomPetId = example.randomPetId;
```
Then running `pulumi import -f import.json` where `import.json` contains
a resource to be imported under the created component (stack=`dev`,
project=`importerrors`)
```ts
{
"nameTable": {
"parentComponent": "urn:pulumi:dev::importerrors::example:index:MyComponent::example"
},
"resources": [
{
"type": "random:index/randomPassword:RandomPassword",
"name": "randomPassword",
"id": "supersecret",
"parent": "parentComponent"
}
]
}
```
Running this locally I get the following generated code (which
previously failed to generate)
```ts
import * as pulumi from "@pulumi/pulumi";
import * as random from "@pulumi/random";
const randomPassword = new random.RandomPassword("randomPassword", {
length: 11,
lower: true,
number: true,
numeric: true,
special: true,
upper: true,
}, {
parent: parentComponent,
});
```
Some tests were writing directly to os.Stdout, causing noise for other
tests. For `TestRunWithOutputDoesNotMissData` we don't need to write
anything, we only need a slow writer. For `TestNonblockingStdout` we
need to more carefully emulate the behaviour seen with os.Stdout.
We can do this using a named pipe initially opened from Go without
O_NONBLOCK. This ensures that Go thinks this file descriptor is blocking
and does not add the file to its internal poller that handles
non-blocking IO. As previously, we then trick Go by changing the file to
be non-blocking behind its back and trigger the bug.
---------
Co-authored-by: Fraser Waters <fraser@pulumi.com>
The typical nodejs OOM messages are sometimes obscured by our use of the
debugger API, making this hard to diagnose. Provide an actionable error
message when we detect a normal or obscured OOM crash.
Fixes https://github.com/pulumi/pulumi/issues/16596
We already had the "simple" provider test that just checked we could
make a resource with a single simple bool field. This adds a new
"primitive' provider and checks we can send strings, numbers, integers,
arrays and maps from the program.
We run a short script with nodejs to find the path to the nodejs SDK
entrypoint. In https://github.com/pulumi/pulumi/pull/16160 this script
was changed and used newlines.
This broke when using the Volta package manager to manage different
nodejs versions. Volta adds shim programs into the user's path that
routes to the correct nodejs executable. Seemingly Volta does not handle
the newlines in the arguments.
To fix this, we ensure that the script is on a single line.
Fixes https://github.com/pulumi/pulumi/issues/16393
We've recently introduced resource transforms, which allow users to
update any resource options and properties for the duration of a program
using a callback. We want to introduce similar functionality for Invokes
(and eventually also StreamInvokes, Read and Calls). This can help users
e.g. set default providers through transforms consistently for all
components.
While this PR only implements the engine parts of invoke transforms, the
API for this will look very similar to what the API for resource
transforms looks like. For example in TypeScript:
```
pulumi.runtime.registerInvokeTransform(args => {
[...]
});
```
---------
Co-authored-by: Will Jones <will@sacharissa.co.uk>
For nodejs we look at the node_modules of all child directories of the
root path to find the required plugins. When a policy pack is nested
within a pulumi project, we were including its dependencies in the list
of required plugins. To avoid this, we stop recursing once we see a
directory that has a PulumiPolicy.yaml.
Fixes https://github.com/pulumi/pulumi/issues/16604
Conformance tests allow us to test functionality regardless of
programming language used, by setting up a test program using PCL and
making assertions about program state before and after various
operations. This commit adds a set of conformance tests for remote
assets (that is, assets that must be retrieved from some URI), which
have until now been untested in this regard.
Noticed this issue while doing SDK gen for parameterised providers, but
figured it deserved its own conformance test. Check that if a provider
has a pre-release semver that the _exact_ version can be reported by the
generated SDK. This already just works for NodeJS, but Python needed a
fix to write the version to `_utilities.py` rather than trying to
unconvert the pypi version from the package.
Also needed to make the conformance test checks for
`GetProgramDependencies` even weaker (which is fine, they are just a
very basic sanity check) because the provider reports a version of
"3.0.0-alpha.1.internal" while the python version is "3.0.0a1+internal".
When the dependency installation fails because we could not find the
packagemanager executable, tell the user how to remedy the error and
finish the dependency installation.
Example:
```
The packagemangager to use for installing dependencies pnpm
Installing dependencies...
error: installing dependencies failed: Could not find `pnpm` executable.
Install pnpm from https://pnpm.io/installation and make sure it is in your PATH.
Run `pulumi install` to complete the installation.
```
Bumps the go_modules group with 1 update in the /pkg directory:
[github.com/hashicorp/go-retryablehttp](https://github.com/hashicorp/go-retryablehttp).
Bumps the go_modules group with 1 update in the /tests directory:
[github.com/hashicorp/go-retryablehttp](https://github.com/hashicorp/go-retryablehttp).
Updates `github.com/hashicorp/go-retryablehttp` from 0.7.5 to 0.7.7
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/go-retryablehttp/blob/main/CHANGELOG.md">github.com/hashicorp/go-retryablehttp's
changelog</a>.</em></p>
<blockquote>
<h2>0.7.7 (May 30, 2024)</h2>
<p>BUG FIXES:</p>
<ul>
<li>client: avoid potentially leaking URL-embedded basic authentication
credentials in logs (<a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/158">#158</a>)</li>
</ul>
<h2>0.7.6 (May 9, 2024)</h2>
<p>ENHANCEMENTS:</p>
<ul>
<li>client: support a <code>RetryPrepare</code> function for modifying
the request before retrying (<a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/216">#216</a>)</li>
<li>client: support HTTP-date values for <code>Retry-After</code> header
value (<a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/138">#138</a>)</li>
<li>client: avoid reading entire body when the body is a
<code>*bytes.Reader</code> (<a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/197">#197</a>)</li>
</ul>
<p>BUG FIXES:</p>
<ul>
<li>client: fix a broken check for invalid server certificate in go
1.20+ (<a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/210">#210</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1542b31176"><code>1542b31</code></a>
v0.7.7</li>
<li><a
href="defb9f441d"><code>defb9f4</code></a>
v0.7.7</li>
<li><a
href="a99f07beb3"><code>a99f07b</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/158">#158</a>
from dany74q/danny/redacted-url-in-logs</li>
<li><a
href="8a28c574da"><code>8a28c57</code></a>
Merge branch 'main' into danny/redacted-url-in-logs</li>
<li><a
href="86e852df43"><code>86e852d</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/227">#227</a>
from hashicorp/dependabot/github_actions/actions/chec...</li>
<li><a
href="47fe99e646"><code>47fe99e</code></a>
Bump actions/checkout from 4.1.5 to 4.1.6</li>
<li><a
href="490fc06be0"><code>490fc06</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/226">#226</a>
from testwill/ioutil</li>
<li><a
href="f3e9417dbf"><code>f3e9417</code></a>
chore: remove refs to deprecated io/ioutil</li>
<li><a
href="d969eaa9c9"><code>d969eaa</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/225">#225</a>
from hashicorp/manicminer-patch-2</li>
<li><a
href="2ad8ed4a1d"><code>2ad8ed4</code></a>
v0.7.6</li>
<li>Additional commits viewable in <a
href="https://github.com/hashicorp/go-retryablehttp/compare/v0.7.5...v0.7.7">compare
view</a></li>
</ul>
</details>
<br />
Updates `github.com/hashicorp/go-retryablehttp` from 0.7.5 to 0.7.7
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/go-retryablehttp/blob/main/CHANGELOG.md">github.com/hashicorp/go-retryablehttp's
changelog</a>.</em></p>
<blockquote>
<h2>0.7.7 (May 30, 2024)</h2>
<p>BUG FIXES:</p>
<ul>
<li>client: avoid potentially leaking URL-embedded basic authentication
credentials in logs (<a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/158">#158</a>)</li>
</ul>
<h2>0.7.6 (May 9, 2024)</h2>
<p>ENHANCEMENTS:</p>
<ul>
<li>client: support a <code>RetryPrepare</code> function for modifying
the request before retrying (<a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/216">#216</a>)</li>
<li>client: support HTTP-date values for <code>Retry-After</code> header
value (<a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/138">#138</a>)</li>
<li>client: avoid reading entire body when the body is a
<code>*bytes.Reader</code> (<a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/197">#197</a>)</li>
</ul>
<p>BUG FIXES:</p>
<ul>
<li>client: fix a broken check for invalid server certificate in go
1.20+ (<a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/210">#210</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1542b31176"><code>1542b31</code></a>
v0.7.7</li>
<li><a
href="defb9f441d"><code>defb9f4</code></a>
v0.7.7</li>
<li><a
href="a99f07beb3"><code>a99f07b</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/158">#158</a>
from dany74q/danny/redacted-url-in-logs</li>
<li><a
href="8a28c574da"><code>8a28c57</code></a>
Merge branch 'main' into danny/redacted-url-in-logs</li>
<li><a
href="86e852df43"><code>86e852d</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/227">#227</a>
from hashicorp/dependabot/github_actions/actions/chec...</li>
<li><a
href="47fe99e646"><code>47fe99e</code></a>
Bump actions/checkout from 4.1.5 to 4.1.6</li>
<li><a
href="490fc06be0"><code>490fc06</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/226">#226</a>
from testwill/ioutil</li>
<li><a
href="f3e9417dbf"><code>f3e9417</code></a>
chore: remove refs to deprecated io/ioutil</li>
<li><a
href="d969eaa9c9"><code>d969eaa</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-retryablehttp/issues/225">#225</a>
from hashicorp/manicminer-patch-2</li>
<li><a
href="2ad8ed4a1d"><code>2ad8ed4</code></a>
v0.7.6</li>
<li>Additional commits viewable in <a
href="https://github.com/hashicorp/go-retryablehttp/compare/v0.7.5...v0.7.7">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/pulumi/pulumi/network/alerts).
</details>
Co-authored-by: Will Jones <will@sacharissa.co.uk>
A few weeks ago we added the concept of package references, mostly for
parametrised providers so that we wouldn't have to send the parameter
value over and over for each `RegisterResourceRequest`. This was done by
sending the package reference through the `provider` field.
Nothing yet uses this feature (it hasn't yet been added to any language
SDKs), and thinking over this the last week I realised there was an
issue using this for extension packages.
When using an extension provider it's valid to also specify an explicit
provider, which will be using the `provider` field. At this point
there's no where for the SDK to send extra information to the engine
about the parameterisation.
This is a small reworking of this idea to use a separate `package`
field, so that even for an extension type we can specify the
parameterised package it comes from and an explicit provider for it.
https://github.com/pulumi/pulumi/pull/16346 introduced the capability to
query the language runtime for additional prompts. We use this to let
the user pick a package manager among npm, yarn and pnpm during `pulumi
new` when using the nodejs runtime.
When there is no explicitly configured package manager, we re-use the
previous behaviour for determining the package manager (check
`PULUMI_PREFER_YARN` env variable, look for lock files).
Defaults to `npm` when running `new` in non-interactive mode.
<!---
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
The gedex/inflector (singularization/pluralization) library has been
seemingly abandoned: still no go module support, no changes in years,
etc. It was decided that we want to fork it and maintain ourselves to
ensure both a) stability and backwards compatibility b) modernization
and quality.
This PR switches the inflector library. The next step will be TF bridge.
There are no functional changes in behavior - the library code is
exactly the same.
## 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. -->
- [ ] 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. -->
Bumps the go_modules group with 1 update in the /pkg directory:
[github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go).
Bumps the go_modules group with 1 update in the /tests directory:
[github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go).
Updates `github.com/Azure/azure-sdk-for-go/sdk/azidentity` from 1.5.1 to
1.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Azure/azure-sdk-for-go/releases">github.com/Azure/azure-sdk-for-go/sdk/azidentity's
releases</a>.</em></p>
<blockquote>
<h2>sdk/internal/v1.6.0</h2>
<h2>1.6.0 (2024-04-16)</h2>
<h3>Features Added</h3>
<ul>
<li>Options types for <code>SetBodilessMatcher</code> and
<code>SetDefaultMatcher</code> now embed
<code>RecordingOptions</code></li>
<li>Added a collection of default sanitizers for test recordings</li>
</ul>
<h2>sdk/azidentity/v1.6.0</h2>
<h2>1.6.0 (2024-06-10)</h2>
<h3>Features Added</h3>
<ul>
<li><code>NewOnBehalfOfCredentialWithClientAssertions</code> creates an
on-behalf-of credential
that authenticates with client assertions such as federated
credentials</li>
</ul>
<h3>Breaking Changes</h3>
<blockquote>
<p>These changes affect only code written against a beta version such as
v1.6.0-beta.4</p>
</blockquote>
<ul>
<li>Removed <code>AzurePipelinesCredential</code> and the persistent
token caching API.
They will return in v1.7.0-beta.1</li>
</ul>
<h3>Bugs Fixed</h3>
<ul>
<li>Managed identity bug fixes</li>
</ul>
<h2>sdk/azidentity/v1.6.0-beta.4</h2>
<h2>1.6.0-beta.4 (2024-05-14)</h2>
<h3>Features Added</h3>
<ul>
<li><code>AzurePipelinesCredential</code> authenticates an Azure
Pipeline service connection with
workload identity federation</li>
</ul>
<h2>sdk/azidentity/v1.6.0-beta.3</h2>
<h2>1.6.0-beta.3 (2024-04-09)</h2>
<h3>Breaking Changes</h3>
<ul>
<li><code>DefaultAzureCredential</code> now sends a probe request with
no retries for IMDS managed identity
environments to avoid excessive retry delays when the IMDS endpoint is
not available. This
should improve credential chain resolution for local development
scenarios.</li>
</ul>
<h3>Bugs Fixed</h3>
<ul>
<li><code>ManagedIdentityCredential</code> now specifies resource IDs
correctly for Azure Container Instances</li>
</ul>
<h2>sdk/azidentity/v1.5.2</h2>
<h2>1.5.2 (2024-04-09)</h2>
<h3>Bugs Fixed</h3>
<ul>
<li><code>ManagedIdentityCredential</code> now specifies resource IDs
correctly for Azure Container Instances</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>Restored v1.4.0 error behavior for empty tenant IDs</li>
<li>Upgraded dependencies</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="36f766d2fe"><code>36f766d</code></a>
add sdk/resourcemanager/cosmos/armcosmos live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20705">#20705</a>)</li>
<li><a
href="c005ed6159"><code>c005ed6</code></a>
sdk/resourcemanager/network/armnetwork live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20331">#20331</a>)</li>
<li><a
href="5fa7df4852"><code>5fa7df4</code></a>
add sdk/resourcemanager/compute/armcompute live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20048">#20048</a>)</li>
<li><a
href="0d22aeddaa"><code>0d22aed</code></a>
add sdk/resourcemanager/eventhub/armeventhub live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20686">#20686</a>)</li>
<li><a
href="2a8d96d355"><code>2a8d96d</code></a>
add sdk/resourcemanager/postgresql/armpostgresql live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20685">#20685</a>)</li>
<li><a
href="b2cddab175"><code>b2cddab</code></a>
[Release] sdk/resourcemanager/paloaltonetworksngfw/armpanngfw/0.1.0 (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20437">#20437</a>)</li>
<li><a
href="ed7f3c719e"><code>ed7f3c7</code></a>
Fix azidentity troubleshooting guide link (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20736">#20736</a>)</li>
<li><a
href="6dfd0cbd7c"><code>6dfd0cb</code></a>
[azeventhubs] Fixing checkpoint store race condition (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20727">#20727</a>)</li>
<li><a
href="745d967e27"><code>745d967</code></a>
pass along the artifact name so we can override it later (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20732">#20732</a>)</li>
<li><a
href="20b4dd8c3e"><code>20b4dd8</code></a>
Update changelog with latest features (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20730">#20730</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Azure/azure-sdk-for-go/compare/sdk/internal/v1.5.1...sdk/azcore/v1.6.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `github.com/Azure/azure-sdk-for-go/sdk/azidentity` from 1.5.1 to
1.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Azure/azure-sdk-for-go/releases">github.com/Azure/azure-sdk-for-go/sdk/azidentity's
releases</a>.</em></p>
<blockquote>
<h2>sdk/internal/v1.6.0</h2>
<h2>1.6.0 (2024-04-16)</h2>
<h3>Features Added</h3>
<ul>
<li>Options types for <code>SetBodilessMatcher</code> and
<code>SetDefaultMatcher</code> now embed
<code>RecordingOptions</code></li>
<li>Added a collection of default sanitizers for test recordings</li>
</ul>
<h2>sdk/azidentity/v1.6.0</h2>
<h2>1.6.0 (2024-06-10)</h2>
<h3>Features Added</h3>
<ul>
<li><code>NewOnBehalfOfCredentialWithClientAssertions</code> creates an
on-behalf-of credential
that authenticates with client assertions such as federated
credentials</li>
</ul>
<h3>Breaking Changes</h3>
<blockquote>
<p>These changes affect only code written against a beta version such as
v1.6.0-beta.4</p>
</blockquote>
<ul>
<li>Removed <code>AzurePipelinesCredential</code> and the persistent
token caching API.
They will return in v1.7.0-beta.1</li>
</ul>
<h3>Bugs Fixed</h3>
<ul>
<li>Managed identity bug fixes</li>
</ul>
<h2>sdk/azidentity/v1.6.0-beta.4</h2>
<h2>1.6.0-beta.4 (2024-05-14)</h2>
<h3>Features Added</h3>
<ul>
<li><code>AzurePipelinesCredential</code> authenticates an Azure
Pipeline service connection with
workload identity federation</li>
</ul>
<h2>sdk/azidentity/v1.6.0-beta.3</h2>
<h2>1.6.0-beta.3 (2024-04-09)</h2>
<h3>Breaking Changes</h3>
<ul>
<li><code>DefaultAzureCredential</code> now sends a probe request with
no retries for IMDS managed identity
environments to avoid excessive retry delays when the IMDS endpoint is
not available. This
should improve credential chain resolution for local development
scenarios.</li>
</ul>
<h3>Bugs Fixed</h3>
<ul>
<li><code>ManagedIdentityCredential</code> now specifies resource IDs
correctly for Azure Container Instances</li>
</ul>
<h2>sdk/azidentity/v1.5.2</h2>
<h2>1.5.2 (2024-04-09)</h2>
<h3>Bugs Fixed</h3>
<ul>
<li><code>ManagedIdentityCredential</code> now specifies resource IDs
correctly for Azure Container Instances</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>Restored v1.4.0 error behavior for empty tenant IDs</li>
<li>Upgraded dependencies</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="36f766d2fe"><code>36f766d</code></a>
add sdk/resourcemanager/cosmos/armcosmos live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20705">#20705</a>)</li>
<li><a
href="c005ed6159"><code>c005ed6</code></a>
sdk/resourcemanager/network/armnetwork live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20331">#20331</a>)</li>
<li><a
href="5fa7df4852"><code>5fa7df4</code></a>
add sdk/resourcemanager/compute/armcompute live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20048">#20048</a>)</li>
<li><a
href="0d22aeddaa"><code>0d22aed</code></a>
add sdk/resourcemanager/eventhub/armeventhub live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20686">#20686</a>)</li>
<li><a
href="2a8d96d355"><code>2a8d96d</code></a>
add sdk/resourcemanager/postgresql/armpostgresql live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20685">#20685</a>)</li>
<li><a
href="b2cddab175"><code>b2cddab</code></a>
[Release] sdk/resourcemanager/paloaltonetworksngfw/armpanngfw/0.1.0 (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20437">#20437</a>)</li>
<li><a
href="ed7f3c719e"><code>ed7f3c7</code></a>
Fix azidentity troubleshooting guide link (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20736">#20736</a>)</li>
<li><a
href="6dfd0cbd7c"><code>6dfd0cb</code></a>
[azeventhubs] Fixing checkpoint store race condition (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20727">#20727</a>)</li>
<li><a
href="745d967e27"><code>745d967</code></a>
pass along the artifact name so we can override it later (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20732">#20732</a>)</li>
<li><a
href="20b4dd8c3e"><code>20b4dd8</code></a>
Update changelog with latest features (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/20730">#20730</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Azure/azure-sdk-for-go/compare/sdk/internal/v1.5.1...sdk/azcore/v1.6.0">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/pulumi/pulumi/network/alerts).
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Van Patten <jvp@justinvp.com>
# Description
Fixes https://github.com/pulumi/pulumi/issues/16309
During `pulumi new` we query the language runtime using the new
`RuntimeOptionsPrompts` RPC call to get additional prompts to ask the
user.
<img width="900" alt="Screenshot 2024-06-07 at 14 28 58"
src="https://github.com/pulumi/pulumi/assets/387068/e68ef702-978b-47f7-9d4b-afdf10409ed8">
## 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`
<!-- av pr metadata
This information is embedded by the av CLI when creating PRs to track
the status of stacks when using Aviator. Please do not delete or edit
this section of the PR.
```
{"parent":"master","parentHead":"","trunk":"master"}
```
-->
---------
Co-authored-by: Will Jones <will@sacharissa.co.uk>
Co-authored-by: Thomas Gummerer <t.gummerer@gmail.com>
<!---
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. -->
Adds a conformance test for an explicit provider resource.
# Description
To correctly determine which python executable we are using, we need the
ProgramInfo so we can determine which virtual environment is in use.
This PR updates the `About` rpc call to take `ProgramInfo` as argument.
Fixes https://github.com/pulumi/pulumi/issues/16299
Ref https://github.com/pulumi/pulumi/issues/15937
## 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`