asdf
asdf
— менеджер версий рантаймов.
С его помощью можно заменить nvm
, rbenv
, pyenv
, gvm
и ещё массу
менеджеров версий одним общим.
Фиксировать версии можно глобально или на каждый проект.
Глобальная фиксация версий происходит в файле ~/.tool-versions
и выполняется с
помощью команды:
asdf global plugin-name version
Например:
asdf global rust 1.62.1
Наибольшей ценностью обладает возможность фиксации версий для каждого отдельного проекта.
В этом случае файл .tool-versions
располагается в корне проекта и
версионируется вместе с исходным кодом.
Локальные для проекта версии фиксируются с помощью команды:
asdf local plugin-name version
Например:
asdf local golang 1.16.15
Это даёт возможность всем членам команды автоматически переключаться на конкретную версию рантайма для каждого конкретного проекта.
В моей команде версии рантаймов в локальном окружении каждого разработчика
однозначно совпадают с версиями на staging
- и production
-окружениях.
Это позволяет исключить любые проблемы с обратной совместимостью или использованием в коде проекта недоступных возможностей новых версий языка.