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

fix: yarn_install failure if yarn is a dependency #1581

Merged

Conversation

gregmagolan
Copy link
Collaborator

This fixes a regression in 1.2.0 where the repository rule generated shell script yarn in the root of the external repository created by yarn_install conflicts with the npm package yarn directory that generate_build_files.js wants to create.

The error observed was:

Error: ENOTDIR: not a directory, mkdir 'yarn/bin'
    at Object.mkdirSync (fs.js:823:3)
    at mkdirp (/private/var/tmp/_bazel_pryan/7a08068b62d3caa281adb87aa0ce207a/external/npm/generate_build_file.js:81:16)
    at writeFileSync (/private/var/tmp/_bazel_pryan/7a08068b62d3caa281adb87aa0ce207a/external/npm/generate_build_file.js:89:9)
    at generatePackageBuildFiles

Also fixes the same potential problem with the repository rule generated npm shell script.

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature (please, look at the "Scope of the project" section in the README.md file)
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: N/A

What is the new behavior?

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

This fixes a regression in 1.2.0 where the repository rule generated shell script `yarn` in the root of the external repository created by yarn_install conflicts with the npm package `yarn` directory that generate_build_files.js wants to create. The error observed was:
```
Error: ENOTDIR: not a directory, mkdir 'yarn/bin'
    at Object.mkdirSync (fs.js:823:3)
    at mkdirp (/private/var/tmp/_bazel_pryan/7a08068b62d3caa281adb87aa0ce207a/external/npm/generate_build_file.js:81:16)
    at writeFileSync (/private/var/tmp/_bazel_pryan/7a08068b62d3caa281adb87aa0ce207a/external/npm/generate_build_file.js:89:9)
    at generatePackageBuildFiles
```

Also fixes the same potential problem with the repository rule generated `npm` shell script.
@gregmagolan
Copy link
Collaborator Author

Thanks @paullryan for reporting

@gregmagolan gregmagolan merged commit f712377 into bazel-contrib:master Jan 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants