mirror of https://github.com/pulumi/pulumi.git
199bd9befb
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> |
||
---|---|---|
.. | ||
go | ||
nodejs | ||
proto/go | ||
python | ||
README.md | ||
go.mod | ||
go.sum |