- 
                Notifications
    You must be signed in to change notification settings 
- Fork 232
Backward incompatible changes in 1.0.0
This is a (sub set) of the backward incompatible changes between aiida-core==0.* and aiida-core==1.0.0.
For a list of added features and improvements, please refer to the CHANGELOG.md.
- Reorganization of some second-level modules. Various classes and functions have been moved, renamed or replaced, for the current policy see the documentation [#2357]
- The module aiida.workhas been renamed toaiida.engineand reorganized significantly [#2524]
- The module aiida.schedulerhas been renamed toaiida.schedulers[#2498]
- The module aiida.transporthas been renamed toaiida.transports[#2498]
- The module aiida.utilshas been removed and its contents have been placed in other places where appropriate [#2357]
- Requirements were moved from setup_requirements.pytosetup.json[#2307]
In order to define a clearer interface for users to the AiiDA entities, and allow (in the future) to swap between different profiles, the underlying hierarchy of nodes and links has been reworked (and a new paradigm has been implemented, with a "frontend" class that all users will interact with, and a "backend" class that users should never use directly, that implements the interaction to the database with a common interface, independent of the underlying ORM). The reorganisation of nodes and linktypes is mostly invisible to the user, but existing import statements will need to be updated.
- Refactoring the ORM [#2190][#2210][#2227][#2225][#2481][#2544]
- Renamed the node classes for the various process types
- 
WorkCalculationtoWorkChainNode[#2192]
- 
FunctionCalculationtoWorkFunctionNode[#2189]
- 
JobCalculationtoCalcJobNode[#2184] [#2201]
- 
InlineCalculationtoCalcFunctionNode[#2195]
- Reorganization of the aiida.ormmodule, all node sub classes are now located underaiida.orm.nodes[#2402][#2497]
- Make Codea real sub class ofData[#2193]
- Implement new link types [#2220]
- 
CREATE:CalculationNode -> Data
- 
RETURN:WorkflowNode -> Data
- 
INPUT_CALC:Data -> CalculationNode
- 
INPUT_WORK:Data -> WorkflowNode
- 
CALL_CALC:WorkflowNode -> CalculationNode
- 
CALL_WORK:WorkflowNode -> WorkflowNode
 
- 
- Moved the plugin factories to aiida.plugins.factories[#2498]
- Methods that operated on the repository of a Nodeinstance have been moved to aRepositoryutility that is exposed through theNode.repositoryproperty [#2506]
- Removed the Errordata sub class and its entry point [#2529]
- Removed the FrozenDictdata sub class and its entry point [#2532]
- Renamed the ParameterDatadata sub class toDict[#2517]
- Changed relationship indicator keywords, e.g. input_ofis nowwith_outgoing. [#2224][#2278]
- Changed type of UUIDs returned by the QueryBuilderto always be of type unicode [#2259]
- Change group type strings [#2329]
- 
data.upf.familytodata.upf
- 
aiida.importtoauto.import
- 
autogroup.runtoauto.run
- custom ones to user
 
- 
- Remove Group.queryandGroup.group_querymethods have been removed [#2329]
- Renamed typecolumn ofGroupdatabase model totype_string[#2329]
- Renamed namecolumn ofGroupdatabase model tolabel[#2329]
- The column typehas been renamed tonode_type[#2522]
- The methods get_inputs,get_outputs,get_inputs_dictandget_outputs_dicthave been removed and replace byget_incomingandget_outgoing[#2236]
- Removed the link manager methods Node.inpandNode.outand the functionality has partially been replaced by: [#2569]- The link manager properties inputsandoutputsfor theCalculationNodeandWorkflowNodeclasses.
- Added the Data.creatorproperty
- Added the ProcessNode.callerproperty
- Functionality to traverse the graph with tab completion when there is no uniqueness on the label is no longer supported and get_incomingandget_outgoingshould be used instead.
 
- The link manager properties 
- The classes Node,ProcessNodecan no longer be stored but only their sub classes [#2301]
- 
Kind.is_alloy()has been changed to a propertyKind.is_alloy[#2374]
- 
Kind.has_vacancies()has been changed to a propertyKind.has_vacancies[#2374]
- 
StructureData.is_alloy()has been changed to a propertyStructureData.is_alloy[#2374]
- 
StructureData.has_vacancies()has been changed to a propertyStructureData.has_vacancies[#2374]
- 
CifDatadefault library used inget_structureto convert toStructureDatahas been changed fromasetopymatgen[#1257]
- 
ArrayData.iterarrays()has been renamed toArrayData.get_iterarrays(). [#2422]
- 
TrajectoryData._get_cif()has been renamed toTrajectoryData.get_cif(). [#2422]
- 
TrajectoryData._get_aiida_structure()has been renamed toTrajectoryData.get_structure(). [#2422]
- 
StructureData._get_cif()has been renamed toStructureData.get_cif(). [#2422]
- 
Code.full_text_info()has been renamed toCode.get_full_text_info(). [#2422]
- 
Code.is_hidden()has been renamed and changed toCode.hiddenproperty. [#2422]
- 
RemoteData.is_empty()has been changed to a propertyRemoteData.is_empty. [#2422]
- The arguments stepidsandcellsof theTrajectoryData.set_trajectory()method are made optional which has implications on the ordering of the arguments passed to this method. [#2422]
- The list of atomic symbols for TrajectoryDatais no longer stored as array data but is now accessible through theTrajectoryData.symbolsattribute. [#2422]
- Metadata inputs that used to start with an underscore (_label,_descriptionand_options) no longer use an underscore and have moved within themetadatanamespace [#1105]
- Non-storable input ports are now markable as such through the non_dbkeyword [#1105]
- The make_inlineandoptional_inlinedecorators have been replaced bycalcfunction. [#2203]
In the new engine, it is not possible to launch calculation jobs by first creating an instance of the Calculation and then calling the calculation.use_xxx methods, as it was common in early versions of AiiDA.
Instead, you need to pass the correct Calculation class to the run or submit function, passing the nodes to link as input as kwargs.
For the past few versions, we have kept back-compatibility by supporting both ways of submitting. In version 1.0 we have decided to keep only one single way of submitting calculations for simplicity.
- 
JobCalculationhas been replaced byCalcJobprocess class [#2389]
- Custom methods on the node class should now be implemented through a CalculationToolsplugin [#2331]
- Explicit set_methods of theJobCalculationhave been replaced with genericset_optionmethod [#2361]
- Explicit get_methods of theJobCalculationhave been replaced with genericget_optionmethod [#1961]
- New calculation job states have been introduced set as an attribute, only to be used for querying [#2389]
- The DbCalcStatetable that recorded the old job state ofJobCalculationshas been removed [#2389]
- 
parse_from_retrievedhas been renamed toparse. In addition the arguments and return signatures have changed, for details see the PR [#2397]
- The free function submitin anyWorkChainshould be replaced withself.submit.
- The future returned by submitno longer has thepidattribute but ratherpk.
- The workfunctiondecorator can only be used for functions that return one of the inputs they receive, for all other use thecalcfunction
- The get_inputs_template classmethod has been replaced byget_builder. See the section on the process builder in the documentation on how to use it.
- The input_grouphas been deprecated and been replaced by namespaces. See the section on ports in the documentation on how to use them.
- The use of a .(period) in output keys is not supported inProcess.outbecause that is now reserved to indicate namespaces.
- Remove implementation of legacy workflows [#2379]
The verdi command line interface has been migrated over to a new system (called click), making the interface of all verdi commands consistent: now the way to specify a node (via a PK, a UUID or a LABEL) is the same for all commands, and command-line options that have the same meaning use the same flags in all commands.
To make this possible, the interface of various verdi commands has been changed to ensure consistency.
Also the output of most commands has been homogenised (e.g. to print errors or warnings always in the same style).
Moreover, some of the commands have been renamed to be consistent with the new names of the classes in AiiDA.
- Removed verdi workin favor ofverdi process[#2574]
- Removed verdi calculationin favor ofverdi processandverdi calcjob[#2574]
- Removed verdi workflows[#2379]
- Deprecated the commands to set and get config options verdi devel *propert*in favor ofverdi config[#2354]
- 
verdi code showno longer shows number of calculations by default to improve performance, with--verboseflag to restore old behavior [#1428]
- Each profile now has its own daemon that can be run completely independently in parallel, so verdi daemon configureuserhas been removed [#1217]
- Replaced CelerywithCircusas the daemonizer of the daemon [#1213]
- Renamed aiida.daemon.execmanager.job_statestoJOB_STATES, conforming to python conventions [#1799]
- Abstract method aiida.scheduler.Scheduler._get_detailed_jobinfo_command()raisesaiida.common.exceptions.FeatureNotAvailable(wasNotImplemented).
- Moved the SchedulerFactorytoaiida.plugins.factories[#2498]
- Moved the TransportFactorytoaiida.plugins.factories[#2498]
- New export archive format introduced v0.4. Migration of older archives is being implemented and will be released withaiida-core==1.0.0see issue [#2426]