facebook / dotslash

Simplified executable deployment
https://dotslash-cli.com
Apache License 2.0
535 stars 14 forks source link

Bootstrapping dotslash #5

Closed abhinav closed 4 months ago

abhinav commented 4 months ago

Hello! Congrats on open sourcing the project. I just discovered it, and I have a question around best practices with bootstrapping.

From my point of view, dotslash helps make a monorepo (or even a regular repo) more self-contained: commit dependency executable scripts to the repository, and let dotslash manage them. However, there's still one issue: you have to have dotslash installed to get the rest.

I'm starting this issue to discuss that: How could a repository bootstrap dotslash so that it can use it, without having every contributor install it.

"That's a minimum requirement" is a completely valid position here. Feel free to close the issue if that's the case.

An alternative that I can see this working is to use a shell script to bootstrap (similar to pantsw, buckw, bazelisk): Provide a script that will download or build a specific version of dotslash, and cache it somewhere. Basically a lightweight version of dotslash's own functionality. (This is also close to the approach used by a similar tool, Hermit FWIW.)

I'm curious about the maintainers' thoughts about what their preferred approach would be here.

bolinfest commented 4 months ago

I think a contributor "just has to install it" as they would for something like make.

Any solution I can think of adds some layer of redirection that sacrifices the "run the underlying executable as transparently as possible" that is core to DotSlash:

https://dotslash-cli.com/docs/execution/

Now that DotSlash is open source, hopefully we can get included in the standard package managers, which should at least make the overhead of installing it considerably lower.

abhinav commented 4 months ago

That's reasonable. Thanks for the response!