fisher: Failed update leads to disappeared fisher

Sometimes with bad network, fisher update fails, and that leads to disappeared fisher and other installed plugins.

When the update fails, fisher complains like this (you can see the prompt changed from tide to fish default because tide was gone):

❯ fisher update
fisher update version 4.4.3
Fetching https://api.github.com/repos/jorgebucaran/fisher/tarball/HEAD
Fetching https://api.github.com/repos/edc/bass/tarball/HEAD
Fetching https://api.github.com/repos/jorgebucaran/nvm.fish/tarball/HEAD
Fetching https://api.github.com/repos/jethrokuan/z/tarball/HEAD
Fetching https://api.github.com/repos/ilancosman/tide/tarball/v5
fish: No matches for wildcard '$temp/*/*'. See `help wildcards-globbing`.
                            command cp -Rf $temp/*/* /var/folders/kh/xxqhxpvx5_x1j7hp2hdtdrmh0000gn/T/tmp.IrvzNd5Z
                                           ^
fish: No matches for wildcard '$temp/*/*'. See `help wildcards-globbing`.
                            command cp -Rf $temp/*/* /var/folders/kh/xxqhxpvx5_x1j7hp2hdtdrmh0000gn/T/tmp.YzuCjcCq
                                           ^
fish: No matches for wildcard '$temp/*/*'. See `help wildcards-globbing`.
                            command cp -Rf $temp/*/* /var/folders/kh/xxqhxpvx5_x1j7hp2hdtdrmh0000gn/T/tmp.Z50iNsuf
                                           ^
fish: No matches for wildcard '$temp/*/*'. See `help wildcards-globbing`.
                            command cp -Rf $temp/*/* /var/folders/kh/xxqhxpvx5_x1j7hp2hdtdrmh0000gn/T/tmp.ynIV0T3f
                                           ^
fish: No matches for wildcard '$temp/*/*'. See `help wildcards-globbing`.
                            command cp -Rf $temp/*/* /var/folders/kh/xxqhxpvx5_x1j7hp2hdtdrmh0000gn/T/tmp.8oRypeYE
                                           ^
Installing jorgebucaran/fisher
Installing edc/bass
Installing jorgebucaran/nvm.fish
Installing jethrokuan/z
Installing ilancosman/tide@v5
Updated 5 plugin/s
i@madagascar /Users/i > fisher
fish: Unknown command: fisher
i@madagascar /Users/i > 

My guess is that “old” copies were deleted regardless of the download, but haven’t digged into that chunk of “eval” code to confirm it.

Using fisher 4.4.3 with kitty 0.26.5 on macOS 13.1.

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 32 (13 by maintainers)

Most upvoted comments

if git is available on the system, we could git clone the repository into $XDG_STATE_HOME/fisher and go from there

I got your point. This is a trade-off. Look, if we can manage this more efficiently without adding significant complexity, then it’s worth considering. PR welcome!

I’m running fisher 4.4.3 with fish 3.6.0 and iTerm2 3.4.20 on macOS Ventura 13.5. All running on M1 MacBook Air.

@cupcakearmy …it was failing if files of the plugins already existed

See https://github.com/jorgebucaran/fisher/issues/624 for background. A --force flag has been proposed, but no one is currently working on it. Would that flag help in your case?

For me it has nothing to do with network. I was setting up fisher with my dotfiles and it was failing if files of the plugins already existed

Because we have no control over network conditions? Carrier QoS, network congestion, etc. That’s why retries are a standard in many network facing applications.

How often does this actually happen? Like, why are we using Fisher with a bad network to begin with?