Changelog#
v0.26.0 - 2026-02-24#
Improvements#
Replace nest_asyncio with greenback for nested process execution (#332)
Devops#
v0.25.1 - 2025-10-01#
Bug fixes#
Bump kiwipy to 0.9.0 for hotfix of aiormq by @unkcpz in https://github.com/aiidateam/plumpy/pull/326
Devops#
Update CI and CD to py3.13 and remove cache action by @agoscinski in https://github.com/aiidateam/plumpy/pull/322
Spring cleaning - part 1 by @danielhollas in https://github.com/aiidateam/plumpy/pull/324
Update mypy, pytest and pre-commit by @danielhollas in https://github.com/aiidateam/plumpy/pull/325
v0.25.0 - 2025-04-29#
Breaking changes#
Drop support for Python 3.8 (#312) [f008399]
Features#
Devops#
Update the the readthedocs yaml to v2 and py13 (#313) [538c824]
v0.24.0 - 2025-01-08#
Breaking changes#
Direct message constants (
KILL_MSG,PAUSE_MSG,PLAY_MSG,STATUS_MSG) are replaced with theMessageBuilderclass methods.
Features#
Devops#
Make rpc callback exception more explicit and wind up to show more infos (#305) [ecef9b9]
v0.23.0 - 2024-12-13#
Breaking changes#
All the
run()methods across the interface are now asynchronous (async def).Changes from
CoroutinetoAwaitablein function signatures.
Bug fixes#
Make
Waiting.resume()idempotent (#285) [20e5898]
Devops#
v0.22.3 - 2024-02-02#
Bug fixes#
Dependencies#
Devops#
Update ReadTheDocs configuration file [5ddba0f]
v0.22.2 - 2023-06-23#
This release applies the fixes that were released on the support branch of v0.21.x.
Bug fixes#
v0.22.1 - 2022-11-21#
Dependencies#
v0.22.0 - 2022-10-31#
Features#
Process: Add theis_exceptedproperty [#240]
Bug fixes#
Dependencies#
Devops#
v0.21.11 - 2024-07-01#
Fixes#
Make
Waiting.resume()idempotent [a79497b]
Dependencies#
Add requirement
nbdime<4[94df0df]
v0.21.10 - 2023-11-13#
Dependencies#
Dependencies: Add support for Python 3.12 [2af3907]
v0.21.9 - 2023-11-10#
Features#
Make
ProcessListenerinstances persistable [98a375f]
Fixes#
Catch
ChannelInvalidStateErrorin process state change [db2af9a]
Devops#
Update ReadTheDocs configuration file [31f85c7]
v0.21.8 - 2023-06-07#
Devops#
Dependencies: Update requirement
mypy==1.3.0[#270]
v0.21.7 - 2023-04-20#
Bug fixes#
PortNamespace.get_port: Only create ifcreate_dynamicallyisTrue[#268]
v0.21.6 - 2023-04-03#
Bug fixes#
v0.21.5 - 2023-03-14#
Bug fixes#
Workchains: Accept but deprecate conditional predicates returning
None[#261]
v0.21.4 - 2023-03-09#
Bug fixes#
Workchains: Raise if
if_/while_predicate does not return boolean [#259]
Dependencies#
Dependencies: Update pre-commit requirement
isort==5.12.0[#260]
v0.21.3 - 2022-12-07#
Bug fixes#
PortNamespace: Fix bug in valid type checking of dynamic namespaces [#255]
v0.21.2 - 2022-11-29#
Bug fixes#
Process: Ensure that the raw inputs are not mutated [#251]
Dependencies#
v0.21.1 - 2022-11-21#
This is a backport of changes introduced in v0.22.0.
Features#
Process: Add theis_exceptedproperty [#240]
Bug fixes#
v0.21.0 - 2022-04-08#
Bug fixes#
Fix
UnboundLocalErrorinDefaultObjectLoader.load_object. [#225]
Dependencies#
Devops#
v0.20.0 - 2021-08-10#
π§ MAINTAIN: update requirement to
pyyaml~=5.4(#221) The versions ofpyyamlup to v5.4 contained severe security issues where the default loaders could be abused for arbitrary code execution. The defaultFullLoaderwas patched to no longer allow this behavior, but as a result, data sets that could be successfully deserialized with it, now will fail. This required using the unsafeLoaderin for the deserialization of the exception state of a process.
v0.19.0 - 2021-03-09#
βΌοΈ DEPRECATE:
Process.donemethod: This method is a duplicate ofProcess.has_terminated, and is not used anywhere in plumpy (or aiida-core).π FIX:
Task.cancelshould not set state asEXCEPTEDasyncio.CancelledErrorare generated when an async task is cancelled. In python 3.7 this exception class inherits fromException, whereas in python 3.8+ it inherits fromBaseException. This meant it python 3.7 it was being caught byexcept Exception, and setting the process state toEXCEPTED, whereas in python 3.8+ it was being re-raised to the caller. We now ensure in both versions it is re-raised (particularly because aiida-core currently relies on this behaviour).π IMPROVE: Process broadcast subscriber Filter out
state_changedbroadcasts, and allow these to pass-through without generating a (costly) asynchronous task. Note this also required an update in the minimal kiwipy version, to0.7.4
v0.18.6 - 2021-02-24#
π IMPROVE: Catch state change broadcast timeout
When using an RMQ communicator, the broadcast can timeout on heavy loads to RMQ (for example see aiidateam/aiida-core#4745). This broadcast is not critical to the running of the process, and so a timeout should not except it.
Also ensure the process PID is included in all log messages.
v0.18.5 - 2021-02-15#
Minor improvements and bug fixes:
π FIX: retrieve future exception on_killed The exception set on the future should be retrieved, otherwise it will be caught by the loopβs exception handler.
π FIX: Clean-up process event hooks: On Process close/cleanup event hooks are removed, in part to not persist cyclic dependencies of hooks <-> Process. Once a process is closed, it will also not raise an Exception if a hook tries to un-register itself (but has already been removed by the clean-up).
π IMPROVE: Add
Process.is_killingpropertyπ IMPROVE: remove RUNNING from allowed states of
resume: Since there is noresumemethod implemented for theRunningclass.π§ MAINTAIN: Remove frozendict dependency
v0.18.4 - 2021-01-21#
Minor update, to add py.typed file to distribution, in accordance with PEP-561 [#195]
v0.18.2 - 2021-01-21#
Changes#
v0.18.1 - 2020-12-18#
Bug fixes#
Trigger application of nest patch in
set_event_loop_policyto make it compatible with Jupyter notebooks [#189]
v0.18.0 - 2020-19-09#
Changes#
Drop support for Python 3.5 [#187]
Dependencies#
Dependencies: update requirement
kiwipy~=0.7.1[#184]
v0.17.1 - 2020-11-25#
Bug fixes#
Dependencies: only require
aiocontextvarsfor Python < 3.7 [#181]
v0.17.0 - 2020-11-13#
Changes#
Bug fixes#
Port: do not call validator if unspecified and port not required [#173]
v0.16.1 - 2020-09-04#
Changes#
Dependencies: relax the requirement on
aio-pikatoaio-pika~=6.6. [#171]
v0.16.0 - 2020-08-15#
Changes#
Drop
tornadoas a dependency and replace it fully byasyncio[#166]
v0.15.0 - 2020-06-16#
Changes#
Drop support for Python 2.7 [#151]
Bug fixes#
LoopCommunicator: fix incorrect call through inremove_broadcast_subscriber[#156]PortNamespace: do not add empty optional port namespaces to parsed inputs in thepre_processmethod [#143]PortNamespace: do not setdynamic=Falsewhenvalid_type=None[#146]PortNamespace: setdynamic=Trueifvalid_typein constructor [#145]
Developers#
Migrate CI from Travis to Github Actions [#152]
v0.14.5 - 2020-01-22#
Features#
Port: add context argument to validator method [#141]
Changes#
Remove unnecessary abstraction layer
ValueSpec[#141]
v0.14.4 - 2019-12-12#
Bug fixes#
ProcessSpec: do not set_specattribute if an error is raised inspeccall [#136]
v0.14.3 - 2019-10-25#
Features#
Allow lambdas for
InputPortdefault values[#133]
Bug fixes#
PortNamespace: move namespace validator after port validation [#129]
v0.14.2 - 2019-07-16#
Features#
PortNamespace: add the concept of a βlazyβ namespace [#121]
Bug fixes#
PortNamespace: fix the implementation ofincludeinabsorb[#120]