i'm not super comfortable with this. my gut reaction is just to flatly say "no, wth is fish anyways, and why should i care", but that would not be nice.
so i've been trying to figure out a good reason to say no. here's what I went through:
it's too big (5MB install size), kind of true
it has too many dependencies, particularly a web browser (!?) and bcbc would actually be a nice addition everywhere and is quite small (245KB installed), while we already do have a web browser installed everywhere (w3m)
no one else uses it@gaba did a here (well, a technically, but i'll parse that as an approval)
so i dunno. do you need it everywhere? like would it be enough on the people.tpo box? or the build box? where would you actually use this?
thousand paper cuts. we don't care about 5mb, we care about the 500+ packages we install by default on any new machine. if all of those are 5MB, it's 2.5GB gone right there from the start...
honestly, when i saw it depended on www-browser, i was just "nope". then i realized we already had a www-browser installed everywhere (w3m) and then my reaction was "well, let's get rid of that too then"...
why on earth do you need a web browser in your shell anyways?
(also note that fish is bigger than said web browser, w3m is only 2MB installed.)
My "+1" was not an approval. It was only a fish. Sorry for the confusion.
BUT if this tool improves the experience that developers have in the servers then I think we should install it. We need to improve the dev experience on the building process.
my gut reaction is just to flatly say "no, wth is fish anyways, and why should i care", but that would not be nice.
I will read it as an attempt to be funny or to make your argument more interesting. But it could be read also as a scarce willingness to listen to people ️.
it's too big (5MB install size), kind of true
thousand paper cuts. we don't care about 5mb, we care about the 500+ packages we install by default on any new machine. if all of those are 5MB, it's 2.5GB gone right there from the start...
As Richard said, are we really discussing for 5MB? (or more like 15MB, if you also count fish-common).
I don't see bc in the list, and I cannot grep it in the default completions.
As for the web browser, it is needed for the fish_config tool and to read the documentation in the web format.
It's an optional feature, but I guess it cannot be moved to a secondary package (fish_config isn't a real binary).
like would it be enough on the people.tpo box? or the build box? where would you actually use this?
I'd love to have this on the build box, thank you.
people.tpo would be also nice, but I can live without it there if it is such a big problem.
BUT if this tool improves the experience that developers have in the servers then I think we should install it. We need to improve the dev experience on the building process.
Yes please! Fish has a lot of life quality improvements:
the auto-completion is much better than bash in any possible way (it already knows a lot of commands, it always searches on history by default, it completes file names by searching also in the middle, not only at the beginning, completions are case-insensitive, it can parse man pages to remind you what flags do, etc etc)
it uses colors so you have an immediate feedback if you are doing something wrong
has a lot of default features that can prevent wasting a lot of time (for example, its prompt includes git information, which have saved me from doing a wrong thing more than once. I know that I could do the same on other shells, too, but it's only one example, I am possibly using more features without even realizing).
my gut reaction is just to flatly say "no, wth is fish anyways, and why should i care", but that would not be nice.
I will read it as an attempt to be funny or to make your argument more interesting. But it could be read also as a scarce willingness to listen to people ️.
I wish I would be funny, but I was just trying to be honest and explain
why this trivial request is taking such a long time. You must also
understand that there's a plethora of possible shells people might want,
and we may not want to accomodate all of those requests forever.
It might seem obvious that fish is a great improvement, if you are using
it every day. But I'm not a fish user, and it's the first time it's ever
requested. You've requested to install it, without specifying where, so
I was assuming you wanted it everywhere, which is why I had that
knee-jerk reaction.
it's too big (5MB install size), kind of true
thousand paper cuts. we don't care about 5mb, we care about the 500+ packages we install by default on any new machine. if all of those are 5MB, it's 2.5GB gone right there from the start...
As Richard said, are we really discussing for 5MB? (or more like 15MB, if you also count fish-common).
We have 20-30GB for roots. Even with 10GB occupied by the default packages we'd still have plenty of remaining space.
That's the data on the build servers, some servers are more constrained,
including on the root filesystem. We constantly struggle with servers
running out of disk space (as you probably know), so this matters to us.
Anyway, at the moment we are at slightly more than 3GB occupied. Why are we creating problems that aren't there?
it has too many dependencies, particularly a web browser (!?) and bc
I don't see bc in the list, and I cannot grep it in the default completions.
It's in the Debian package dependencies, no idea why.
As for the web browser, it is needed for the fish_config tool and to read the documentation in the web format.
It's an optional feature, but I guess it cannot be moved to a secondary package (fish_config isn't a real binary).
Yeah, so I guess that's a problem with the Debian package, not fish
itself. It does seem odd to have that hard depend.
like would it be enough on the people.tpo box? or the build box? where would you actually use this?
I'd love to have this on the build box, thank you.
people.tpo would be also nice, but I can live without it there if it is such a big problem.
That can be done too.
BUT if this tool improves the experience that developers have in the servers then I think we should install it. We need to improve the dev experience on the building process.
Yes please! Fish has a lot of life quality improvements:
the auto-completion is much better than bash in any possible way (it already knows a lot of commands, it always searches on history by default, it completes file names by searching also in the middle, not only at the beginning, completions are case-insensitive, it can parse man pages to remind you what flags do, etc etc)
it uses colors so you have an immediate feedback if you are doing something wrong
has a lot of default features that can prevent wasting a lot of time (for example, its prompt includes git information, which have saved me from doing a wrong thing more than once. I know that I could do the same on other shells, too, but it's only one example, I am possibly using more features without even realizing).
I'm not sure I should get into debating the merits of this or that
shell. I understand that fish has stellar completion and colors, but I
will point out that this is the kind of stuff that gets zsh users really
proud as well, and we do have zsh installed on all servers, possibly for
that exact reason.
And this is why I'm hesitant in adding more shells: everyone has their
favorite one, and you can't expect every server on the internet to have
yours.
I've personnally stopped caring about the remote shell and basically do
everything locally and sync stuff up. This way I don't need to assume
the remote environment is setup in such or such way. Sometimes i do drop
into a shell of course, and then I find it a little confusing, but it
beats having to argue with all my coworkers about how this alias is
missing or that prompt should be... ;)
Anyways, this is all precious, wasted time right now. I'll just install
fish on your build servers and people.tpo and be done with it.
a.
...
On 2022-08-16 08:45:29, Pier Angelo Vendrame (@pierov) wrote:
--
Antoine Beaupré
torproject.org system administration
this is now fixed and should propagate on all relevant servers within the next 4h.
origin/master 0e5ef0e3873dd3588f28731764a0d6109376cec2Author: Antoine Beaupré <anarcat@debian.org>Date: Tue Aug 16 09:57:26 2022 -0400Parent: 7eb92d93 people.tpo is really a shell serverMerged: masterContained: masterinstall fish on shell (chives and perdulce) and tb_build serversfish is an extra shell which adds somewhere between 5 and 15MB of diskusage, and requires extra dependencies. The most notable are`bc` (which is not installed yet, but is a good improvement) and`www-browser` (which, oddly, we have one installed everywhere: w3m).We don't install fish everywhere because of the latter: we don't wantto be force to have a web browser installed everywhere. Technically,the dependency is optional upstream, but it's actually a harddependency in the Debian package (`Depends`). I've filed this as a bugin Debian (https://bugs.debian.org/1017464) to see if that can befixed as well.In the meantime, let's keep the blast radius a little smaller and keepthis restricted to a handful of servers.2 files changed, 3 insertions(+)modules/profile/manifests/shell.pp | 2 ++modules/profile/manifests/torbrowser_build.pp | 1 +modified modules/profile/manifests/shell.pp@@ -2,4 +2,6 @@ class profile::shell { include profile::mosh include profile::world_open_ssh+ # an extra shell for power users tpo/tpa/team#40854+ package { 'fish': } }modified modules/profile/manifests/torbrowser_build.pp@@ -6,6 +6,7 @@ class profile::torbrowser_build { ensure_packages([ 'build-essential', 'diffoscope',+ 'fish', # requested in tpo/tpa/team#40854 'git', 'libdata-dump-perl', 'libdata-uuid-perl',
notice that i filed a bug against the debian package to downgrade the www-browser dependency.