asdf-vm / asdf-vm/asdf

An "asdf wrapper" script which installs asdf

Open
#2,238 1 comment 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
25.6k
Forks
941
Avg merge
9h 24m
Merged PRs (30d)
3

Description

### Is your feature request related to a problem? Please describe

I love asdf because it lets me write self-contained, reproducible projects. First, asdf installs a specific version of a language SDK, and then the language's build tool installs specific versions of dependencies. Users don't need to install the SDK or dependencies by hand.

The one minor problem is that they do have to install asdf by hand! In an ideal world, asdf would already be part of the standard tool set on every base system, just like bash and git. But until we live in that world, it's a manual step.

### Describe the proposed solution

A way to remove this step would be for asdf to offer a way to bootstrap itself on a user's machine.

In the Java world, build tools have evolved the (badly named) idea of wrapper scripts:

https://docs.gradle.org/current/userguide/gradle_wrapper.html

https://maven.apache.org/tools/wrapper/

These are shell scripts with minimal dependencies which can download the build tool and make it available, in a clean and controlled way (specific version, installed into a global but versioned cache directory, scoped to the project rather than added to the global path, etc). The idea is that you check the script into your project, then users get it when they clone, which lets them bootstrap the rest.

Would it make sense to have an "asdf wrapper" command, which writes a simple shell script which downloads asdf, installs the necessary plugins, then runs whatever asdf command the user wants?

The workflow on the developer's machine would be something like:

```
asdf wrapper
git add asdfw
git commit
```

And on the user's machine:

```
./asdfw install
```

### Describe similar `asdf` features and why they are not sufficient

There are no similar features, as far as I know.

### Describe other workarounds you've considered

I could write the wrapper script myself.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the proposed `asdf wrapper` command and the existing `asdf install` workflow. Define the wrapper's download, plugin installation, cache, and project-scoping behavior, then verify that `./asdfw install` bootstraps asdf and runs the requested command.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, shell
Domain
cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.