aiidateam / aiida-core

The official repository for the AiiDA code
https://aiida-core.readthedocs.io
Other
429 stars 186 forks source link

Plugin versioning #126

Open aiida-bot opened 9 years ago

aiida-bot commented 9 years ago

Originally reported by: Andrea Cepellotti (Bitbucket: acepellotti, GitHub: cepellotti)


Introduce version support for input/output calculation plugins. In fact, we already need it if we would like to support QE phonon > 5.1.1, since they changed the variable iverbosity -> verbosity.


giovannipizzi commented 7 years ago

Decide how to deal with this in general with the new plugin system, and document it

greschd commented 7 years ago

I think there are two different topics here: One is how to handle different versions of the code within a given plugin (such as mentioned with QE phonon). The other is how to handle versions of the plugins themselves. For the plugin versions, I think we should require that plugins have a top-level __version__ attribute, since that's the general Python convention.

I'm already using this for the hashing / caching, meaning that nodes from a module which doesn't have a __version__ cannot be cached.

dev-zero commented 5 years ago

Following the discussion today (AiiDA 1.0 Plugin Migration Workshop):

sphuber commented 5 years ago

Issue #2664 addresses a sub-part of this problem that will already provide a big improvement and will be included in aiida-core==1.0.0. It only includes rules for processes, however, and the granularity of versioning will be limited. It will automatically determine the version based on the top-level module, i.e. the plugin. This version will be shared by all processes and there will be no way to define specific versions per class. In addition, the version attributes will only serve for targeted queries. The logic will not be affected by them.

If these limitations are too strong, and the absence of a version for Data nodes is problematic, they should be discussed here, including potential solutions. But since this will be inherently more complex, I am moving this to the milestone of 2.0.0