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

pnpm kondo fails on hnvm v0.12.7 #35

Open
joseph-galindo opened this issue Feb 3, 2022 · 0 comments
Open

pnpm kondo fails on hnvm v0.12.7 #35

joseph-galindo opened this issue Feb 3, 2022 · 0 comments

Comments

@joseph-galindo
Copy link
Contributor

joseph-galindo commented Feb 3, 2022

First, confirmed the version of hnvm I'm using:

[joseph.galindo@C02XK68RJG5L probot-pr-checklist (jrg/BT-3953)]$ brew list hnvm
/usr/local/Cellar/hnvm/v0.12.7/.hnvmrc
/usr/local/Cellar/hnvm/v0.12.7/bin/node
/usr/local/Cellar/hnvm/v0.12.7/bin/npm
/usr/local/Cellar/hnvm/v0.12.7/bin/npx
/usr/local/Cellar/hnvm/v0.12.7/bin/pnpm
/usr/local/Cellar/hnvm/v0.12.7/bin/pnpx
/usr/local/Cellar/hnvm/v0.12.7/bin/yarn
/usr/local/Cellar/hnvm/v0.12.7/lib/.tmp/node/>=4
/usr/local/Cellar/hnvm/v0.12.7/lib/hnvm/ (4 files)

So..I was trying to run pnpm kondo in uc-node-services and ran into this:

[joseph.galindo@C02XK68RJG5L probot-pr-checklist (jrg/BT-3953)]$ pnpm kondo
Using Hermetic NodeJS v16.13.0
/usr/local/bin/pnpm: line 23: /usr/local/Cellar/hnvm/v0.12.7/lib/hnvm/../lib/hnvm/kondo.sh: No such file or directory

I thought that's weird, since I never remember having a problem with this script, at least in uc-frontend. I went to where it is on disk:

[joseph.galindo@C02XK68RJG5L lib]$ cd /usr/local/Cellar/hnvm/v0.12.7/lib/hnvm/
[joseph.galindo@C02XK68RJG5L hnvm]$ ls
colors.sh	config.sh	ensure_bin.sh	kondo.sh
[joseph.galindo@C02XK68RJG5L hnvm]$ pwd
/usr/local/Cellar/hnvm/v0.12.7/lib/hnvm
[joseph.galindo@C02XK68RJG5L hnvm]$ ls /usr/local/Cellar/hnvm/v0.12.7/lib/hnvm/kondo.sh
/usr/local/Cellar/hnvm/v0.12.7/lib/hnvm/kondo.sh

So I tried to log out what was happening to the $script_dir variable being relied on in hnvm, and found these:

[joseph.galindo@C02XK68RJG5L probot-pr-checklist (jrg/BT-3953)]$ pnpm kondo
derived script_dir is /usr/local/bin
derived script_dir in /usr/local/bin/pnpm is /usr/local/Cellar/hnvm/v0.12.7/bin
we are now sourcing /usr/local/Cellar/hnvm/v0.12.7/bin/../lib/hnvm/ensure_bin.sh in the /usr/local/bin/pnpm code
script_dir in usr/local/Cellar/hnvm/v0.12.7/lib/hnvm/ensure_bin is /usr/local/Cellar/hnvm/v0.12.7/lib/hnvm
Using Hermetic NodeJS v16.13.0
derived script_dir in /usr/local/bin/pnpm is /usr/local/Cellar/hnvm/v0.12.7/lib/hnvm
/usr/local/bin/pnpm: line 29: /usr/local/Cellar/hnvm/v0.12.7/lib/hnvm/../lib/hnvm/kondo.sh: No such file or directory
derived script_dir in /usr/local/bin/pnpm is /usr/local/Cellar/hnvm/v0.12.7/lib/hnvm
^^^ this is not good, we probably don't expect this value to change at all

It looks like these files:

  • /usr/local/bin/pnpm
  • /usr/local/Cellar/hnvm/v0.12.7/lib/hnvm/ensure_bin.sh

Both set up their own variable $script_dir. When the pnpm bin script bash sources the ensure_bin.sh script, I think the variable from ensure_bin.sh is sourced and shadows the variable in pnpm. Which can break the pnpm kondo logic since it relies on that variable.


To work around the issue, I changed pnpm locally to use source "$script_dir/kondo.sh" "${node_bin}" "${pnpm_bin}, but we probably need to fix upstream in hnvm itself.

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

No branches or pull requests

1 participant