Open sitiom opened 1 year ago
@sitiom,
This scenario seems a bit strange to me. Why are multiple aliases needed for a single executable when one alias could do the job? Could you give me more context on your scenario or your specific package? Is this a "special" case or is this a more common scenario that we had overlooked when implementing the validation. We don't want to open up floodgates and allow a bunch of symlinks/aliases to be generated for only a single executable if it is not absolutely necessary.
Why are multiple aliases needed for a single executable when one alias could do the job?
Some CLI apps have a shorter alias that users can use for convenience. flyctl
is an example (i.e., flyctl
and fly
as stated in the docs). Users expect both aliases to be available like in other package managers; thus, this case should be supported.
We don't want to open up floodgates and allow a bunch of symlinks/aliases to be generated for only a single executable if it is not absolutely necessary.
Of course, you shouldn't when it's not necessary ๐
It sounds more like a new feature then. Are there any other examples like this?
A few more "real world" examples will help justify the work. It's hard to justify for one package given all the other open Issues.
I'd also want a few more ๐on the issue ๐
Workaround: Prefix .\
to the other RelativeFilePath
(i.e., flyctl.exe
and .\flyctl.exe
). Validation now succeeds:
However, you cannot apply this workaround for non-zip binaries (Example: Genivia.ugrep
).
[Policy] Portable
Another package that uses multiple aliases https://github.com/microsoft/winget-pkgs/pull/131849
Brief description of your issue
winget validate
fails locally for nested portable executables with multiple aliases. Some applications expect multiple aliases from one command, which is why this is important.Related to https://github.com/microsoft/winget-cli/issues/2523#issue-1376643992:
Perhaps this was overlooked.
Steps to reproduce
Fly-io.flyctl
manifest locally withwinget validate
Installation works as intended however, creating
fly
andflyctl
aliases forflyctl.exe
.Expected behavior
Validation should succeed
Actual behavior
Validation is failing.
Environment