Skip to content

docs: track full list of asdf dependencies #1435

Open
@jthegedus

Description

@jthegedus

How can we improve the documentation?

It would be ideal to improve our list of dependencies and also capture the minimum supported versions.

Prior discussion #511


Dependencies list

Here is a non-comprehensive list of dependencies from a quick look through some code:

tool min version what makes that the min version why/where do we use it?
git 1.7.7.2 git --work-tree used in asdf plugin update with --git-dir to avoid cd. git -C is preferred but would require a later git version
git 1.8.5.6 git -C used in tests in place of --git-dir+--work-tree
curl used in plugin-test command
awk
grep
sed
tr
tail
head
cat

I am not sure if these tools are in the same class as the above. Should they be treated the same?

tool min version what makes that the min version why/where do we use it?
read
printf
rm
command command -v

Bash is almost certainly considered a dependency, but we will tackle that in another Issue.

Thoughts

Is it even possible to list all min versions of tools which are different implementations of the same tool for different OSs? Eg: BSD vs GNU grep. Are the versions tracked the same? One assumes not as they could differ in minor/patch releases due to non-breaking changes and bugfixes, right? 🤔

Banned Commands

We have already banned some commands, or even just flags on commands because they are not common across most platforms. See - https://github.com/asdf-vm/asdf/blob/master/test/banned_commands.bats

Potential reduction

I am sure we can reduce this list.

curl is used in plugin-test to fetch the Rate Limit dynamically to an error message. We can probably get rid of it as the users who see this branch of code is definitely a single digit number.

Why raise this issue

Todo

What can we do to resolve this issue:

  • identify the dependencies (asdf core & tests)
  • identify the minimum versions of each dependency (for asdf core & tests)
  • capture in our documentation
  • identify opportunities to reduce our dependencies

We will almost certainly get this wrong in some capacity, but any % of correctness is better than what we currently have.

How can you help?

Comment if you determine new tools or minimum versions used in the codebase.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions