0.19.0 (2026-04-24)
- convert hyphens to underscores when converting plugin names to generate valid environment variables (2ffb5b8)
- make plugin test command resolve latest version properly (1485ff4)
- nushell completions --ignore-errors deprecation (#2157) (a813610)
- return error from repo.RemoteUrl function (71e9567)
- set ASDF_INSTALL_* environment variables for reshim command (3ec1610)
- use os.PathListSeparator (#2195) (d5efb1e)
0.18.1 (2026-03-04)
- Only show already installed versions in shell completion for the asdf set command (#2172) (c3910d7)
- set LANG=C for locale-dependent tests (#2197) (2423f6d)
0.18.0 (2025-06-07)
- correct flag handling in commands run by
asdf exec(#2115) (d6cd693) - only return version starting with number when no filter is supplied (#2120) (cf29b51)
- print all error output to stderr when shim can't be resolved (#2109) (c9049ea)
- rename tool version filename environment variable for clarity (#2101) (e3d6014)
- upgrade urfave/cli to version 3 (#2105) (392d09a)
0.17.0 (2025-05-19)
- golang-rewrite: add support for shim templates resolution (#2076) (a3bccea)
- log failure to add plugin in "plugin test" (#2059) (92de803)
- switch back to native git client (#1998) (1efa2bb)
- address linter warning (67581cf)
- correct intersection logic in
shims.FindExecutablefunction so ordering of multiple versions is preserved (#2063) (083f20a) - correct output of install command when system or path version set (#2097) (82d67e3)
- ensures output always ends with a newline when printed (#2098) (6f4837e)
- handle tilde in env vars (#2092) (6da599a)
- remove default error action from plugin command (#2027) (c376481)
- remove unused ForcePrepend option from Go code (#2089) (49e9f33)
- set correct version for go install and make builds (#2077) (4c73527)
0.16.7 (2025-03-25)
0.16.6 (2025-03-21)
- correct ASDF_INSTALL_* envvar unset test (#2006) (6fbf94a)
- correct concurrency to align with documentation (#2014) (807ea38)
- correct handling of
ASDF_FORCE_PREPENDenvironment variable (#2011) (43a84a0) - improve zsh completion suggestions (#2022) (b1cf58d)
- remove filtering from latest-stable call (#2032) (6fcdcdf)
- remove install directory for version when install fails (#2024) (932ac46)
0.16.5 (2025-03-04)
- always propagate env variables when executing commands (#1982) (80265a8)
- build static binary to improve portability (#1993) (45047a6)
- correct exit status when sub-command does not exist (#1991) (3dd0dd3), closes #1928
- latest version returns latest version (#1996) (0ceac7a)
- preserve files untracked by Git on plugin update (#1995) (d4d8db0)
- set correct env vars on recursive calls (#1989) (97a91cc)
- simplify env vars parsing (#1988) (8990b6b), closes #1986
0.16.4 (2025-02-19)
- Add a newline delimiter when suggesting versions to install (#1972) (38bea71)
- correct version resolution order to restore legacy file fallback behavior (#1956) (6696d47)
- support environment variables with equals sign and newlines in value (#1977) (1acf082)
0.16.3 (2025-02-17)
- add missing version command (#1931) (5339c41)
- correct formatting of version in "already installed" error message (df5e283)
- correct typo in
Upgrading to 0.16.0documentation (#1938) (7e8e5f6) - don't error if version already installed (06f8990)
- pass environment variables through to
exec-envcallback (9e6b559) - repair invalid fish shell completion code (#1936) (8388f99)
- return no error from shims.RemoveAll when shims dir missing (#1967) (45c31c9)
0.16.2 (2025-02-08)
- correct Bash completion (#1886) (fdb1bc7)
- improve completions for Zsh and Fish (#1912) (2f806de)
- correct help for asdf set command (#1920) (554b4ea)
- correct help for asdf set command in Bash completion (#1921) (63e7dca)
- improve Zsh completion suggestions (#1925) (e190624)
- run go tests when go.mod or go.sum change (#1917) (6e4a7b5)
- fix typo (#1897) (98ffa86)
- update make utils script to set correct version (892736b)
- update urfave/cli to fix cmd output (#1914) (3525e9e)
0.16.1 (2025-02-05)
- correct SliceToMap environment variable parsing function (#1879) (e63aec6)
- remove old hyphenated command from help (1f0296a)
- replace reference to removed subcommands (#1868) (0785d35)
- revert change to old Bash help text (de019fd)
- use version in home dir when no version found in root dir (#1883) (5ae5f76)
0.16.0 (2025-01-30)
- Rewrite asdf in Golang The rewrite in Go was spread across 88 pull requests that are all included in this release. The primary goal of the rewrite was to create a codebase that was faster, simpler and easier to maintain. The rewrite tries to maintain feature parity with the previous version. However, a number of breaking changes were introduced. Some of these were due to the change of language, a few out of a desire to simplify the code, and some to improve the user experience. For the full list of breaking changes and the upgrade guide visit the Upgrading to 0.16.0 page on the asdf website. It is highly recommended that you read this guide before upgrading.
A warning has also been added to the Bash code for asdf in 0.16.0. anyone trying to use asdf as they did in version 0.15.0 and earlier will get a warning message instructing them to follow the upgrade guide.
The full list of pull requests and merge commits for this rewrite are listed below.
(3a9f539) (f41ce90) (#1833) (4f9a5d3) (d06d71f) (7d5281a) (8ad3472) (b40beb6) (b23e5a3) (bc05110) (477e9d5) (6d708b2) (572ed07) (19a0597) (b33ab64) (b966ca6) (8db188a) (3fd4a83) (09d06ff) (d2afb85) (778ab34) (9f09f78) (6568891) (771f184) (8313ebc) (be52d8f) (c2e5ee6) (9097696) (ad0907a) (2b02f51) (c480044) (26b91aa) (202cdae) (325cd33) (07b5813) (822e14c) (53cd454) (9f6a65f) (bd7ab9a) (b6ec89f) (162cb8e) (d94bace) (e7df5ff) (369beeb) (#1829) (f68b29b) (26a3815) (ccc98ad) (447acd1) (72c20b1) (924eecf) (f5a5967) (3af0291) (9ed4216) (b9e79e6) (626bde0) (f639f8a) (c0963a3) (cb49b64) (f74efbf) (15e1f06) (620c0d8) (518a0fa) (5d5d04f) (2fc8006) (c859384) (2951011) (c5092c6) (3f9744d) (985c181) (18e21c9) (0058988) (#1820) (c3bd8fe) (8394e85) (5266ba5) (3155dc3) (7dfa8b4) (5a24864) (80ac9bb) (#1849) (8b1b024) (1b3c426) (163d6b4) (87d3c06) (3f17a80) (#1841) (251812b) (#1852) (78a00fc) (6b45a5e) (2a31caf) (7439ea9) (88af4ee)
0.15.0 (2024-12-18)
- completions: Address two Bash completion bugs (#1770) (ebdb229)
- make plugin-test work on alpine linux (#1778) (f5a1f3a)
- nushell: nushell spread operator (#1777) (a0ce37b)
- nushell: Use correct env var for shims dir (#1742) (2f07629)
- when download path got removed, it should use -f to force delete the download files (#1746) (221507f)
- add Korean translation (#1757) (9e16306)
- propose edits for tiny typographical/grammatical errors (#1747) (d462b55)
- split Lint and Test badges for title asdf in
README.MD(#1725) (c778ea1) - Update Japanese(ja-jp) Translations (#1715) (bd19e4c)
0.14.1 (2024-08-15)
0.14.0 (2024-01-19)
- Enable
pipefail(#1608)
plugin testgit-ref to use plugin repo default branch (#1694) (6d8cf9d)- avoid mention of
ASDF_NU_DIR(#1660) (dfea89c) - Enable
pipefail(#1608) (4085e55) - fish: use PATH instead of fish_user_paths (#1709) (5327697)
- list
asdf versioncommand under help.txt UTILS section (#1673) (240a5fb) - nushell: Use
def --envinstead ofdef-env(#1681) (3b8f400) - plugin extension commands to not require
bin/directory (#1643) (61420ad) - use universal scope for fish_user_paths (#1699) (0ffee72)
- warn if plugin does not support keeping downloads if configured (#1644) (19515ed)
- add Japanese translation (#1667) (2b9bec7)
- fix some pt-br spelling (#1640) (0c7c41a)
- fix typo "node version" filename (#1679) (fad23bc)
- fix typo (#1670) (5737fa3)
- Improve
.asdfrcplugin hook documentation (#1661) (8fbf9a3)
0.13.1 (2023-09-12)
0.13.0 (2023-09-11)
plugin listexit 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 listexit 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-stableempty 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
asdfwrapper 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}_VERSIONusage (#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 infoshow 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
nullglobguard (#1545) (f273612) - Introduce
ASDF_FORCE_PREPENDvariable 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
asdfwrapper 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-versionscompletions in fish & bash (#1554) (99623d7) - Typo in POSIX entrypoint (#1562) (6b2ebf5)
- warn if
.tool-versionsor 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)
reshimdid 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 unnecessary 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 listoutput (#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
lscommand (#1141) (87137e4) - ban grep long flags (#1117) (6e4c39c)
- do not print
finderrors (#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
echocommand 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 -Vcommand from the asdf codebase (#755, #867) - Fix
plugin update --allso 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
systemversion (#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
systemversion (#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 infocommand 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
PATHonce in Fish shell (#767, #777, #778) - Print
.tool-versionsfile path on shim error (#749, #750) - Add
columnandsort -Vto list of banned commands for the asdf codebase (#661, #754) - Use editorconfig for shell formatting (#751)
- Remove use of
columncommand in favor of awk (#721) - Add
asdf shellcommand 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 envcommand 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-addexit code (#689)
Features
-
Add support for
post-plugin-addandpre-plugin-removein 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 helpExtension commands are now expected to be inside plugins's
lib/commands/command-*.bashinstead ofbin/command*.This change was made for two reasons: Keep the convention that all files to be sourced by bash should end with the
.bashextension. And thelib/commands/directory mirrors the location of asdf own core commands.Added tests to make sure
asdf helpproperly displays available extension commands. -
Remove automatic
compinitfrom 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
--unsetfor 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 allLong plugin names were causing problems with how we used printf. Now we use the
columncommand to properly render output. -
Now
asdf plugin listcan take both--urlsand--refsoptions.When
--urlis used, we print the plugin's remote origin URL. While--refsprints 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 testcommand 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
masterbranch. -
Subcommand CLI support.
Users familiar with sub-command aware tools like
gitcan now useasdfcommands in the same way. For example:asdf plugin list allis equivalent toasdf plugin-list-allThis is also the case for plugin extension commands, where the plugin name is an asdf main subcommand. ie. Having a
fooplugin you can invoke:asdf foo bar -
Make
asdf plugin testuse the newasdf latestcommand. (#541)If a plugin version is not given explicitly, we use
asdf latestto obtain the version of plugin to install for testing. -
asdf --versiondisplays 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.mdfor 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 latestcommand 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-allasdf 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
--unsetflag 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
PATHvariable inasdf envenvironment (#543, #560) - Fix
asdf plugin-testdependency on Git when installed via Homebrew (#509, #556)
Features
- Make
asdf installcheck 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 shellcommand 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 afooplugin is installed and provides abarexecutable, 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-pathsandexec-path. -
Shims now are thin wrappers around
asdf execthat might be faster for most common use case: (versions on local .tool-versions file) but fallbacks to slowerget_preset_version_forwhich takes legacy formats into account. -
Shim exec recommends which plugins or versions to set when command is not found.
-
asdf reshimwithout 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
updatecommand so it doesn't crash when used on Brew installations (#429, #474, #439, #436)
Features
- Make
whichcommand 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
listoutput even when version is not found (#419) - Fixed user paths for fish (#420, #421)
- Custom exec path tests (#324, #424)
Fixed Bugs
- Fix
systemlogic so shims directory is removed fromPATHproperly (#402, #406) - Support
.tool-versionsfiles that don't end in a newline (#403)
Features
- Make
wherecommand default to current version (#389) - Optimize code for listing all plugins (#388)
- Document
$TRAVIS_BUILD_DIRin the plugin guide (#386) - Add
--asdf-tool-versionflag to plugin-test command (#381) - Add
-pflag tolocalcommand (#377)
Fixed Bugs
- Fix behavior of
currentcommand when multiple versions are set (#401) - Fix fish shell init code (#392)
- Fix
plugin-testcommand (#379) - Add space before parenthesis in
currentcommand output (#371)
Features
- Add support for
ASDF_DATA_DIRenvironment variable (#275, #335, #361, #364, #365)
Fixed Bugs
- Fix
asdf currentso it works when no versions are installed (#368, #353) - Don't try to install system version (#369, #351)
- Make
resolve_symlinkfunction 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 listoutput (#330, #331)
Fixed Bugs
- Correct environment variable name used for version lookup (#319, #326 #328)
- Remove unnecessary
cdinasdf.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 listwith 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_FILEenvironment variable name (#300) - Fix
asdf currentso it shows environment variables that are setting versions (#292, 294)
Features
- Add support for
ASDF_DEFAULT_TOOL_VERSIONS_FILENAMEenvironment variable (#201, #228) - Only add asdf to
PATHonce (#261, #271) - Add
--urlsflag toplugin-listcommands (#273)
Fixed Bugs
- Incorrect
grepcommand caused version command to look at the wrong tool when reporting the version (#262)
Features
asdf installwill also search for.tool-versionsin parent directories (#237)
Fixed Bugs
- bad use of
sedcaused shims and.tool-versionsto be duplicated with-e(#242, #250) asdf listnow outputs ref-versions as used on.tool-versionsfile (#243)asdf updatewill explicitly use theoriginremote 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-allcommand to list plugins from asdf-plugins repo. (#221) asdf currentshows 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-versionsfile (#224) - Fixed bug in
--versionfunctionality so it works regardless of how asdf was installed (#198)
Features
- Add
updatecommand to make it easier to update asdf to the latest release (#172, #180) - Add support for
systemversion to allow passthrough to system installed tools (#55, #182)
Fixed Bugs
- Set
GREP_OPTIONSandGREP_COLORSvariables in util.sh so grep is always invoked with the correct settings (#170) - Export
ASDF_DIRvariable 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 localandasdf globalversion getters asasdf current(#83) - Rename
asdf whichtoasdf current(#78)
Fixed Bugs
- Fix bug that caused the
localcommand to crash when the directory contains whitespace (#90) - Misc typo corrections (#93, #99)
- First tagged release