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 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 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