How to implement version 2 yarn.lock package management

Hi,

there is a rather long discussion about how to implement a third-party package management using yarn.lock version 2 files.

There are several pro and contra arguments, which I try to summarize here:

Contra:

  • If upstream changes its implementation it could potentially break FOD [1]
  • It relies on supportedArchitectures [Settings (.yarnrc.yml) | Yarn] which, if changed, could cause breakage of FODs [2]

Pro:

  • We implement a coherent system around yarn, which currently only supports yarn version 1 files
  • No conversion of yarn version 1 to version 2 files is needed (which also happens to be buggy and hard to doā€¦See e.g. my workaround for pgadmin)
  • No need to commit an edited yarn.lock file to nixpkgs, as it can directly work with the newer versions

A POC PR has been made which has several comments which I hopefully summarized correctly above.

Obviously I am biased, as Iā€™ve written the PR, towards an implementation. I would ask anyone with some experience in the yarn ecosystem and especially everyone already involved, to chime in. Discussion stalled last December and I would hate to see the effort wasted here.

I answered the contra arguments above on GitHub to the corresponding comments and would love some additional feedback.

Many, many thanks to everyone who allocated some freetime to review the PR until now:
@emily @doronbehar @winter @szlend @the-sun-will-rise @Sandro


  1. ā†©ļøŽ

  2. ā†©ļøŽ

2 Likes