[openstack-dev] [release] taskflow release 0.6.0 (liberty)

Doug Hellmann doug at doughellmann.com
Tue Apr 21 18:18:07 UTC 2015


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





More information about the OpenStack-dev mailing list