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

Consolidate pin into install #41

Open
charlespierce opened this issue Dec 4, 2019 · 2 comments
Open

Consolidate pin into install #41

charlespierce opened this issue Dec 4, 2019 · 2 comments

Comments

@charlespierce
Copy link
Contributor

From offline discussions: A large majority of the time when a user runs volta install while in a package, what they actually meant to do was volta pin. Additionally, it's confusing to run volta install node@10, see a success message saying that node@10.13.0 was installed and made the default, and then run node -v and not see any change because you are in a project that was pinned (see volta-cli/volta#609).

We discussed consolidating volta pin into volta install, so that the volta install command is also context-aware, and will do the expected thing depending on whether you are in a project or not. We could also consider having a --default or other flag, that allows a user to explicitly change the default, even if they are inside a node project.

@chriskrycho
Copy link
Contributor

In general I like the basic proposal, although I do think there is some utility in the distinct operations of pinning a version and fetching a version—even if you often do both together. ("Install" has for this reason always seemed a somewhat murky term to me, and I actually quite like pin for that reason.)

One possibility that occurred to me on rereading this tonight: we could make it so that you always needed --default to set the default one. The downside: this may be slightly annoying. The upside: it's more consistent and it's never implicit/accidental.

@charlespierce
Copy link
Contributor Author

At least in the discussions we had, there wasn't any talk of removing the fetch command. Mostly we noted that install and pin are effectively the same, they fetch and then write the configuration somewhere. The only difference is where the version is written, so we can just make that an option and provide a more convenient default behavior.

I'm on the fence about always requiring the --default parameter: As you say, it's more consistent and less likely to happen accidentally. On the other hand, if we provide a CTA for when you run volta install out of a package that suggests running volta install --default, it starts to raise the question of why don't we just do that behavior? I think either proposal is fine in the RFC, we'll just want to keep an eye on it and see if there are usability wins one way or the other once the feature is available.

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

2 participants