-
-
Notifications
You must be signed in to change notification settings - Fork 35
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
Proto use nitpicks #324
Comments
Some errors happen outside the context of the tool, and that's usually why there's no info. Let me dig into this one.
Stable isn't guaranteed to exist, only "latest". Stable only exists for languages that actually follow an LTS like release schedule.
This seems to be (mostly) working correctly though? The entire point of the
Canary isn't a version or alias like stable is. It's a special and separate release channel that changes where to find binaries/archives to download. |
That env var does fail for me...
|
Sorry, it probably was |
I think the semantics are currently as follows:
But, after
I was puzzled by the behavior mostly because I forgot I had set |
Canary is very unique. It acts like a version and an alias, and how it's handled is different per tool. For example, Bun is git tag: https://github.com/oven-sh/bun/releases/tag/canary There's only ever 1 canary version, and it constantly gets replaced. And Deno uses commit hashes and separate download URLs: https://dl.deno.land/ This supports multiple versions but we only support the "latest". We can maybe support "stable" in the future, but I'm not sure how that would really work for some tools. Most tools fetch the available versions via git tags and nothing else.
Well |
I'm sure part of my confusion with pinning is due with different meanings and scopes of the word "pin".
|
Aliases or versions can be pinned, hence why it doesn't resolve. The exception is
It does not. It traverses up and loads all I think there's a bug though that it's also grabbing Edit: It was #326 |
Give 0.24.2 a shot. Fixed some of these. |
I gave it a shot and I'm still pretty confused how this is supposed to work. I can see that now But with
I think a big part of my issue is terminology. There are three questions that are being blurred by the implicit meaning of the word "pin":
|
Yeah pin is always writing to a config file. It's either pinning an alias or version, depending on the command.
By default it's the
It depends.
|
I think I must have communicated this incorrectly! These questions are ambiguities of the use of the word "pin" in various places in the software. I'm sure sorting out some of the bugs and inconsistencies will clear this up! Here's a very concrete example: > $env:PROTO_PIN_LATEST='local'
> proto install node latest
> proto install node stable
> proto run node Surprisingly to me, this runs
Then I'm dumb because that's what I use for most tools! This is so I can But I suppose that's why > proto outdated
deno - current version 1.38.5 (via latest), newer version 1.38.5
node - current version 21.4.0 (via 21.4.0), latest version 21.4.0
... |
Some history on why things exist. So The Pinning = save some value to a file.
You should use |
Gonna close this as the pin stuff is working as intended. For 0, this will solve it: #358 |
Definitely much better! I'm still scratching my head why |
What version?
0.24.0
Which command?
No response
What happened?
Installing multiple tools with
proto use
has brought up some issues. More logs available and I'm sure I could split these out into different issuesThe error output for an unresolved version doesn't mention which tool errored which makes troubleshooting slightly harder. The tools are logged in an arbitrary order and
proto
bails on first failure, so it's not contextually clear.python
,deno
,npm
,yarn
,pnpm
don't have a version aliased"stable"
proto use
with$env:PROTO_PIN_LATEST=1
rewrites versions in the global config e.g.deno = "latest"
becomesdeno = "1.38.5"
. I'm not sure if this is intentional. This seems to happen fornode
"stable"
/"latest"
/"canary"
, but NOT"iron"
nor ("lts-latest"
(lol))The error message for missing a
"canary"
version differs in form from missing"stable"
:Trace logs?
No response
Operating system?
Windows
Architecture?
x64
The text was updated successfully, but these errors were encountered: