Skip to content

Improve special character handling in package revisions#9

Open
frantisekhanzlikbl wants to merge 2 commits intomadjam002:masterfrom
frantisekhanzlikbl:master
Open

Improve special character handling in package revisions#9
frantisekhanzlikbl wants to merge 2 commits intomadjam002:masterfrom
frantisekhanzlikbl:master

Conversation

@frantisekhanzlikbl
Copy link
Copy Markdown
Contributor

@frantisekhanzlikbl frantisekhanzlikbl commented Mar 29, 2023

Currently, the yarn plugin generates invalid nix paths when package revisions with paths (i.e. workspace: and patch: protocols) contain nix store illegal characters. This is really annoying when patching scoped packages, as the @ symbol is also forbidden in store paths.

Generated code without this patch:

{
  src = ./.yarn/patches/@locator-babel-jsx-npm-0.2.4-2784012346.patch;
  #                     ^ syntax error
}

Generated code with this patch:

{
  src = builtins.path { name = "__locator-babel-jsx-npm-0.2.4-2784012346.patch"; path = ./${"./.yarn/patches/@locator-babel-jsx-npm-0.2.4-2784012346.patch"}; };
}

Note 1: Only store-illegal paths are changed. All valid paths are still generated the normal way. I have verified that the generated manifest in test/ is exactly the same with this patch.

Note 2: I tried to follow the formatting used elsewhere in this file, but I'm not sure about, for example, the preferred line lengths.

Note 3: I think there is nothing inherently non-portable about the code, but I don't have a darwin machine to test it on, so verifying that everything works would be much appreciated. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant