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