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?
## Discussion
Host: Marnik
Note: Jason
The link to [Figma gragh]()
Marnik: what user need to do to get start to use AiiDA? Database, RMQ and AiiDA itself which bring the hurdle to new even experience users. There are we have now:
- aiida-project
- aiidalab-launch
[JY]: Should we first now identify the users for AiiDA?
1. Interested but wants to just try AiiDA.
2. Tommaso: Doesn't care about database or rabbitmq, just wants to use AiiDA input file creation and parser (AiiDA-light).
3. Basic user who wants to do no development and just run AiiDA.
4. User that has multiple projects but does no developer.
5. Plugin developer.
6. Core developer.
[Marnik]:
- Users may not care about the `AIIDA_PATH` from start but may mess it up after he/she need a new environment for other project.
- aiida-project create seprate directory, generate a virtual environment along with it with project folders.
Chris: The `aiida-project` is a meta installer, it is still hard to deal with RMQ, so RMQ is still centralized. The `verdi` is still independent of every environment.
Daniel: how different aiida profiles fit into `aiida-project`.
Marnik: Have two profiles, `production` and `dev`.
Daniel: Is the file storages are being separated?
Marnik/Chris: Every "project" will have its own file storage in principle.
Jason: In development, different profiles will share one virtual env created by aiida-project then there is chance to mess up when change the package instatlled by `pip intall -e <package`.
Marnik: Yes, but try not, and create new project when you need code in other branch.
Daniel: the aiida daemon is not shared and it is impossible to have a global daemon?
Seb: verdi daemon start will spawn daemon from python environment, so it can run multiple daemon attach with different python environment.
Daniel: @Jason @Sasha, in aiidalab, it has one aiida-core installed, it can be have different aiida environment for different AiiDAlab apps.
Sasha: We think about it and tried it before, the solution will fall to RestAPI.
Francisco: One of the possible issues when you are running multiple postgres services:
- Different ports.
- If you are running production, you need to remember to always start the services after reboot since it won't start automatically.
Gio: we can do same thing using PID to see if the service is running or stop properly.
Marnik: `aiida-project` is globally installed. It could be have conda integarated to here to start the services when start a project it setup the services and then has even saparated servires for each environment/project.
Gio: When environment deactivate, should not stop the services.
Marnik: the code registry can also be integrated to the `aiida-project`. The command can be provided to get all avaiable setup in the registry. (Seb: 🤨 Daniel: 🤨 Gio: 🤨 Jason: ❤️ Sasha: ❤️ Marnik: ❤️)
https://github.com/tox-dev/tox-conda
https://github.com/mitsuhiko/rye