pulumi/sdk
bors[bot] 199bd9befb
Merge #12983
12983: [Node SDK] Encapsulate Package Management r=RobbieMcKinstry a=RobbieMcKinstry

<!--- 
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

This PR abstracts Node package manager behind an interface, allowing us to support additional package managers eventually.

Previously, the Node Language Host had one path through package management and would special case all of the differences between Node and Yarn. This was pretty brittle, but worse, it precluded us from reasonably adding support for additional package managers like PNPM, NX, and Yarn Berry. By using dynamic dispatch, the code is a little less DRY, but it simplifies many of the edge cases as code paths are much more direct.

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

## Checklist

_Note:_ this is not intended to be a user-facing change. It's a reflector that will allow us to add new package managers.  For that reason, I don't expect a changelog entry.

<!--- 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. -->


Co-authored-by: Robbie McKinstry <robbie@pulumi.com>
Co-authored-by: Robbie McKinstry <thesnowmancometh@gmail.com>
2023-05-26 20:01:10 +00:00
..
go Fix makefiles 2023-05-26 11:00:45 +01:00
nodejs Merge #12983 2023-05-26 20:01:10 +00:00
proto/go gRPC for GenerateProject/Program/Package 2023-05-06 13:14:59 +01:00
python Fix makefiles 2023-05-26 11:00:45 +01:00
README.md Cleanup sdk/README.md 2023-01-03 17:12:12 -05:00
go.mod [sdk] Update uniseg 2023-05-25 22:24:13 -07:00
go.sum [sdk] Update uniseg 2023-05-25 22:24:13 -07:00

README.md

Pulumi Language SDKs

This directory contains Pulumi SDKs for the following languages:

See the respective READMEs for information about installing and using these libraries.

The language providers work by implementing gRPC interfaces defined in the top level directory proto.