Make .tool-versions dynamic
Overview
Currently, the GDK has a checked in .tool-versions
file that contains all required third-party software to install. It has worked well, but there are some shortcomings:
- When an upstream project updates its
.tool-versions
file, we need to carefully align a GDK MR with the change to ensure compatibility - It's not possible to mark certain software as 'optional', e.g.
minio
or 'testing' versions of Ruby, PostgreSQL, etc.
Impacted categories
The following categories relate to this issue:
- gdk-reliability - e.g. When a GDK action fails to complete.
- gdk-usability - e.g. Improvements or suggestions around how the GDK functions.
- gdk-performance - e.g. When a GDK action is slow or times out.
Proposal
Currently the GDK's .tool-versions
file is updated by running support/asdf-combine
which takes into account the checked in .tool-versions-gdk
file as well as lots of upstream project's .tool-versions
files.
Let's make this 'combining process' run automatically when we need to access/process the .tool-versions
file, resulting in up-to-date dependencies generated as needed.