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.

Before Tool Version Manager

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 😢