[openstack-dev] TaskFlow 0.7.0 released

Joshua Harlow harlowja at outlook.com
Mon Feb 2 23:47:36 UTC 2015


Thanks for that!

Much appreciated :-)

Joe Gordon wrote:
> 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
> <mailto: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
>     <http://launchpad.net/taskflow/+milestone/0.7.0>
>
>     Please report issues through launchpad:
>
>     http://bugs.launchpad.net/__taskflow/
>     <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://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>     http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
>
>
> __________________________________________________________________________
> 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



More information about the OpenStack-dev mailing list