breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
# Fisher
2018-09-07 11:18:58 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
[![Build Status ](https://img.shields.io/travis/jorgebucaran/fisher.svg )](https://travis-ci.org/jorgebucaran/fisher)
[![Releases ](https://img.shields.io/github/release/jorgebucaran/fisher.svg?label=latest )](https://github.com/jorgebucaran/fisher/releases)
Ahoy my mateys! fisherman 2.0.0 (beta) is here.
A lot has changed, in fact, fisherman as you knew it, is
no longer with us. Let me explain. The new fisherman, is
in fact a rewired clone of ``fin´´, a short-lived 2 week
experiment that started because it was easier to rewrite
everything than moving fisherman forward.
Let me explain. I was longing for a lightweight, simpler
fisherman with minimal maintanance cost. This fin lad is
one of the most pragmatic pieces of code I've ever written,
but attempting to maintain two drastically different plugin
managers was not a sane decision. fin's goal was to get out
of my way and let me be productive with fish and it did.
Now fin is fisherman and fisherman is fin. The most notable
change is that fisherman no longer depends on an index, so
like fin, it's neutral and agnostic to what plugins you use.
No index means fisherman completions are no longer as clever
as to show you description of plugins, but you will still get
enough information to know whether the plugin is a theme or not.
I hope you always check the plugin's README / online docs before
installing anything anyway.
With the index gone, we had no use for ``search``, so this command
is also gone.
If you were using search often or depended on the removed features
above, I am afraid they are gone *gone*, but trust me it's all for
the very best.
Now, with this out of the way, it's all unicorns and dartfish. Almost.
To upgrade to fisherman 2.0.0 you need to REMOVE your current version
of fisherman:
1. ```rm -rf "$fisher_home" "$fisher_config"```
2. Open your config.fish and remove the fisherman initialization code.
3. ```exec fish < /dev/tty``` to reload the session.
4. Run `curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman`
That's it. Probably.
The new fisherman brings a lot more stability and maturity to the
project and we need this change in order to move forward. I will
be actively fixing any bugs that may have sneaked in during the
```fin->fisherman``` rewiring, but please do ping me:
@bucaran on GitHub or directly to my email j@bucaran.me
if you find anything out of place. Feel free and invited to go
wild with issues in order to get this into shape ASAP.
Cheers!
2016-04-21 15:34:06 +00:00
2018-10-08 10:55:56 +00:00
> **Notice**: Psst! Migrating from V2 to V3? Please see our [**migration guide**](https://github.com/jorgebucaran/fisher/issues/450) and happy upgrading! :wave:
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Fisher is a package manager for the [fish shell ](https://fishshell.com ). It defines a common interface for package authors to build and distribute their shell scripts in a portable way. You can use it to extend your shell capabilities, change the look of your prompt and create repeatable configurations across different systems effortlessly.
2016-04-29 08:29:30 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
## Features
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
- Zero configuration
- Oh My Fish package support
- High-speed concurrent package downloads⌁!
- If you've installed a package before, then it can be installed again offline
- Add, update and remove functions, completions, keybindings and configuration snippets from a variety of sources using the command line or editing your [fishfile ](#using-the-fishfile )
2016-03-02 10:55:03 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
## Installation
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Download fisher to your fish functions directory or any directory in your $fish_function_path.
2016-03-09 04:24:47 +00:00
2018-10-07 04:53:46 +00:00
```sh
2018-10-06 00:59:54 +00:00
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
2016-03-13 19:20:40 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
If the [XDG_CONFIG_HOME ](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables ) environment variable is defined on your system, use $XDG_CONFIG_HOME/fish to resolve the path to your fish configuration directory instead of ~/.config/fish.
2016-03-13 19:20:40 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
### Dependencies
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
- [fish ](https://github.com/fish-shell/fish-shell ) 2.0+ (prefer 2.3 or newer)
- [curl ](https://github.com/curl/curl ) 7.10.3+
- [git ](https://github.com/git/git ) 1.7.12+
2017-02-15 20:34:25 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
### Legacy fish support
2017-02-15 20:34:25 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Stuck in legacy fish and can't upgrade your shell? You'll need to run some code on startup to support packages that use [configuration snippets ](#configuration-snippets ). Open your ~/.config/fish/config.fish and add the following code at the beginning of the file.
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
```fish
set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config
for file in $XDG_CONFIG_HOME/conf.d/*.fish
builtin source $file 2>/dev/null
end
Ahoy my mateys! fisherman 2.0.0 (beta) is here.
A lot has changed, in fact, fisherman as you knew it, is
no longer with us. Let me explain. The new fisherman, is
in fact a rewired clone of ``fin´´, a short-lived 2 week
experiment that started because it was easier to rewrite
everything than moving fisherman forward.
Let me explain. I was longing for a lightweight, simpler
fisherman with minimal maintanance cost. This fin lad is
one of the most pragmatic pieces of code I've ever written,
but attempting to maintain two drastically different plugin
managers was not a sane decision. fin's goal was to get out
of my way and let me be productive with fish and it did.
Now fin is fisherman and fisherman is fin. The most notable
change is that fisherman no longer depends on an index, so
like fin, it's neutral and agnostic to what plugins you use.
No index means fisherman completions are no longer as clever
as to show you description of plugins, but you will still get
enough information to know whether the plugin is a theme or not.
I hope you always check the plugin's README / online docs before
installing anything anyway.
With the index gone, we had no use for ``search``, so this command
is also gone.
If you were using search often or depended on the removed features
above, I am afraid they are gone *gone*, but trust me it's all for
the very best.
Now, with this out of the way, it's all unicorns and dartfish. Almost.
To upgrade to fisherman 2.0.0 you need to REMOVE your current version
of fisherman:
1. ```rm -rf "$fisher_home" "$fisher_config"```
2. Open your config.fish and remove the fisherman initialization code.
3. ```exec fish < /dev/tty``` to reload the session.
4. Run `curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman`
That's it. Probably.
The new fisherman brings a lot more stability and maturity to the
project and we need this change in order to move forward. I will
be actively fixing any bugs that may have sneaked in during the
```fin->fisherman``` rewiring, but please do ping me:
@bucaran on GitHub or directly to my email j@bucaran.me
if you find anything out of place. Feel free and invited to go
wild with issues in order to get this into shape ASAP.
Cheers!
2016-04-21 15:34:06 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
### Bootstrap installation
To automate installing fisher on a new system, add the following code to your ~/.config/fish/config.fish. This will download fisher and install all the packages listed in your [fishfile ](#using-the-fishfile ) (if there is one).
```fish
if not functions -q fisher
echo "Installing fisher for the first time..." >& 2
set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config
curl https://git.io/fisher --create-dirs -sLo $XDG_CONFIG_HOME/fish/functions/fisher.fish
fisher
end
2016-03-09 04:24:47 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
### Changing the installation prefix
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Use the `$fisher_path` environment variable to change the prefix location where functions, completions, and configuration snippets will be copied to when a package is installed. The default location is where fisher itself is installed. If you followed the installation instructions above it should be in ~/.config/fish.
Make sure to append your functions and completions directories to the `$fish_function_path` and `$fish_complete_path` environment variables so that they can be autoloaded by fish in future sessions and to source every fish file inside your conf.d directory to run configuration snippets on startup.
Here is a boilerplate configuration you can add to your ~/.config/fish/config.fish file to get you started.
```fish
set -g fisher_path ~/another/path
set fish_function_path $fish_function_path $fisher_path/functions
set fish_complete_path $fish_complete_path $fisher_path/completions
for file in $fisher_path/conf.d/*.fish
builtin source $file 2> /dev/null
end
2016-03-09 04:24:47 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
## Usage
You've found an interesting utility you'd like to try out. Or perhaps you've [created a package ](#creating-your-own-package ) yourself. How do you install it on your system? You may want to update or remove it later too. How do you do that?
Ahoy my mateys! fisherman 2.0.0 (beta) is here.
A lot has changed, in fact, fisherman as you knew it, is
no longer with us. Let me explain. The new fisherman, is
in fact a rewired clone of ``fin´´, a short-lived 2 week
experiment that started because it was easier to rewrite
everything than moving fisherman forward.
Let me explain. I was longing for a lightweight, simpler
fisherman with minimal maintanance cost. This fin lad is
one of the most pragmatic pieces of code I've ever written,
but attempting to maintain two drastically different plugin
managers was not a sane decision. fin's goal was to get out
of my way and let me be productive with fish and it did.
Now fin is fisherman and fisherman is fin. The most notable
change is that fisherman no longer depends on an index, so
like fin, it's neutral and agnostic to what plugins you use.
No index means fisherman completions are no longer as clever
as to show you description of plugins, but you will still get
enough information to know whether the plugin is a theme or not.
I hope you always check the plugin's README / online docs before
installing anything anyway.
With the index gone, we had no use for ``search``, so this command
is also gone.
If you were using search often or depended on the removed features
above, I am afraid they are gone *gone*, but trust me it's all for
the very best.
Now, with this out of the way, it's all unicorns and dartfish. Almost.
To upgrade to fisherman 2.0.0 you need to REMOVE your current version
of fisherman:
1. ```rm -rf "$fisher_home" "$fisher_config"```
2. Open your config.fish and remove the fisherman initialization code.
3. ```exec fish < /dev/tty``` to reload the session.
4. Run `curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman`
That's it. Probably.
The new fisherman brings a lot more stability and maturity to the
project and we need this change in order to move forward. I will
be actively fixing any bugs that may have sneaked in during the
```fin->fisherman``` rewiring, but please do ping me:
@bucaran on GitHub or directly to my email j@bucaran.me
if you find anything out of place. Feel free and invited to go
wild with issues in order to get this into shape ASAP.
Cheers!
2016-04-21 15:34:06 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
You can use fisher to add, update and remove packages interactively, taking advantage of fish tab completions and syntax highlighting. Or [edit your fishfile ](#using-the-fishfile ) and commit your changes. Do you prefer a CLI-centered approach, text-based approach, or both?
### Adding packages
Install packages using the `add` command.
```
fisher add jethrokuan/z rafaelrinaldi/pure
2016-03-09 09:40:59 +00:00
```
2018-10-08 11:48:11 +00:00
Packages will be downloaded from GitHub if the name of the host is not specified. To install a package from anywhere else use the address of the remote server and the path to the repository.
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
```
2018-10-08 10:55:56 +00:00
fisher add gitlab.com/owner/foobar
2016-03-09 04:24:47 +00:00
```
2018-10-08 11:48:11 +00:00
You can install packages from a tag, branch or a [commit-ish ](https://git-scm.com/docs/gitglossary#gitglossary-aiddefcommit-ishacommit-ishalsocommittish ). If none is specified we'll use the latest code.
2016-04-28 19:21:58 +00:00
2016-04-29 08:29:30 +00:00
```
2018-10-08 11:48:11 +00:00
fisher add edc/bass@20f73ef jethrokuan/z@pre27
2016-04-28 19:21:58 +00:00
```
2018-10-08 11:48:11 +00:00
You can also install packages from a local directory. Local packages are managed through [symbolic links ](https://en.wikipedia.org/wiki/Symbolic_link ), so you can develop and use them at the same time.
2016-11-19 16:08:44 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
fisher add ~/myfish/mypkg
2016-11-19 16:08:44 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Notice you can only install one package version at a time. If two packages depend on a different version of the same package, the first one that gets installed will take precedence over the other.
### Listing packages
List all the packages that are currently installed using the `ls` command. This includes packages you didn't install yourself but were installed on your system as a dependency of another package.
2016-03-09 04:24:47 +00:00
2016-03-10 05:08:48 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
fisher ls
2018-10-08 10:55:56 +00:00
jethrokuan/z
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
rafaelrinaldi/pure
gitlab.com/owner/foobar
2018-10-08 11:48:11 +00:00
edc/bass
2018-10-08 10:55:56 +00:00
~/myfish/mypkg
2016-03-09 04:24:47 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
### Removing packages
Remove packages using the `rm` command. If a package has dependencies, they too will be removed. If any dependencies are still shared by other packages, they will remain installed.
2016-03-09 04:24:47 +00:00
Ahoy my mateys! fisherman 2.0.0 (beta) is here.
A lot has changed, in fact, fisherman as you knew it, is
no longer with us. Let me explain. The new fisherman, is
in fact a rewired clone of ``fin´´, a short-lived 2 week
experiment that started because it was easier to rewrite
everything than moving fisherman forward.
Let me explain. I was longing for a lightweight, simpler
fisherman with minimal maintanance cost. This fin lad is
one of the most pragmatic pieces of code I've ever written,
but attempting to maintain two drastically different plugin
managers was not a sane decision. fin's goal was to get out
of my way and let me be productive with fish and it did.
Now fin is fisherman and fisherman is fin. The most notable
change is that fisherman no longer depends on an index, so
like fin, it's neutral and agnostic to what plugins you use.
No index means fisherman completions are no longer as clever
as to show you description of plugins, but you will still get
enough information to know whether the plugin is a theme or not.
I hope you always check the plugin's README / online docs before
installing anything anyway.
With the index gone, we had no use for ``search``, so this command
is also gone.
If you were using search often or depended on the removed features
above, I am afraid they are gone *gone*, but trust me it's all for
the very best.
Now, with this out of the way, it's all unicorns and dartfish. Almost.
To upgrade to fisherman 2.0.0 you need to REMOVE your current version
of fisherman:
1. ```rm -rf "$fisher_home" "$fisher_config"```
2. Open your config.fish and remove the fisherman initialization code.
3. ```exec fish < /dev/tty``` to reload the session.
4. Run `curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman`
That's it. Probably.
The new fisherman brings a lot more stability and maturity to the
project and we need this change in order to move forward. I will
be actively fixing any bugs that may have sneaked in during the
```fin->fisherman``` rewiring, but please do ping me:
@bucaran on GitHub or directly to my email j@bucaran.me
if you find anything out of place. Feel free and invited to go
wild with issues in order to get this into shape ASAP.
Cheers!
2016-04-21 15:34:06 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
fisher rm rafaelrinaldi/pure
Ahoy my mateys! fisherman 2.0.0 (beta) is here.
A lot has changed, in fact, fisherman as you knew it, is
no longer with us. Let me explain. The new fisherman, is
in fact a rewired clone of ``fin´´, a short-lived 2 week
experiment that started because it was easier to rewrite
everything than moving fisherman forward.
Let me explain. I was longing for a lightweight, simpler
fisherman with minimal maintanance cost. This fin lad is
one of the most pragmatic pieces of code I've ever written,
but attempting to maintain two drastically different plugin
managers was not a sane decision. fin's goal was to get out
of my way and let me be productive with fish and it did.
Now fin is fisherman and fisherman is fin. The most notable
change is that fisherman no longer depends on an index, so
like fin, it's neutral and agnostic to what plugins you use.
No index means fisherman completions are no longer as clever
as to show you description of plugins, but you will still get
enough information to know whether the plugin is a theme or not.
I hope you always check the plugin's README / online docs before
installing anything anyway.
With the index gone, we had no use for ``search``, so this command
is also gone.
If you were using search often or depended on the removed features
above, I am afraid they are gone *gone*, but trust me it's all for
the very best.
Now, with this out of the way, it's all unicorns and dartfish. Almost.
To upgrade to fisherman 2.0.0 you need to REMOVE your current version
of fisherman:
1. ```rm -rf "$fisher_home" "$fisher_config"```
2. Open your config.fish and remove the fisherman initialization code.
3. ```exec fish < /dev/tty``` to reload the session.
4. Run `curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman`
That's it. Probably.
The new fisherman brings a lot more stability and maturity to the
project and we need this change in order to move forward. I will
be actively fixing any bugs that may have sneaked in during the
```fin->fisherman``` rewiring, but please do ping me:
@bucaran on GitHub or directly to my email j@bucaran.me
if you find anything out of place. Feel free and invited to go
wild with issues in order to get this into shape ASAP.
Cheers!
2016-04-21 15:34:06 +00:00
```
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
You can remove everything that is currently installed in one sweep using the following pipeline.
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
```sh
fisher ls | fisher rm
2016-03-09 04:24:47 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
### Updating packages
Run `fisher` to update everything you've installed. There is no dedicated update command. Using the command line to add and remove packages is a facade for modifying and committing changes to your fishfile in a single step.
If you are looking for a way to update fisher itself, use the `self-update` command.
2016-03-09 04:24:47 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
fisher self-update
```
### Other commands
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
To display usage help use the `help` command.
2016-03-09 04:24:47 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
fisher help
2016-03-09 04:24:47 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Last but not least use the `version` command to display the current version of fisher.
2016-03-09 04:24:47 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
fisher version
2016-03-09 04:24:47 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
### Using the fishfile
2018-09-07 11:17:02 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Whenever you add or remove a package from the command line we'll create a text file in ~/.config/fish/fishfile. This is your fishfile. It lists every package that is currently installed on your system. You should add this file to your dotfiles or version control if you want to reproduce your configuration on a different system.
2018-09-07 11:17:02 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
You can edit this file to add or remove packages and then run `fisher` to commit your changes. Only packages listed in the file will be installed after fisher returns. If a package is already installed it will be updated. Empty lines and everything after a `#` (comments) will be ignored.
2018-09-07 11:17:02 +00:00
```fish
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
vi ~/.config/fish/fishfile
2018-09-07 11:17:02 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
```fish
rafaelrinaldi/pure
jethrokuan/z@pre27
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
# my local packages
~/myfish/mypkg
```
2017-05-22 00:14:06 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
```
fisher
```
2017-05-22 00:14:06 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
## Package concepts
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Packages help you organize shell scripts into reusable, independent components that can be shared through a git URL or the path to a local directory. Even if your package is not meant to be shared with others, you can benefit from composition and the ability to depend on other packages.
2016-05-28 09:09:53 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
A package is uniquely identified by the name of its host, owner and root directory. Alas, the lack of private function scope in fish causes all package functions to share the same namespace. A good rule of thumb is to prefix functions intended for private use with the name of your package to reduce the possibility of conflicts.
2016-05-28 09:09:53 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
The structure of a package can be adopted from the fictional project described below. These are the files that fisher looks for when installing or uninstalling a package. Of course, you can elaborate on this to add tests, documentation, and other files, e.g. README and LICENSE files. The name of the root directory can be anything you wish. I recommend using a naming convention such as fish-_package-name_ for easier classification.
2016-05-28 09:09:53 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
```
fish-fly
├── fishfile
├── functions
│ └── fly.fish
├── completions
│ └── fly.fish
└── conf.d
└── fly.fish
```
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
If your project depends on other packages, it should list them as dependencies in a fishfile. There is no need for a fishfile otherwise. The rules concerning the usage of the fishfile are the same rules we've already covered in [using the fishfile ](#using-the-fishfile ).
2017-12-13 10:29:58 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
While some packages contain every kind of file, some packages contain only functions or configuration snippets. You are not limited to a single file per directory either. There can be as many files as you need or only one as in the next example.
2018-09-05 12:32:08 +00:00
2016-05-28 09:09:53 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
fish-fly
└── fly.fish
```
### Creating your own package
2016-05-28 09:09:53 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
The best way to show you how to create your own package is by building one together. Our first example will be a function that prints the raw non-rendered markdown source of a README file from GitHub to standard output. Its inputs will be the name of the owner, repository, and branch. If no branch is specified, we'll use the master branch.
2018-04-25 02:18:42 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Create the following directory structure and function file. Make sure the function name matches the file name, otherwise fish won't be able to autoload it the first time you try to use it.
2018-04-25 02:18:42 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
```
fish-readme
└── readme.fish
```
2018-04-25 02:18:42 +00:00
```fish
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
function readme --argument owner repo branch
if test -z "$branch"
set branch master
end
curl -s https://raw.githubusercontent.com/$owner/$repo/$branch/README.md
end
2018-04-25 02:18:42 +00:00
```
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
You can install it with the `add` command followed by the path to the directory. Local packages are symlinked to your `$fisher_path` so that code changes are instantly reflected during development.
Ahoy my mateys! fisherman 2.0.0 (beta) is here.
A lot has changed, in fact, fisherman as you knew it, is
no longer with us. Let me explain. The new fisherman, is
in fact a rewired clone of ``fin´´, a short-lived 2 week
experiment that started because it was easier to rewrite
everything than moving fisherman forward.
Let me explain. I was longing for a lightweight, simpler
fisherman with minimal maintanance cost. This fin lad is
one of the most pragmatic pieces of code I've ever written,
but attempting to maintain two drastically different plugin
managers was not a sane decision. fin's goal was to get out
of my way and let me be productive with fish and it did.
Now fin is fisherman and fisherman is fin. The most notable
change is that fisherman no longer depends on an index, so
like fin, it's neutral and agnostic to what plugins you use.
No index means fisherman completions are no longer as clever
as to show you description of plugins, but you will still get
enough information to know whether the plugin is a theme or not.
I hope you always check the plugin's README / online docs before
installing anything anyway.
With the index gone, we had no use for ``search``, so this command
is also gone.
If you were using search often or depended on the removed features
above, I am afraid they are gone *gone*, but trust me it's all for
the very best.
Now, with this out of the way, it's all unicorns and dartfish. Almost.
To upgrade to fisherman 2.0.0 you need to REMOVE your current version
of fisherman:
1. ```rm -rf "$fisher_home" "$fisher_config"```
2. Open your config.fish and remove the fisherman initialization code.
3. ```exec fish < /dev/tty``` to reload the session.
4. Run `curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman`
That's it. Probably.
The new fisherman brings a lot more stability and maturity to the
project and we need this change in order to move forward. I will
be actively fixing any bugs that may have sneaked in during the
```fin->fisherman``` rewiring, but please do ping me:
@bucaran on GitHub or directly to my email j@bucaran.me
if you find anything out of place. Feel free and invited to go
wild with issues in order to get this into shape ASAP.
Cheers!
2016-04-21 15:34:06 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
```
fisher add /absolute/path/to/fish-readme
```
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
The next logical step is to share it with others. How do you do that? Fisher is not a package registry. Its function is to fetch fish scripts and put them in place so that your shell can find them. To publish a package put your code online. You can use GitHub, GitLab or BitBucket or anywhere you like.
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Now let's install the package again, this time from its new location. Open your ~/.config/fish/fishfile and replace the local version of the package we previously installed with the URL of the remote repository. Save your changes and run `fisher` . You can leave off the github.com part of the URL when adding or removing packages hosted on GitHub.
2016-03-09 04:24:47 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
### Configuration snippets
2016-02-24 11:35:45 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Configuration snippets consist of any fish files in your ~/.config/fish/conf.d directory. They are evaluated on [shell startup ](http://fishshell.com/docs/current/index.html#initialization ) and often used to modify the shell environment, create key bindings, etc.
2016-02-24 11:35:45 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Unlike functions or completions, which can be erased programmatically, we can't undo a fish file that has been sourced without creating a new shell session. For this reason, packages that use configuration snippets provide custom uninstall logic through an uninstall [event handler ](https://fishshell.com/docs/current/#event ).
Ahoy my mateys! fisherman 2.0.0 (beta) is here.
A lot has changed, in fact, fisherman as you knew it, is
no longer with us. Let me explain. The new fisherman, is
in fact a rewired clone of ``fin´´, a short-lived 2 week
experiment that started because it was easier to rewrite
everything than moving fisherman forward.
Let me explain. I was longing for a lightweight, simpler
fisherman with minimal maintanance cost. This fin lad is
one of the most pragmatic pieces of code I've ever written,
but attempting to maintain two drastically different plugin
managers was not a sane decision. fin's goal was to get out
of my way and let me be productive with fish and it did.
Now fin is fisherman and fisherman is fin. The most notable
change is that fisherman no longer depends on an index, so
like fin, it's neutral and agnostic to what plugins you use.
No index means fisherman completions are no longer as clever
as to show you description of plugins, but you will still get
enough information to know whether the plugin is a theme or not.
I hope you always check the plugin's README / online docs before
installing anything anyway.
With the index gone, we had no use for ``search``, so this command
is also gone.
If you were using search often or depended on the removed features
above, I am afraid they are gone *gone*, but trust me it's all for
the very best.
Now, with this out of the way, it's all unicorns and dartfish. Almost.
To upgrade to fisherman 2.0.0 you need to REMOVE your current version
of fisherman:
1. ```rm -rf "$fisher_home" "$fisher_config"```
2. Open your config.fish and remove the fisherman initialization code.
3. ```exec fish < /dev/tty``` to reload the session.
4. Run `curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman`
That's it. Probably.
The new fisherman brings a lot more stability and maturity to the
project and we need this change in order to move forward. I will
be actively fixing any bugs that may have sneaked in during the
```fin->fisherman``` rewiring, but please do ping me:
@bucaran on GitHub or directly to my email j@bucaran.me
if you find anything out of place. Feel free and invited to go
wild with issues in order to get this into shape ASAP.
Cheers!
2016-04-21 15:34:06 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Let's walk through an example that uses this feature to add a new key binding. Key bindings (or keyboard shortcuts) are sequences of one or more keys mapped to a fish command, builtin or function. The following package maps the sequence `Control-g` to opening your fishfile in the `vi` editor.
Ahoy my mateys! fisherman 2.0.0 (beta) is here.
A lot has changed, in fact, fisherman as you knew it, is
no longer with us. Let me explain. The new fisherman, is
in fact a rewired clone of ``fin´´, a short-lived 2 week
experiment that started because it was easier to rewrite
everything than moving fisherman forward.
Let me explain. I was longing for a lightweight, simpler
fisherman with minimal maintanance cost. This fin lad is
one of the most pragmatic pieces of code I've ever written,
but attempting to maintain two drastically different plugin
managers was not a sane decision. fin's goal was to get out
of my way and let me be productive with fish and it did.
Now fin is fisherman and fisherman is fin. The most notable
change is that fisherman no longer depends on an index, so
like fin, it's neutral and agnostic to what plugins you use.
No index means fisherman completions are no longer as clever
as to show you description of plugins, but you will still get
enough information to know whether the plugin is a theme or not.
I hope you always check the plugin's README / online docs before
installing anything anyway.
With the index gone, we had no use for ``search``, so this command
is also gone.
If you were using search often or depended on the removed features
above, I am afraid they are gone *gone*, but trust me it's all for
the very best.
Now, with this out of the way, it's all unicorns and dartfish. Almost.
To upgrade to fisherman 2.0.0 you need to REMOVE your current version
of fisherman:
1. ```rm -rf "$fisher_home" "$fisher_config"```
2. Open your config.fish and remove the fisherman initialization code.
3. ```exec fish < /dev/tty``` to reload the session.
4. Run `curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman`
That's it. Probably.
The new fisherman brings a lot more stability and maturity to the
project and we need this change in order to move forward. I will
be actively fixing any bugs that may have sneaked in during the
```fin->fisherman``` rewiring, but please do ping me:
@bucaran on GitHub or directly to my email j@bucaran.me
if you find anything out of place. Feel free and invited to go
wild with issues in order to get this into shape ASAP.
Cheers!
2016-04-21 15:34:06 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
```
fish-fishfile-quick-edit
└── conf.d
└── fishfile-quick-edit.fish
```
2017-05-22 00:14:06 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
```fish
bind \cg "vi ~/.config/fish/fishfile"
function fishfile-quick-edit_uninstall --event fishfile-quick-edit_uninstall
bind -e \cg
end
```
2017-05-22 00:14:06 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
When you uninstall this package, we'll emit a _package-name_ \_uninstall event that will call your eponymously named event handler function where the key binding will be erased.
Ahoy my mateys! fisherman 2.0.0 (beta) is here.
A lot has changed, in fact, fisherman as you knew it, is
no longer with us. Let me explain. The new fisherman, is
in fact a rewired clone of ``fin´´, a short-lived 2 week
experiment that started because it was easier to rewrite
everything than moving fisherman forward.
Let me explain. I was longing for a lightweight, simpler
fisherman with minimal maintanance cost. This fin lad is
one of the most pragmatic pieces of code I've ever written,
but attempting to maintain two drastically different plugin
managers was not a sane decision. fin's goal was to get out
of my way and let me be productive with fish and it did.
Now fin is fisherman and fisherman is fin. The most notable
change is that fisherman no longer depends on an index, so
like fin, it's neutral and agnostic to what plugins you use.
No index means fisherman completions are no longer as clever
as to show you description of plugins, but you will still get
enough information to know whether the plugin is a theme or not.
I hope you always check the plugin's README / online docs before
installing anything anyway.
With the index gone, we had no use for ``search``, so this command
is also gone.
If you were using search often or depended on the removed features
above, I am afraid they are gone *gone*, but trust me it's all for
the very best.
Now, with this out of the way, it's all unicorns and dartfish. Almost.
To upgrade to fisherman 2.0.0 you need to REMOVE your current version
of fisherman:
1. ```rm -rf "$fisher_home" "$fisher_config"```
2. Open your config.fish and remove the fisherman initialization code.
3. ```exec fish < /dev/tty``` to reload the session.
4. Run `curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman`
That's it. Probably.
The new fisherman brings a lot more stability and maturity to the
project and we need this change in order to move forward. I will
be actively fixing any bugs that may have sneaked in during the
```fin->fisherman``` rewiring, but please do ping me:
@bucaran on GitHub or directly to my email j@bucaran.me
if you find anything out of place. Feel free and invited to go
wild with issues in order to get this into shape ASAP.
Cheers!
2016-04-21 15:34:06 +00:00
2018-10-05 14:11:41 +00:00
> **Note**: Custom key bindings on shell startup are only available on fish 3.0 or newer. To make this package compatible with older versions of fish, you need to add custom key bindings via [jorgebucaran/fish-custom-key-bindings](https://github.com/jorgebucaran/fisher/issues/448).
2016-06-10 12:47:24 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
## Uninstalling
2016-06-10 12:47:24 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
You wish to know how to uninstall fisher and everything you've installed with it from your system. Or perhaps something went wrong and you want to start over. This will uninstall all the packages, purge the cache and then remove fisher from your fish functions directory.
2016-06-10 12:47:24 +00:00
2016-07-19 02:44:23 +00:00
```fish
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
fisher self-uninstall
2016-06-10 12:47:24 +00:00
```
2017-01-20 10:29:30 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
## License
2017-01-20 10:29:30 +00:00
breaking: implement fisher V3 (#445)
SUMMARY
This PR rewrites fisher from the ground up and adds new
documentation. It introduces some breaking changes as described
in the next section. For a historical background of this work
see the original V3 proposal #307 and the more recent discussion
about the future of the project #443.
After much debate and careful consideration I decided it is in
the best interest of the project to keep the CLI-based approach
to dependency management as a facade to the fishfile-based
approach originally proposed.
The new `add` commands (previously `install`) and good ol' `rm`
interactively update your fishfile and commit all your changes
in one sweep. To the end user, it's as if you were adding or
removing packages like you already do now. Internally, these
commands affect how the fishfile is parsed and result in adding
new or replacing/removing existing entries followed by a regular
`fisher` run.
INSTALLING
- `install` has been renamed to `add`
- Installing from a gist is no longer supported (but it will be
back in a future release—removed only to simplify the rewrite)
- To install a package from a tag or branch use an at symbol
`@`—the colon `:` is deprecated
LISTING
- `ls` and `rm` are still available with a few minor differences
- `ls` followed by a package name does not list specific package
information (may be added back in a future release)
- `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 want to add a `--tree` option in to display packages in a
tree-like format in the future
- `ls-remote` has been removed as there is no longer a preferred
organization to look for packages— there is no plan to add it
back
UPDATING
- A new `self-update` command has been introduced to update
fisher itself
- fisher will be only updated when a new version is actually
available
- `update` has been removed
- Everything is installed from scratch everytime you add or
remove something, so there is no need to update specific
packages—you're always up-to-date
- To lock on a specific package version install from a
tag/branch, e.g., `mypkg/foobar@1.3.2`
UNINSTALLING
- `self-uninstall` works as usual
HELP & VERSION
- `help` only displays fisher usage help
- help is dumped to stdout instead of creating a man page on the
fly and piping it to your pager `version` works as usual
ENVIRONMENT
- `$fish_path` been renamed to `$fisher_path` to make it clear
that this is a fisher specific extension, not your shell's
ECOSYSTEM
- Oh My Fish! packages are still supported, albeit less
attention is paid to them
- Some packages that use Oh My Fish! specific environment
variables or events might not work
- Most of Oh My Fish! extensions are no longer necessary since
fish 2.3, therefore it should be a simple matter to upgrade them
to modern fish
DEPENDENCIES
- fisher can now run on fish 2.0
- It's a good idea to upgrade to at least fish 2.3 to use the
string builtin and configuration snippets, but there's no reason
for fisher to force you to use any fish version
- `curl` is required for fetching packages
- I am considering adding a fallback to `wget` if `curl` is not
available on your system
- `git` is optional
- V3 fetches packages directly from github, gitlab and
bitbucket, if you are using them
- git is only used (implementation still wip) if you want to
install a package from an unknown git host like your own git
server
2018-10-05 11:20:31 +00:00
Fisher is MIT licensed. See the [LICENSE ](LICENSE.md ) for details.