pulumi/sdk/go/common/resource/plugin
Thomas Gummerer 07b27164ca
allow Git packages in subdirectories (#18322)
We recently introduced getting plugins from Git repositories. So far we
only allowed users to get repositories with code in the top level
directory, not in subdirectories. Since people might be interested in
monorepos, where multiple plugins live in a single repository, we start
allowing that in this PR.

We also want to allow these plugins to access code in their parent
directories if they live in the same repository. This means we want to
install the whole repository in `$PULUMI_HOME/plugins`.

We do that by installing the repository with the same name as if the
plugin were living at the top level. The plugin download URL then
encodes enough information for us to figure out the path within that
directory to execute the plugin.

There's an interesting case here when someone wants to install different
plugins from the same repository at the same version. We would usually
only install the dependencies for the first installation. However in
this case we also want to install the dependencies for the second plugin
in the same folder, without having to fetch the whole repo all over
again. We do that at the small expense that when a plugin fails to be
started, we try to install the dependencies and try to start the plugin
again. In normal operation there will be no performance impact from
this.

Fixes https://github.com/pulumi/pulumi/issues/18250
2025-01-24 09:57:15 +00:00
..
analyzer.go Allow anything in resource names (#14107) 2023-11-20 08:59:00 +00:00
analyzer_plugin.go Add `Handshake` to the provider protocol (#17819) 2024-11-26 17:35:47 +00:00
check.go Enable importas linter (#15167) 2024-01-17 14:56:37 +00:00
config_source.go [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
context.go Implement plugin download cancellation (#17621) 2024-11-12 18:04:25 +00:00
context_test.go Fix data race in plugin.Context 2023-03-31 07:15:11 -07:00
converter.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
converter_plugin.go Add `Handshake` to the provider protocol (#17819) 2024-11-26 17:35:47 +00:00
converter_plugin_test.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
converter_server.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
converter_server_test.go Plumb Remote, Component, and LogicalName into the import plugin system (#15199) 2024-01-24 17:15:30 +00:00
debugging.go implement the engine bits for debugging support (#17072) 2024-08-30 10:31:28 +00:00
diagnostic.go Prepare golangci-lint upgrade (#17065) 2024-08-28 07:57:38 +00:00
diagnostic_test.go Allow converter plugins to return diagnostics 2023-06-05 17:38:59 +01:00
doc.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
host.go allow Git packages in subdirectories (#18322) 2025-01-24 09:57:15 +00:00
host_server.go Replace pkg/errors.Wrap with fmt.Errorf (#17201) 2024-09-09 11:11:46 +00:00
host_test.go Lock access to the plugin loading channels 2023-08-10 23:40:23 +01:00
langruntime.go Add GetRequiredPackages to the language host (#17894) 2024-12-02 20:24:23 +00:00
langruntime_plugin.go Add PULUMI_DEBUG_LANGUAGES support to go, python, and nodejs. (#17821) 2024-12-11 08:50:52 +00:00
langruntime_test.go Add PULUMI_DEBUG_LANGUAGES support to go, python, and nodejs. (#17821) 2024-12-11 08:50:52 +00:00
mock.go Add `Handshake` to the provider protocol (#17819) 2024-11-26 17:35:47 +00:00
plugin.go Passthrough unstructured logs from dynamic providers (#18253) 2025-01-15 21:54:49 +00:00
plugin_test.go Workaround for control codes in output from .NET 9.0 (#17783) 2024-11-15 14:48:08 +00:00
provider.go Autonaming configuration in experimental mode (#17916) 2024-12-10 14:03:27 +00:00
provider_plugin.go allow Git packages in subdirectories (#18322) 2025-01-24 09:57:15 +00:00
provider_plugin_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
provider_server.go Autonaming configuration in experimental mode (#17916) 2024-12-10 14:03:27 +00:00
provider_server_test.go Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
provider_test.go Fix PropertyPaths generated by NewDetailedDiffFromObjectDiff (#14337) 2023-10-25 10:39:03 +00:00
provider_unimplemented.go Add `Handshake` to the provider protocol (#17819) 2024-11-26 17:35:47 +00:00
rpc.go Replace pkg/errors.Wrap with fmt.Errorf (#17201) 2024-09-09 11:11:46 +00:00
rpc_rapid_test.go Remove deprecated Protobufs imports (#15158) 2024-01-17 09:35:20 +00:00
rpc_test.go Fix upgrade with ResourceReference (#15377) 2024-02-06 08:22:46 +00:00
server.go Add mapping service to converter 2023-03-24 17:09:17 +00:00