AiiDA迁移测试的导出存档
项目描述
AiiDA导出文件迁移测试
AiiDA导出文件迁移的测试模块。
可以通过添加 testing
包来安装,当安装 AiiDA 时。
pip install aiida-core[testing]
注意:此方法仅适用于 AiiDA v1.0.0 及更高版本。
此模块与 AiiDA 版本之间的历史比较表,包括首次包含不同导出版本测试的时间。
本模块 | AiiDA | 导出版本(首次包含时) |
---|---|---|
0.9.0 | 待发布 | 0.9 |
0.8.0 | 1.0.1 | 0.8 |
0.7.0 | 1.0.0b4 | 0.6, 0.7 |
0.6.0 | 1.0.0b4 | |
0.5.2 | 1.0.0b3 | |
0.5.1 | 1.0.0b3 | |
0.5.0 | 1.0.0b3 | 0.4 -> 0.5 |
0.1.1 | 1.0.0b2 | |
0.1.0 | 1.0.0b2 | 0.1 -> 0.2 ; 0.2 -> 0.3 ; 0.3 -> 0.4 |
问答
问:为什么不将这些测试存档包含在 AiiDA 的核心中?
答:为了避免占用不必要的磁盘空间,在安装 AiiDA 时,这些测试存档已从 aiida-core 中分离出来。此外,旧版导出版本将永远不会更改,即增量迁移功能只需要彻底测试一次,因此不会受到 AiiDA 代码核心更改的任何影响。
问:当导出版本升级时会发生什么?
答:将在此存储库中添加一个新的导出存档文件以及一个新的包含测试的新文件(在 aiida-core 下的 tests.tools.importexport.migration
)。
问:如果 AiiDA 核心中的导入系统发生变化怎么办?
答:此存储库仅用于存储不同导出版本的导出存档及其创建工作流程。所有测试都可以在 aiida-core 中找到。
发布说明
0.9.0(2020 年 4 月)
AiiDA 版本:待发布
更新存储库,包含导出版本 0.9 的导出存档。文件名称遵循之前导出版本文件名称,后缀为 _manual
,因为它没有正确生成,即通过在 AiiDA 中运行新的工作流程生成。相反,导出文件 export_v0.8_manual.aiida
已解包、手动更新并重新打包。这意味着最新的“正确”导出文件是 export_v0.4.aiida
。
预计更改将与 AiiDA 版本 1.2.0 一起发布。
新文件:export_v0.9_manual.aiida
0.8.0(2019 年 11 月)
AiiDA 版本:1.0.0
更新存储库,包含导出版本 0.8 的导出存档。文件名称遵循之前导出版本文件名称,后缀为 _manual
,因为它没有正确生成,即通过在 AiiDA 中运行新的工作流程生成。相反,导出文件 export_v0.7_manual.aiida
已解包、手动更新并重新打包。这意味着最新的“正确”导出文件是 export_v0.4.aiida
。
预计更改将与 AiiDA 版本 1.0.1 一起发布。
新文件:export_v0.8_manual.aiida
0.7.0(2019 年 7 月)
AiiDA 版本:1.0.0b4
更新存储库,包含导出版本 0.6 和 0.7 的导出存档。
这些文件名称不同,后缀为 _manual
,因为它们没有正确生成,即通过在 AiiDA 中运行新的工作流程生成。相反,导出文件 export_v0.4.aiida
已解包、手动更新并重新打包。
文件 export_v0.5.aiida
也已这样处理,因此其名称将相应更改。
新文件:
export_v0.5_manual.aiida
(仅更改了文件名)export_v0.6_manual.aiida
export_v0.7_manual.aiida
0.6.0(2019 年 7 月)
AiiDA 版本:1.0.0b4
此版本从未发布。
0.5.2(2019 年 6 月)
AiiDA 版本:1.0.0b3
根据问题#6删除测试文件。这些文件已移动到aiida.backends.tests.tools.importexport.migration.
下的aiida-core
。正如问题中所述,关于aiida-core
中文件的测试问题在于它们不能使用unittest.skip(<message>)
跳过并显示有用的消息。
该存储库现在成为导出存档和工作流的保管者。因此,只有在AiiDA中引入新的导出版本且必须添加新的存档时,才应接触它。
0.5.1(2019年6月)
AiiDA 版本:1.0.0b3
根据导入/导出模块的重新结构更新从aiida-core的导入。参考信息,这已在aiida-core PR#3052中完成。
0.5.0(2019年6月)
AiiDA 版本:1.0.0b3
将此存储库的版本号更新为反映当前aiida-core
中的EXPORT_VERSION
。
版本号现在如下所示:<EXPORT_VERSION>.<patch>
实现与EXPORT_VERSION
从0.4到0.5的更新相关的初始更改
注意:位于/aiida-export-migration-tests/archives
下的新创建的export_v0.5.aiida
实际上并非由AiiDA工作流创建,而是由export_v0.4.aiida
迁移而来。这是因为版本之间的变化对工作流程的结果影响不大,且只有非常小的变化发生。
0.1.1(2019年5月)
AiiDA版本:1.0.0b2
由于aiida-core中的更改进行的一些小修复。
将fixtures
文件夹重命名为archives
,以匹配aiida-core中发生的相同更改。
aiida-core中代表不同导出版本的简单AiiDA导出存档已更改名称
export_v0.1_no_UPF.aiida
->export_v0.1_simple.aiida
export_v0.2_no_UPF.aiida
->export_v0.2_simple.aiida
export_v0.3_no_UPF.aiida
->export_v0.3_simple.aiida
export_v0.4_no_UPF.aiida
->export_v0.4_simple.aiida
在metadata.json
文件中包含的转换消息中引入了一个变化,当迁移成功完成时,会引入AiiDA的版本。为了使测试不受版本限制,必须在相关测试中特别处理conversion_info
键。
在迁移存档时,断言正确的转换消息出现在迁移的存档中,然后从迁移的存档和用于比较导入的存档中弹出conversion_info
项。
0.1.0(2019年4月)
AiiDA版本:1.0.0b2
首次发布。
从版本0.1、0.2和0.3逐步导出迁移的测试。
由@yakutovicha在专门的Quantum Mobile虚拟机中创建的代表性导出文件,以测试基于当时可导出的内容所知迁移。
版本比较表(类似于aiida-core PR#2478中的表)。
导出版本 | AiiDA版本 | AiiDA版本发布日期 | 找到更改的提交 |
---|---|---|---|
v0.2 | 0.9.1 | 01.09.2017 | 189e29fea4c7f4213d0be0914d55cccaa581c364(v0.7.0) |
v0.3 | 0.12.3 | 04.03.2019 | 788d3206e0eaaf062d1a13710aaa64a18a0bbbcd (v0.10.0rc1) |
v0.4 | 1.0.0b2 | 09.04.2019 | 1673ec28e8b594693a0ee4cdec82669e72abcc4c (v1.0.0b1) |
由于以下原因,我们决定不对0.1进行代表性存档迁移的工作
- 在PyPi上最早发布的版本是0.8.0rc1(2017年3月22日)。
- 之前的稳定版本(AiiDA 0.5.0)在虚拟环境中无法运行。
- 从v0.1到v0.2的迁移很小,相当简单。如果找到无法正常迁移的导出文件,由于这一步,可以轻松手动迁移。
代表性导出文件创建
为了创建代表性导出文件,@yakutovicha开发了一个简单的工作流程,该流程运行两个连续的QuantumESPRESSO PW计算。首先是一个自洽场计算,然后是一个分子动力学计算。
工作流程可以在存储库的.qm
文件夹中找到,并对应以下导出版本和Quantum Mobile版本
导出版本 | 工作流程 | 运行工作流程脚本 | Quantum Mobile |
---|---|---|---|
- | - | - | |
v0.2 | wf.py | run_wf.py | historical_aiida_0.9.1 |
v0.3 | wf.py | run_wf.py | v19.03.0 |
v0.4 | wf_aiida_1_0.py | run_wf_aiida_1_0.py | 开发中 |
*参见第发布说明#0.1.0(2019年4月)节。
它们包含以下AiiDA节点类型(根据AiiDA 1.0.0)
节点类型 | 父类型树,直至Node |
---|---|
Float | NumericType -> BaseType/Data -> Node |
Int | NumericType -> BaseType/Data -> Node |
Dict | Data -> Node |
FolderData | Data -> Node |
RemoteData | Data -> Node |
StructureData | Data -> Node |
UpfData | SinglefileData -> Data -> Node |
KpointsData | ArrayData -> Data -> Node |
BandsData | KpointsData -> ArrayData -> Data -> Node |
TrajectoryData | ArrayData -> Data -> Node |
Code | Data -> Node |
WorkChainNode | WorkflowNode -> ProcessNode -> Node |
CalcJobNode | CalculationNode -> ProcessNode -> Node |
项目详情
aiida-export-migration-tests-0.9.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | d2564c14eb06a221dc1f06fb24a4f5fba6143ac01087adba6be02aa7f86b5e63 |
|
MD5 | d28dfe50e8c9b82e66b4d05b63a7a202 |
|
BLAKE2b-256 | ea901c9c13f2fdfa96602c8d72732f1c52d22c352e42e710981d7fb0b6dbe7bf |