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

new: Add new executables system. #268

Merged
merged 20 commits into from
Nov 6, 2023
Merged

new: Add new executables system. #268

merged 20 commits into from
Nov 6, 2023

Conversation

milesj
Copy link
Contributor

@milesj milesj commented Oct 30, 2023

Historically we only had shims which was easy to maintain, but in v0.20 we also added binary symlinks alongside shims, which complicated things. There are a few issues with the current system:

  • Global and local shims are confusing, maybe remove local?
  • The "primary" binary to execute is a bit abstracted.
  • Secondary shims are not created as symlinks in ~/.proto/bins.
    • For example, node-gyp, npx don't exist as real binaries.
    • On Windows, only .exe files are symlinked.
  • Some tools required a parent tool to execute (.js requires node).
  • Locating shims/bins/etc are split across many WASM functions.
  • Other minor devx issues.

To remedy this, I'm attempting the following.

  • All bin/shim/global logic is now powered by 1 WASM function, locate_executables.
    • Removes locate_bins and create_shims.
  • Shims and bins are a 1:1 when configured, but create the 2 types of files. This ensures all shims have a sibling bin symlink.
  • Local shims probably going away.
  • Tools that require a parent going away (this is really only a Node.js problem).

@milesj milesj force-pushed the 0.22-locate-execs branch from 129461a to 8f8828d Compare November 2, 2023 23:13
@milesj milesj merged commit 2a40611 into develop-0.22 Nov 6, 2023
14 checks passed
@milesj milesj deleted the 0.22-locate-execs branch November 6, 2023 20:32
milesj added a commit that referenced this pull request Nov 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant