Skip to content
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

Usability: Make it easier for users to setup known computers and codes #4

Open
unkcpz opened this issue Feb 9, 2023 · 6 comments
Open
Assignees
Labels
roadmap/proposed A roadmap item that has been proposed but not yet processed

Comments

@unkcpz
Copy link
Member

unkcpz commented Feb 9, 2023

Motivation

As a user, I want to have a way to easily set up computer/code and start using AiiDA quickly.

As a user, I want to go to a centralized place to share or find the configurations of my settings.

As a user, when I set the for the same computer and codes for another AiiDA profile, I can do it without duplicating all processes but very easily accomplish it.

As an aiida-code-registry developer, I need all the config sharing processes automatically and put less effort on review the new computer/code configs added in the repo.

As an aiidalab-widgets-base developer, I want to use an officially supported template system to set up computer/code for ComputationalResourceWidget for setting computer/code from "database".

Desired Outcome

  • Setup computer/code from template foramt config files
  • Registry page to show/share new configure files

Impact

The improvements will make setting computers and codes more easily for users. Make it possible for AiiDAlab app to setting code with more flexibility to change the content in prepend_text dynamically through the widget.

Complexity

The template system needs to be supported with verdi, which the DynamicEntryPointCommandGroup can be potentially used to prompt the required parameters dynamically for the user's input. But it is not clear how to make it works.

The computer/code registry page needs to be redesigned and well-documented in the AiiDA-core docs to encourage users to contribute and maintain it.

Background

For beginners and even for the experienced AiiDA user, setting up computers and codes is still a tedious mission. If using the interactive mode, although it is good that options are prompted up and the user can set every option one by one carefully, it requires going through all options even if some are not necessary and time-consuming for a similar setup that has shared options with other code/computer setup.

AiiDA provides the non-interactive mode to set up the computer/code from a config YAML file, which lowers the burden for users who need to set up the computer/code next time. However, the non-interactive mode requires a YAML file as the input, and not clear which options are mandatory, and let alone it is not clear which default value will be used without checking the command help message or even the source code. Let alone for the computer setup it is a two-stage process, user needs to set up the computer for attributes that are common information for the computer that is stored in the database using verdi computer setup. Then running verdi computer configuration to set up information of the computer that is specific to the user or required to modify after the node is stored in the database.

The computer/code can be set up from a YAML file, and we provide a repository aiida-code-registry to store the YAML files for public computers and codes to share with others. Need to mention that the interactive setup command can accept a URL of a remote YAML file for setup. This makes it possible to not download/clone the aiida-code-registry repo to use the YAML to set up computer/code.

@unkcpz unkcpz added the roadmap/proposed A roadmap item that has been proposed but not yet processed label Feb 9, 2023
@chrisjsewell chrisjsewell changed the title Template computer/code setup and new code registry configs Usability: Template computer/code setup and new code registry configs Feb 9, 2023
@chrisjsewell
Copy link
Member

chrisjsewell commented Feb 9, 2023

Thanks @unkcpz;

@unkcpz and @sphuber I think we should align #4 and #5 a little, I guess the key points are something like:

What do you think?

@chrisjsewell
Copy link
Member

@unkcpz, I feel the roadmap item, is still focussing a bit too much on the "how" and not the "why"

For the title I suggest something like:

Usability: Make it easier for users to setup known computers and codes

what do you think?

@unkcpz
Copy link
Member Author

unkcpz commented Feb 9, 2023

Thanks @chrisjsewell, all very good suggestions, I agree with the rename for both of them.

@unkcpz unkcpz changed the title Usability: Template computer/code setup and new code registry configs Usability: Make it easier for users to setup known computers and codes Feb 9, 2023
@chrisjsewell
Copy link
Member

Also can you split Motivation and impact, remove the line

The motivation may contain one or more use cases.

Move complexity above background,

and move the "Further comments (by GP)" just into a separate comment (so it doesn't show on the website)

@unkcpz
Copy link
Member Author

unkcpz commented Feb 9, 2023

Okay, I think I need to use your template strictly. I copy and paste from the item I create on Monday. Too hurry up ;) Sorry for the carelessness.

@chrisjsewell
Copy link
Member

Okay, I think I need to use your template strictly. I copy and paste from the item I create on Monday. Too hurry up ;) Sorry for the carelessness.

Ah no worries. Just want to make sure the first roadmap items are good exemplars for future ones 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
roadmap/proposed A roadmap item that has been proposed but not yet processed
Projects
None yet
Development

No branches or pull requests

2 participants