mirror of
https://github.com/asdf-vm/asdf.git
synced 2024-12-23 20:05:09 -07:00
feat(golang-rewrite): create version 0.14 to 0.15 upgrade guide
This commit is contained in:
parent
7f4208333e
commit
53cd454474
108
docs/guide/upgrading-from-v0-14-to-v0-15.md
Normal file
108
docs/guide/upgrading-from-v0-14-to-v0-15.md
Normal file
@ -0,0 +1,108 @@
|
||||
# Upgrading From Version 0.14.x to 0.15.0
|
||||
|
||||
asdf versions 0.14.1 and older were written in Bash and distributed as a set of
|
||||
Bash scripts with the `asdf` function loaded into your shell. asdf version
|
||||
0.15.0 is a complete rewrite of asdf in Go. Since it is a complete rewrite
|
||||
there are a number of breaking changes and it is now distributed as a binary
|
||||
rather than a set of scripts.
|
||||
|
||||
## Breaking Changes
|
||||
|
||||
### Hyphenated commands have been removed
|
||||
|
||||
asdf version 0.14.1 and earlier supported by hyphenated and non-hyphenated
|
||||
versions of certain commands. With version 0.15.0 only the non-hyphenated
|
||||
versions are supported. The affected commands:
|
||||
|
||||
* `asdf list-all` -> `asdf list all`
|
||||
* `asdf plugin-add` -> `asdf plugin add`
|
||||
* `asdf plugin-list` -> `asdf plugin list`
|
||||
* `asdf plugin-list-all` -> `asdf plugin list all`
|
||||
* `asdf plugin-update` -> `asdf plugin update`
|
||||
* `asdf plugin-remove` -> `asdf plugin remove`
|
||||
|
||||
### `asdf global` and `asdf local` commands have been replaced by the `asdf set` command
|
||||
|
||||
`asdf global` and `asdf local` have been replaced by `asdf set`, which aims to
|
||||
provide the same functionality while using terminology that is less likely to
|
||||
mislead the user. TODO: Add more details here
|
||||
|
||||
### `asdf update` command has been removed
|
||||
|
||||
Updates can no longer be performed this way. Use your OS package manager or
|
||||
download the latest binary manually. Additionally, the `asdf update` command
|
||||
present in versions 0.14.1 and older cannot upgrade to version 0.15.0 because
|
||||
the install process has changed. **You cannot upgrade to the latest Go
|
||||
implementation using `asdf update`.**
|
||||
|
||||
### `asdf shell` command has been removed
|
||||
|
||||
This command actually set an environment variable in the user's current shell
|
||||
session. It was able to do this because `asdf` was actually a shell function,
|
||||
not an executable. The new rewrite removes all shell code from asdf, and it is
|
||||
now a binary rather than a shell function, so setting environment variables
|
||||
directly in the shell is no longer possible.
|
||||
|
||||
## Installation
|
||||
|
||||
Installation of version 0.15.0 is much simpler than previous versions of asdf. It's just three steps:
|
||||
|
||||
* Download the appropriate `asdf` binary for your operating system/architecture combo and place it in a directory on your `$PATH`
|
||||
* Set `ASDF_DATA_DIR` to the directory you'd like asdf to install plugins, versions, and shims.
|
||||
* Add `$ASDF_DATA_DIR/shims` to the front of your `$PATH.
|
||||
|
||||
If your operating system's package manager already offers asdf 0.15.0 that is
|
||||
probably the best method for installing it. Upgrading asdf is now only possible
|
||||
via OS package managers and manual installation. There is no self-upgrade
|
||||
feature.
|
||||
|
||||
### Upgrading Without Losing Data
|
||||
|
||||
You can upgrade to the latest version of asdf without losing your existing
|
||||
install data. It's the same sequence of steps as above.
|
||||
|
||||
#### 1. Download the appropriate `asdf` binary for your operating system & architecture
|
||||
|
||||
Download the binary and place it in a directory on your path. I chose to place
|
||||
the asdf binary in `$HOME/bin` and then added `$HOME/bin` to the front of my
|
||||
`$PATH`:
|
||||
|
||||
```
|
||||
# In .zshrc, .bashrc, etc...
|
||||
export PATH="$HOME/bin:$PATH"`
|
||||
```
|
||||
|
||||
#### 2. Set `ASDF_DATA_DIR`
|
||||
|
||||
Run `asdf info` and copy the line containing the `ASDF_DATA_DIR` variable:
|
||||
|
||||
```
|
||||
...
|
||||
ASDF_DATA_DIR="/home/myuser/.asdf"
|
||||
...
|
||||
```
|
||||
|
||||
In your shell RC file (`.zshrc` if Zsh, `.bashrc` if Bash, etc...) add a line
|
||||
to the end setting `ASDF_DATA_DIR` to that same value:
|
||||
|
||||
```bash
|
||||
export ASDF_DATA_DIR="/home/myuser/.asdf"
|
||||
```
|
||||
|
||||
#### 3. Add `$ASDF_DATA_DIR/shims` to the front of your `$PATH
|
||||
|
||||
In your shell RC file (same file as step #2) add `$ASDF_DATA_DIR/shims` to the
|
||||
front of your path:
|
||||
|
||||
```bash
|
||||
export ASDF_DATA_DIR="/home/myuser/.asdf"
|
||||
export PATH="$ASDF_DATA_DIR/shims:$PATH"
|
||||
```
|
||||
|
||||
### Testing
|
||||
|
||||
If you aren't sure if the upgrade to 0.15.0 will break things for you can you
|
||||
can test by installing 0.15.0 in addition to your existing version as described
|
||||
above in "Upgrading Without Losing Data". If it turns out that the upgrade to
|
||||
0.15.0 breaks things for you simply remove the lines you added to your shell
|
||||
RC file.
|
Loading…
Reference in New Issue
Block a user