1.0.0 (2024-12-20)
⚠ BREAKING CHANGES
- Enable
pipefail
(#1608) 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)
- 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)
Features
- add Golang tests to GitHub test workflow (3a9f539)
- add linting for Golang to GitHub lint workflow (f41ce90)
- add plugin location when update the plugin (#1602) (36c7024)
- add post update plugin support (#1049) (304f72d)
- asdf latest defer to plugin to determine the latest version (#938) (664d82e)
- case-insensitive filtering of unstable versions in
latest
(#1139) (e61e3d9) - completions: bash improvements (#1329) (7c802c3)
- correct description for version preceded by star (04fe7e3)
- Disable short-name repository with config value (#1227) (18caea3)
- 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)
- golang-rewrite: add boilerplate for cobra CLI commands (d06d71f)
- golang-rewrite: add cobra library as dependency (7d5281a)
- golang-rewrite: add config methods (8ad3472)
- golang-rewrite: add placeholders for plugin subcommands (b40beb6)
- golang-rewrite: BATS test fixes &
latest
command (b23e5a3) - golang-rewrite: build dev release binaries (bc05110)
- golang-rewrite: build golang asdf for BATS integration tests (477e9d5)
- golang-rewrite: compile asdf version into Go binaries (6d708b2)
- golang-rewrite: correct asdf-version workflow step to produce version as output (572ed07)
- golang-rewrite: correct asdf-version workflow step to produce version as output (19a0597)
- golang-rewrite: create
asdf current
command (b33ab64) - golang-rewrite: create
asdf exec
command (b966ca6) - golang-rewrite: create
asdf list
andasdf list all
commands (8db188a) - golang-rewrite: create
asdf uninstall
command (3fd4a83) - golang-rewrite: create
asdf where
command (09d06ff) - golang-rewrite: create
asdf which
command (d2afb85) - golang-rewrite: create
RunCallback
method forPlugin
struct (778ab34) - golang-rewrite: create
shims.FindExecutable
function for shim execution (9f09f78) - golang-rewrite: create
versions.InstallOneVersion
function (6568891) - golang-rewrite: create hooks (771f184)
- golang-rewrite: create install command (8313ebc)
- golang-rewrite: create installs and installtest packages to avoid circular dependency (be52d8f)
- golang-rewrite: create internal/resolve package (c2e5ee6)
- golang-rewrite: create Makefile (9097696)
- golang-rewrite: create plugin list command (ad0907a)
- golang-rewrite: create plugin remove command (2b02f51)
- golang-rewrite: create plugin update command (c480044)
- golang-rewrite: create pluginAddCommand function for plugin add command action (26b91aa)
- golang-rewrite: create pluginindex package (202cdae)
- golang-rewrite: create plugins/git package to store plugin Git operations (325cd33)
- golang-rewrite: create settings and config structs for loading config (07b5813)
- golang-rewrite: create shimversions command (822e14c)
- golang-rewrite: create version 0.14 to 0.15 upgrade guide (53cd454)
- golang-rewrite: create versions.Latest function (9f6a65f)
- golang-rewrite: full version resolution (bd7ab9a)
- golang-rewrite: get all
install_command.bats
tests passing (b6ec89f) - golang-rewrite: get remaining
shim_exec.bats
tests passing (162cb8e) - golang-rewrite: implement
asdf help
command (d94bace) - golang-rewrite: implement
asdf plugin list all
command (e7df5ff) - golang-rewrite: implement
asdf plugin test
command (369beeb) - golang-rewrite: implement asdf env command (26a3815)
- golang-rewrite: implement asdf plugin extension commands (ccc98ad)
- golang-rewrite: info command (447acd1)
- golang-rewrite: initialize golang module (72c20b1)
- golang-rewrite: introduce
Version
struct, get someshim_exec.bats
tests passing (924eecf) - golang-rewrite: make bats available for golang tests (f5a5967)
- golang-rewrite: misc. plugin improvements (3af0291)
- golang-rewrite: misc. version improvements (9ed4216)
- golang-rewrite: misc. version improvements part 2 (b9e79e6)
- golang-rewrite: more
asdf plugin remove
tests (626bde0) - golang-rewrite: more shim exec fixes (f639f8a)
- golang-rewrite: more work to get
install_command.bats
test passing (c0963a3) - golang-rewrite: move all Git code to git package (cb49b64)
- golang-rewrite: offline Go tests (f74efbf)
- golang-rewrite: PluginAdd function (15e1f06)
- golang-rewrite: re-organize Go code (620c0d8)
- golang-rewrite: refactor completion code and move all packages except
cmd
intointernal
(518a0fa) - golang-rewrite: remove
asdf update
command to prepare for Go version (#1806) (15571a2) - golang-rewrite: rename module and move
main
pacakge tocmd/asdf
(5d5d04f) - golang-rewrite: run bats integration tests in golang (2fc8006)
- golang-rewrite: self-contained completion code (c859384)
- golang-rewrite: set variables for bats integration tests (2951011)
- golang-rewrite: setup Golang release GitHub workflow (c5092c6)
- golang-rewrite: setup goreleaser (3f9744d)
- golang-rewrite: shim generation 2 (985c181)
- golang-rewrite: shim generation part 1 (18e21c9)
- golang-rewrite: update upgrade guide (0058988)
- golang-rewrite: use plugin index (8394e85)
- golang-rewrite: use version type when generating shims (5266ba5)
- golang-rewrite: version file parsing (3155dc3)
- improved completions for version in commands (82be580)
- latest: adds the flag --all to the latest command (#1096) (f85fef5)
- mark current resolved versions in
asdf list
output (#762) (5ea6795) - Support configurable
ASDF_CONCURRENCY
(#1532) (684f4f0) - support nushell (#1355) (274a638)
- Support PowerShell Core (#1522) (213aa22)
- toggle off repo sync completely (#1011) (a3ba5a7)
- upgrade elvish to 0.17.0 (#1159) (824550e)
Bug Fixes
asdf info
show BASH_VERSION & all asdf envs (#1513) (a1b5eee)plugin list
exit code 0 when no plugins are installed (#1597) (a029c00)plugin test
git-ref to use plugin repo default branch (#1694) (6d8cf9d)reshim
did not rewrite executable path (#1311) (5af7625)- 0 exit code for success when adding an existing plugin (#1598) (4dd1904)
- add asdf to list of banned commands (#1224) (39909e0)
- add missing "does not add paths to PATH more than once" test for elvish (#1275) (3c55167)
- Add test for nushell integration and fix some bugs (#1415) (60d4494)
- Adds "grep -P" to the list of banned commands (#1064) (8a515f4)
- align Fish entrypoint behaviour with other shells (#1524) (8919f40)
- Allow
path:
versions to use~
(#1403) (670c96d) - allow plugin callbacks to be in any language (#995) (2ad0f5e)
- always use ASDF_DEFAULT_TOOL_VERSIONS_FILENAME for filename when present (#1238) (711ad99), closes #1082
- append trailing newline to .tool-versions files when missing (#1310) (eb7dac3), closes #1299
- assign default values to all internal variables (#1518) (86477ee)
- avoid mention of
ASDF_NU_DIR
(#1660) (dfea89c) - Ban
ls
command (#1141) (87137e4) - ban grep long flags (#1117) (6e4c39c)
- Ban use of 'test' (#1383) (ec972cb)
- bash completion for latest command (#1472) (2606a87)
- Better handling with paths that include spaces (#1485) (bbcbddc)
- clarify the wording when no version is set (#1088) (4116284)
- completions for asdf plugin list (#1061) (43412aa)
- completions: Address two Bash completion bugs (#1770) (ebdb229)
- correct order of checks in conditional for adding a missing newline (#1418) (4125d2b), closes #1417
- Correct typo on getting started page (#1086) (4321980)
- create install directory with
mkdir -p
(#1563) (d6185a2) - do not print
find
errors (#1102) (5992abb) - do not remove items from PATH in POSIX entrypoint (#1521) (b6d0ca2)
- Do not use
pwd
(dd37b6f) - Do not use type not exported on older Python versions (#1409) (7460809)
- don't generate on error if backup file doesn't exists (#1057) (288468f)
- don't invoke asdf inside asdf commands (#1208) (27f7ef7)
- don't override existing ASDF_DIR (#1008) (73efc9f)
- elvish: prepend asdf paths to
$PATH
(#1174) (682b7a1) - Enable
pipefail
(#1608) (4085e55) - enforce & use consistent function definitions (#1464) (e0fd7a7)
- enforce consistent shell redirection format (#1533) (1bc205e)
- ensure shims get created when data dir has spaces (#996) (39c9999)
- excludes "milestone" releases in "latest" command (#1307) (5334d1d), closes #1306
- fish: don't resolve symlinks for ASDF_DIR (#1583) (d1a563d)
- fish: use builtin realpath over system one (#1637) (5ac3032)
- fish: use PATH instead of fish_user_paths (#1709) (5327697)
- Fix plugin-test arg parsing (#1084) (c911f2d)
- fixing bats (#1215) (a9caa5b)
- force lwrcase plugin name fix capitalization mismatch errs (#1400) (196a05b)
- full_version_name is not available here (#1031) (8490526)
- get invalid ASDF_DATA_DIR when exec asdf shims by non-shell (#1154) (b9962f7)
- golang-rewrite:
asdf exec
andasdf env
command fixes (7dfa8b4) - golang-rewrite: add missing goreleaser argument (5a24864)
- golang-rewrite: allow directories returned by list-bin-paths to be absent from the file system (80ac9bb)
- golang-rewrite: attempt to fix goreleaser GitHub workflow (1b3c426)
- golang-rewrite: comment out all BATS tests (163d6b4)
- golang-rewrite: correct go build command in lint workflow (87d3c06)
- golang-rewrite: fix dependencies script on linux (3f17a80)
- golang-rewrite: set dependencies between release-build jobs (6b45a5e)
- golang-rewrite: try to fix goreleaser (2a31caf)
- golang-rewrite: try to get goreleaser action to generate snapshot builds (7439ea9)
- golang-rewrite: update detect-changes logic for Golang tests (88af4ee)
- help for extension commands for plugins with hyphens in the name. (#1048) (3e0cb9a)
- help text as per new feats in #633 (#991) (0d95663)
- improve formatting of ballad (#1367) (e0c2c31)
- improve lint and test scripts (#1607) (b320803)
- improve readability of the non-set
nullglob
guard (#1545) (f273612) - incorrect usage of grep (#1035) (30d27cb)
- instead /tmp, use TMPDIR if defined (9113623)
- Introduce
ASDF_FORCE_PREPEND
variable on POSIX entrypoint (#1560) (5b7d0fe) - latest --all correctly report plugins as missing (#1118) (aafe1e5)
- lint & style errors in
bin/asdf
(#1516) (13c0e2f) - lint errors from
scripts/checkstyle.py
(#1385) (3492043) - list
asdf version
command under help.txt UTILS section (#1673) (240a5fb) - local plugin in then clause too (#1203) (448f750)
- Make asdf.fish compatible with Fish 3.1.2 (#1590) (e83d71e)
- make fish shell setup match other shells (#1209) (6fc4bb8)
- make plugin-test work on alpine linux (#1778) (f5a1f3a)
- mv dev dep from repo root to subdir to avoid clash (#1408) (5df70da)
- newline after error msg for ASDF_DIR (#1113) (ac2791e)
- no longer write temporary files to home directory (#1592) (624604a)
- nushell language syntax update (#1624) (0ddab5d)
- nushell PATH conversion to list before filter (#1471) (cd0e12b)
- Nushell plugin list --urls (#1507) (9363fb2)
- nushell plugin list all (#1501) (#1502) (c5b8b3c)
- nushell spread operator (#1777) (a0ce37b)
- nushell: Use
def --env
instead ofdef-env
(#1681) (3b8f400) - nushell: Use correct env var for shims dir (#1742) (2f07629)
- Only display the "can't keep downloads" warning when asked to keep downloads (#1756) (44f3efb)
- only iterate over directories in the plugins/ directory (#1228) (788ccab)
- plugin extension commands to not require
bin/
directory (#1643) (61420ad) - Prepend asdf directories to the PATH in Nushell (#1496) (745950c)
- Prevent unbound variable error with nounset in asdf.sh (#1158) (b7dd291)
- Quote commands correctly in plugin-test (#1078) (69ff2d0)
- regex validate plugin names on plugin add cmd (#1010) (7697e6e)
- Remove
==
inside[
(#1421) (d81b81f) - remove comments from whole file instead of line by line for performance (#1198) (de6e22f)
- Remove files containing only
asdf
wrapper functions (#1525) (00fee78) - remove leading asterick in Fish completion (#1543) (198ced5)
- Remove unecessary backslashes (#1384) (15faf93)
- Remove usage of
$(pwd)
in favor of$PWD
(f522ab9) - 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)
- Sed improvements (#1087) (4b93bc8)
- sed re error trailing backslash on FreeBSD (#1046). (#1047) (47e8fb0)
- set default shell version values on POSIX entrypoint (#1594) (4d5f22d)
- shorthand grep options for alpine support (#1106) (234778a)
- support
asdf shim-versions
completions in fish & bash (#1554) (99623d7) - support latest with filter on local and global (#633) (5cf8f89)
- support nushell v0.75.0 (#1481) (dd8d399)
- Typo in POSIX entrypoint (#1562) (6b2ebf5)
- update elvish to 0.18.0 (5a89563)
- update event trigger for doc-version workflow (#1232) (0bc8c3a)
- update GitHub workflows to work private asdf Go fork (3e11bd4)
- update plugin-add regex to support other languages (#1241) (92d005d), closes #1237
- updating references to legacy github.io site (#1240) (738306b)
- use ELVISH_VERSION to specify elvish test version (#1276) (72c3a23)
- Use more idiomatic fish (#1042) (847ec73)
- use universal scope for fish_user_paths (#1699) (0ffee72)
- wait until the plugin update are finished (#1037) (7e1f2a0)
- warn if
.tool-versions
or asdfrc contains carriage returns (#1561) (097f773) - warn if plugin does not support keeping downloads if configured (#1644) (19515ed)
- warn when any ./lib/commands are marked as executable (#1593) (2043a09)
- when download path got removed, it should use -f to force delete the download files (#1746) (221507f)