[openstack-dev] TaskFlow 0.7.0 released

Joe Gordon joe.gordon0 at gmail.com
Mon Feb 2 23:26:14 UTC 2015


This broke grenade on stable/juno, here is the fix.

https://review.openstack.org/#/c/152333/

On Mon, Feb 2, 2015 at 10:56 AM, Joshua Harlow <harlowja at outlook.com> wrote:

> The Oslo team is pleased to announce the release of:
>
> TaskFlow 0.7.0: taskflow structured state management library.
>
> For more details, please see the git log history below and:
>
> http://launchpad.net/taskflow/+milestone/0.7.0
>
> Please report issues through launchpad:
>
> http://bugs.launchpad.net/taskflow/
>
> Noteable changes
> ----------------
>
> * Using non-deprecated oslo.utils and oslo.serialization imports.
> * Added note(s) about publicly consumable types into docs.
> * Increase robustness of WBE producer/consumers by supporting and using
>   the kombu provided feature to retry/ensure on transient/recoverable
>   failures (such as timeouts).
> * Move the jobboard/job bases to a jobboard/base module and
>   move the persistence base to the parent directory (standardizes how
>   all pluggable types now have a similiar base module in a similar
> location,
>   making the layout of taskflow's codebase easier to understand/follow).
> * Add executor statistics, using taskflow.futures executors now provides a
>   useful feature to know about the following when using these executors.
>   --------------------------
>   | Statistic | What it is |
>   ------------------------------------------------------------
> -------------
>   | failures  | How many submissions ended up raising exceptions          |
>   | executed  | How many submissions were executed (failed or not)        |
>   | runtime   | Total runtime of all submissions executed (failed or not) |
>   | cancelled | How many submissions were cancelled before executing      |
>   ------------------------------------------------------------
> -------------
> * The taskflow logger module does not provide a logging adapter [bug]
> * Use monotonic time when/if available for stopwatches (py3.3+ natively
>   supports this) and other time.time usage (where the usage of time.time
> only
>   cares about the duration between two points in time).
> * Make all/most usage of type errors follow a similar pattern (exception
>   cleanup).
>
> Changes in /homes/harlowja/dev/os/taskflow 0.6.1..0.7.0
> -------------------------------------------------------
>
> NOTE: Skipping requirement commits...
>
> 19f9674 Abstract out the worker finding from the WBE engine
> 99b92ae Add and use a nicer kombu message formatter
> df6fb03 Remove duplicated 'do' in types documentation
> 43d70eb Use the class defined constant instead of raw strings
> 344b3f6 Use kombu socket.timeout alias instead of socket.timeout
> d5128cf Stopwatch usage cleanup/tweak
> 2e43b67 Add note about publicly consumable types
> e9226ca Add docstring to wbe proxy to denote not for public use
> 80888c6 Use monotonic time when/if available
> 7fe2945 Link WBE docs together better (especially around arguments)
> f3a1dcb Emit a warning when no routing keys provided on publish()
> 802bce9 Center SVG state diagrams
> 97797ab Use importutils.try_import for optional eventlet imports
> 84d44fa Shrink the WBE request transition SVG image size
> ca82e20 Add a thread bundle helper utility + tests
> e417914 Make all/most usage of type errors follow a similar pattern
> 2f04395 Leave use-cases out of WBE developer documentation
> e3e2950 Allow just specifying 'workers' for WBE entrypoint
> 66fc2df Add comments to runner state machine reaction functions
> 35745c9 Fix coverage environment
> fc9cb88 Use explicit WBE worker object arguments (instead of kwargs)
> 0672467 WBE documentation tweaks/adjustments
> 55ad11f Add a WBE request state diagram + explanation
> 45ef595 Tidy up the WBE cache (now WBE types) module
> 1469552 Fix leftover/remaining 'oslo.utils' usage
> 93d73b8 Show the failure discarded (and the future intention)
> 5773fb0 Use a class provided logger before falling back to module
> addc286 Use explicit WBE object arguments (instead of kwargs)
> 342c59e Fix persistence doc inheritance hierarchy
> 072210a The gathered runtime is for failures/not failures
> 410efa7 add clarification re parallel engine
> cb27080 Increase robustness of WBE producer/consumers
> bb38457 Move implementation(s) to there own sections
> f14ee9e Move the jobboard/job bases to a jobboard/base module
> ac5345e Have the serial task executor shutdown/restart its executor
> 426484f Mirror the task executor methods in the retry action
> d92c226 Add back a 'eventlet_utils' helper utility module
> 1ed0f22 Use constants for runner state machine event names
> bfc1136 Remove 'SaveOrderTask' and test state in class variables
> 22eef96 Provide the stopwatch elapsed method a maximum
> 3968508 Fix unused and conflicting variables
> 2280f9a Switch to using 'oslo_serialization' vs 'oslo.serialization'
> d748db9 Switch to using 'oslo_utils' vs 'oslo.utils'
> 9c15eff Add executor statistics
> bf2f205 Use oslo.utils reflection for class name
> 9fe99ba Add split time capturing to the stop watch
> 42a665d Use platform neutral line separator(s)
> eb536da Create and use a multiprocessing sync manager subclass
> 4c756ef Use a single sender
> 778e210 Include the 'old_state' in all currently provided listeners
> c07a96b Update the README.rst with accurate requirements
> 2f7d86a Include docstrings for parallel engine types/strings supported
> 0d602a8 The taskflow logger module does not provide a logging adapter
> 96e6d97 Send in the prior atom state on notification of a state change
> a588e48 Pass a string as executor in the example instead of an executor
> a18a939 Fix for job consumption example using wrong object
> 1d84fdd Add edge labels for engine states
> d0edb62 Move the persistence base to the parent directory
> 84b387f Rework the in-memory backend
>
> Diffstat (except docs and test files)
> -------------------------------------
>
> README.rst                                         |   29 +-
> requirements-py2.txt                               |    4 +-
> requirements-py3.txt                               |    4 +-
> setup.cfg                                          |    1 +
> taskflow/atom.py                                   |    5 +-
> taskflow/engines/action_engine/actions/base.py     |   42 +
> taskflow/engines/action_engine/actions/retry.py    |   80 +-
> taskflow/engines/action_engine/actions/task.py     |   43 +-
> taskflow/engines/action_engine/compiler.py         |    2 +-
> taskflow/engines/action_engine/engine.py           |   45 +-
> taskflow/engines/action_engine/executor.py         |   60 +-
> taskflow/engines/action_engine/runner.py           |  143 ++-
> taskflow/engines/action_engine/runtime.py          |    5 +-
> taskflow/engines/action_engine/scheduler.py        |    3 +-
> taskflow/engines/helpers.py                        |    4 +-
> taskflow/engines/worker_based/cache.py             |   48 -
> taskflow/engines/worker_based/dispatcher.py        |   57 +-
> taskflow/engines/worker_based/endpoint.py          |    2 +-
> taskflow/engines/worker_based/engine.py            |    9 +-
> taskflow/engines/worker_based/executor.py          |  170 +--
> taskflow/engines/worker_based/protocol.py          |   48 +-
> taskflow/engines/worker_based/proxy.py             |  156 ++-
> taskflow/engines/worker_based/server.py            |   51 +-
> taskflow/engines/worker_based/types.py             |  234 +++++
> taskflow/engines/worker_based/worker.py            |   39 +-
> taskflow/examples/alphabet_soup.py                 |   28 +-
> taskflow/examples/build_a_car.py                   |   17 +-
> taskflow/examples/create_parallel_volume.py        |    2 +-
> taskflow/examples/echo_listener.py                 |   56 +
> taskflow/examples/fake_billing.py                  |    8 +-
> taskflow/examples/hello_world.py                   |    9 +-
> taskflow/examples/parallel_table_multiply.py       |    4 +-
> taskflow/examples/resume_many_flows.py             |    2 +-
> taskflow/examples/resume_vm_boot.py                |    8 +-
> taskflow/examples/simple_linear_listening.py       |    7 +-
> taskflow/examples/wbe_event_sender.py              |    4 +-
> taskflow/examples/wbe_mandelbrot.py                |    2 +-
> taskflow/exceptions.py                             |   10 +-
> taskflow/flow.py                                   |    2 +-
> taskflow/jobs/backends/impl_zookeeper.py           |   64 +-
> taskflow/jobs/base.py                              |  297 ++++++
> taskflow/jobs/job.py                               |  111 --
> taskflow/jobs/jobboard.py                          |  206 ----
> taskflow/listeners/base.py                         |   21 +-
> taskflow/listeners/claims.py                       |    4 +-
> taskflow/listeners/logging.py                      |   60 +-
> taskflow/persistence/backends/base.py              |  126 ---
> taskflow/persistence/backends/impl_dir.py          |   12 +-
> taskflow/persistence/backends/impl_memory.py       |  223 ++--
> taskflow/persistence/backends/impl_sqlalchemy.py   |   16 +-
> taskflow/persistence/backends/impl_zookeeper.py    |   14 +-
> taskflow/persistence/backends/sqlalchemy/models.py |    6 +-
> taskflow/persistence/base.py                       |  126 +++
> taskflow/persistence/logbook.py                    |   66 +-
> taskflow/storage.py                                |    8 +-
> taskflow/task.py                                   |    2 +-
> taskflow/types/cache.py                            |   17 +-
> taskflow/types/failure.py                          |   15 +-
> taskflow/types/fsm.py                              |    2 +-
> taskflow/types/futures.py                          |  213 +++-
> taskflow/types/graph.py                            |    3 +-
> taskflow/types/latch.py                            |   15 +-
> taskflow/types/notifier.py                         |    2 +-
> taskflow/types/periodic.py                         |  179 ++++
> taskflow/types/table.py                            |   12 +-
> taskflow/types/timing.py                           |  187 +++-
> taskflow/types/tree.py                             |    4 +-
> taskflow/utils/async_utils.py                      |   11 +-
> taskflow/utils/deprecation.py                      |    2 +-
> taskflow/utils/eventlet_utils.py                   |   34 +
> taskflow/utils/kazoo_utils.py                      |    5 +-
> taskflow/utils/kombu_utils.py                      |   73 ++
> taskflow/utils/misc.py                             |   83 +-
> taskflow/utils/persistence_utils.py                |   11 +-
> taskflow/utils/threading_utils.py                  |  104 ++
> test-requirements.txt                              |    2 +-
> tools/generate_states.sh                           |    4 +
> tools/state_graph.py                               |   43 +-
> tox.ini                                            |    1 +
> 122 files changed, 4704 insertions(+), 2295 deletions(-)
>
> Requirements updates
> --------------------
>
> diff --git a/requirements-py2.txt b/requirements-py2.txt
> index e142007..083caec 100644
> --- a/requirements-py2.txt
> +++ b/requirements-py2.txt
> @@ -29,2 +29,2 @@ jsonschema>=2.0.0,<3.0.0
> -oslo.utils>=1.1.0                       # Apache-2.0
> -oslo.serialization>=1.0.0               # Apache-2.0
> +oslo.utils>=1.2.0                       # Apache-2.0
> +oslo.serialization>=1.2.0               # Apache-2.0
> diff --git a/requirements-py3.txt b/requirements-py3.txt
> index d827a17..b04fc0a 100644
> --- a/requirements-py3.txt
> +++ b/requirements-py3.txt
> @@ -23,2 +23,2 @@ jsonschema>=2.0.0,<3.0.0
> -oslo.utils>=1.1.0                       # Apache-2.0
> -oslo.serialization>=1.0.0               # Apache-2.0
> +oslo.utils>=1.2.0                       # Apache-2.0
> +oslo.serialization>=1.2.0               # Apache-2.0
> diff --git a/test-requirements.txt b/test-requirements.txt
> index 96ab944..293ec5d 100644
> --- a/test-requirements.txt
> +++ b/test-requirements.txt
> @@ -27 +27 @@ kazoo>=1.3.1
> -alembic>=0.7.1
> +alembic>=0.7.2
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150202/13b1a1e2/attachment.html>


More information about the OpenStack-dev mailing list