Releases: jorgebucaran/fisher
Releases · jorgebucaran/fisher
3.1.1
3.1.0
- Added user key bindings autoloading for legacy Fish; related to (#465, jethrokuan/fzf/pull/85).
- To enable running code on shell startup, we now create a configuration snippet for Fisher. This file is located in
$fisher_path/conf.d/fisher.fish
. This file is only created if a version of Fish older than 3.0 is detected or if you are using a development/untagged release. If you upgrade to version 3.0 after using an older version and we know that we've created this file prior to this point, we'll remove the file as it's no longer needed. - To support plugins that add key bindings, we make a copy of the user's
fish_user_key_bindings
function (if it exists) and create a new function that, when called, will source every*_key_bindings.fish
file inside$fisher_path/conf.d
. Any key bindings defined in those files will be correctly registered at this point. When we're done, we'll run our saved copy of the user'sfish_user_key_bindings
to preserve any user-defined key bindings in it.
- To enable running code on shell startup, we now create a configuration snippet for Fisher. This file is located in
- Fixed legacy Fish instructions; improved punctuation and grammar.
- Added more information to the
help
command; related to (#474).- Command line usage help now informs you that running
fisher
will update installed plugins. - Running
fisher
also commits Fishfile changes, but all the words couldn't fit on the same line.
- Command line usage help now informs you that running
- Implemented copying files from subdirectories (#468).
- Supporting nested directories is an anti-feature.
- It exists only so that we can install certain plugins that are structured that way.
- All functions share the same scope and location.
- Normalized plugin id in Fishfile format script.
3.0.9
- Do not strip
github.com
from local paths (#472). - Avoid hardlinking (#470).
- Allow installation of self-hosted plugins via ssh+git (#464).
- The URL must be in the form
[email protected]:path/to/repo
.
- The URL must be in the form
- Display the correct time on Linux (#463).
- Enhanced the visibility of the migration guide (#450).
- Enhanced the plugin fetch error message.
- Improved the readability of the status report generator.
- Refined the fishfile prettify/normalize regex.
3.0.8
- Mention that packages can be installed from a commit-ish.
- Simplify the parsing script for the built-in
jobs
. - Use
$__fish_data_dir
if available.
3.0.7
3.0.6
3.0.5
- Do not download packages already downloaded.
- Enhance error message when attempting to install a package without a prefix.
3.0.4
- Use Perl for epoch exclusively on FreeBSD and Darwin (#458).
- Copy non-fish files into
$fisher_path
(#456). - Enhance commit error message when the fishfile is not empty.
- Dry-run self-uninstall; include a farewell message.
- Display version and help information in CI.
- Added upgrading instructions and link to the migration guide (#450).
3.0.3
- Prevent failglob error when
$fisher_config
is empty (#455). - Don't try to install a package from an invalid specifier (#454).
- Create fishfile automatically (#451).
- Create fishfile if one doesn't already exist.
- Only read from stdin when using
add
orrm
commands. - Show help if an unknown command is entered.
- Show error message when fishfile is empty and no packages were added, removed or updated.
- Added upgrading instructions and link to migration guide (#450).
3.0.0
Fisher 3 is the continuation of and successor to Fisherman. For historical background on this work, see the original V3 proposal (#307) and later discussion about the future of the project (#443).
Installing Packages
- The
install
command has been renamed toadd
.- Installing from a gist is no longer supported (but it might come back in a future release).
- To install a package from a tag, branch, or commit-ish, use an
@
symbol followed by the git ref; the colon:
symbol has been deprecated. Both..fish
files provided by your package will be copied to$fisher_path
.fish
files in the top-level directory and files of any extension insidefunctions
,completions
, andconf.d
directories will be copied to your$fisher_path
.
Updating Packages & Self-Update
- A new
self-update
command has been added, which can be used to update Fisher itself within the same shell session.- Fisher will be updated only if a new version is available.
- The
update
command has been removed; to update all your installed packages, just runfisher
.- Every time you run
fisher
,fisher add
, orfisher rm
, every package currently installed on your system is installed again from scratch, ensuring you are always up-to-date.- To lock a specific package version, use the
@
symbol followed by a git tag, branch, or commit-ish, e.g.,mypkg/[email protected]
,mypkg/bazbam@fdc5ce1
.
- To lock a specific package version, use the
- Every time you run
Listing Packages
- The
ls
andrm
commands are still available, with a few minor differences.ls
followed by a package name does not list specific package information (but it might come back in a future release).- The
ls
output format no longer displays a legend to indicate whether a package is a theme or a local package; now it's a flat dump of every installed package specifier.- For local packages, the full path is shown instead.
- I'm considering adding a new
--tree
flag to display packages in a tree-like format.
ls-remote
has been removed, as there is no longer a preferred organization for finding packages.
Uninstalling Fisher
- To uninstall Fisher from your system, use
self-uninstall
; no warnings, use with caution.- Unlike V2, this command will first remove all the packages currently installed, then proceed to remove Fisher itself.
Environment Variables
$fish_path
has been renamed to$fisher_path
to clarify that this variable is Fisher-specific, not part of your shell's.- This variable controls the prefix location where functions, completions, and configuration snippets will be copied when installing a package.
- Unlike V2, the fishfile is always inside your Fish configuration directory (XDG_CONFIG_HOME/fish).
Compatibility with Oh My Fish!
- Oh My Fish! packages are still largely supported, but 100% compatibility is not a goal.
- Packages with
init.fish
,uninstall.fish
,key_bindings.fish
, or recursive directories should work out of the box. init_
events, hooks, Oh My Fish! core library functions, and Oh My Fish! environment variables such as$OMF_PATH
,$package
,$path
, and$dependencies
are not currently supported.- If you tried to install an Oh My Fish! package and it didn't work as expected, please open an issue, and I'll look into it.
- Packages with
System Requirements
- Fisher is compatible with Fish 2.0 and later versions.
- For optimal functionality, including the use of the
string
builtin and configuration snippets, upgrading to Fish 2.3 or higher is recommended. However, Fisher does not mandate any specific version of Fish.
- For optimal functionality, including the use of the
- The
curl
utility is necessary to download packages. - While
git
is not a mandatory dependency, it is useful for retrieving self-hosted packages. Withoutgit
, Fisher directly downloads package tarballs from platforms like GitHub, GitLab, and Bitbucket.- Support for additional hosting platforms may be considered in the future based on user feedback and requirements.