---
# System prepended metadata

title: Project/environment management
tags: [design, Meeting]

---

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