owned this note
owned this note
Published
Linked with GitHub
# AiiDA coding week
For reference:
* [User-friendliness doc.](https://docs.google.com/document/d/14MgR1FnGlpKAlOCRK4Ys__XLdKKatJPFsle14pmtqi8/edit#heading=h.b80f09mzp0ab)
* [GitHub Project on user-friendliness.](https://github.com/orgs/aiidateam/projects/4)
* [AiiDA Discourse](https://aiida.discourse.group/)
* [Marnik's Figma playground](https://www.figma.com/file/ezgFzQeLRQJQkcTJgICCHK/AiiDA-setup?type=whiteboard&node-id=0%3A1&t=rKf4VIvsl3hwyBRT-1)
## Discussions
1. [The setup hurdle](https://hackmd.io/BcwQpSAZQpiMYdmL7FJ-TQ).
2. [Project/environment management](https://hackmd.io/iKvT4GrJSgCoYOwjZIDJkg)
3. New `StructureData` / `aiida-atomistic`
4. AiiDA-light
## Task list
Below you can find the names of all the participants and what we expect you to work on.
- Marnik:
1. [Core packages not in `aiida-core`](#Core-packages-not-in-aiida-core)
2. [Project/environment management](#Projectenvironment-management)
- Jason:
1. [The setup hurdle](#The-setup-hurdle) (more on `aiida-code-registry` and AiiDAlab)
2. [Project/environment management](#Projectenvironment-management) (more on `aiida-core` docker image)
3. [(GSoC) AiiDA plugin registry redesign](#GSoC-AiiDA-plugin-registry-redesign)
- Francisco:
1. [The setup hurdle](#The-setup-hurdle)
2. [Documenting new features in AiiDA v2.X](#Documenting-new-features-in-AiiDA-v2X)
- Edan:
1. [Documenting new features in AiiDA v2.X](#Documenting-new-features-in-AiiDA-v2X)
2. [`aiida-core` components](#aiida-core-components)
- Xing:
1. [Making backups clearer/easier](#Making-backups-clearereasier)
2. [AiiDA-light](#AiiDA-light)
- Miki:
1. [Documenting new features in AiiDA v2.X](#Documenting-new-features-in-AiiDA-v2X)
2. [New `StructureData`](#New-StructureData)
- Chris:
1. [`aiida-core` components](#aiida-core-components)
1. Reviewing PRs!
1. [Project/environment management](#Projectenvironment-management)
- Kristjan:
1. [Making backups clearer/easier](#Making-backups-clearereasier)
1. [Core packages not in `aiida-core`](#Core-packages-not-in-aiida-core)
1. [Test aiida-restapi on Materials Cloud](#Test-aiida-restapi-on-Materials-Cloud)
- Sasha:
1. [The setup hurdle](#The-setup-hurdle)
2. [AiiDA code/computer setup](#AiiDA-codecomputer-setup)
- Ahmed:
1. [(GSoC) AiiDA plugin registry redesign](#GSoC-AiiDA-plugin-registry-redesign)
- Giovanni:
1. [Disk-objectstore](#Disk-objectstore)
2. Documentation on backups
- Bonan:
1. [Disk-objectstore](#Disk-objectstore)
## Topics overview
1. [The setup hurdle](#The-setup-hurdle)
1. [Project/environment management](#Projectenvironment-management)
1. [Making backups clearer/easier](#Making-backups-clearereasier)
1. [Core packages not in `aiida-core`](#Core-packages-not-in-aiida-core)
1. [Disk-objectstore](#Disk-objectstore)
1. [Documenting new features in AiiDA v2.X](#Documenting-new-features-in-AiiDA-v2X)
1. [New `StructureData`](#New-StructureData)
1. [AiiDA-light](#AiiDA-light)
1. [`aiida-core` components](#aiida-core-components)
1. [(GSoC) AiiDA plugin registry redesign](#GSoC-AiiDA-plugin-registry-redesign)
## The setup hurdle
Setting up your profile, computer, configuring the transport and getting the code set up is not trivial for beginners. Some things they will simply have to learn, but we can still make this process less painful for sure.
* Making it possible to fix problems in computers/codes after setup:
https://github.com/aiidateam/team-compass/issues/12
* Make it easier for users to setup known computers and codes:
https://github.com/aiidateam/team-compass/issues/4
### Champions
- **Jason**: I plan to work on adapt `aiida-code-registry` to support AiiDAlab `ComputerResourceWidgets` for template setup.
- **Sasha**: work with Jason on `aiida-code-registry`.
- **Francisco**: Look into minimal requirements for profile/computer/code setup. How to make computer/code entities more flexible?
## Project/environment management
There are currently several tools for getting an up-and-running AiiDA environment:
1. `aiidalab-launch`: https://github.com/aiidalab/aiidalab-launch
2. `aiida-project`: https://github.com/aiidateam/aiida-project
3. Old work from Chris: https://github.com/chrisjsewell/activate_aiida
And probably more. What is the use case/scope of these tools, and how can we have them work together? Which ones should we promote?
### Champions
- Marnik: Look into integrating `aiida-project` with `aiida-code-registry`.
- Chris: Conda/Mamba integration/`aiida-activate`.
- Jason: I am willing to work on `aiidalab-launch` approach, to support start AiiDA container.
## Making backups clearer/easier
Clearly document how to properly back up your AiiDA data, and provide tools for making this easier.
Potentially also think about "profile backups" -> This is also something I would like to do in `aiida-project`. Clear issue here is [exporting computers/codes to YAML files](https://github.com/aiidateam/aiida-core/issues/3521).
- Kristjan
- Xing
## Core packages not in `aiida-core`
There are several packages _not_ in `aiida-core` that provide very general features:
* `aiida-submission-controller` [(link)](https://github.com/aiidateam/aiida-submission-controller)
* `aiida-hyperqueue` [(link)](https://github.com/aiidateam/aiida-hyperqueue)
We should make these findable and usable (easy to install/setup and documented.)
### Champions
- Marnik
- Kristjan
## Disk-objectstore
Main topic: compression (Gio can say more)
### Champions
- Bonan
- Giovanni
## Documenting new features in AiiDA v2.X
We have a bunch of new features in AiiDA 2.0 (e.g. monitoring) and we should check if they are properly documented and do so if not.
Mentioned by Giovanni:
I just gave a talk on AiiDA and common workflows. I got a suggestion from an existing AiiDA user that they would like to see guidelines for users on how to best manage their data (I'm guessing how to organize in groups, query back for it etc), as most tutorials we have are currently for beginners. He said that sometimes it takes him 2 3 days to get back his data.
I think it's a very good comment, maybe we can already start planning next week a place for this, in the context of aiida-project and the submission controller. (and we also have the "AiiDA blog" on how to query 2d Materials that Francisco had written).
### Champions
- Edan
- Francisco
- Miki
## New `StructureData`
Breaking ground on the `aiida-atomistic` package, we want to start working on a redesign of the `StructureData` data type.
The main challenge is to make this class easy to extend to new properties we want, e.g.:
* Magnetic configuration
* Hubbard corrections
* Fixed atom positions
* ...
Note that these are clearly not _all_ "real" material properties, many of them are settings for a calculation.
Still, it's useful to be able to assign these properties to the structure and pass them through in calculations without having to pass other nodes that contain these details.
### Champions
- Jason: (priority: -) I am willing to draft the `aiida-atomistic` to support OPTIMADE `StructureData`.
- Miki: started to work on `StructureData` to support magnetic properties
- Lorenzo B.
## (GSoC) AiiDA plugin registry redesign
AiiDA has a flexible plugin system that allows extending most aspects of the code. This project aims to add several functionalities to the AiiDA plugin registry web page, including a relevant sort order for the plugins list, and the ability to search. This project also aims to get additional information about the plugins. This information will be a great way to discover and browse through the available capabilities each plugin provide.
### Champions
- Jason: I will help assistant gsoc student (Ahmed Basem) on this task.
- Ahmed
## AiiDA code/computer setup
Several features could be added to codes and computers to improve the user friendliness. For instance, exporting computer configuration as a YAML file is quite desirable feature that is still missing. Also, the ability to specify multiple keys when configuring computer should be added.
## `aiida-core` components
Mainly focused on knowledge transfer and documentation of the `aiida-core` components. Also see the following HackMD note:
https://hackmd.io/hYaz4oXyTfWDUWKIKc0HUg#AiiDA-components
Would be good to have an overview of the component and document the design as much as possible. Edan was also interested in having discussions with Chris to learn as much as possible.
### Champions
- Edan
- Chris
## AiiDA-light
One way to get people started with AiiDA is by offering a services-free option: i.e. just running codes with AiiDA:
1. Without RabbitMQ: i.e. just running in the Python session. [xw]: how? a process need a communicator.
2. Without PostgreSQL: i.e. a temporary database in memory.
This is already possible thanks to temporary profiles. We simply have to think about how to make this feature as easy to use and findable as possible.
Some random quick ideas:
* Magic function in Jupyter notebook to run without
* `verdi shell-light`?
### Champions
- Xing
## Test aiida-restapi on Materials Cloud
Described nicely by Sebastiaan here: https://github.com/aiidateam/team-compass/issues/16
### Champions
- Kristjan
## Review the PRs for coding week
We need one people to coordinate the reviewing of PRs from the second day of coding week.
- Chris
## General notes 🫡
* Invited developers should not require much supervision.
* Invite Ahmed (from Gsoc): working on AiiDA registry redesign.
* Format: Two things to do (Discussion and Coding) It should be possible to actually do some work, so we should limit the discussion. We can start the day with a quick overview, but let's do discussion later in the day so we don't get stuck on them all day (but rather continue them later with a 🍺).
* Schedule: Start Monday noon, stop Friday noon?
* Social activity!!!
## People to invite
- AiiDA team members
- People from Empa
- Bonan Zhu
- Lorenzo Bostenero
- Ahmed (GSoC student)
- Daniel Hollas