You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
And declare in the arapp.json/package.json or some other project-specific configuration file, which version it should use, e.g.: >= 5, <= 6.
This logic might also improve how the aragon-desktop handles GUI upgrades and downgrades. 🤔
The other solution
The alternative would be include these projects (gui, cli, etc.) as project dependencies... 🤔
"@aragon/cli": "5.9.3",
"@aragon/gui": "0.8.0"
Pros:
dependencies are more contained? (I'm not sure though, and if this becomes a problem we could to some integrity checking ourselves 🤷♂️ )
no global space pollution (I think people can still achieve this with docker though)
Cons:
slower (although I think npm will not download these packages over and over again, it still needs to copy the files from the local npm cache, and writing so many files to disk is still slow...)
I think the first solution makes more sense because these projects are not libraries like aragon.js or aragon-ui. They have more in common with tools like git, node, npm, which you have installed globally and you expect them to just work.
Doing aragon --version should actually print v5.6.0.
On second thought, this might be too much magic and could cause problems.
It would be better if the CLI would throw an error instead.
So if package.json says:
"engines": {
"aragonCLI": "> 5.0.0"
}
And you are using v6.0.0, it should error saying: "This project is only compatible with v5 of the aragonCLI, please use avm set-default @aragon/cli v5.9.3 to switch"
This would also allow us to start using the CLI globally and remove it from repos before we have the "apm version manager" feature.
TL;DR
nvm
, but for@aragon/cli
, as well as other tools.This will make pinning to a certain version as quick as few seconds and as easy as one command.
🚀 Feature
There is the use case where an app might be using a different version of the GUI client.
(currently this is hard coded in the CLI, but I think we need to move it to a configuration file, along with the gasPrice option and the others)
And there is also the use case where an app only works with a specific version of the CLI.
(currently people can install the CLI as a project depedency and pin it to a certain version)
Proposal
I wonder if it makes sense to centralize these versions under
~/.aragon
, for example:And declare in the
arapp.json
/package.json
or some other project-specific configuration file, which version it should use, e.g.:>= 5, <= 6
.This logic might also improve how the
aragon-desktop
handles GUI upgrades and downgrades. 🤔The other solution
The alternative would be include these projects (
gui
,cli
, etc.) as project dependencies... 🤔Pros:
docker
though)Cons:
I think the first solution makes more sense because these projects are not libraries like
aragon.js
oraragon-ui
. They have more in common with tools likegit
,node
,npm
, which you have installed globally and you expect them to just work.Possible interface
Now if I do
aragon --version
it will printv5.9.3
, but if mycwd
is a project and itspackage.json
says:Doing
aragon --version
should actually printv5.6.0
.The text was updated successfully, but these errors were encountered: