Fisher: Rename fishfile to fish_plugins

Created on 31 Jan 2019  路  16Comments  路  Source: jorgebucaran/fisher

Merely for aesthetic consistency. There is already a fish_history and fish_variables file in your ~/.config/fish directory. Renaming fishfile to fish_bundle (or fish_file) fish_plugins would be nice.

$ la ~/.config/fish
jb  staff   320B Jan 31 00:51 .
jb  staff   448B Jan 31 00:48 ..
jb  staff   128B Jan 31 00:48 completions
jb  staff   128B Jan 31 00:48 conf.d
jb  staff   190K Jan 28 18:31 fish_history
jb  staff   1.3K Jan 31 00:51 fish_variables
jb  staff    22B Jan 31 00:48 fish_bundle
jb  staff   256B Jan 31 00:48 functions

Most helpful comment

What about fisher_bundle? At least to make it obvious where the file comes from.

All 16 comments

What about fisher_bundle? At least to make it obvious where the file comes from.

Besides aesthetic consistency, I also like either fish_bundle or fisher_bundle because fishfile could refer to so many different things. I mean, the name only implies a file having to do with fish.

I'm willing to submit a PR for this if we can agree on the naming @jorgebucaran. I'm partial to fish_bundle rather than fisher_bundle since it's really just a list of fish plugins and not anything with fisher specific data or formatting, so it could even be used by other fish plugin management tools, but honestly, whatever you want is fine.

My questions are: Is this still something we want to do, and are there any other requirements other than simply:

  1. Change the name of fishfile to fish_bundle
  2. Handle migration of fishfile to fish_bundle if the former exists, but not the latter

@mattmc3 I like fish_bundle too. It just looks cool. I get that fisher_bundle would be a safer approach, but then we might as well leave things the way they are.

I'm happy to go with this if we can agree on fish_bundle.

/cc @franciscolourenco @edouard-lopez @FabioAntunes @Scrumplex @neersighted

...are there any other requirements other than simply:

1 and 2 sound good. We also need to update the docs. And we need to continue to support fishfile for the time being. After this, I suggest we establish a small "school of fish" friends and send PRs to people still using fishfile to rename it to fish_bundle as we encounter them in the wild, e.g., here.

The word bundle could be hard to understand for people who are not part of certain circles. Would fish_packages correctly describe what the file contains?

fish_bundle is fine by me but I don't really have a strong opinion either way.

The word "bundle" has quite a bit of history in other CLI projects for a collection of 3rd party code. Homebrew uses bundle. Vim's Vundle is a play on the word bundle. Ruby has bundler. ZSH's antigen uses the term bundles too. The list is not short.

While it's a valid point that there are other common descriptive words like "package" or "module" or "libraries" in this context, I think that it can be a bit of an advantage to use a less overused synonym like "bundle". It stands out without being obscure or losing its meaning, and conveys the grouping-together functionality that fisher provides.

I won't argue against bundle, because I'm not familiar with this historical convention and it it might have value. However it might be unclear for other people like me, and a convention that is not clear might not be worth propagating. Anyway there are a couple of points I should mention:

  1. The suggestion was for the plural form - "packages", not package.
  2. Does fish actually group packages together somehow, like webpack for example? Or is it rather just installing them? Perhaps this is where my confusion comes from.
  3. Homebrew has a bundle command, but uses a brewfile for the dependency list. Ruby bundler also has a gemfile. In this case we would be using a term which might still be ambiguous, while at the same time actually breaking convention.

I'm not a native english speaker and I'm more influenced by the Javascript tooling system than the Ruby one, so that could my source of confusion.

Hmm, fish_packages is not bad at all, but there's something about fish_bundle that just clicks for a shell project!

@mattmc3 Would you like to send me that PR? Let's go with fish_bundle, but we can keep collecting feedback in the meantime. I hope everyone's cool with this.

While Bundle is a common term used for the program & CLI commands managing packages, projects that have similar tools to bundler usually have the naming convention <PackageType>file:

  • Bundler uses Gemfile for ruby gem packages
  • Homebrew-bundle uses Brewfile for homebrew (brew, tap, cask, mas, & whalebrew) packages
  • Pipenv uses Pipfile for python pip packages

I would prefer one of the following options:

  • Fishfile - matches convention set by other projects, but breaks the fish naming convention
  • fish_file - matches fish naming convention, while staying close enough to the standard to be recognizable

I'm going with fish_bundle fish_plugins for fisher 4.0. I hope we're all cool with this.

What was the argument for fish_bundle instead of fish_file? It seems like the later is a more common name.

The word bundle could be hard to understand for people who are not part of certain circles. Would fish_packages correctly describe what the file contains?

I admit that I (used to) like fish_bundle. That was my original plan as that is the title of this issue, but in re-reading your question I realized that fish_bundle could never correctly and instantly describe what the file contains, whereas fish_plugins would, whatever your background is. Thank you for bringing this up while I still have time to reconsider.

I think we finally have a good reason to go forward with the name change and feel very strongly in favor of fish_plugins. This also happens to align nicely with fish's law of discoverability which is a plus.

As I was considering helping with the PR, this discussion leads me to agree that this kind of breaking change makes way more sense to wait for the 4.0 release.

@mattmc3 Absolutely. I've updated the milestone to reflect this as well. The good news is that 4.0 lands very soon! 馃挴

Implemented in 4.x. :tada:

Was this page helpful?
0 / 5 - 0 ratings