-
Notifications
You must be signed in to change notification settings - Fork 192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify the interface of verdi computer setup
#4981
Comments
I agree that setting up the computers and codes is often a hurdle for beginning users and it would be great if it could be simplified. Two first points to discuss here are:
|
I am not super sure if this the most suitable issue to discuss this, but it is related. From my viewpoint looking at this from the verdi shell, the current separation between Remove all the connection related information from |
Thanks for your input @agoscinski . The historical and practical reason for the separation of Note also that the options for Another historical reason for the Besides that, there have been discussions in the past to (ab)using the With that all out of the way, do you think |
Thanks @sphuber for the extensive answer. I also just talked with @mbercx about this and he also referred me to this discussion aiidateam/team-compass#12 about making the computer configuration more flexible (I think this is the one you are referring to). I thought the idea behind the setup/configure was to split machine and connection information into two steps, but as you mentioned in your answer this is not really the case. In the discussion with @mbercx I understood that it is more a question of splitting it into immutable and mutable information. Therefore I would say my initial suggestion is not working here. My initial motivation for the suggestion was more to solve the clash of the commands Since my misunderstanding of the meaning of configure and setup comes also from the help page that is at the moment
I suggest to change this help page to
|
Historically this was the main reason. But not because we thought it was a nicer UX to split it, but simply because it was necessary as the configuration options dependend on the selected transport plugin. Theoretically it may be possible to develop a command that will first prompt for the
This use case only has become part of the discussion much later in AiiDA's development. We have found that users often just want to update a computer but this is not allowed with the model we are currently using. There have been discussion to simply move some properties that we think should be mutable from the The question is whether we should actually do this an abuse the |
Thanks for clarifying the historic context! I have one remaining question why one has to specify the transport plugin in the configure command |
The reason is that the commands are generated dynamically. Basically you will not find these commands hard coded in the code but they are generated based on what entry points are installed in the The same happens for For the latter two, the commands are generated by the |
This is actually a crucial point for me if this is possible. MotivationLet me motivate a bit: To make new instances of objects, set parameters, update parameters the verdi commands
So any new design suggestion to improve this has to consider how much we technically can change the QuestionLooking at what is used in the aiida-core/src/aiida/transports/cli.py Lines 157 to 167 in 06f8f4c
I can see that retrieving the computer information might be nontrivial since we only have the computer name. But we could create the computer instance at this level and by that use this to continue with the configuration of the transport plugin. This would open the option to merge the commands to one. Do you think this is possible @sphuber? |
I agree that the naming of the commands is very inconsistent. If we didn't have to deal with backwards compatibility, I would change it all and make it fully consistent. Unfortunately, that is not really possible for now. If we were to migrate the computer setup code to use the |
The setup of a
Computer
throughverdi computer setup
can be a bit overwhelming as it asks to fill out all the attributes that it can store. The same goes forverdi computer configure
. For most usecases, options like the Kerberos settings are not really needed. Would it be possible to simplify the interface such that the interactive command by default only shows a subset of required fields, such as the username, hostname etc. and omit the more advanced features. The latter should of course still be changeable some other way for users that need it. This might make the setting up of computers and codes less daunting perhaps. This followed from a discussion with @louisponetThe text was updated successfully, but these errors were encountered: