Skip to content

Commit

Permalink
Add more data
Browse files Browse the repository at this point in the history
  • Loading branch information
hyperupcall committed May 29, 2023
1 parent 9e5d552 commit de946e1
Show file tree
Hide file tree
Showing 4 changed files with 111 additions and 81 deletions.
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# documents

These documents intend to document the features, tradeoffs, and performance of the most relevant _meta version managers_, or version managers that manage more than one language.
These documents compare _version managers_ and _meta version managers_ by:

- feature
- characteristic
- performance

To see `.tool-versions` feature support, see [`./comparisons/tool-versions.md`](./comparisons/tool-versions.md)

To see a comparison of _version managers_ (by language), see [`./comparisons/version-managers.md`](./comparisons/version-managers.md)

To see a comparison of _meta version managers_, see [`./comparisons/meta-version-managers.md`](./comparisons/meta-version-managers.md)
13 changes: 12 additions & 1 deletion comparisons/meta-version-managers.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,18 @@ Note that systems like [Nix](https://nixos.org) and [Guix](https://guix.gnu.org)
|-------------------------------------------------|-----|-----|-----|
| [asdf](https://github.com/asdf-vm/asdf) ||||
| [sdkman](https://github.com/sdkman/sdkman-cli) ||||
| [rtx](https://github.com/jdxcode/rtx) || ||
| [rtx](https://github.com/jdxcode/rtx) || ||
| [Hermit](https://github.com/cashapp/hermit) ||||
| [aqua](https://github.com/aquaproj/aqua) ||||
| [Woof](https://github.com/version-manager/woof) ||||


## Custom

## sdkman

- Uses `.sdkmanrc`

## rtx

- Uses `.rtx.toml`
29 changes: 17 additions & 12 deletions specifications/tool-versions.md → comparisons/tool-versions.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,35 @@
# Support for `.tool-versions`

- [asdf documentation](https://asdf-vm.com/manage/configuration.html#tool-versions)
- [rtx documentation](https://github.com/jdxcode/rtx#rtxtoml)
- asdf [documentation](https://asdf-vm.com/manage/configuration.html#tool-versions)
- rtx [documentation](https://github.com/jdxcode/rtx#rtxtoml)
- Woof [documentation](https://github.com/version-manager/woof/blob/main/docs/details.md)

## Supported Features

| Name | Comments | Latest | Fallback Versions | Fuzzy Versions | lts | system |
|-------------------------------------------------|----------|--------|-------------------|----------------|-----|--------|
| [asdf](https://github.com/asdf-vm/asdf) |||||||
| [rtx](https://github.com/jdxcode/rtx) |||||||
| [Woof](https://github.com/version-manager/woof) |||||||
| Name | Comments | Latest | Fallback Versions | Fuzzy Versions | lts | system |
|-------------------------------------------------|----------|-----------------|-------------------|-----------------|-----------------|-----------------|
| [asdf](https://github.com/asdf-vm/asdf) |||||||
| [rtx](https://github.com/jdxcode/rtx) |||||||
| [Woof](https://github.com/version-manager/woof) || ❌<sup>[1]</sup> || ❌<sup>[1]</sup> | ❌<sup>[1]</sup> | ❌<sup>[1]</sup> |

<sup>[1]</sup> Planned

## Supported Protocols

Strings in the format of `<protocol>:<value>`:

| Name | `ref:` protocol | `prefix:` protocol | `path:` protocol |
|-------------------------------------------------|-----------------|--------------------|------------------|
| [asdf](https://github.com/asdf-vm/asdf) ||| ✅<sup>[1][2]</sup> |
| [rtx](https://github.com/jdxcode/rtx) ||||
| [Woof](https://github.com/version-manager/woof) | | | |
| Name | `ref:` protocol | `prefix:` protocol | `path:` protocol |
|-------------------------------------------------|-----------------|--------------------|--------------------|
| [asdf](https://github.com/asdf-vm/asdf) ||| ✅<sup>[1][2]</sup> |
| [rtx](https://github.com/jdxcode/rtx) ||| |
| [Woof](https://github.com/version-manager/woof) |<sup>[3]</sup> |<sup>[3]</sup> |<sup>[3]</sup> |

<sup>[1]</sup> Supported `~/` since [v0.11.1](https://github.com/asdf-vm/asdf/commit/670c96d1a6d6d2c19ff63ce2ed14f784c340e9b9)

<sup>[2]</sup> Does not support whitespace in path

<sup>[3]</sup> Planned

## Extras

### rtx
Expand Down
138 changes: 71 additions & 67 deletions comparisons/version-managers.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,104 +2,108 @@

## NodeJS

| Name | `.node-version` | `package.json` | `.nvmrc` |
|-------------------------------------------------------|-----------------|----------------|-----------------|
| [nvm](https://github.com/nvm-sh/nvm) ||||
| [asdf-nodejs](https://github.com/asdf-vm/asdf-nodejs) | ✅<sup>[1]</sup> || ✅<sup>[1]</sup> |
| [rtx](https://github.com/jdxcode/rtx) | ✅<sup>[2]</sup> || ✅<sup>[2]</sup> |
| [Woof](https://github.com/version-manager/woof) ||||
| [n](https://github.com/tj/n) | | | |
| [nvm.fish](https://github.com/jorgebucaran/nvm.fish) | | | |
| [nvmw](https://github.com/hakobera/nvmw) | | ||
| [avn](https://github.com/wbyoung/avn) | | | |
| [fnm](https://github.com/Schniz/fnm) | | | |
| [nave](https://github.com/isaacs/nave) | | | |
| [nodist](https://github.com/nullivex/nodist) | | | |
| [nodenv](https://github.com/nodenv/nodenv) | | | |
| [nodebrew](https://github.com/hokaccha/nodebrew) | | | |
| Name | Stars | `.node-version` | `package.json` | `.nvmrc` |
|----------------------------------------------------------|--------|-----------------|----------------|-----------------|
| [nvm](https://github.com/nvm-sh/nvm) | 67400+ ||||
| [asdf-nodejs](https://github.com/asdf-vm/asdf-nodejs) | 735+ | ✅<sup>[1]</sup> || ✅<sup>[1]</sup> |
| [rtx](https://github.com/jdxcode/rtx) | - | ✅<sup>[2]</sup> || ✅<sup>[2]</sup> |
| [Woof](https://github.com/version-manager/woof) | - ||||
| [n](https://github.com/tj/n)<sup>3</sup> | 17600+ | | | |
| [nvm.fish](https://github.com/jorgebucaran/nvm.fish) | 1600+ | | | |
| [avn](https://github.com/wbyoung/avn) | 1100+ | | ||
| [fnm](https://github.com/Schniz/fnm) | 11900+ | | | |
| [nave](https://github.com/isaacs/nave)<sup>4</sup> | 1600+ | | | |
| [nodist](https://github.com/nullivex/nodist)<sup>5</sup> | 1500+ | | | |
| [nodenv](https://github.com/nodenv/nodenv)<sup>6</sup> | 2000+ | | | |
| [nodebrew](https://github.com/hokaccha/nodebrew) | 1000+ | | | |
| [nvmw](https://github.com/hakobera/nvmw) | 672+ | | | |

<sup>[1]</sup> [asdf-nodejs/bin/list-legacy-filenames](https://github.com/asdf-vm/asdf-nodejs/blob/master/bin/list-legacy-filenames)

<sup>[2]</sup> [rtx#legacy-version-files](https://github.com/jdxcode/rtx#legacy-version-files)

<sup>[3]</sup> `.n-node-version`

<sup>[4]</sup> `.naverc`

<sup>[5]</sup> `.npm-version`, `NODIST_NODE_VERSION`, `NODIST_NPM_VERSION`

<sup>[6]</sup> `NODENV_VERSION`

More info at [node-version-usage](https://github.com/shadowspawn/node-version-usage).

## Python

| Name | `.python-version` | `pyproject.toml` |
|--------------------------------------------------------------|-------------------|------------------|
| [pyenv](https://github.com/pyenv/pyenv) |||
| [asdf-python](https://github.com/asdf-community/asdf-python) | ✅<sup>[1]</sup> ||
| [rtx](https://github.com/jdxcode/rtx) | ✅<sup>[2]</sup> ||
| [Woof](https://github.com/version-manager/woof) |||
[asdf-python](https://github.com/asdf-vm/asdf-python)
[pyenv](https://github.com/pyenv/pyenv)
[p](https://github.com/qw3rtman/p)
[pvm](https://github.com/DrPandemic/pvm)
| Name | Stars | `.python-version` | `pyproject.toml` |
|--------------------------------------------------------------|--------|-------------------|------------------|
| [pyenv](https://github.com/pyenv/pyenv) | 32000+ |||
| [asdf-python](https://github.com/asdf-community/asdf-python) | 519+ | ✅<sup>[1]</sup> ||
| [rtx](https://github.com/jdxcode/rtx) | | ✅<sup>[2]</sup> ||
| [Woof](https://github.com/version-manager/woof) | |||
| [p](https://github.com/qw3rtman/p) | 772+ |||

<sup>[1]</sup> [asdf-python/bin/list-legacy-filenames](https://github.com/asdf-community/asdf-python/blob/master/bin/list-legacy-filenames)

<sup>[2]</sup> [rtx#legacy-version-files](https://github.com/jdxcode/rtx#legacy-version-files)

## Ruby

| Name | `.ruby-version` | `Gemfile` |
|-----------------------------------------------------|-----------------|-----------------|
| [rbenv](https://github.com/rbenv/rbenv) |||
| [rvm](https://github.com/rvm/rvm) |||
| [asdf-ruby](https://github.com/asdf-vm/asdf-nodejs) | ✅<sup>[1]</sup> | ✅<sup>[1]</sup> |
| [rtx](https://github.com/jdxcode/rtx) | ✅<sup>[2]</sup> | ✅<sup>[2]</sup> |
| [Woof](https://github.com/version-manager/woof) |||
[asdf-ruby](https://github.com/asdf-vm/asdf-ruby)
[rvm](https://rvm.io)
[rbenv](https://github.com/rbenv/rbenv)
[chruby](https://github.com/postmodern/chruby)
[frum](https://github.com/TaKO8Ki/frum)
| Name | Stars | `.ruby-version` | `Gemfile` |
|-----------------------------------------------------|--------|-----------------|-----------------|
| [rbenv](https://github.com/rbenv/rbenv) | 15100+ |||
| [rvm](https://github.com/rvm/rvm) | 4900+ |||
| [asdf-ruby](https://github.com/asdf-vm/asdf-nodejs) | 524+ | ✅<sup>[1]</sup> | ✅<sup>[1]</sup> |
| [rtx](https://github.com/jdxcode/rtx) | | ✅<sup>[2]</sup> | ✅<sup>[2]</sup> |
| [Woof](https://github.com/version-manager/woof) | |||
| [chruby](https://github.com/postmodern/chruby) | 2700+ |||
| [frum](https://github.com/TaKO8Ki/frum) | 542+ |||

<sup>[1]</sup> [asdf-ruby/bin/list-legacy-filenames](https://github.com/asdf-community/asdf-ruby/blob/master/bin/list-legacy-filenames)

<sup>[2]</sup> [rtx#legacy-version-files](https://github.com/jdxcode/rtx#legacy-version-files)

## Golang

| Name | `.go-version` | `go.mod` |
|-------------------------------------------------------|-----------------|-----------------|
| [goenv](https://github.com/syndbg/goenv) |||
| [asdf-golang](https://github.com/asdf-vm/asdf-golang) | ✅<sup>[1]</sup> | ✅<sup>[1]</sup> |
| [rtx](https://github.com/jdxcode/rtx) | ✅<sup>[2]</sup> | ✅<sup>[2]</sup> |
| [Woof](https://github.com/version-manager/woof) |||
| [gvm](https://github.com/moovweb/gvm)
| [stefanmaric/g](https://github.com/stefanmaric/g)
| [voidint/g](https://github.com/voidint/g)
| [goenv](https://github.com/syndbg/goenv)
| [goup](https://github.com/owenthereal/goup)
| [oo](https://github.com/hit9/oo)
| Name | Stars | `.go-version` | `go.mod` | `.gvm_local` | `GOENV_VERSION` |
|------------------------------------------------------|-------|-----------------|-----------------|--------------|-----------------|
| [asdf-golang](https://github.com/kennyp/asdf-golang) | 367+ || ✅<sup>[1]</sup> |||
| [rtx](https://github.com/jdxcode/rtx) | | ✅<sup>[2]</sup> | ✅<sup>[2]</sup> |||
| [Woof](https://github.com/version-manager/woof) | |||||
| [gvm](https://github.com/moovweb/gvm) | 8500+ |||||
| [stefanmaric/g](https://github.com/stefanmaric/g) | 741+ |||||
| [voidint/g](https://github.com/voidint/g) | 1100+ |||||
| [goenv](https://github.com/syndbg/goenv) | 1600+ |||||
| [goup](https://github.com/owenthereal/goup) | 427+ |||||
| [oo](https://github.com/hit9/oo) | 93+ |||||

<sup>[1]</sup> [asdf-golang/bin/list-legacy-filenames](https://github.com/asdf-community/asdf-golang/blob/master/bin/list-legacy-filenames), with `ASDF_GOLANG_MOD_VERSION_ENABLED=true`

<sup>[2]</sup> [rtx#legacy-version-files](https://github.com/jdxcode/rtx#legacy-version-files)

## Deno

| Name | `.deno-version` |
|----------------------------------------------------------|-------------|
| [asdf-deno](https://github.com/asdf-community/asdf-deno) | |
| [justjavac/dvm](https://github.com/justjavac/dvm) ||
| [ghosind/dvm](https://github.com/ghosind/dvm) ||
| Name | Stars | `.deno-version` | `.dvmrc` |
|----------------------------------------------------------|-------|-----------------|----------|
| [asdf-deno](https://github.com/asdf-community/asdf-deno) | 108+ || |
| [justjavac/dvm](https://github.com/justjavac/dvm) | 569+ | | |
| [ghosind/dvm](https://github.com/ghosind/dvm) | 26+ | | |

## PHP

| Name | `.php-version` |
|--------------------------------------------------------|-------------|
| [asdf-php](https://github.com/asdf-community/asdf-php) ||
| [phpenv](https://github.com/phpenv/phpenv) ||
| [phpbrew](https://github.com/phpbrew/phpbrew) ||
| [php-version](https://github.com/wilmoore/php-version) ||
| Name | Stars | `.php-version` | `.phpenv-version` | `PHPENV_VERSION` |
|--------------------------------------------------------|-------|----------------|-------------------|------------------|
| [asdf-php](https://github.com/asdf-community/asdf-php) | 175+ ||||
| [CHH/phpenv](https://github.com/CHH/phpenv) | 570+ ||||
| [phpenv/phpenv](https://github.com/phpenv/phpenv) | 1400+ ||||
| [phpbrew](https://github.com/phpbrew/phpbrew) | 5100+ ||||
| [php-version](https://github.com/wilmoore/php-version) | 675+ ||||

## Java

| Name | `.java-version` |
|---------------------------------------------------|-------------|
| [asdf-java](https://github.com/halcyon/asdf-java) | |
| [sdkman](https://sdkman.io) | |
| [jenv.be](https://www.jenv.be) | |
| [jenv](https://github.com/linux-china/jenv) | |
| [jabba](https://github.com/shyiko/jabba) | |
| Name | Stars | `.java-version` | `.jabbarc` |
|---------------------------------------------------|-------|-----------------|------------|
| [asdf-java](https://github.com/halcyon/asdf-java) | 317+ || |
| [sdkman](https://sdkman.io) | || |
| [jenv.be](https://github.com/jenv/jenv) | 4900+ | | |
| [jenv](https://github.com/linux-china/jenv) | 601+ || |
| [jabba](https://github.com/shyiko/jabba) | 2600+ || |

0 comments on commit de946e1

Please sign in to comment.