cloudposse/geodesic

Consider using Fish Shell

osulli opened this issue · 2 comments

what

  • Use FISH instead of BASH

why

Risk Assessment

  • None completed, though from experience using FISH most BASH scripts should still work. It's not like you're removing bash from your environment and as long as you invoke scripts with bash ... or have a shebang then those scripts will still run in a bash subshell.

I've been really torn on this. On the one hand, we're all about adopting the latest-and-greatest, of which fish totally plays into (and our dozens and dozens of other tools). On the other, it's accessibility and familiarity which bash plays into. I like that you brought this up. If we get a following around it, could be a nice addition.

Nuru commented

@osulli fish is different enough than bash that I do not think Geodesic should support it. One of the key features of Geodesic is that it provides a consistent user experience in every environment. Benefits include:

  • All tools and customizations do not have to be "portable", they can depend on the exact version of bash installed and the existence of other tools.
  • All documentation about how to use Geodesic and how to accomplish tasks in Geodesic can be written only once. There is no need for "if you are using fish, do this instead.
  • All support issues are greatly simplified by there being only a single known version of everything. For example, today in the SweetOps Slack Channel someone complained that assume-role wasn't working for them. It would have been brutal to debug if it hadn't been for the case that Geodesic is such a controlled environment that there were few variables to consider. (As it turns out, it was due to a bug in the Ubuntu kernel. How likely is that? Imagine if this were happening under fish how much longer it would have taken to get to considering a kernel bug.)

Although I am strongly in favor of some level of customization I also want to limit the divergence of experience, which is why I included an "off switch" along with the customization features.

Of course you are free to use fish from inside Geodesic. All you need to do is apk add fish and start using it. My experience was that it is a cool shell, but it broke too many features of Geodesic to want to use it.