We are satisfied to announce the release of: taskflow 0.11.0: Taskflow structured state management library. This release is part of the liberty release series. With source available at: http://git.openstack.org/cgit/openstack/taskflow For more details, please see the git log history below and: http://launchpad.net/taskflow/+milestone/0.11.0 Please report issues through launchpad: http://bugs.launchpad.net/taskflow/ Changes in taskflow 0.10.1..0.11.0 ---------------------------------- 6e62842 Updated from global requirements 28eafa6 Switch badges from 'pypip.in' to 'shields.io' 3d4bbb9 Adding a revert_all option to retry controllers 4b28b32 Updated from global requirements 61a4f97 Remove example not tested deaf61c Make the default file encoding a class constant with a docstring 33e9ccc Use a lru cache to limit the size of the internal file cache 14f5d0a Updated from global requirements 24752c2 Use hash path lookup vs path finding f1bd24f Remove all 'lock_utils' now that fasteners provides equivalents 4ee5ffd Add a new `ls_r` method 9091a9c Updated from global requirements c3afeb5 Replace lock_utils lock(s) with fasteners package 1e6b991 Updated from global requirements ae6e48f Use shared '_check' function to check engine stages b8da7f7 Remove a couple more useless 'pass' keywords found 16a2c79 Add a test that checks for task result visibility 6b5b9dc Remove testing using persistence sqlalchemy backend with 'mysqldb' 2e0eac0 Remove customized pyX.Y tox requirements 553b6b3 Updated from global requirements c7e8c86 Allow same deps for requires and provides in task b9da5e1 Remove 'pass' usage not needed 712eed5 Only show state transitions to logging when in BLATHER mode e183fc9 Fix updated_at column of sqlalchemy tables 9c4520e Remove script already nuked from oslo-incubator 58f43d2 Ensure path_based abstract base class is included in docs ad5b556 Beef up docs on the logbook/flow detail/atom details models fb2b813 Remove custom py26/py27 tox venvs no longer used 6990fb1 Use newer versions of futures that adds exception tracebacks 5d4dfe0 Ensure empty paths raise a value error 4fc6b61 Remove listener stack and replace with exit stack 24a11aa Expose action engine no reraising states constants 5cfeeb6 Chain a few more exception raises that were previously missed d76bd26 Expose in memory backend split staticmethod 4e550ba Updated from global requirements 98cb841 Remove tox py33 environment no longer used 84c1ad6 Avoid creating temporary removal lists 115bf98 Avoid re-normalizing paths when following links e247e07 Add a profiling context manager that can be easily enabled 562884d Updated from global requirements 73b98de Avoid duplicating exception message 7c3fdcc Small refactoring of 'merge_uri' utility function 530328a Refactor/reduce shared 'ensure(task/retry)' code 22fd32f Just let the future executors handle the max workers Diffstat (except docs and test files) ------------------------------------- README.rst | 4 +- openstack-common.conf | 3 - requirements.txt | 17 +- taskflow/atom.py | 11 - taskflow/conductors/backends/impl_blocking.py | 11 +- taskflow/conductors/base.py | 6 +- taskflow/engines/action_engine/compiler.py | 5 +- taskflow/engines/action_engine/engine.py | 42 +- taskflow/engines/action_engine/executor.py | 9 +- taskflow/engines/action_engine/runner.py | 4 +- taskflow/engines/worker_based/protocol.py | 4 +- taskflow/engines/worker_based/worker.py | 13 +- taskflow/examples/dump_memory_backend.py | 2 +- taskflow/examples/job_board_no_test.py | 171 ------ .../examples/jobboard_produce_consume_colors.py | 9 + taskflow/jobs/backends/impl_zookeeper.py | 6 +- taskflow/jobs/base.py | 2 - taskflow/persistence/backends/impl_dir.py | 29 +- taskflow/persistence/backends/impl_memory.py | 106 +++- taskflow/persistence/backends/impl_zookeeper.py | 8 +- taskflow/persistence/backends/sqlalchemy/tables.py | 6 +- taskflow/persistence/base.py | 17 - taskflow/persistence/logbook.py | 473 +++++++++++---- taskflow/retry.py | 31 +- taskflow/storage.py | 177 +++--- .../unit/persistence/test_memory_persistence.py | 66 ++- taskflow/types/futures.py | 23 +- taskflow/utils/async_utils.py | 9 +- taskflow/utils/lock_utils.py | 517 ----------------- taskflow/utils/misc.py | 80 +-- test-requirements.txt | 16 +- tools/speed_test.py | 87 ++- tox.ini | 37 -- 46 files changed, 1380 insertions(+), 1878 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 8e0c5f3..f85b92d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6 +6 @@ -pbr>=0.6,!=0.7,<1.0 +pbr>=0.11,<2.0 @@ -18,0 +19,3 @@ enum34 +# For reader/writer + interprocess locks. +fasteners>=0.7 # Apache-2.0 + @@ -21,0 +25,3 @@ networkx>=1.8 +# For contextlib new additions/compatibility for <= python 3.3 +contextlib2>=0.4.0 # PSF License + @@ -23 +29 @@ networkx>=1.8 -stevedore>=1.3.0 # Apache-2.0 +stevedore>=1.5.0 # Apache-2.0 @@ -26 +32 @@ stevedore>=1.3.0 # Apache-2.0 -futures>=2.1.6 +futures>=3.0 @@ -29 +35 @@ futures>=2.1.6 -jsonschema>=2.0.0,<3.0.0 +jsonschema>=2.0.0,<3.0.0,!=2.5.0 @@ -34,0 +41,3 @@ oslo.serialization>=1.4.0 # Apache-2.0 +# For lru caches and such +cachetools>=1.0.0 # MIT License + diff --git a/test-requirements.txt b/test-requirements.txt index a6a7a19..f25f6d4 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -16 +16 @@ zake>=0.1.6 # Apache-2.0 -kazoo>=1.3.1 +kazoo>=1.3.1,!=2.1 @@ -19,9 +19 @@ kazoo>=1.3.1 -# -# NOTE(harlowja): SQLAlchemy isn't listed here currently but is -# listed in our tox.ini files so that we can test multiple varying SQLAlchemy -# versions to ensure a wider range of compatibility. -# -# Explict mysql drivers are also not listed here so that we can test against -# PyMySQL or MySQL-python depending on the python version the tests are being -# ran in (MySQL-python is currently preferred for 2.x environments, since -# it has been used in openstack for the longest). +SQLAlchemy>=0.9.7,<1.1.0 @@ -29,0 +22,4 @@ psycopg2 +PyMySQL>=0.6.2 # MIT License + +# Used for making sure we still work with eventlet. +eventlet>=0.17.3