Asdf is a tool version manager where all the tools and the versions are defined in a single file (.tool-versions). This single file can be shared across multiple teams to ensure everyone uses the same versions of the same tool(s).
Source: asdf introduction page
Reader’s Guide
This technical documentation focus on Software Developers, DevOps, Cloud, SRE, System Engineers and Native Engineers that uses many tools.
The traditional method for multiple versions for a tool require various configurations which are also specific to tool and dependent on libraries. For an example, Let’s look at python on Mac.
install python with Homebrew
brew install python
python --version
This command will display the active python version
ls -l /usr/local/bin/python*
This command will display all the installed python versions
ln -s -f /usr/local/bin/python3.8.1 /usr/local/bin/python
This symlink command will change the active python version to python3.8.1
This setup is a global wide configuration-That is-this configuration is not project specific. To be project specific will require performing the last two steps again and again as this case may require. And, indeed, this is a punishment 😢