Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Add rust implementation of Yarn3+ lockfile (#4589)
### Description Adds a new Berry lockfile implementation that correctly handles [resolutions](https://yarnpkg.com/configuration/manifest/#resolutions). See the description of #2019 for an overview of the berry lockfile format. Note for reviewers: - I suggest reviewing `identifiers.rs` first as `Ident`, `Descriptor`, and `Locator` are the building blocks for most of the lockfile logic - We cannot use `serde_yaml` for serialization as berry expects some strings to be quoted that are not necessarily required to be quoted by the YAML spec. - The underlying lockfile data is passed into the struct that contains the lockfile logic, this allows us to borrow from the data when building up the internal data structures. Down the road this could be changed to use `Pin` if this proves to be painful from an ergonomics perspective ### Testing Instructions Ported existing unit tests and added new ones for the resolutions logic. The PR that switches this Rust impl on will include instructions on how to do e2e testing. --------- Co-authored-by: Alexander Lyon <arlyon@me.com>
- Loading branch information