Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve special character handling in package revisions #9

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

frantisekhanzlikbl
Copy link
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