aiidalab / aiidalab-docker-stack

Docker images with the basic software stack for AiiDAlab

Home Page:https://aiidalab.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pin the aiida-core to its minor version

danielhollas opened this issue · comments

Currently, we don't allow the user to downgrade the aiida-core version below what's in the image, since it might not be compatible due to DB migration. However, we currently do allow users to upgrade the minor version of AiiDA.

Here I would propose to disallow that, and have aiida-core pinned (whether to pin up to the patch version I am not sure), in the hopes of making the AiiDAlab container more stable. Here are some concrete reasons / scenarious:

  1. aiida-core brings in a lot of dependencies, so there's a greater chance of things breaking. Indeed, it has been so far our experience that upgrading the minor version often necessitated changes throughout the AiiDAlab stack. As a concrete example, upgrading to v2.5 would cause breakage to any packages that depend on pydantic v1 (optimade, aiida-quantumespresso).

  2. Upgrading aiida-core possibly involved unreversible DB migration. So if something goes wrong, the user cannot go back to previous aiida-core version, resulting in a completely broken state.

  3. Reinstalling aiida-core puts the package in ~/.local/, and mixes conda and pip dependencies, which I think is undesirable, because if the user then upgrades the image with a newer aiida-core version, there will be a conflict.

Given that we tag all AiiDAlab images with the AIIDA-CORE version, I think it is completely reasonable to require users to download a new image if they want to upgrade aiida-core.

CC @yakutovicha @unkcpz what do you think? (if you agree, it would be good to make this change before we update aiida-core to 2.5)

Considering all the struggling we encountered recently involved with pydantic v1->v2, I think this is the least bad option.