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
Our comprehensive list of dependencies is no longer comprehensive... #5553
Comments
#4422 led to the removal of any utilities that are explicitly part of the POSIX standard and would be present on any *nix environment from being explicitly enumerated in the README. Subsequent updates to fish removed hard dependencies on a number of "common but not POSIX mandated" utilities from core fish altogether, and they were thus dropped from the README. e.g.
So non-POSIX-mandated utilities should either appear explicitly in the README (the way Fish itself has an insane amount of features and very, very deep reach. Dependencies for things like non-default themes or prompts definitely shouldn't be considered core fish dependencies, and dependencies that enrich fish's output or behavior (such as using |
|
I think you commented as I was editing my reply.
|
man is also in POSIX - http://pubs.opengroup.org/onlinepubs/9699919799/utilities/man.html#top. |
The point I'm trying to make is that the POSIX standard is very often treated as a useful guideline to aspire toward rather than something that is strictly mandatory. The fish developers break from POSIX where they feel it's necessary, right? And Unixlike distro packagers may also skip features or make incompatible replacements as they wish — or they could even do it by mistake, because POSIX is so big and its documentation sometimes a bit onerous... So I don't think the phrase "basic POSIX utilities" is good enough for a list of dependencies, when POSIX compliance itself is so often treated as an optional nice-to-have. I thought the dependencies I'd made pull requests for wasn't such an overwhelming list, but perhaps a comma-separated list in a paragraph is better than what I originally did, with a set of bullet points with just one command name each... |
Okay, revisiting this. The list of dependencies we removed was:
A number of these are actually optional -
So that leaves, as the essential set: basic system utilities including
If you don't need completions and pick a simple prompt. These correspond to the |
This is really the only important place we're using it. See #5553.
Okay, I've now removed all So you need coreutils and sed. I've listed these tools now in the README, so this should be done. |
I think it was first noted in issue #2062 that fish did not actually list all of its dependencies in the project README. I tried to solve this in pull requests #4301 and #4326. Then issue #4422 noted that the list distinguishing between "common UNIX utility" and "basic system utility" was some weird wording.
Now, the current draft README in master has folded a lot of the specific command and package names back into the vague phrase "basic POSIX utilities" instead of really spelling out each one. The way I'd organized the list of packages/commands maybe wasn't the best, but the reason I'd worked on producing this exhaustingly exhaustive list of dependencies in the first place is because one or more of these commands that we often take for granted may be missing on more minimal editions of Linux or other Unixlike distros. In the past, I found fish behaving oddly when installed on the minimal Atomic Host release of Fedora, because it was missing some "basic utilities" like
man
and I think others. So I still think it's important that fish explicitly and thoroughly lists every external command it relies on.(As before, obviously we don't need to list all applications for which fish offers tab completion as a "dependency", just the real requirements, and the dependencies for optional features...)
The text was updated successfully, but these errors were encountered: