0.13.1 (2023-09-12)
0.13.0 (2023-09-11)
plugin list
exit code 0 when no plugins are installed (#1597)- 0 exit code for success when adding an existing plugin (#1598)
- fish: don't resolve symlinks for ASDF_DIR (#1583)
plugin list
exit code 0 when no plugins are installed (#1597) (a029c00)- 0 exit code for success when adding an existing plugin (#1598) (4dd1904)
- fish: don't resolve symlinks for ASDF_DIR (#1583) (d1a563d)
- improve lint and test scripts (#1607) (b320803)
- Make asdf.fish compatible with Fish 3.1.2 (#1590) (e83d71e)
- no longer write temporary files to home directory (#1592) (624604a)
- nushell language syntax update (#1624) (0ddab5d)
- set default shell version values on POSIX entrypoint (#1594) (4d5f22d)
- warn when any ./lib/commands are marked as executable (#1593) (2043a09)
bin/latest-stable
empty query is set to default (#1591) (299dc97)- migrate to VitePress from VuePress (#1578) (5133819)
- upgrade deps & fix breaking changes (446f8c5)
0.12.0 (2023-06-09)
- Remove files containing only
asdf
wrapper functions (#1525) - align Fish entrypoint behaviour with other shells (#1524)
- do not remove items from PATH in POSIX entrypoint (#1521)
- rework POSIX entrypoint for greater shell support (#1480)
- Add Nushell installation instructions for all languages (#1519) (6a6c539)
- fix
ASDF_${LANG}_VERSION
usage (#1528) (63f422b) - fix Nushell-Homebrew setup instructions (#1495) (49e541a)
- fix uninstall instructions for Fish Shell (#1547) (a1e858d)
- Improve wording of env vars section (#1514) (ec3eb2d)
- verbose plugin create command details (#1445) (8108ca6)
asdf info
show BASH_VERSION & all asdf envs (#1513) (a1b5eee)- align Fish entrypoint behaviour with other shells (#1524) (8919f40)
- assign default values to all internal variables (#1518) (86477ee)
- Better handling with paths that include spaces (#1485) (bbcbddc)
- create install directory with
mkdir -p
(#1563) (d6185a2) - do not remove items from PATH in POSIX entrypoint (#1521) (b6d0ca2)
- enforce consistent shell redirection format (#1533) (1bc205e)
- improve readability of the non-set
nullglob
guard (#1545) (f273612) - Introduce
ASDF_FORCE_PREPEND
variable on POSIX entrypoint (#1560) (5b7d0fe) - lint & style errors in
bin/asdf
(#1516) (13c0e2f) - Nushell plugin list --urls (#1507) (9363fb2)
- nushell plugin list all (#1501) (#1502) (c5b8b3c)
- Remove files containing only
asdf
wrapper functions (#1525) (00fee78) - remove leading asterick in Fish completion (#1543) (198ced5)
- rename internal function
asdf_tool_versions_filename
(#1544) (b36ec73) - rename internal plugin repository functions (#1537) (5367f1f)
- rework POSIX entrypoint for greater shell support (#1480) (3379af8)
- support
asdf shim-versions
completions in fish & bash (#1554) (99623d7) - Typo in POSIX entrypoint (#1562) (6b2ebf5)
- warn if
.tool-versions
or asdfrc contains carriage returns (#1561) (097f773)
0.11.3 (2023-03-16)
0.11.2 (2023-02-21)
- bash completion for latest command (#1472) (2606a87)
- enforce & use consistent function definitions (#1464) (e0fd7a7)
- nushell PATH conversion to list before filter (#1471) (cd0e12b)
- Remove
==
inside[
(#1421) (d81b81f) - support nushell v0.75.0 (#1481) (dd8d399)
0.11.1 (2023-01-13)
reshim
did not rewrite executable path (#1311) (5af7625)- Add test for nushell integration and fix some bugs (#1415) (60d4494)
- Allow
path:
versions to use~
(#1403) (670c96d) - Ban use of 'test' (#1383) (ec972cb)
- correct order of checks in conditional for adding a missing newline (#1418) (4125d2b), closes #1417
- Do not use
pwd
(dd37b6f) - Do not use type not exported on older Python versions (#1409) (7460809)
- force lwrcase plugin name fix capitalization mismatch errs (#1400) (196a05b)
- lint errors from
scripts/checkstyle.py
(#1385) (3492043) - mv dev dep from repo root to subdir to avoid clash (#1408) (5df70da)
- Remove unecessary backslashes (#1384) (15faf93)
- Remove usage of
$(pwd)
in favor of$PWD
(f522ab9)
0.11.0 (2022-12-12)
- completions: bash improvements (#1329) (7c802c3)
- Disable short-name repository with config value (#1227) (18caea3)
- mark current resolved versions in
asdf list
output (#762) (5ea6795) - support nushell (#1355) (274a638)
- add missing "does not add paths to PATH more than once" test for elvish (#1275) (3c55167)
- append trailing newline to .tool-versions files when missing (#1310) (eb7dac3), closes #1299
- excludes "milestone" releases in "latest" command (#1307) (5334d1d), closes #1306
- improve formatting of ballad (#1367) (e0c2c31)
- use ELVISH_VERSION to specify elvish test version (#1276) (72c3a23)
0.10.2 (2022-06-08)
- always use ASDF_DEFAULT_TOOL_VERSIONS_FILENAME for filename when present (#1238) (711ad99), closes #1082
- get invalid ASDF_DATA_DIR when exec asdf shims by non-shell (#1154) (b9962f7)
- update event trigger for doc-version workflow (#1232) (0bc8c3a)
- update plugin-add regex to support other languages (#1241) (92d005d), closes #1237
- updating references to legacy github.io site (#1240) (738306b)
0.10.1 (2022-05-17)
- add asdf to list of banned commands (#1224) (39909e0)
- don't invoke asdf inside asdf commands (#1208) (27f7ef7)
- fixing bats (#1215) (a9caa5b)
- instead /tmp, use TMPDIR if defined (9113623)
- make fish shell setup match other shells (#1209) (6fc4bb8)
- only iterate over directories in the plugins/ directory (#1228) (788ccab)
- update elvish to 0.18.0 (5a89563)
0.10.0 (2022-04-14)
- case-insensitive filtering of unstable versions in
latest
(#1139) (e61e3d9) - latest: adds the flag --all to the latest command (#1096) (f85fef5)
- upgrade elvish to 0.17.0 (#1159) (824550e)
- Ban
ls
command (#1141) (87137e4) - ban grep long flags (#1117) (6e4c39c)
- do not print
find
errors (#1102) (5992abb) - don't generate on error if backup file doesn't exists (#1057) (288468f)
- elvish: prepend asdf paths to
$PATH
(#1174) (682b7a1) - latest --all correctly report plugins as missing (#1118) (aafe1e5)
- local plugin in then clause too (#1203) (448f750)
- newline after error msg for ASDF_DIR (#1113) (ac2791e)
- Prevent unbound variable error with nounset in asdf.sh (#1158) (b7dd291)
- remove comments from whole file instead of line by line for performance (#1198) (de6e22f)
- shorthand grep options for alpine support (#1106) (234778a)
0.9.0 (2021-11-18)
- add post update plugin support (#1049) (304f72d)
- asdf latest defer to plugin to determine the latest version (#938) (664d82e)
- configurable plugin repo last check time (#957) (1716afa)
- display plugin repo refs alongside urls in info cmd (#1014) (cd0a6a7)
- Displays a warning when a plugin from the tools-version list does not exist (#1033) (9430a39)
- Elvish Shell support (#1066) (cc7778a)
- toggle off repo sync completely (#1011) (a3ba5a7)
- Adds "grep -P" to the list of banned commands (#1064) (8a515f4)
- allow plugin callbacks to be in any language (#995) (2ad0f5e)
- clarify the wording when no version is set (#1088) (4116284)
- completions for asdf plugin list (#1061) (43412aa)
- Correct typo on getting started page (#1086) (4321980)
- don't override existing ASDF_DIR (#1008) (73efc9f)
- ensure shims get created when data dir has spaces (#996) (39c9999)
- Fix plugin-test arg parsing (#1084) (c911f2d)
- full_version_name is not available here (#1031) (8490526)
- help for extension commands for plugins with hyphens in the name. (#1048) (3e0cb9a)
- help text as per new feats in #633 (#991) (0d95663)
- incorrect usage of grep (#1035) (30d27cb)
- insert error handling in list-all & download plugin scripts (#881) (a7d3661)
- lint scripts for local and CI (#961) (5dafbc8)
- pipe find into while (26d2c64)
- Quote commands correctly in plugin-test (#1078) (69ff2d0)
- regex validate plugin names on plugin add cmd (#1010) (7697e6e)
- remove find -print0 (b9228a2)
- Sed improvements (#1087) (4b93bc8)
- sed re error trailing backslash on FreeBSD (#1046). (#1047) (47e8fb0)
- support latest with filter on local and global (#633) (5cf8f89)
- Use more idiomatic fish (#1042) (847ec73)
- wait until the plugin update are finished (#1037) (7e1f2a0)
Features
- Support for latest version in shell, local, and global commands (#802, #801)
- Parallel updating of all plugins (#626, #530)
- Print documentation website and GitHub URLs in help command (#820)
Fixed Bugs
- Fix plugin-update --all when there are no plugins (#805, #803)
- Ban
echo
command from asdf codebase (#806, #781) - Add basic tests for plugin-update command (#807)
- Cleanup unused code in plugin update tests (#810)
- Fix resolution of relative symlinks (#815, #625)
- Fixes to GitHub workflow (#833)
- Update no plugin installed error message (#818)
- Remove process substitution that was problematic when POSIXLY_CORRECT is set (#851, #581)
- Fix warnings from find command (#853)
- Ban the
sort -V
command from the asdf codebase (#755, #867) - Fix
plugin update --all
so that the default branch is used for each plugin (#800) - Fix issues with awk command on some platforms used by plugin update command (#924, #899, #919)
- Add completion for the
system
version (#911)
Documentation
- Link to Homebrew common issues from documentation site (#795)
- Remove -vm suffix name in documentation (#798, #796)
- Fix file renames in release script (#809)
- Update supported versions in documentation (#825)
- Fix references to icongram files (#827)
- Fix broken links in CONTRIBUTING.md (#832, #852)
- Fix broken link in README.md (#835)
- Improve zsh completion directions for macOS,ZSH,Homebrew (#843)
- Add GitHub discussions link (#839)
- Add note about unsolicited formatting pull requests (#848)
- Fix formatting of GitHub name (#847)
- Explain the difference between ASDF_DIR and ASDF_DATA_DIR (#855)
- Update BATS link to bats-core GitHub repo (#858)
- Instruct users to symlink completions for Fish shell (#860)
- Support alternate locations for
.zshrc
(#871) - Add "Add translation" link to navbar (#876)
- Clarify usage of the ASDF_DEFAULT_TOOL_VERSIONS_FILENAME variable (#912, #900)
- Show how to use the
system
version (#925, #868) - Remove instructions for installing dependencies for Homebrew installs (#937, #936)
Features
- Add support for plugin documentation callback scripts (#512, #757)
- Add support for installing one tool specified in
.tool-versions
(#759, #760) - Improve introduction and install sections of documentation (#699, #740)
- Add dependencies for openSUSE and ArchLinux to documentation (#714)
- Add support for keeping downloaded tool source code (#74, #669)
- Add
asdf info
command to print debug information (#786, #787)
Fixed Bugs
- Fix typo that caused plugin-test to erroneously fail (#780)
- Make sure shims are only appended to
PATH
once in Fish shell (#767, #777, #778) - Print
.tool-versions
file path on shim error (#749, #750) - Add
column
andsort -V
to list of banned commands for the asdf codebase (#661, #754) - Use editorconfig for shell formatting (#751)
- Remove use of
column
command in favor of awk (#721) - Add
asdf shell
command to help output (#715, #737) - Ensure consistency in indentation for message shown when no versions installed (#728)
- Fix dead link in documentation (#733)
- Fix typo in docs/core-manage-versions.md (#722)
- Fix a typo in the
asdf env
command documentation (#717) - Fix Fish shell documentation (#709)
- Only list asdf dependencies on asdf website (#511, #710)
- Add CODEOWNERS file for GitHub reviews (#705)
- Add unit test for
asdf plugin-add
exit code (#689)
Features
-
Add support for
post-plugin-add
andpre-plugin-remove
in plugins. Add configurable command hooks for plugin installation and removal (#670, #683)pre_asdf_plugin_remove = echo will remove plugin ${1} pre_asdf_plugin_remove_foo = echo will remove plugin foo post_asdf_plugin_remove = echo removed plugin ${1} post_asdf_plugin_remove_foo = echo removed plugin foo
-
Use different exit code if updates are disabled (#676)
Fixed Bugs
-
Make sure extension commands are properly displayed by
asdf help
Extension commands are now expected to be inside plugins's
lib/commands/command-*.bash
instead ofbin/command*
.This change was made for two reasons: Keep the convention that all files to be sourced by bash should end with the
.bash
extension. And thelib/commands/
directory mirrors the location of asdf own core commands.Added tests to make sure
asdf help
properly displays available extension commands. -
Remove automatic
compinit
from asdf.sh (#674, #678)
Features
- Add .bash file extension to files executed by Bash (#664)
- Add security policy (#660)
Fixed Bugs
- consistent use of plugin_name (#657)
- Default ZSH_VERSION to empty string (#656)
- Fix support for path version (#654)
- Fix hanging 'asdf update is a noop for non-git repos' test (#644)
- Fix Bash completions for
plugin-add
(#643) - Fix
--unset
for Fish shell (#640) - Misc. documentation fixes (#631, #652)
- Defaults to empty ASDF_DATA_DIR (#630)
- Remove shebang lines of sourced scripts (#629)
- Ignore shim directory for executable lookups (#623)
- Fix issue with preset version warning assuming that the shim name and plugin name are the same (#622)
Features
-
Improve output format of
asdf plugin list all
Long plugin names were causing problems with how we used printf. Now we use the
column
command to properly render output. -
Now
asdf plugin list
can take both--urls
and--refs
options.When
--url
is used, we print the plugin's remote origin URL. While--refs
prints the git branch/commit the plugin is at. -
It's now possible to update a plugin to an specific branch/commit.
asdf plugin update <name> [git-ref]
Checkouts a plugin to the specified
git-ref
. Defaults tomaster
-
Now the
asdf plugin test
command can be specified with a plugin commit/branch to test.This will help CI checks to actually test the commit they are running for. Previously we always used the plugin's
master
branch. -
Subcommand CLI support.
Users familiar with sub-command aware tools like
git
can now useasdf
commands in the same way. For example:asdf plugin list all
is equivalent toasdf plugin-list-all
This is also the case for plugin extension commands, where the plugin name is an asdf main subcommand. ie. Having a
foo
plugin you can invoke:asdf foo bar
-
Make
asdf plugin test
use the newasdf latest
command. (#541)If a plugin version is not given explicitly, we use
asdf latest
to obtain the version of plugin to install for testing. -
asdf --version
displays git revision when asdf_dir is a git clone.This will allow better bug reports since people can now include the git commit they are using.
-
Add support for asdf extension commands.
Plugins can provide
bin/command*
scripts or executables that will be callable using the asdf command line interface.See
docs/plugins-create.md
for more info. -
Add support for installing the latest stable version of a tool (#216)
asdf install python latest asdf install python latest:3.7 # installs latest Python 3.7 version
-
Add
asdf latest
command to display the latest stable version of a tool (#575)asdf latest python asdf latest python 3.7 # displays latest Python 3.7 version
-
Add support for filtering versions returned by
asdf list-all
asdf list-all python 3.7 # lists available Python 3.7 versions
Features
- Add AppVeyor config for builds on Windows, for eventual Windows support (#450, #451)
- Add
--unset
flag to shell command (#563)
Fixed Bugs
- Fix multiple version install (#540, #585)
- Handle dashes in executable/shim names properly (#565, #589)
- Fix bug in sed command so
path:...
versions are handled correctly (#559, #591)
Features
- Add quite flag to git clone (#546)
- Improve docs for Homebrew (#553, #554)
Fixed Bugs
- Don't include the current directory in
PATH
variable inasdf env
environment (#543, #560) - Fix
asdf plugin-test
dependency on Git when installed via Homebrew (#509, #556)
Features
- Make
asdf install
check for versions in legacy files (#533, #539)
Fixed Bugs
- Address shellcheck warning and use shell globbing instead of
ls
(#525)
Features
- Add unit tests for untested code in asdf.sh and asdf.fish (#286, #507, #508)
- Switched to a maintained version of BATS (#521)
Fixed Bugs
- Don't iterate on output of
ls
(#513) - Check shims for full tool version so adding new versions to a shim works properly (#517, #524)
Features
- Add mksh support
- Add documentation about using multiple versions of the same plugin
- Remove post_COMMAND hooks
- Add
asdf shell
command to set a version for the current shell (#480) - Ignore comments in .tool-versions (#498, #504)
Fixed Bugs
- Avoid modifying
fish_user_paths
- Restore support for legacy file version (#484)
- Restore support for multiple versions
- Fix bug when trying to locate shim (#488)
- Run executable using
exec
(#502)
Features
-
Shims can be invoked directly via
asdf exec <command> [args...]
without requiring to have all shims on path (#374). -
New
asdf env <command>
can be used to print or execute with the env that would be used to execute a shim. (#435) -
Configurable command hooks from
.asdfrc
(#432, #434) Suppose afoo
plugin is installed and provides abar
executable, The following hooks will be executed when set:pre_asdf_install_foo = echo will install foo version ${1} post_asdf_install_foo = echo installed foo version ${1} pre_asdf_reshim_foo = echo will reshim foo version ${1} post_asdf_reshim_foo = echo reshimmed foo version ${1} pre_foo_bar = echo about to execute command bar from foo with args: ${@} post_foo_bar = echo just executed command bar from foo with args: ${@} pre_asdf_uninstall_foo = echo will remove foo version ${1} post_asdf_uninstall_foo = echo removed foo version ${1}
-
New shim version meta-data allows shims to not depend on a particular plugin nor on its relative executable path (#431) Upgrading requires shim re-generation and should happen automatically by
asdf-exec
:rm -rf ~/.asdf/shims/
followed byasdf reshim
-
Added lots of tests for shim execution. We now make sure that shim execution obeys plugins hooks like
list-bin-paths
andexec-path
. -
Shims now are thin wrappers around
asdf exec
that might be faster for most common use case: (versions on local .tool-versions file) but fallbacks to slowerget_preset_version_for
which takes legacy formats into account. -
Shim exec recommends which plugins or versions to set when command is not found.
-
asdf reshim
without arguments now reshims all installed plugins (#407) -
Add
asdf shim-versions <executable>
to list on which plugins and versions is a command available. (#380, #433) -
Add documentation on installing dependencies via Spack (#471)
Fixed Bugs
- Fix
update
command so it doesn't crash when used on Brew installations (#429, #474, #439, #436)
Features
- Make
which
command work with any binary included in a plugin installation (#205, #382) - Add documentation for documentation website (#274, #396, #422, #423, #427, #430)
Fixed Bugs
- Silence errors during tab completion (#404)
- Remove unused asdf shims directory from
PATH
(#408) - Fix issues with update command that prevented updates for installations in custom locations (#411)
- Fix shellcheck warnings on OSX (#416)
- Add tests for versions set by environment variables (#417, #327)
- Continue
list
output even when version is not found (#419) - Fixed user paths for fish (#420, #421)
- Custom exec path tests (#324, #424)
Fixed Bugs
- Fix
system
logic so shims directory is removed fromPATH
properly (#402, #406) - Support
.tool-versions
files that don't end in a newline (#403)
Features
- Make
where
command default to current version (#389) - Optimize code for listing all plugins (#388)
- Document
$TRAVIS_BUILD_DIR
in the plugin guide (#386) - Add
--asdf-tool-version
flag to plugin-test command (#381) - Add
-p
flag tolocal
command (#377)
Fixed Bugs
- Fix behavior of
current
command when multiple versions are set (#401) - Fix fish shell init code (#392)
- Fix
plugin-test
command (#379) - Add space before parenthesis in
current
command output (#371)
Features
- Add support for
ASDF_DATA_DIR
environment variable (#275, #335, #361, #364, #365)
Fixed Bugs
- Fix
asdf current
so it works when no versions are installed (#368, #353) - Don't try to install system version (#369, #351)
- Make
resolve_symlink
function work with relative symlinks (#370, #366) - Fix version changing code so it preserves symlinks (#329, #337)
- Fix ShellCheck warnings (#336)
Features
- Better formatting for
asdf list
output (#330, #331)
Fixed Bugs
- Correct environment variable name used for version lookup (#319, #326 #328)
- Remove unnecessary
cd
inasdf.sh
(#333, #334) - Correct Fish shell load script (#340)
Features
- Changed exit codes for shims so we use codes with special meanings when possible (#305, #310)
- Include plugin name in error message if plugin doesn't exist (#315)
- Add support for custom executable paths (#314)
asdf list
with no arguments should list all installed versions of all plugins (#311)
Fixed Bugs
- Print "No version set" message to stderr (#309)
- Fix check for asdf directories in path for Fish shell (#306)
Features
- Suggest action when no version is set (#291, #293)
Fixed Bugs
- Fix issue with asdf not always being added to beginning of
$PATH
(#288, #303, #304) - Fix incorrect
ASDF_CONFIG_FILE
environment variable name (#300) - Fix
asdf current
so it shows environment variables that are setting versions (#292, 294)
Features
- Add support for
ASDF_DEFAULT_TOOL_VERSIONS_FILENAME
environment variable (#201, #228) - Only add asdf to
PATH
once (#261, #271) - Add
--urls
flag toplugin-list
commands (#273)
Fixed Bugs
- Incorrect
grep
command caused version command to look at the wrong tool when reporting the version (#262)
Features
asdf install
will also search for.tool-versions
in parent directories (#237)
Fixed Bugs
- bad use of
sed
caused shims and.tool-versions
to be duplicated with-e
(#242, #250) asdf list
now outputs ref-versions as used on.tool-versions
file (#243)asdf update
will explicitly use theorigin
remote when updating tags (#231)- All code is now linted by shellcheck (#223)
- Add test to fail builds if banned commands are found (#251)
Features
- Add CONTRIBUTING guidelines and GitHub issue and pull request templates (#217)
- Add
plugin-list-all
command to list plugins from asdf-plugins repo. (#221) asdf current
shows all current tool versions when given no args (#219)- Add asdf-plugin-version metadata to shims (#212)
- Add release.sh script to automate release of new versions (#220)
Fixed Bugs
- Allow spaces on path containing the
.tool-versions
file (#224) - Fixed bug in
--version
functionality so it works regardless of how asdf was installed (#198)
Features
- Add
update
command to make it easier to update asdf to the latest release (#172, #180) - Add support for
system
version to allow passthrough to system installed tools (#55, #182)
Fixed Bugs
- Set
GREP_OPTIONS
andGREP_COLORS
variables in util.sh so grep is always invoked with the correct settings (#170) - Export
ASDF_DIR
variable so the Zsh plugin can locate asdf if it's in a custom location (#156) - Don't add execute permission to files in a plugin's bin directory when adding the plugin (#124, #138, #154)
Features
- Determine global tool version even when used outside of home directory (#106)
Fixed Bugs
- Correct reading of
ref:
andpath:
versions (#112) - Remove shims when uninstalling a version or removing a plugin (#122, #123, #125, #128, #131)
- Add a helpful error message to the install command (#135)
Features
- Improve plugin API for legacy file support (#87)
- Unify
asdf local
andasdf global
version getters asasdf current
(#83) - Rename
asdf which
toasdf current
(#78)
Fixed Bugs
- Fix bug that caused the
local
command to crash when the directory contains whitespace (#90) - Misc typo corrections (#93, #99)
- First tagged release