We are satisfied to announce the release of: taskflow 0.6.0: Taskflow structured state management library.
For more details, please see the git log history below and: http://launchpad.net/taskflow/+milestone/0.6.0 Please report issues through launchpad: http://bugs.launchpad.net/taskflow/ Changes in taskflow 0.5.0..0.6.0 -------------------------------- 4e514f4 2014-12-18 13:55:41 -0800 Move over to using oslo.utils [reflection, uuidutils] e5ae74d 2014-12-18 01:28:41 +0000 Updated from global requirements 6520b9c 2014-12-17 19:13:45 +0000 Add a basic map/reduce example to show how this can be done cafa3b2 2014-12-17 19:13:35 +0000 Add a parallel table mutation example 1b06183 2014-12-15 19:19:18 -0800 Add a 'can_be_registered' method that checks before notifying 97b4e18 2014-12-15 15:52:39 -0800 Base task executor should provide 'wait_for_any' e9ecdc7 2014-12-14 21:46:51 -0800 Replace autobind with a notifier module helper function aa8d55d 2014-12-15 03:38:52 +0000 Cleanup some doc warnings/bad/broken links 1f4dd72 2014-12-13 19:09:03 -0800 Use the notifier type in the task class/module directly cdfd8ec 2014-12-13 17:13:07 -0800 Use a tiny clamp helper to clamp the 'on_progress' value 624d966 2014-12-12 22:12:03 -0800 Retain the existence of a 'EngineBase' until 0.7 or later f5060ff 2014-12-12 22:05:03 -0800 Remove the base postfix from the internal task executor b4e4e21 2014-12-12 20:52:58 +0000 Remove usage of listener base postfix a440ec4 2014-12-12 12:39:57 -0800 Add a moved_inheritable_class deprecation helper 1c7d242 2014-12-11 13:15:19 -0800 Avoid holding the lock while scanning for existing jobs 79ff9e7 2014-12-10 23:25:08 -0800 Remove the base postfix for engine abstract base class 880f7d2 2014-12-10 23:21:31 -0800 Avoid popping while another entity is iterating a908124 2014-12-11 07:20:45 +0000 Updated from global requirements fda6fde 2014-12-11 04:10:16 +0000 Use explict 'attr_dict' when adding provider->consumer edge eaf4995 2014-12-10 20:05:44 -0800 Properly handle and skip empty intermediary flows f1457a0 2014-12-10 18:58:42 -0800 Ensure message gets processed correctly b275c51 2014-12-09 15:52:14 -0800 Just assign a empty collection instead of copy/clear f333e1b 2014-12-09 00:15:34 -0800 Remove rtype from task clone() doc 14431bc 2014-12-08 22:09:13 -0800 Add and use a new simple helper logging module a113368 2014-12-08 16:51:27 -0800 Have the sphinx copyright date be dynamic 2f78ecf 2014-12-08 14:27:53 -0800 Add appropriate links into README.rst 4eb0ca2 2014-12-08 01:21:15 +0000 Use condition variables using 'with' 50b866c 2014-12-07 18:52:54 +0000 Use an appropriate ``extract_traceback`` limit c4d3279 2014-12-07 09:42:17 -0800 Allow all deprecation helpers to take a stacklevel cd664bd 2014-12-07 00:25:01 -0800 Correctly identify stack level in ``_extract_engine`` 5f0b514 2014-12-06 15:03:58 -0800 Stop returning atoms from execute/revert methods dc4262e 2014-12-06 14:46:09 -0800 Have tasks be able to provide copy() methods e978eca 2014-12-06 22:30:14 +0000 Allow stopwatches to be restarted af62f4c 2014-12-06 22:30:10 +0000 Ensure that failures can be pickled e168f44 2014-12-06 14:29:24 -0800 Rework pieces of the task callback capability dc39351 2014-12-05 21:12:03 -0800 Just use 4 spaces for classifier indents 4707ac7 2014-12-05 00:13:15 -0800 Move atom action handlers to there own subfolder/submodule 2033d01 2014-12-05 03:30:41 +0000 Workflow documentation is now in infra-manual 2f03736 2014-12-05 01:53:47 +0000 Ensure frozen attribute is set in fsm clones/copies 8150553 2014-12-04 16:59:54 -0800 Fix split on "+" for connection strings that specify dialects b8e975e 2014-12-04 19:04:14 +0000 Update listeners to ensure they correctly handle all atoms cf45a70 2014-12-04 11:03:36 -0800 Allow for the notifier to provide a 'details_filter' c698842 2014-12-04 08:05:09 +0000 Be explicit about publish keyword arguments 6a6aa79 2014-12-03 16:15:05 -0800 Some package additions and adjustments to the env_builder.sh a692138 2014-12-02 16:02:24 -0800 Cache immutable visible scopes in the runtime component 14ecaa4 2014-12-02 12:47:03 -0800 Raise value errors instead of asserts 1de8bbd 2014-12-01 21:39:23 -0800 Add a claims listener that connects job claims to engines 1e8fabd 2014-12-01 19:26:20 -0800 Split the scheduler into sub-schedulers 35fcd90 2014-12-01 18:15:02 -0800 Use a module level constant to provide the DEFAULT_LISTEN_FOR 178f279 2014-12-02 01:57:37 +0000 Move the _pformat() method to be a classmethod 9675964 2014-11-28 15:10:31 -0800 Add link to issue 17911 e07fb21 2014-11-28 15:07:20 -0800 Avoid deepcopying exception values 95e94f7 2014-11-28 13:07:38 -0800 Include documentation of the utility modules 265181f 2014-11-27 20:07:21 -0800 Use a metaclass to dynamically add testcases to example runner cf85dd0 2014-11-25 09:57:16 -0800 Remove default setting of 'mysql_traditional_mode' bb8ea56 2014-11-24 18:13:56 -0800 Move scheduler and completer classes to there own modules 2832d6e 2014-11-24 10:06:02 -0800 Ensure that the zookeeper backend creates missing atoms 148723b 2014-11-23 09:54:48 -0800 Use the deprecation utility module instead of warnings 49d7a51 2014-11-21 19:22:32 -0800 Tweaks to setup.cfg 17fb4b4 2014-11-21 18:03:55 -0800 Add a jobboard high level architecture diagram 487cc51 2014-11-20 18:08:47 -0800 Mark 'task_notifier' as renamed to 'atom_notifier' 2f7e582 2014-11-20 23:56:04 +0000 Revert wrapt usage until further notice a77d192 2014-11-20 14:12:51 +0000 Updated from global requirements 2a7ca47 2014-11-19 13:04:38 -0800 Add a history retry object, makes retry histories easier to use 7d199e0 2014-11-19 11:37:35 -0800 Format failures via a static method c543dc2 2014-11-19 11:32:13 -0800 When creating daemon threads use the bundled threading_utils 613af61 2014-11-19 11:18:06 -0800 Ensure failure types contain only immutable items b24656c 2014-11-19 10:57:26 -0800 Mark 'task_notifier' as renamed to 'atom_notifier' f3e4bb0 2014-11-19 10:49:50 -0800 Use wrapt to provide the deprecated class proxy afe2a93 2014-11-18 11:37:36 +0000 Updated from global requirements e68e1f8 2014-11-16 15:07:35 +0000 Updated from global requirements 74ebb43 2014-11-05 08:36:17 +0000 Updated from global requirements c8b0f25 2014-10-30 11:35:24 -0700 Reduce the worker-engine joint testing time 543b6a0 2014-10-29 21:44:29 +0000 Link bug in requirements so people understand why pbr is listed 59f45e8 2014-10-27 12:22:10 +0000 Updated from global requirements 34b358a 2014-10-25 22:02:53 -0700 Use standard threading locks in the cache types edb9212 2014-10-25 10:26:16 -0700 Handle the case where '_exc_type_names' is empty 5671868 2014-10-24 09:31:00 -0400 Add pbr to installation requirements b3134c9 2014-10-22 19:17:49 +0000 Updated from global requirements 3c9871d 2014-10-21 15:37:44 -0700 Remove direct usage of the deprecated failure location 1f12ab3 2014-10-20 11:40:05 -0700 Fix the example 'default_provides' ac8eefd 2014-10-19 20:58:33 -0700 Use constants for retry automatically provided kwargs 58f27fc 2014-10-19 19:55:41 -0700 Remove direct usage of the deprecated notifier location 7fe6bf0 2014-10-18 20:37:02 -0700 Remove attrdict and just use existing types ca101d1 2014-10-18 20:26:00 -0700 Use the mock that finds a working implementation b014fc7 2014-10-18 20:21:48 -0700 Add a futures type that can unify our future functionality ac77b4d 2014-10-19 01:25:58 +0000 Bump the deprecation version number 7ca6313 2014-10-18 17:51:52 -0700 Use and verify event and latch wait() return using timeouts d433a53 2014-10-18 13:28:27 -0700 Deprecate `engine_conf` and prefer `engine` instead 3a8a78e 2014-10-18 13:24:12 -0700 Use constants for link metadata keys d638c8f 2014-10-18 12:58:05 -0700 Bump up the sqlalchemy version for py26 bf84288 2014-10-18 19:47:27 +0000 Hoist the notifier to its own module f2ea4f1 2014-10-18 12:47:02 -0700 Move failure to its own type specific module a15e07a 2014-10-17 00:45:36 +0000 Use constants for revert automatically provided kwargs 8e66177 2014-10-15 12:55:40 -0700 Improve some of the task docstrings bcae66b 2014-10-14 20:07:05 +0000 We can now use PyMySQL in py3.x tests 4533239 2014-10-11 15:57:19 +0000 Updated from global requirements c90e360 2014-10-10 06:24:39 +0000 Add the database schema to the sqlalchemy docs 52494e7 2014-10-09 13:20:51 -0700 Change messaging from handler connection timeouts -> operation timeouts b86b7e1 2014-10-08 15:36:03 -0700 Switch to a custom NotImplementedError derivative 94b4b60 2014-10-08 12:48:04 -0700 Allow the worker banner to be written to an arbitrary location 8d14318 2014-10-08 05:17:47 +0000 Update engine class names to better reflect there usage 95b30d6 2014-10-02 10:45:29 -0700 Refactor parts of the job lock/job condition zookeeper usage cf1e468 2014-09-28 18:39:27 -0700 Add a more dynamic/useful logging listener be254ea 2014-09-27 21:20:08 -0700 Use timeutils functions instead of misc.wallclock eedc335 2014-09-27 21:05:01 -0700 Expose only `ensure_atom` from storage dc688c1 2014-09-27 21:58:34 +0000 Increase robustness of WBE message and request processing 7640b09 2014-09-27 14:50:44 -0700 Bring in a newer optional eventlet 9537f52 2014-09-26 11:43:45 -0700 Document more function/class/method params 7fe2f51 2014-09-19 22:32:11 -0700 Remove no longer needed r/w lock interface base class 8bbc2fd 2014-09-18 13:52:56 -0700 Better handle the tree freeze method c5c2211 2014-09-18 13:50:44 -0700 Ensure state machine can be frozen 97e6bb1 2014-09-18 13:09:42 -0700 Link a few of the classes to implemented features/bugs in python 6bbf85b 2014-09-18 11:22:15 -0700 Add a timing listener that also prints the results c5aa2f9 2014-09-16 17:44:06 -0700 Remove useless __exit__ return 26793dc 2014-09-11 16:18:35 -0700 Add a state machine copy() method d98f23d 2014-09-08 20:55:59 +0000 Add a couple of scope shadowing test cases d6ef687 2014-09-08 20:55:45 +0000 Relax the graph flow symbol constraints 76641d8 2014-09-08 20:55:41 +0000 Relax the unordered flow symbol constraints 2339bac 2014-09-08 13:55:26 -0700 Relax the linear flow symbol constraints fa077c9 2014-09-08 13:00:25 -0700 Revamp the symbol lookup mechanism e68d72f 2014-09-08 19:14:51 +0000 Be smarter about required flow symbols 296e660 2014-08-21 15:14:35 -0700 Have the dispatch_job function return a future 8dc6e4f 2014-07-21 12:09:06 -0700 Add a sample script that can be used to build a test environment be4fac3 2014-06-26 17:19:19 -0700 Extract the state changes from the ensure storage method Diffstat (except docs and test files) ------------------------------------- CONTRIBUTING.rst | 4 +- README.rst | 5 +- openstack-common.conf | 1 - requirements-py2.txt | 7 +- requirements-py3.txt | 7 +- setup.cfg | 14 +- taskflow/atom.py | 26 +- taskflow/conductors/base.py | 26 +- taskflow/conductors/single_threaded.py | 26 +- taskflow/engines/action_engine/actions/__init__.py | 0 taskflow/engines/action_engine/actions/retry.py | 124 + taskflow/engines/action_engine/actions/task.py | 145 + taskflow/engines/action_engine/compiler.py | 456 +- taskflow/engines/action_engine/completer.py | 114 + taskflow/engines/action_engine/engine.py | 53 +- taskflow/engines/action_engine/executor.py | 84 +- taskflow/engines/action_engine/retry_action.py | 86 - taskflow/engines/action_engine/runner.py | 15 +- taskflow/engines/action_engine/runtime.py | 228 +- taskflow/engines/action_engine/scheduler.py | 114 + taskflow/engines/action_engine/scopes.py | 113 + taskflow/engines/action_engine/task_action.py | 116 - taskflow/engines/base.py | 49 +- taskflow/engines/helpers.py | 201 +- taskflow/engines/worker_based/cache.py | 4 +- taskflow/engines/worker_based/dispatcher.py | 6 +- taskflow/engines/worker_based/endpoint.py | 15 +- taskflow/engines/worker_based/engine.py | 30 +- taskflow/engines/worker_based/executor.py | 52 +- taskflow/engines/worker_based/protocol.py | 51 +- taskflow/engines/worker_based/proxy.py | 55 +- taskflow/engines/worker_based/server.py | 123 +- taskflow/engines/worker_based/worker.py | 17 +- taskflow/examples/calculate_in_parallel.py | 2 +- taskflow/examples/create_parallel_volume.py | 13 +- taskflow/examples/delayed_return.py | 6 +- taskflow/examples/fake_billing.py | 12 +- taskflow/examples/graph_flow.py | 4 +- .../examples/jobboard_produce_consume_colors.py | 7 +- taskflow/examples/parallel_table_multiply.py | 129 + taskflow/examples/persistence_example.py | 13 +- taskflow/examples/resume_vm_boot.py | 22 +- taskflow/examples/resume_volume_create.py | 6 +- taskflow/examples/run_by_iter.py | 13 +- taskflow/examples/run_by_iter_enumerate.py | 8 +- taskflow/examples/simple_linear_pass.py | 2 +- taskflow/examples/simple_map_reduce.py | 115 + taskflow/examples/timing_listener.py | 59 + taskflow/examples/wbe_mandelbrot.py | 5 +- taskflow/examples/wbe_simple_linear.py | 19 +- taskflow/examples/wrapped_exception.py | 20 +- taskflow/exceptions.py | 91 +- taskflow/flow.py | 48 +- taskflow/jobs/backends/__init__.py | 8 +- taskflow/jobs/backends/impl_zookeeper.py | 90 +- taskflow/jobs/job.py | 3 +- taskflow/jobs/jobboard.py | 4 +- taskflow/listeners/base.py | 199 +- taskflow/listeners/claims.py | 100 + taskflow/listeners/logging.py | 175 +- taskflow/listeners/printing.py | 16 +- taskflow/listeners/timing.py | 55 +- taskflow/logging.py | 92 + taskflow/openstack/__init__.py | 0 taskflow/openstack/common/__init__.py | 17 - taskflow/openstack/common/uuidutils.py | 37 - taskflow/patterns/graph_flow.py | 177 +- taskflow/patterns/linear_flow.py | 50 +- taskflow/patterns/unordered_flow.py | 61 +- taskflow/persistence/backends/__init__.py | 13 +- taskflow/persistence/backends/impl_dir.py | 2 +- taskflow/persistence/backends/impl_memory.py | 3 +- taskflow/persistence/backends/impl_sqlalchemy.py | 11 +- taskflow/persistence/backends/impl_zookeeper.py | 8 +- taskflow/persistence/backends/sqlalchemy/models.py | 2 +- taskflow/persistence/logbook.py | 21 +- taskflow/retry.py | 141 +- taskflow/storage.py | 343 +- taskflow/task.py | 205 +- taskflow/test.py | 78 + taskflow/types/cache.py | 25 +- taskflow/types/failure.py | 342 + taskflow/types/fsm.py | 42 +- taskflow/types/futures.py | 206 + taskflow/types/graph.py | 22 + taskflow/types/latch.py | 17 +- taskflow/types/notifier.py | 278 + taskflow/types/timing.py | 41 +- taskflow/types/tree.py | 24 +- taskflow/utils/async_utils.py | 82 +- taskflow/utils/deprecation.py | 257 + taskflow/utils/eventlet_utils.py | 192 - taskflow/utils/kazoo_utils.py | 10 +- taskflow/utils/lock_utils.py | 67 +- taskflow/utils/misc.py | 627 +- taskflow/utils/persistence_utils.py | 4 +- taskflow/utils/reflection.py | 251 - taskflow/utils/threading_utils.py | 20 + test-requirements.txt | 13 +- tools/env_builder.sh | 126 + tools/schema_generator.py | 83 + tox.ini | 8 +- 160 files changed, 7662 insertions(+), 12475 deletions(-) Requirements updates -------------------- diff --git a/requirements-py2.txt b/requirements-py2.txt index 6134877..e142007 100644 --- a/requirements-py2.txt +++ b/requirements-py2.txt @@ -4,0 +5,3 @@ +# See: https://bugs.launchpad.net/pbr/+bug/1384919 for why this is here... +pbr>=0.6,!=0.7,<1.0 + @@ -17 +20 @@ networkx>=1.8 -stevedore>=1.0.0 # Apache-2.0 +stevedore>=1.1.0 # Apache-2.0 @@ -26 +29 @@ jsonschema>=2.0.0,<3.0.0 -oslo.utils>=1.0.0 # Apache-2.0 +oslo.utils>=1.1.0 # Apache-2.0 diff --git a/requirements-py3.txt b/requirements-py3.txt index ea30582..d827a17 100644 --- a/requirements-py3.txt +++ b/requirements-py3.txt @@ -4,0 +5,3 @@ +# See: https://bugs.launchpad.net/pbr/+bug/1384919 for why this is here... +pbr>=0.6,!=0.7,<1.0 + @@ -14 +17 @@ networkx>=1.8 -stevedore>=1.0.0 # Apache-2.0 +stevedore>=1.1.0 # Apache-2.0 @@ -20 +23 @@ jsonschema>=2.0.0,<3.0.0 -oslo.utils>=1.0.0 # Apache-2.0 +oslo.utils>=1.1.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 19856bb..96ab944 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -6 +6 @@ hacking>=0.9.2,<0.10 -oslotest>=1.1.0 # Apache-2.0 +oslotest>=1.2.0 # Apache-2.0 @@ -8 +8 @@ mock>=1.0 -testtools>=0.9.34 +testtools>=0.9.36,!=1.2.0 @@ -22 +22,6 @@ kazoo>=1.3.1 -alembic>=0.6.4 +# +# 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). +alembic>=0.7.1 @@ -26 +31 @@ psycopg2 -sphinx>=1.1.2,!=1.2.0,<1.3 +sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3 __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev