diff -pruN 5.1.0-1/.gitignore 5.1.0-0ubuntu1/.gitignore
--- 5.1.0-1/.gitignore	2022-12-05 17:21:48.000000000 +0000
+++ 5.1.0-0ubuntu1/.gitignore	1970-01-01 00:00:00.000000000 +0000
@@ -1,67 +0,0 @@
-*.py[cod]
-
-# C extensions
-*.so
-
-# Packages
-*.egg
-*.eggs
-*.egg-info
-dist
-build
-eggs
-parts
-bin
-var
-sdist
-develop-eggs
-.installed.cfg
-lib
-lib64
-
-# Installer logs
-pip-log.txt
-
-# Unit test / coverage reports
-.coverage*
-.diagram-tools/*
-.tox
-nosetests.xml
-.venv
-cover
-.stestr/
-htmlcov
-
-# Translations
-*.mo
-
-# Mr Developer
-.mr.developer.cfg
-.project
-.pydevproject
-.settings
-
-# DS_STORE
-.DS_Store
-
-# Sqlite databases
-*.sqlite
-
-# Modified Files
-*.swp
-
-# PBR
-build
-AUTHORS
-ChangeLog
-
-# doc
-doc/build/
-
-.idea
-env
-
-# files created by releasenotes build
-RELEASENOTES.rst
-releasenotes/notes/reno.cache
-releasenotes/build
diff -pruN 5.1.0-1/.gitreview 5.1.0-0ubuntu1/.gitreview
--- 5.1.0-1/.gitreview	2022-12-05 17:21:48.000000000 +0000
+++ 5.1.0-0ubuntu1/.gitreview	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-[gerrit]
-host=review.opendev.org
-port=29418
-project=openstack/taskflow.git
diff -pruN 5.1.0-1/AUTHORS 5.1.0-0ubuntu1/AUTHORS
--- 5.1.0-1/AUTHORS	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/AUTHORS	2023-01-05 10:10:07.000000000 +0000
@@ -0,0 +1,115 @@
+Adam Harwell <flux.adam@gmail.com>
+Alexander Gorodnev <agorodnev@griddynamics.com>
+Anastasia Karpinska <akarpinska at griddynamics.com>
+Anastasia Karpinska <akarpinska@griddynamics.com>
+Andreas Jaeger <aj@suse.com>
+Angus Salkeld <asalkeld@redhat.com>
+Ann Kamyshnikova <akamyshnikova@mirantis.com>
+Ann Taraday <akamyshnikova@mirantis.com>
+Atsushi SAKAI <sakaia@jp.fujitsu.com>
+Balaji Narayanan <lists@balajin.net>
+Ben Nemec <bnemec@redhat.com>
+Brian Jarrett <celttechie@gmail.com>
+ChangBo Guo(gcb) <eric.guo@easystack.cn>
+Changbin Liu <changbl@research.att.com>
+Christian Berendt <berendt@b1-systems.de>
+Chuck Short <chuck.short@canonical.com>
+Corey Bryant <corey.bryant@canonical.com>
+Cyril Roelandt <cyril.roelandt@enovance.com>
+Dan Krause <dan.krause@rackspace.com>
+Daniel Bengtsson <dbengt@redhat.com>
+Davanum Srinivas <davanum@gmail.com>
+Dirk Mueller <dirk@dmllr.de>
+Doug Hellmann <doug.hellmann@dreamhost.com>
+Doug Hellmann <doug@doughellmann.com>
+Elod Illes <elod.illes@est.tech>
+Eric Harney <eharney@redhat.com>
+Flavio Percoco <flaper87@gmail.com>
+Fredrik Bergroth <fbergroth@gmail.com>
+Gevorg Davoian <gdavoian@mirantis.com>
+Ghanshyam Mann <gmann@ghanshyammann.com>
+Greg Hill <greg.hill@rackspace.com>
+Gregory Thiemonge <gthiemon@redhat.com>
+Ha Manh Dong <donghm@vn.fujitsu.com>
+Hervé Beraud <hberaud@redhat.com>
+Ihar Hrachyshka <ihrachys@redhat.com>
+Ivan A. Melnikov <imelnikov@griddynamics.com>
+Ivan A. Melnikov <iv@altlinux.org>
+Ivan Kolodyazhny <e0ne@e0ne.info>
+Ivan Melnikov <iv@altlinux.org>
+James Page <james.page@ubuntu.com>
+Jay S. Bryant <jsbryant@us.ibm.com>
+Jeremy Stanley <fungi@yuggoth.org>
+Jessica Lucci <jessica.lucci@rackspace.com>
+Ji-Wei <ji.wei3@zte.com.cn>
+Joe Gordon <joe.gordon0@gmail.com>
+Joshua Harlow <harlowja@gmail.com>
+Joshua Harlow <harlowja@yahoo-inc.com>
+Joshua Harlow <jxharlow@godaddy.com>
+Kevin Chen <kevin.chen@rackspace.com>
+Luong Anh Tuan <tuanla@vn.fujitsu.com>
+Manish Godara <manishg@yahoo-inc.com>
+Matthew Thode <mthode@mthode.org>
+Michael Johnson <johnsomor@gmail.com>
+Michal Arbet <michal.arbet@ultimum.io>
+Min Pae <sputnik13@gmail.com>
+Monty Taylor <mordred@inaugust.com>
+Olga Kopylova <olkonami@gmail.com>
+Ondřej Nový <ondrej.novy@firma.seznam.cz>
+OpenStack Release Bot <infra-root@openstack.org>
+Pablo Iranzo Gómez <Pablo.Iranzo@gmail.com>
+Pavlo Shchelokovskyy <shchelokovskyy@gmail.com>
+Rafael Rivero <rafael@cloudscaling.com>
+Rick van de Loo <rickvandeloo@gmail.com>
+Sahid Orentino Ferdjaoui <sahid.ferdjaoui@canonical.com>
+Sascha Peilicke <speilicke@suse.com>
+Sean McGinnis <sean.mcginnis@gmail.com>
+Sriram Madapusi Vasudevan <sriram@klusterkloud.com>
+Stanislav Kudriashev <skudriashev@griddynamics.com>
+Stanislav Kudriashev <stas.kudriashev@gmail.com>
+Stephen Finucane <stephenfin@redhat.com>
+Suneel Bomminayuni <suneelb@yahoo-inc.com>
+Takashi Kajinami <tkajinam@redhat.com>
+Theodoros Tsioutsias <theodoros.tsioutsias@cern.ch>
+Thomas Bechtold <tbechtold@suse.com>
+Thomas Bechtold <thomasbechtold@jpberlin.de>
+Timofey Durakov <tdurakov@mirantis.com>
+Tony Breeds <tony@bakeyournoodle.com>
+Victor Rodionov <vito.ordaz@gmail.com>
+Vilobh Meshram <vilobhmm@yahoo-inc.com>
+Vu Cong Tuan <tuanvc@vn.fujitsu.com>
+XiaojueGuan <guanalbertjone@gmail.com>
+YAMAMOTO Takashi <yamamoto@valinux.co.jp>
+Zhao Lei <zhaolei@cn.fujitsu.com>
+Zhihai Song <zhihai.song@easystack.cn>
+baiwenteng <baiwenteng@inspur.com>
+chenghuiyu <yuchenghui@unionpay.com>
+gecong1973 <ge.cong@zte.com.cn>
+gengchc2 <geng.changcai2@zte.com.cn>
+haobing1 <hao.bing1@zte.com.cn>
+howardlee <lihongweibj@inspur.com>
+ji-xuepeng <ji.xuepeng@zte.com.cn>
+jiansong <jiansong19941206@gmail.com>
+leizhang <lei.a.zhang@intel.com>
+lin-hua-cheng <os.lcheng@gmail.com>
+liuqing <jing.liuqing@99cloud.net>
+liuwei <liuw147@chinaunicom.cn>
+luke.li <lilu7189@fiberhome.com>
+maaoyu <maaoyu@inspur.com>
+melissaml <ma.lei@99cloud.net>
+niuke <niuke19970315@163.com>
+qinchunhua <qin.chunhua@zte.com.cn>
+rahulram <rahurama@cisco.com>
+skudriashev <skudriashev@griddynamics.com>
+sunjia <sunjia@inspur.com>
+ting.wang <ting.wang@easystack.cn>
+tonytan4ever <tonytan198211@gmail.com>
+venkatamahesh <venkatamaheshkotha@gmail.com>
+wangqi <wang.qi@99cloud.net>
+weiweigu <gu.weiwei@zte.com.cn>
+wu.shiming <wushiming@yovole.com>
+xhzhf <guoyongxhzhf@163.com>
+xuanyandong <xuanyandong@inspur.com>
+yangxurong <yangxurong@huawei.com>
+zhang.lei <zhang.lei@99cloud.net>
+zhangzs <zhangzhaoshan@inspur.com>
diff -pruN 5.1.0-1/ChangeLog 5.1.0-0ubuntu1/ChangeLog
--- 5.1.0-1/ChangeLog	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/ChangeLog	2023-01-05 10:10:07.000000000 +0000
@@ -0,0 +1,2040 @@
+CHANGES
+=======
+
+5.1.0
+-----
+
+* Fix test\_while\_is\_not with python 3.11
+* remove unicode prefix from code
+* Adapt to new jsonschema versions
+
+5.0.0
+-----
+
+* Quote string representations
+* Fix formattiing of release list
+* Remove six
+* Drop python3.6/3.7 support in testing runtime
+
+4.7.0
+-----
+
+* Update CI to use unversioned jobs template
+* Fix atomdetails failure column size
+* Fix unit tests
+
+4.6.4
+-----
+
+* Handle invalid redis entries in RedisJobBoard
+* Fix minor typo in ActionEngine exception message
+* Use LOG.warning instead of deprecated LOG.warn
+
+4.6.3
+-----
+
+
+4.6.2
+-----
+
+* Replace deprecated import of ABCs from collections
+* Use custom JSONType columns
+
+4.6.1
+-----
+
+* Updating for OFTC IRC network
+* Fix flowdetails meta size
+* Use unittest.mock instead of mock
+* setup.cfg: Replace dashes with underscores
+* Move flake8 as a pre-commit local target
+* Remove lower-constraints remnants
+
+4.6.0
+-----
+
+* Fix deprecated Alembic function args
+* Dropping lower constraints testing
+* Use TOX\_CONSTRAINTS\_FILE
+* Use py3 as the default runtime for tox
+* Add Python3 wallaby unit tests
+* Update master for stable/victoria
+* ignore reno generated artifacts
+* Adding pre-commit
+
+4.5.0
+-----
+
+* [goal] Migrate testing to ubuntu focal
+
+4.4.0
+-----
+
+* Avoid endless loop on StorageFailure
+* Add sentinel redis support
+* Switch from unittest2 compat methods to Python 3.x methods
+
+4.3.1
+-----
+
+* Make test-setup.sh compatible with mysql8
+
+4.3.0
+-----
+
+* Stop to use the \_\_future\_\_ module
+
+4.2.0
+-----
+
+* Switch to newer openstackdocstheme and reno versions
+* Cap jsonschema 3.2.0 as the minimal version
+* Import modules, not classes
+* Bump default tox env from py37 to py38
+* Add py38 package metadata
+* Add release notes links to doc index
+* Drop use of deprecated collections classes
+* Add Python3 victoria unit tests
+* Update master for stable/ussuri
+
+4.1.0
+-----
+
+* Zookeeper backend SSL support
+
+4.0.0
+-----
+
+* [ussuri][goal] Drop python 2.7 support and testing
+
+3.8.0
+-----
+
+* Switch to Ussuri jobs
+* Update TaskFlow for networkx 2.x
+* Update master for stable/train
+* Fix python3.8 hmac compatibility
+
+3.7.1
+-----
+
+* Use mysql LONGTEXT for atomdetails results
+* Add Python 3 Train unit tests
+* Add local bindep.txt
+* Remove unused tools/tox\_install.sh
+
+3.7.0
+-----
+
+* update git.openstack.org to opendev
+* Dropping the py35 testing
+* Remove debtcollector requirement
+* Update Sphinx requirement
+
+3.6.0
+-----
+
+* Remove unsused tools/tox\_install.sh
+* Handle collections.abc deprecations
+* Uncap jsonschema
+* OpenDev Migration Patch
+* Update master for stable/stein
+* add python 3.7 unit test job
+
+3.4.0
+-----
+
+* Move test requirements out of runtime requirements
+* Change openstack-dev to openstack-discuss
+
+3.3.1
+-----
+
+* Update doc/conf.py to avoid warnings with sphinx 1.8
+* Use templates for cover and lower-constraints
+* Remove the duplicated word
+* Fix a symbol error
+* Create KazooClient with taskflow logger
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* add proper pydot3 dependency
+* import zuul job settings from project-config
+* Switch to use stestr for unit test
+* Add pydot test dependency
+* Remove PyPI downloads
+* Update reno for stable/rocky
+* Update various links in docs
+
+3.2.0
+-----
+
+* Remove unused link target
+* Fix code to support networkx > 1.0
+* add release notes to README.rst
+* replace http with https
+* Update links in README
+* fix tox python3 overrides
+* Drop py34 target in tox.ini
+* Uncap networkx
+* give pep8 and docs environments all of the dependencies they need
+* Trivial: update pypi url to new url
+* Fix doc build
+* Trivial: Update pypi url to new url
+* stop using tox\_install.sh
+* only run doc8 as part of pep8 test job
+* standardize indentation in tox.ini
+* set default python to python3
+* don't let tox\_install.sh error if there is nothing to do
+* Updated from global requirements
+* add lower-constraints job
+* Updated from global requirements
+* Fix invalid json unit test
+* Update reno for stable/queens
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+
+3.1.0
+-----
+
+* Updated from global requirements
+* Add doc8 to pep8 environment
+* Use doc/requirements.txt
+
+3.0.1
+-----
+
+
+3.0.0
+-----
+
+* Remove setting of version/release from releasenotes
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Remove class StopWatch from timing
+
+2.17.0
+------
+
+
+2.16.0
+------
+
+* Updated from global requirements
+* Updated from global requirements
+* Update "indentify" to "identify" in comments
+
+2.15.0
+------
+
+* Updated from global requirements
+* Remove method blather in log adapter
+* Remove kwarg timeout in executor conductor
+* Updated from global requirements
+* Avoid log warning when closing is underway (on purpose)
+* Update reno for stable/pike
+* Updated from global requirements
+
+2.14.0
+------
+
+* Updated from global requirements
+* Update URLs in documents according to document migration
+* Updated from global requirements
+* Fix process based executor task proxying-back events
+* turn on warning-is-error in doc build
+* switch from oslosphinx to openstackdocstheme
+* rearrange existing documentation into the new standard layout
+* Updated from global requirements
+
+2.13.0
+------
+
+* Updated from global requirements
+* Fix html\_last\_updated\_fmt for Python3
+* Replace assertRaisesRegexp with assertRaisesRegex
+
+2.12.0
+------
+
+* Updated from global requirements
+* Updated from global requirements
+* do not allow redis job reclaim by same owner
+
+2.11.0
+------
+
+* Fix py35 test failure
+* Stop using oslotest.mockpatch
+* Updated from global requirements
+* python3.0 has deprecated LOG.warn
+
+2.10.0
+------
+
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Prepare for using standard python tests
+* Use https instead of http for git.openstack.org
+* Updated from global requirements
+* Update reno for stable/ocata
+* Protect storage better against external concurrent access
+
+2.9.0
+-----
+
+* Remove dep on monotonic
+* Rename engine analyzer to be named selector
+* Update author and author-email
+* Updated from global requirements
+* Updated from global requirements
+* Add Constraints support
+* Show team and repo badges on README
+
+2.8.0
+-----
+
+* Replaces uuid.uuid4 with uuidutils.generate\_uuid()
+* Updated from global requirements
+* Remove vim header from source files
+* Fix release notes gate job failure
+* Updated from global requirements
+* Use assertIs(Not)None to check for None
+* Fix typo in tox.ini
+* Fix broken link
+* Replace retrying with tenacity
+* Updated from global requirements
+* Add reno for release notes management
+* Updated from global requirements
+
+2.7.0
+-----
+
+* Changed the home-page link
+* Using assertIsNone() instead of assertIs(None, ..)
+* Updated from global requirements
+* Fix a typo in documentation
+* Fix typo: remove redundant 'that'
+* Updated from global requirements
+* Fix a typo in logging.py
+* Use method ensure\_tree from oslo.utils
+* Make failure formatter configurable for DynamicLoggingListener
+* Updated from global requirements
+* Some classes not define \_\_ne\_\_() built-in function
+
+2.6.0
+-----
+
+
+2.5.0
+-----
+
+* Updated from global requirements
+* Add logging around metadata, ignore tallying + history
+
+2.4.0
+-----
+
+* Updated from global requirements
+* Start to add a location for contributed useful tasks/flows/more
+* Change dependency to use flavors
+* Updated from global requirements
+* Remove white space between print and ()
+* Updated from global requirements
+* Add Python 3.5 classifier and venv
+* Replace assertEqual(None, \*) with assertIsNone in tests
+
+2.3.0
+-----
+
+* Updated from global requirements
+* remove unused LOG
+* Fixes: typo error in comments
+* Updated from global requirements
+* Fix some misspellings in the function name and descriptions
+* Updated from global requirements
+
+2.2.0
+-----
+
+* Don't use deprecated method timeutils.isotime
+* Add tests to verify kwargs behavior on revert validation
+* Make tests less dependent on transient state
+
+2.1.0
+-----
+
+* Updated from global requirements
+* Ensure the fetching jobs does not fetch anything when in bad state
+* Updated from global requirements
+* Use the full 'get\_execute\_failures' vs the shortname
+* Split revert/execute missing args messages
+* Updated from global requirements
+* Instead of a multiprocessing queue use sockets via asyncore
+* Add a simple sanity test for pydot outputting
+
+2.0.0
+-----
+
+* Updated from global requirements
+* Fix documentation related to missing BaseTask class
+* Remove deprecated things for 2.0 release
+* Always used the library packaged mock
+
+1.32.0
+------
+
+* Attempt to cancel active futures when suspending is underway
+* Allow for specifying green threaded to parallel engine
+* Make conductor.stop stop the running engine gracefully
+
+1.31.0
+------
+
+* Updated from global requirements
+* Don't set html\_last\_updated\_fmt without git
+* Updated from global requirements
+* Add the ability to skip resolving from activating
+* Fix export\_to\_dot for networkx package changes
+* Ensure upgrade for sqlalchemy is protected by a lock
+* Add periodic jobboard refreshing (incase of sync issues)
+* Fallback if git is absent
+* Allow for revert to have a different argument list from execute
+
+1.30.0
+------
+
+* Updated from global requirements
+* Use a automaton machine for WBE request state machine
+* Sqlalchemy-utils double entry (already in test-requirements.txt)
+
+1.29.0
+------
+
+* Updated from global requirements
+* Refactor Atom/BaseTask/Task/Retry class hierarchy
+* Add missing direct dependency for sqlalchemy-utils
+
+1.28.0
+------
+
+* Add WBE worker expiry
+* Some WBE protocol/executor cleanups
+* Remove need for separate notify thread
+* Updated from global requirements
+* Don't bother scanning for workers if no new messages arrived
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Allow cachedproperty to avoid locking
+* Spice up WBE banner and add simple worker \_\_main\_\_ entrypoint
+
+1.27.0
+------
+
+* Updated from global requirements
+* Fix for WBE sporadic timeout of tasks
+* Add some basic/initial engine statistics
+* Handle cases where exc\_args can't be serialized as JSON in the WBE
+* Enable OS\_LOG\_CAPTURE so that logs can be seen (on error)
+* Retrieve the store from flowdetails as well, if it exists
+* Disable oslotest LOG capturing
+* Updated from global requirements
+* Updated from global requirements
+* Use helper function for post-atom-completion work
+* Ensure that the engine finishes up even under sent-in failures
+* 99 bottles example trace logging was not being output
+* Add useful/helpful comment to retry scheduler
+* Updated from global requirements
+* Updated from global requirements
+* Replace clear zookeeper python with clear zookeeper bash
+* Remove stray LOG.blather
+
+1.26.0
+------
+
+* Some additional engine logging
+* Replace deprecated library function os.popen() with subprocess
+* Add comment as to why we continue when tallying edge decider nay voters
+* Add rundimentary and/or non-optimized job priorities
+* Allow for alterations in decider 'area of influence'
+* Fix wrong usage of iter\_utils.unique\_seen
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Use the retrying lib. to do basic sqlalchemy engine validation
+* For taskflow patterns don't show taskflow.patterns prefix
+* Rename '\_emit' -> '\_try\_emit' since it is best-effort (not ensured)
+* Cache atom name -> actions and provide accessor function
+* Quote/standardize atom name output
+* Use shared util helper for driver name + config extraction
+* Fix currently broken and inactive mysql tests
+* Trap and expose exception any 'args'
+* Revert "Remove failure version number"
+* Move all internal blather usage/calls to trace usage/calls
+* Start rename of BLATHER -> TRACE
+* Add ability of job poster/job iterator to wait for jobs to complete
+* Updated from global requirements
+* Use 'match\_type' utility function instead of staticmethod
+* Remove failure version number
+* Translate kazoo exceptions into job equivalents if register\_entity fails
+* Change name of misc.ensure\_dict to misc.safe\_copy\_dict
+* Avoid recreating notify details for each dispatch iteration
+* fix doc change caused by the change of tooz
+* Deprecated tox -downloadcache option removed
+* Updated from global requirements
+* Add some useful commentary on rebinding processes
+* Use small helper routine to fetch atom metadata entries
+* Remove 'MANIFEST.in'
+* Pass through run timeout in engine run()
+* Change engine 'self.\_check' into a decorator
+
+1.25.0
+------
+
+* Move validation of compiled unit out of compiler
+* Allow provided flow to be empty
+* Move engine options extraction to \_\_init\_\_ methods
+* Updated from global requirements
+* Updated from global requirements
+* Convert executor proxied engine options into their correct type
+* Enable conversion of the tree nodes into a digraph
+* Use the misc.ensure\_dict helper in conductor engine options saving
+* Add optional 'defer\_reverts' behavior
+* Add public property from storage to flowdetail.meta
+* Adding notification points for job completion
+* Remove python 2.6 and cleanup tox.ini
+* Correctly apply deciders across flow boundaries
+* Move 'convert\_to\_timeout' to timing type as a helper function
+* Use conductor entity class constant instead of raw string
+* Add a executor backed conductor and have existing impl. use it
+* Add flow durations to DurationListener
+* Update docstrings on entity type
+* Move 'fill\_iter' to 'iter\_utils.fill'
+
+1.24.0
+------
+
+* Updated from global requirements
+* Updated from global requirements
+* Register conductor information on jobboard
+* Add atom priority ability
+* Add validation of base exception type(s) in failure type
+* Fix order of assertEqual for unit.test\_\*
+* Fix order of assertEqual for unit.worker\_based
+* Fix order of assertEqual for unit.persistence
+* Fix order of assertEqual for unit.patterns
+* Fix order of assertEqual for unit.jobs
+* Fix order of assertEqual for unit.action\_engine
+
+1.23.0
+------
+
+* Updated from global requirements
+* feat: add max\_dispatches arg to conductor's run
+* Ensure node 'remove' and 'disassociate' can not be called when frozen
+* Add in-memory backend delete() in recursive/non-recursive modes
+* Use batch 'get\_atoms\_states' where we can
+* Use automaton's converters/pydot
+* Make more of the WBE logging and '\_\_repr\_\_' message more useful
+* Fix bad sphinx module reference
+* Relabel internal engine 'event' -> 'outcome'
+* No need for Oslo Incubator Sync
+* Use the node built-in 'dfs\_iter' instead of recursion
+
+1.22.0
+------
+
+* Simplify flow action engine compilation
+* Fix 'dependened upon' spelling error
+* docs - Set pbr warnerrors option for doc build
+* Rename 'history' -> 'Release notes'
+* Remove dummy/placeholder 'ChangeLog' as its not needed
+* Remove ./taskflow/openstack/common as it no longer exists
+* Remove quotes from subshell call in bash script
+* Refactor common parts of 'get\_maybe\_ready\_for' methods
+* Fix the sphinx build path in .gitignore file
+* Change ignore-errors to ignore\_errors
+* Use graphs as the underlying structure of patterns
+* Updated from global requirements
+* Fix '\_cache\_get' multiple keyword argument name overlap
+* Use the sqlalchemy-utils json type instead of our own
+
+1.21.0
+------
+
+* Updated from global requirements
+* Fix how the dir persistence backend was not listing logbooks
+* Explain that jobs arch. diagram is only for zookeeper
+
+1.20.0
+------
+
+* Updated from global requirements
+* iter\_nodes method added to flows
+* Updated from global requirements
+* Use 'iter\_utils.count' to determine how many unfinished nodes left
+* Fix flow states link
+* Avoid running this example if zookeeper is not found
+* Updated from global requirements
+* Have the storage class provide a 'change\_flow\_state' method
+
+1.19.0
+------
+
+* Updated from global requirements
+* Updated from global requirements
+* Add nicely made task structural diagram
+* Updated from global requirements
+* Remove some temporary variables not needed
+* Only remove all 'next\_nodes' that were done
+* Fix busted stevedore doc(s) link
+* Extend and improve failure logging
+* Improve docstrings in graph flow to denote exceptions raised
+* Enable testr OS\_DEBUG to be TRACE(blather) by default
+* Updated from global requirements
+* Show intermediary compilation(s) when BLATHER is enabled
+
+1.18.0
+------
+
+* Give the GC more of a break with regard to cycles
+* Base class for deciders
+* Remove extra runner layer and just use use machine in engine
+* Updated from global requirements
+* .gitignore update
+* Avoid adding 1 to a failure (if it gets triggered)
+* Replace the tree 'pformat()' recursion with non-recursive variant
+* Fix seven typos and one readability on taskflow documentation
+
+1.17.0
+------
+
+* Bump futurist and remove waiting code in taskflow
+* Use the action engine '\_check' helper method
+* Modify listeners to handle the results now possible from revert()
+* Remove no longer used '\_was\_failure' static method
+* Remove legacy py2.6 backwards logging compat. code
+* Updated from global requirements
+* Fix lack of space between functions
+* Create and use a serial retry executor
+* Just link to the worker engine docs instead of including a TOC inline
+* Link to run() method in engines doc
+* Add ability to reset an engine via a \`reset\` method
+
+1.16.0
+------
+
+* Updated from global requirements
+* Use 'addCleanup' instead of 'tearDown' in engine(s) test
+* Update 'make\_client' kazoo docs and link to them
+* Remove \*\*most\*\* usage of taskflow.utils in examples
+* Move doc8 to being a normal test requirement in test-requirements.txt
+* Updated from global requirements
+* Found another removal\_version=? that should be removal\_version=2.0
+* Add deprecated module(s) for prior FSM/table code-base
+* Replace internal fsm + table with automaton library
+* Remove direct usage of timeutils overrides and use fixture
+
+1.15.0
+------
+
+* Provide a deprecated alias for the now removed stop watch class
+* Update all removal\_version from being ? to being 2.0
+* Add deprecated and only alias modules for the moved types
+* Unify the zookeeper/redis jobboard iterators
+* Updated from global requirements
+* Run the '99\_bottles.py' demo at a fast rate when activated
+* Use io.open vs raw open
+* Retain atom 'revert' result (or failure)
+* Update the version on the old/deprecated logbook module
+* Add docs for u, v, decider on graph flow link method
+* Fix mock calls
+* Remove setup.cfg 'requires-python' incorrect entry
+* Compile lists of retry/task atoms at runtime compile time
+* Integrate futurist (and \*\*remove\*\* taskflow originating code)
+* Allow the 99\_bottles.py demo to run in BLATHER mode
+* Make currently implemented jobs use @functools.total\_ordering
+* Add more useful \`\_\_str\_\_\` to redis job
+* Show job posted and goodbye in 99\_bottles.py example
+* Rename logbook module -> models module
+* Notify on the individual engine steps
+
+1.14.0
+------
+
+* Expose strategies so doc generation can easily pick them up
+* Denote mail subject should be '[Oslo][TaskFlow]'
+* Add support for conditional execution
+* Use encodeutils for exception -> string function
+* Updated from global requirements
+* Build-out + test a redis backed jobboard
+
+0.13.0
+------
+
+* Just make the compiler object at \_\_init\_\_ time
+* Remove kazoo hack/fix for issue no longer needed
+* Add history.rst that uses generated 'ChangeLog' file
+* Add docstrings on runtime objects methods and link to them in docs
+
+0.12.0
+------
+
+* Updated from global requirements
+* Update states comment to refer to task section
+* Updated from global requirements
+* Remove 2.6 classifier + 2.6 compatibility code
+* Remove reference to 'requirements-pyN.txt' files
+* Add smarter/better/faster impl. of \`ensure\_atoms\`
+* Add bulk \`ensure\_atoms\` method to storage
+* Make it possible to see the queries executed (in BLATHER mode)
+* Add doc warning to engine components
+* Perform a few optimizations to decrease persistence interactions
+* Handle conductor ctrl-c more appropriately
+* Cache the individual atom schedulers at compile time
+* Split-off the additional retry states from the task states
+* Use the \`excutils.raise\_with\_cause\` after doing our type check
+* Updated from global requirements
+* Use monotonic lib. to avoid finding monotonic time function
+* Document more of the retry subclasses special keyword arguments
+
+0.11.0
+------
+
+* Address concurrent mutation of sqlalchemy backend
+* Add indestructible 99 bottles of beer example
+* Use alembic upgrade function/command directly
+* Updated from global requirements
+* Remove usage of deprecated 'task\_notifier' property in build\_car example
+* Add \`simple\_linear\_listening\` example to generated docs
+* Handy access to INFO level
+* Switch badges from 'pypip.in' to 'shields.io'
+* Adding a revert\_all option to retry controllers
+* A few jobboard documentation tweaks
+* Use sphinx deprecated docstring markup
+* Use a class constant for the default path based backend path
+* Updated from global requirements
+* Remove example not tested
+* Make the default file encoding a class constant with a docstring
+* Use a lru cache to limit the size of the internal file cache
+* Updated from global requirements
+* Use hash path lookup vs path finding
+* Remove all 'lock\_utils' now that fasteners provides equivalents
+* Add a new \`ls\_r\` method
+* Updated from global requirements
+* Refactor machine builder + runner into single unit
+* Replace lock\_utils lock(s) with fasteners package
+* Updated from global requirements
+* Use shared '\_check' function to check engine stages
+* Remove a couple more useless 'pass' keywords found
+* Add a test that checks for task result visibility
+* Remove testing using persistence sqlalchemy backend with 'mysqldb'
+* Remove customized pyX.Y tox requirements
+* Updated from global requirements
+* Allow same deps for requires and provides in task
+* Remove 'pass' usage not needed
+* Only show state transitions to logging when in BLATHER mode
+* Fix updated\_at column of sqlalchemy tables
+* Remove script already nuked from oslo-incubator
+* Ensure path\_based abstract base class is included in docs
+* Beef up docs on the logbook/flow detail/atom details models
+* Remove custom py26/py27 tox venvs no longer used
+* Executors come in via options config, not keyword arguments
+* Use newer versions of futures that adds exception tracebacks
+* Ensure empty paths raise a value error
+* Remove listener stack and replace with exit stack
+* Expose action engine no reraising states constants
+* Chain a few more exception raises that were previously missed
+* Expose in memory backend split staticmethod
+* Updated from global requirements
+* Remove tox py33 environment no longer used
+* Avoid creating temporary removal lists
+
+0.10.1
+------
+
+* Avoid trying to copy tasks results when cloning/copying
+* Avoid re-normalizing paths when following links
+* Add a profiling context manager that can be easily enabled
+* Updated from global requirements
+
+0.10.0
+------
+
+* Remove validation of state on state read property access
+* Make the default path a constant and tweak class docstring
+* Avoid duplicating exception message
+* Add speed-test tools script
+* Speed up memory backend via a path -> node reverse mapping
+* Updated from global requirements
+* Fix a typo in taskflow docs
+* Small refactoring of 'merge\_uri' utility function
+* Fix post coverage job option not recognized
+* Refactor/reduce shared 'ensure(task/retry)' code
+* Move implementations into there own sub-sections
+* Remove run\_cross\_tests.sh
+* Move zookeeper jobboard constants to class level
+* Retain chain of missing dependencies
+* Expose fake filesystem 'join' and 'normpath'
+* Add + use diagram explaining retry controller area of influence
+* Add openclipart.org conductor image to conductor docs
+* Use oslo\_utils eventletutils to warn about eventlet patching
+* Test more engine types in argument passing unit test
+* Add a conductor running example
+* Replace more instance(s) of exception chaining with helper
+* Avoid attribute error by checking executor for being non-none
+
+0.9.0
+-----
+
+* Validate correct exception subclass in 'raise\_with\_cause'
+* Remove link to kazoo eventlet handler
+* Add states generating venv and use pydot2
+* Add strict job state transition checking
+* Uncap library requirements for liberty
+* Have reset state handlers go through a shared list
+* Add job states in docs + states in python
+* Expose r/o listener callback + details filter callback
+* Expose listener notification type + docs
+* Ensure listener args are always a tuple/immutable
+* Include the 'dump\_memory\_backend' example in the docs
+* Make resolution/retry strategies more clear and better
+* Rename notifier 'listeners' to 'topics'
+* Mention link to states doc in notify state transitions
+* Ensure we don't get stuck in formatting loops
+* Add note about thread safety of fake filesystem
+* Have the notification/listener docs match other sections
+* Put semantics preservation section into note block
+* Note that the traditional mode also avoids this truncation issue
+* Avoid going into causes of non-taskflow exceptions
+* Use the ability to chain exceptions correctly
+* Add a example showing how to share an executor
+* Shrink the bookshelf description
+* Remove link about implementing job garbage binning
+* Make the storage layer more resilent to failures
+* Put the examples/misc/considerations under a new section
+* Add a suspension engine section
+
+0.8.1
+-----
+
+* Switch back to maxdepth 2
+* Allow ls() to list recursively (using breadth-first)
+* Make an attempt at having taskflow exceptions print causes better
+* fix renamed class to call super correctly
+* Turn 'check\_who' into a decorator
+* Use 'node' terminology instead of 'item' terminology
+* Remove 11635 bug reference
+* Allow providing a node stringify function to tree pformat
+* Add in memory filesystem clearing
+* Just unify having a single requirements.txt file
+* Fix a couple of spelling and grammar errors
+* Add memory backend get() support
+* Make the graph '\_unsatisfied\_requires' be a staticmethod
+* Add more comments to fake in-memory filesystem
+* Add a set of tests to the in memory fake filesystem
+
+0.8.0
+-----
+
+* Adding test to improve CaptureListener coverage
+* Prefer posixpath to os.path
+* By default use a in memory backend (when none is provided)
+* Allow using shallow copy instead of deep copy
+* Move to the newer debtcollector provided functions
+* Move to using the oslo.utils stop watch
+* Updated from global requirements
+* Ensure thread-safety of persistence dir backend
+* Ensure we are really setup before being connected
+* Ensure docstring on storage properties
+* Expose the storage backend being used
+* Use iteration instead of list(s) when extracting scopes
+* Use binary/encode decode helper routines in dir backend
+* Rename memory backend filesystem -> fake filesystem
+* Just let the future executors handle the max workers
+* Always return scope walker instances from \`fetch\_scopes\_for\`
+* Give the GC a break
+* Use the class name instead of the TYPE property in \_\_str\_\_
+* Just use the class name instead of TYPE constant
+* Ensure we have a 'coverage-package-name'
+* Attempt to extract traceback from exception
+* Use compatible map and update map/reduce task docs
+* Update engine docs with new validation stage
+* Ensure we register & deregister conductor listeners
+* Rename attribute '\_graph' to '\_execution\_graph'
+* Add a log statement pre-validation that dumps graph info
+* Have this example exit non-zero if incorrect results
+* Use a collections.namedtuple for the request work unit
+* Some small wbe engine doc tweaks
+* Add newline to avoid sphinx warning
+* Allow passing 'many\_handler' to fetch\_all function
+* Ensure event time listener is in listeners docs
+* Add a in-memory backend dumping example
+* Added a map and a reduce task
+* Restructure the in-memory node usage
+* Switch to non-namespaced module imports
+* Allow the storage unit to use the right scoping strategy
+* Just use the local conf variable
+* Put underscore in-front of alchemist helper
+* lazy loading for logbooks and flowdetails
+* Allow backend connection config (via fetch) to be a string
+* Add + use failure json schema validation
+* Use ordered[set/dict] to retain ordering
+* Allow injected atom args to be persisted
+* add \_listeners\_from\_job method to Conductor base
+* update uses of TimingListener to DurationListener
+* Added EventTimeListner to record when events occur
+* added update\_flow\_metadata method to Storage class
+* Retain nested causes where/when we can
+* Denote issue 17911 has been merged/accepted
+* Persistence backend refactor
+* Remove support for 3.3
+* Writers can now claim a read lock in ReaderWriterLock
+* Add another probabilistic rw-lock test
+* Add + use read/write lock decorators
+* Add no double writers thread test
+* Use condition context manager instead of acquire/release
+* Remove condition acquiring for read-only ops
+* Set a no-op functor when none is provided
+* Ensure needed locks is used when reading/setting intention
+* Specialize checking for overlaps
+* Use links instead of raw block quotes
+* Rename the timing listeners to duration listeners
+* Add a bookshelf developer section
+* Ensure the thread bundle stops in last to first order
+* Add warning about transient arguments and worker-based-engines
+* Ensure ordered set is pickleable
+* Add node removal/disassociate functions
+* Add a fully functional orderedset
+* Make the worker banner template part of the worker class
+* Use compilation helper objects
+* Allow node finding to not do a deep search
+* Add a frozen checking decorator
+* Tweak functor used to find flatteners/storage routines
+* Add specific scoping documentation
+* add jobboard trash method
+* Provide more contextual information about invalid periodics
+* Fix lookup scoping multi-match ordering
+* Stick to one space after a period
+* Refactor parts of the periodic worker
+* Use oslo.utils encodeutils for encode/decode functions
+* Bring over pretty\_tox.sh from nova/heat/others
+* Tweak some of the types thread safety docstrings
+* Add pypi link badges
+* Switch the note about process pool executor to warning
+* Chain exceptions correctly on py3.x
+* Updated from global requirements
+* Remove WBE experimental documentation note
+* Use the enum library for the retry strategy enumerations
+* Use debtcollector library to replace internal utility
+* add get\_flow\_details and get\_atom\_details to all backends
+* Tweaks to atom documentation
+* Update Flow::\_\_str\_\_
+* Add todo note for kombu pull request
+* Move 'provides' and 'name' to instance attributes
+* Allow loading conductors via entrypoints
+
+0.7.1
+-----
+
+* Revert "Add retries to fetching the zookeeper server version"
+* Allow turning off the version check
+* adding check for str/unicode type in requires
+* Make the dispatcher handler be an actual type
+* Add retries to fetching the zookeeper server version
+* Remove duplicate 'the' and link to worker engine section
+* Remove delayed decorator and replace with nicer method
+* Fix log statement
+* Make the atom class an abstract class
+* Improve multilock class and its associated unit test
+* Mark conductor 'stop' method deprecation kwarg with versions
+* Move to hacking 0.10
+* catch NotFound errors when consuming or abandoning
+* Use the new table length constants
+* Improve upon/adjust/move around new optional example
+* Clarify documentation related to inputs
+* Docstrings should document parameters return values
+* Let the multi-lock convert the provided value to a tuple
+* Map optional arguments as well as required arguments
+* Add a BFS tree iterator
+* DFS in right order when not starting at the provided node
+* Rework the sqlalchemy backend
+* Modify stop and add wait on conductor to prevent lockups
+* Default to using a thread-safe storage unit
+* Add warning to sqlalchemy backend size limit docs
+* Updated from global requirements
+* Use a thread-identifier that can't easily be recycled
+* Use a notifier instead of a direct property assignment
+* Tweak the WBE diagram (and present it as an svg)
+* Remove duplicate code
+* Improved diagram for Taskflow
+* Bump up the env\_builder.sh to 2.7.9
+* Add a capturing listener (for test or other usage)
+* Add + use a staticmethod to fetch the immediate callables
+* Just directly access the callback attributes
+* Use class constants during pformatting a tree node
+
+0.7.0
+-----
+
+* Abstract out the worker finding from the WBE engine
+* Add and use a nicer kombu message formatter
+* Remove duplicated 'do' in types documentation
+* Use the class defined constant instead of raw strings
+* Use kombu socket.timeout alias instead of socket.timeout
+* Stopwatch usage cleanup/tweak
+* Add note about publicly consumable types
+* Add docstring to wbe proxy to denote not for public use
+* Use monotonic time when/if available
+* Updated from global requirements
+* Link WBE docs together better (especially around arguments)
+* Emit a warning when no routing keys provided on publish()
+* Center SVG state diagrams
+* Use importutils.try\_import for optional eventlet imports
+* Shrink the WBE request transition SVG image size
+* Add a thread bundle helper utility + tests
+* Make all/most usage of type errors follow a similar pattern
+* Leave use-cases out of WBE developer documentation
+* Allow just specifying 'workers' for WBE entrypoint
+* Add comments to runner state machine reaction functions
+* Fix coverage environment
+* Use explicit WBE worker object arguments (instead of kwargs)
+* WBE documentation tweaks/adjustments
+* Add a WBE request state diagram + explanation
+* Tidy up the WBE cache (now WBE types) module
+* Fix leftover/remaining 'oslo.utils' usage
+* Show the failure discarded (and the future intention)
+* Use a class provided logger before falling back to module
+* Use explicit WBE object arguments (instead of kwargs)
+* Fix persistence doc inheritance hierarchy
+* The gathered runtime is for failures/not failures
+* add clarification re parallel engine
+* Increase robustness of WBE producer/consumers
+* Move implementation(s) to there own sections
+* Move the jobboard/job bases to a jobboard/base module
+* Have the serial task executor shutdown/restart its executor
+* Mirror the task executor methods in the retry action
+* Add back a 'eventlet\_utils' helper utility module
+* Use constants for runner state machine event names
+* Remove 'SaveOrderTask' and test state in class variables
+* Provide the stopwatch elapsed method a maximum
+* Fix unused and conflicting variables
+* Switch to using 'oslo\_serialization' vs 'oslo.serialization'
+* Switch to using 'oslo\_utils' vs 'oslo.utils'
+* Add executor statistics
+* Use oslo.utils reflection for class name
+* Add split time capturing to the stop watch
+* Use platform neutral line separator(s)
+* Create and use a multiprocessing sync manager subclass
+* Use a single sender
+* Updated from global requirements
+* Include the 'old\_state' in all currently provided listeners
+* Update the README.rst with accurate requirements
+* Include docstrings for parallel engine types/strings supported
+* The taskflow logger module does not provide a logging adapter
+* Send in the prior atom state on notification of a state change
+* Pass a string as executor in the example instead of an executor
+* Updated from global requirements
+* Fix for job consumption example using wrong object
+
+0.6.1
+-----
+
+* Remove need to inherit/adjust netutils split
+* Allow specifying the engine 'executor' as a string
+* Disallowing starting the executor when worker running
+* Use a single shared queue for an executors lifecycle
+* Avoid creating a temporary list(s) for tree type
+* Update statement around stopwatch thread safety
+* Register with 'ANY' in the cloned process
+* Add edge labels for engine states
+* Remove less than useful action\_engine \_\_str\_\_
+* Ensure manager started/shutdown/joined and reset
+* Return the same namedtuple that the future module returns
+* Add a simplistic hello world example
+* Get event/notification sending working correctly
+* Move the engine scoping test to its engines test folder
+* Get the basics of a process executor working
+* Move the persistence base to the parent directory
+* Correctly trigger 'on\_exit' of starting/initial state
+
+0.6.0
+-----
+
+* Add an example which shows how to send events out from tasks
+* Move over to using oslo.utils [reflection, uuidutils]
+* Rework the in-memory backend
+* Updated from global requirements
+* Add a basic map/reduce example to show how this can be done
+* Add a parallel table mutation example
+* Add a 'can\_be\_registered' method that checks before notifying
+* Base task executor should provide 'wait\_for\_any'
+* Replace autobind with a notifier module helper function
+* Cleanup some doc warnings/bad/broken links
+* Use the notifier type in the task class/module directly
+* Use a tiny clamp helper to clamp the 'on\_progress' value
+* Retain the existence of a 'EngineBase' until 0.7 or later
+* Remove the base postfix from the internal task executor
+* Remove usage of listener base postfix
+* Add a moved\_inheritable\_class deprecation helper
+* Avoid holding the lock while scanning for existing jobs
+* Remove the base postfix for engine abstract base class
+* Avoid popping while another entity is iterating
+* Updated from global requirements
+* Use explict 'attr\_dict' when adding provider->consumer edge
+* Properly handle and skip empty intermediary flows
+* Ensure message gets processed correctly
+* Just assign a empty collection instead of copy/clear
+* Remove rtype from task clone() doc
+* Add and use a new simple helper logging module
+* Have the sphinx copyright date be dynamic
+* Add appropriate links into README.rst
+* Use condition variables using 'with'
+* Use an appropriate \`\`extract\_traceback\`\` limit
+* Allow all deprecation helpers to take a stacklevel
+* Correctly identify stack level in \`\`\_extract\_engine\`\`
+* Stop returning atoms from execute/revert methods
+* Have tasks be able to provide copy() methods
+* Allow stopwatches to be restarted
+* Ensure that failures can be pickled
+* Rework pieces of the task callback capability
+* Just use 4 spaces for classifier indents
+* Move atom action handlers to there own subfolder/submodule
+* Workflow documentation is now in infra-manual
+* Ensure frozen attribute is set in fsm clones/copies
+* Fix split on "+" for connection strings that specify dialects
+* Update listeners to ensure they correctly handle all atoms
+* Allow for the notifier to provide a 'details\_filter'
+* Be explicit about publish keyword arguments
+* Some package additions and adjustments to the env\_builder.sh
+* Cache immutable visible scopes in the runtime component
+* Raise value errors instead of asserts
+* Add a claims listener that connects job claims to engines
+* Split the scheduler into sub-schedulers
+* Use a module level constant to provide the DEFAULT\_LISTEN\_FOR
+* Move the \_pformat() method to be a classmethod
+* Add link to issue 17911
+* Avoid deepcopying exception values
+* Include documentation of the utility modules
+* Use a metaclass to dynamically add testcases to example runner
+* Remove default setting of 'mysql\_traditional\_mode'
+* Move scheduler and completer classes to there own modules
+* Ensure that the zookeeper backend creates missing atoms
+* Use the deprecation utility module instead of warnings
+* Tweaks to setup.cfg
+* Add a jobboard high level architecture diagram
+* Mark 'task\_notifier' as renamed to 'atom\_notifier'
+* Revert wrapt usage until further notice
+* Updated from global requirements
+* Add a history retry object, makes retry histories easier to use
+* Format failures via a static method
+* When creating daemon threads use the bundled threading\_utils
+* Ensure failure types contain only immutable items
+* Mark 'task\_notifier' as renamed to 'atom\_notifier'
+* Use wrapt to provide the deprecated class proxy
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Reduce the worker-engine joint testing time
+* Link bug in requirements so people understand why pbr is listed
+* Updated from global requirements
+* Use standard threading locks in the cache types
+* Handle the case where '\_exc\_type\_names' is empty
+* Add pbr to installation requirements
+* Updated from global requirements
+* Remove direct usage of the deprecated failure location
+* Fix the example 'default\_provides'
+* Use constants for retry automatically provided kwargs
+* Remove direct usage of the deprecated notifier location
+* Remove attrdict and just use existing types
+* Use the mock that finds a working implementation
+* Add a futures type that can unify our future functionality
+* Bump the deprecation version number
+* Use and verify event and latch wait() return using timeouts
+* Deprecate \`engine\_conf\` and prefer \`engine\` instead
+* Use constants for link metadata keys
+* Bump up the sqlalchemy version for py26
+* Hoist the notifier to its own module
+* Move failure to its own type specific module
+* Use constants for revert automatically provided kwargs
+* Improve some of the task docstrings
+* We can now use PyMySQL in py3.x tests
+* Updated from global requirements
+* Add the database schema to the sqlalchemy docs
+* Change messaging from handler connection timeouts -> operation timeouts
+* Switch to a custom NotImplementedError derivative
+* Allow the worker banner to be written to an arbitrary location
+* Update engine class names to better reflect there usage
+
+0.5.0
+-----
+
+* Avoid usage of six.moves in local functions
+* Refactor parts of the job lock/job condition zookeeper usage
+* Make it so that the import works for older versions of kombu
+* Rework the state documentation
+* Updated from global requirements
+* Add a more dynamic/useful logging listener
+* Use timeutils functions instead of misc.wallclock
+* Expose only \`ensure\_atom\` from storage
+* Adjust docs+venv tox environments requirements/dependencies
+* Increase robustness of WBE message and request processing
+* Adjust the WBE log levels
+* Use the features that the oslotest mock base class provides
+* Use oslotest to provide our base test case class
+* Jobboard example that show jobs + workers + producers
+* Adjust on\_job\_posting to not hold the lock while investigating
+* Bring in a newer optional eventlet
+* Move some of the custom requirements out of tox.ini
+* Document more function/class/method params
+* Stop using intersphinx
+* Expand toctree to three levels
+* Documentation cleanups and tweaks
+* Fix multilock concurrency when shared by > 1 threads
+* Increase/adjust the logging of the WBE response/send activities
+* Color some of the states depending on there meaning
+* Switch to using oslo.utils and oslo.serialization
+* Typos "searchs"
+* Update the requirements-py2.txt file
+* Remove no longer needed r/w lock interface base class
+* Updated from global requirements
+* Better handle the tree freeze method
+* Ensure state machine can be frozen
+* Link a few of the classes to implemented features/bugs in python
+* Add a timing listener that also prints the results
+* Remove useless \_\_exit\_\_ return
+* Example which shows how to move values from one task to another
+* Mention issue with more than one thread and reduce workers
+* Add a mandelbrot parallel calculation WBE example
+* Add existing types to generated documentation
+* Remove the dependency on prettytable
+* Work toward Python 3.4 support and testing
+* Add a state machine copy() method
+* Update the state graph builder to use state machine type
+* Add a docs virtualenv
+* Reduce unused tox environments
+
+0.4.0
+-----
+
+* Add a couple of scope shadowing test cases
+* Relax the graph flow symbol constraints
+* Relax the unordered flow symbol constraints
+* Relax the linear flow symbol constraints
+* Revamp the symbol lookup mechanism
+* Be smarter about required flow symbols
+* Update oslo-incubator to 32e7f0b56f52742754
+* Translate the engine runner into a well defined state-machine
+* Raise a runtime error when mixed green/non-green futures
+* Ensure the cachedproperty creation/setting is thread-safe
+* warn against sorting requirements
+* Updated from global requirements
+* Update transitioning function name to be more understandable
+* Move parts of action engine tests to a subdirectory
+* Tweak engine iteration 'close-up shop' runtime path
+* Use explicit WBE request state transitions
+* Reject WBE messages if they can't be put in an ack state
+* Make version.py handle pbr not being installed
+* Cleanup WBE example to be simpler to understand
+* Use \_\_qualname\_\_ where appropriate
+* Updated from global requirements
+* Updated from global requirements
+* Make the WBE worker banner information more meaningful
+* Have the dispatch\_job function return a future
+* Expand documention on failures and wrapped failures types
+* Allow worker count to be specified when no executor provided
+* Remove sphinx examples emphasize-lines
+* Split requirements into py2 and py3 files
+* Update oslo-incubator to 037dee004c3e2239
+* Remove db locks and use random db names for tests
+* Allow WBE request transition timeout to be dynamic
+* Avoid naming time type module the same as a builtin
+* LOG which requeue filter callback failed
+* Add a pformat() failure method and use it in the conductor
+* add pre/post execute/retry callbacks to tasks
+* Use checked\_commit() around consume() and abandon()
+* Use a check + create transaction when claiming a job
+* Improve WBE testing coverage
+* Add basic WBE validation sanity tests
+* WBE request message validation
+* WBE response message validation
+* WBE notification message validation
+* Allow handlers to provide validation callables
+* Use a common message dispatcher
+* Use checked commit when committing kazoo transactions
+* Enable hacking checks H305 and H307 in tox.ini template
+* Fixes unsorted dicts and sets in doctests
+* README.rst: Avoid using non-ascii character
+* Updated from global requirements
+* Add a sample script that can be used to build a test environment
+* Enabled hacking checks H305 and H307
+* Bump hacking to version 0.9.2
+* Allow a jobs posted book to be none by default
+* Cleanup some of the example code & docs
+* Make greenexecutor not keep greenthreads active
+* Add the arch/big picture omnigraffle diagram
+* Remove pbr as a runtime dependency
+* Use the \`state\_graph.py\` for all states diagrams
+* Make the examples documentation more relevant
+* Raise NotImplementedError instead of NotImplemented
+* Move the stopwatch tests to test\_types
+* Remove need to do special exception catching in parse\_uri
+* Update oslo incubator code to commit 0b02fc0f36814968
+* Fix the section name in CONTRIBUTING.rst
+* Add a conductor considerations section
+* Make the expiring cache a top level cache type
+* Use \`flow\_uuid\` and \`flow\_name\` from storage
+* Fix traces left in zookeeper
+* Clarify locked decorator is for instance methods
+* Extract the state changes from the ensure storage method
+* Create a top level time type
+* Simplify identity transition handling for tasks and retries
+* Remove check\_doc.py and use doc8
+* Remove functions created for pre-six 1.7.0
+* Add a tree type
+* Make intentions a tuple (to denote immutability)
+* Updated from global requirements
+* Add example for pseudo-scoping
+* Fix E265 hacking warnings
+* Fix doc which should state fetch() usage
+* Adjust sphinx requirement
+* Upgrade hacking version and fix some of the issues
+* Denote that other projects can use this library
+* Remove misc.as\_bool as oslo provides an equivalent
+* Update zake to requirements version
+
+0.3.21
+------
+
+* Rename additional to general/higher-level
+* Sync our version of the interprocess lock
+* Increase usefulness of the retry component compile errors
+* Switch to a restructuredtext README file
+* Create a considerations section
+* Include the function name on internal errors
+* Add in default transaction isolation levels
+* Allow the mysql mode to be more than just TRADITIONAL
+* Make the runner a runtime provided property
+* Rename inject\_task\_args to inject\_atom\_args
+* Rename the graph analyzer to analyzer
+* Provide the compilation object instead of just a part of it
+* Ensure cachedproperty descriptor picks up docstrings
+
+0.3
+---
+
+* Warn about internal helper/utility usage
+* Rename to atom from task
+* Invert the conductor stop() returned result
+* Move flattening to the action engine compiler
+* Increase the level of usefulness of the dispatching logging
+* Avoid forcing engine\_conf to a dict
+* Allow for two ways to find a flow detail in a job for a conductor
+* Add docs related to the new conductor feature
+* Add docstring describing the inject instance variable
+* Finish factoring apart the graph\_action module
+* Update sphinx pin from global requirements
+* Fix docstring list format
+* Allow indent text to be passed in
+* Factor out the on\_failure to a mixin type
+* Use a name property setter instead of a set\_name method
+* Adds a single threaded flow conductor
+* add the ability to inject arguments into tasks at task creation
+* Synced jsonutils from oslo-incubator
+* Remove wording issue (track does not make sense here)
+* Fix case of taskflow in docs
+* Put the job external wiki link in a note section
+* Rework atom documentation
+* Add doc link to examples
+* Rework the overview of the notification mechanism
+* Standardize on the same capitalization pattern
+* Regenerate engine-state sequence diagram
+* Add source of engine-state sequence diagram
+* Add kwarg check\_pending argument to fake lock
+* Add a example which uses the run\_iter function in a for loop
+* Fix error string interpolation
+* Rename t\_storage to atom\_storage
+* Create and use a new compilation module
+* Add engine state diagram
+* Add tests for the misc.cachedproperty descriptor
+* Complete the cachedproperty descriptor protocol
+* Don't create fake LogBook when we can not fetch one
+* Use futures wait() when possible
+* Use /taskflow/flush-test in the flush function
+* Add a reset nodes function
+* Default the impl\_memory conf to none
+* Fix spelling mistake
+* Add a helper tool which clears zookeeper test dirs
+* Add a zookeeper jobboard integration test
+* Cleanup zookeeper integration testing
+* Use a more stable flush method
+* Remove the \_clear method and do not reset the job\_watcher
+* Allow command and connection retry configuration
+* Check documentation for simple style requirements
+* Add an example which uses the run iteration functionality
+* Implement run iterations
+* Put provides and requires code to basic Flow
+* Allow the watcher to re-register if the session is lost
+* Add a new wait() method that waits for jobs to arrive
+* Add a cachedproperty descriptor
+* Add an example for the job board feature
+* Engine \_cls postfix is not correct
+* Pass executor via kwargs instead of config
+* Allow the WBE to use a preexisting executor
+* Tweaks to object hiearchy diagrams
+* Adjust doc linking
+* Medium-level docs on engines
+* Add docs for the worker based engine (WBE)
+* Updated from global requirements
+* Move from generator to iterator for iterjobs
+* Add a jobboard fetching context manager
+* Wrap the failure to load in the not found exception
+* Update jobboard docs
+* Synced jsonutils from oslo-incubator
+* Remove persistence wiki page link
+* Load engines with defined args and provided kwargs
+* Integrate urlparse for configuration augmentation
+* Fix "occured" -> "occurred"
+* Documentation tune-ups
+* Fix spelling error
+* Add a resumption strategy doc
+* Docs and cleanups for test\_examples runner
+* Skip loading (and failing to load) lock files
+* Add a persistence backend fetching context manager
+* Add a example that activates a future when a result is ready
+* Fix documentation spelling errors
+* Add a job consideration doc
+* Add last\_modified & created\_on attributes to jobs
+* Allow jobboard event notification
+* Use sequencing when posting jobs
+* Add a directed graph type (new types module)
+* Add persistence docs + adjustments
+* Updated from global requirements
+* Stings -> Strings
+* Be better at failure tolerance
+* Ensure example abandons job when it fails
+* Add docs for jobs and jobboards
+* Get persistence backend via kwargs instead of conf
+* Allow fetching jobboard implementations
+* Reuse already defined variable
+* More keywords & classifier topics
+* Allow transient values to be stored in storage
+* Doc adjustments
+* Move the daemon thread helper function
+* Create a periodic worker helper class
+* Fix not found being raised when iterating
+* Allow for only iterating over the most 'fresh' jobs
+* Updated from global requirements
+* Update oslo-incubator to 46f2b697b6aacc67
+* import run\_cross\_tests.sh from incubator
+* Exception in worker queue thread
+* Avoid holding the state lock while notifying
+
+0.2
+---
+
+* Allow atoms to save their own state/result
+* Use correct exception in the timing listener
+* Add a engine preparation stage
+* Decrease extraneous logging
+* Handle retry last\_results/last\_failure better
+* Improve documentation for engines
+* Worker executor adjustments
+* Revert "Move taskflow.utils.misc.Failure to its own module"
+* Move taskflow.utils.misc.Failure to its own module
+* Leave the execution\_graph as none until compiled
+* Move state link to developer docs
+* Raise error if atom asked to schedule with unknown intention
+* Removed unused TIMED\_OUT state
+* Rework documentation of notifications
+* Test retry fails on revert
+* Exception when scheduling task with invalid state
+* Fix race in worker-based executor result processing
+* Set logbook/flowdetail/atomdetail meta to empty dict
+* Move 'inputs and outputs' to developers docs
+* tests: Discover absence of zookeeper faster
+* Fix spelling mistake
+* Should be greater or equal to zero and not greater than
+* Persistence cleanup part one
+* Run worker-based engine tests faster
+* SQLAlchemy requirements put in order
+* Add timeout to WaitForOneFromTask
+* Use same code to reset flow and parts of it
+* Optimize dependency links in flattening
+* Adjust the exception hierachy
+* docs: Links to methods on arguments and results page
+* Add \_\_repr\_\_ method to Atom
+* Flattening improvements
+* tests: Fix WaitForOneFromTask constructor parameter introspection
+* Rework graph flow unit tests
+* Rewrite assertion for same elements in sequences
+* Unit tests for unordered flow
+* Linear flow: mark links and rework unit tests
+* Drop indexing operator from linear flow
+* Drop obsolete test\_unordered\_flow
+* Iteration over links in flow interface
+* Add a timeout object that can be interrupted
+* Avoid shutting down of a passed executor
+* Add more tests for resumption with retry
+* Improve logging for proxy publish
+* Small documentation fix
+* Improve proxy publish method
+* Add Retry to developers documentation
+* Move flow states to developers documentation
+* Remove extraneous vim configuration comments
+* Make schedule a proper method of GraphAction
+* Simplify graph analyzer interface
+* Test storage with memory and sqlite backends
+* Fix few minor spelling errors
+* Fix executor requests publishing bug
+* Flow smart revert with retry controller
+* Add atom intentions for tasks and retries
+* [WBE] Collect information from workers
+* Add tox environment for pypy
+* docs: Add inheritance diagram to exceptions documentation
+* Adjust logging levels and usage to follow standards
+* Introduce message types for WBE protocol
+* Add retry action to execute retries
+* Extend logbook and storage to work with retry
+* Add retry to execution graph
+* Add retry to Flow patterns
+* Add base class for Retry
+* Update request \`expired\` property docsting
+* docs: Add page describing atom arguments and results
+* docs: Improve BaseTask method docstrings
+* Remove extra quote symbol
+* docs: Relative links improvements
+* docs: Ingore 'taskflow.' prefix when sorting module index
+* Update comment + six.text\_type instead of str for name
+* Avoid calling callbacks while holding locks
+* Rename remote task to request
+* Rework proxy publish functionality
+* Updated from global requirements
+* Use message.requeue instead of message.reject
+* Lock test tweaks
+* Move endpoint subclass finding to reflection util
+* Correct LOG.warning in persistence utils
+* Introduce remote tasks cache for worker-executor
+* Worker-based engine clean-ups
+* A few worker-engine cleanups
+* Add a delay before releasing the lock
+* Allow connection string to be just backend name
+* Get rid of openstack.common.py3kcompat
+* Clean-up several comments in reflection.py
+* Fix try\_clean not getting the job\_path
+* Updated from global requirements
+* Rename uuid to topic
+* Fixups for threads\_count usage and logging
+* Use the stop watch utility instead of custom timing
+* Unify usage of storage error exception type
+* Add zookeeper job/jobboard impl
+* Updated from global requirements
+* Removed copyright from empty files
+* Remove extraneous vim configuration comments
+* Use six.text\_type() instead of str() in sqlalchemy backend
+* Fix dummy lock missing pending\_writers method
+* Move some common/to be shared kazoo utils to kazoo\_utils
+* Switch to using the type checking decode\_json
+* Fix few spelling and grammar errors
+* Fixed spelling error
+* Run action-engine tests with worker-based engine
+* Message-oriented worker-based flow with kombu
+* Check atom doesn't provide and return same values
+* Fix command for pylint tox env
+* Remove locale overrides form tox template
+* Reduce test and optional requirements to global requirements
+* Rework sphinx documentation
+* Remove extraneous vim configuration comments
+* Sync with global requirements
+* Instead of doing set diffing just partition when state checking
+* Add ZooKeeper backend to examples
+* Storage protects lower level backend against thread safety
+* Remove tox locale overrides
+* Update .gitreview after repo rename
+* Small storage tests clean-up
+* Support building wheels (PEP-427)
+
+0.1.3
+-----
+
+* Add validate() base method
+* Fix deadlock on waiting for pending\_writers to be empty
+* Rename self.\_zk to self.\_client
+* Use listener instead of AutoSuspendTask in test\_suspend\_flow
+* Use test utils in test\_suspend\_flow
+* Use reader/writer locks in storage
+* Allow the usage of a passed in sqlalchemy engine
+* Be really careful with non-ascii data in exceptions/failures
+* Run zookeeper tests if localhost has a compat. zookeeper server
+* Add optional-requirements.txt
+* Move kazoo to testenv requirements
+* Unpin testtools version and bump subunit to >=0.0.18
+* Remove use of str() in utils.misc.Failure
+* Be more resilent around import/detection/setup errors
+* Some zookeeper persistence improvements/adjustments
+* Add a validate method to dir and memory backends
+* Update oslo copy to oslo commit 39e1c5c5f39204
+* Update oslo.lock from incubator commit 3c125e66d183
+* Refactor task/flow flattening
+* Engine tests refactoring
+* Tests: don't pass 'values' to task constructor
+* Test fetching backends via entry points
+* Pin testtools to 0.9.34 in test requirements
+* Ensure we register the new zookeeper backend as an entrypoint
+* Implement ZooKeeper as persistence storage backend
+* Use addCleanup instead of tearDown in test\_sql\_persistence
+* Retain the same api for all helpers
+* Update execute/revert comments
+* Added more unit tests for Task and FunctorTask
+* Doc strings and comments clean-up
+* List examples function doesn't accept arguments
+* Tests: Persistence test mixin fix
+* Test using mysql + postgres if available
+* Clean-up and improve async-utils tests
+* Use already defined PENDING variable
+* Add utilities for working with binary data
+* Cleanup engine base class
+* Engine cleanups
+* Update atom comments
+* Put full set of requirements to py26, py27 and py33 envs
+* Add base class Atom for all flow units
+* Add more requirements to cover tox environment
+* Put SQLAlchemy requirements on single line
+* Proper exception raised from check\_task\_transition
+* Fix function name typo in persistence utils
+* Use the same way of assert isinstance in all tests
+* Minor cleanup in test\_examples
+* Add possibility to create Failure from exception
+* Exceptions cleanup
+* Alter is\_locked() helper comment
+* Add a setup.cfg keywords to describe taskflow
+* Use the released toxgen tool instead of our copy
+
+0.1.2
+-----
+
+* Move autobinding to task base class
+* Assert functor task revert/execute are callable
+* Use the six callback checker
+* Add envs for different sqlalchemy versions
+* Refactor task handler binding
+* Move six to the right location
+* Use constants for the execution event strings
+* Added htmlcov folder to .gitignore
+* Reduce visibility of task\_action
+* Change internal data store of LogBook from list to dict
+* Misc minor fixes to taskflow/examples
+* Add connection\_proxy param
+* Ignore doc build files
+* Fix spelling errors
+* Switch to just using tox
+* Enable H202 warning for flake8
+* Check tasks should not provide same values
+* Allow max\_backoff and use count instead of attempts
+* Skip invariant checking and adding when nothing provided
+* Avoid not\_done naming conflict
+* Add stronger checking of backend configuration
+* Raise type error instead of silencing it
+* Move the container fetcher function to utils
+* Explicitly list the valid transitions to RESUMING state
+* Name the graph property the same as in engine
+* Bind outside of the try block
+* Graph action refactoring
+* Add make\_completed\_future to async\_utils
+* Update oslo-incubator copy to oslo-incubator commit 8b2b0b743
+* Ensure that mysql traditional mode is enabled
+* Move async utils to own file
+* Update requirements from opentack/requirements
+* Code cleanup for eventlet\_utils.wait\_fo\_any
+* Refactor engine internals
+* Add wait\_for\_any method to eventlet utils
+* Introduce TaskExecutor
+* Run some engine tests with eventlet if it's available
+* Do not create TaskAction for each task
+* Storage: use names instead of uuids in interface
+* Add tests for metadata updates
+* Fix sqlalchemy 0.8 issues
+* Fix minor python3 incompatibility
+* Speed up FlowDetail.find
+* Fix misspellings
+* Raise exception when trying to run empty flow
+* Use update\_task\_metadata in set\_task\_progress
+* Capture task duration
+* Fix another instance of callback comparison
+* Don't forget to return self
+* Fixes how instances methods are not deregistered
+* Targeted graph flow pattern
+* All classes should explicitly inherit object class
+* Initial commit of sphinx related files
+* Improve is\_valid\_attribute\_name utility function
+* Coverage calculation improvements
+* Fix up python 3.3 incompatabilities
+
+0.1.1
+-----
+
+* Pass flow failures to task's revert method
+* Storage: add methods to get all flow failures
+* Pbr requirement went missing
+* Update code to comply with hacking 0.8.0
+* Don't reset tasks to PENDING state while reverting
+* Let pbr determine version automatically
+* Be more careful when passing result to revert()
+
+0.1
+---
+
+* Support for optional task arguments
+* Do not erase task progress details
+* Storage: restore injected data on resumption
+* Inherit the greenpool default size
+* Add debug logging showing what is flattened
+* Remove incorrect comment
+* Unit tests refactoring
+* Use py3kcompat.urlutils from oslo instead of six.urllib\_parse
+* Update oslo and bring py3kcompat in
+* Support several output formats in state\_graph tool
+* Remove task\_action state checks
+* Wrapped exception doc/intro comment updates
+* Doc/intro updates for simple\_linear\_listening
+* Add docs/intro to simple\_linear example
+* Update intro/comments for reverting\_linear example
+* Add docs explaining what/how resume\_volume\_create works
+* A few resuming from backend comment adjustments
+* Add an introduction to explain resume\_many example
+* Increase persistence example comments
+* Boost graph flow example comments
+* Also allow "\_" to be valid identifier
+* Remove uuid from taskflow.flow.Flow
+* A few additional example boot\_vm comments + tweaks
+* Add a resuming booting vm example
+* Add task state verification
+* Beef up storage comments
+* Removed unused utilities
+* Helpers to save flow factory in metadata
+* Storage: add flow name and uuid properties
+* Create logbook if not provided for create\_flow\_details
+* Prepare for 0.1 release
+* Comment additions for exponential backoff
+* Beef up the action engine comments
+* Pattern comment additions/adjustments
+* Add more comments to flow/task
+* Save with the same connection
+* Add a persistence util logbook formatting function
+* Rename get\_graph() -> execution\_graph
+* Continue adding docs to examples
+* Add more comments that explain example & usage
+* Add more comments that explain example & usage
+* Add more comments that explain example & usage
+* Add more comments that explain example & usage
+* Fix several python3 incompatibilities
+* Python3 compatibility for utils.reflection
+* No module name for builtin type and exception names
+* Fix python3 compatibility issues in examples
+* Fix print statements for python 2/3
+* Add a mini-cinder volume create with resumption
+* Update oslo copy and bring over versionutils
+* Move toward python 3/2 compatible metaclass
+* Add a secondary booting vm example
+* Resumption from backend for action engine
+* A few wording/spelling adjustments
+* Create a green executor & green future
+* Add a simple mini-billing stack example
+* Add a example which uses a sqlite persistence layer
+* Add state to dot->svg tool
+* Add a set of useful listeners
+* Remove decorators and move to utils
+* Add reasons as to why the edges were created
+* Fix entrypoints being updated/created by update.py
+* Validate each flow state change
+* Update state sequence for failed flows
+* Flow utils and adding comments
+* Bump requirements to the latest
+* Add a inspect sanity check and note about bound methods
+* Some small exception cleanups
+* Check for duplicate task names on flattening
+* Correctly save task versions
+* Allow access by index
+* Fix importing of module files
+* Wrapping and serializing failures
+* Simpler API to load flows into engines
+* Avoid setting object variables
+* A few adjustments to the progress code
+* Cleanup unused states
+* Remove d2to dependency
+* Warn if multiple providers found
+* Memory persistence backend improvements
+* Create database from models for SQLite
+* Don't allow mutating operations on the underlying graph
+* Add graph density
+* Suspend single and multi threaded engines
+* Remove old tests for unexisted flow types
+* Boot fake vm example fixed
+* Export graph to dot util
+* Remove unused utility classes
+* Remove black list of graph flow
+* Task decorator was removed and examples updated
+* Remove weakref usage
+* Add basic sanity tests for unordered flow
+* Clean up job/jobboard code
+* Add a directory/filesystem based persistence layer
+* Remove the older (not used) resumption mechanism
+* Reintegrate parallel action
+* Add a flow flattening util
+* Allow to specify default provides at task definition
+* Graph flow, sequential graph action
+* Task progress
+* Verify provides and requires
+* Remap the emails of the committers
+* Use executors instead of pools
+* Fix linked exception forming
+* Remove threaded and distributed flows
+* Add check that task provides all results it should
+* Use six string types instead of basestring
+* Remove usage of oslo.db and oslo.config
+* Move toward using a backend+connection model
+* Add provides and requires properties to Flow
+* Fixed crash when running the engine
+* Remove the common config since its not needed
+* Allow the lock decorator to take a list
+* Allow provides to be a set and results to be a dictionary
+* Allow engines to be copied + blacklist broken flows
+* Add link to why we have to make this factory due to late binding
+* Use the lock decorator and close/join the thread pool
+* Engine, task, linear\_flow unification
+* Combine multiple exceptions into a linked one
+* Converted some examples to use patterns/engines
+* MultiThreaded engine and parallel action
+* State management for engines
+* Action engine: save task results
+* Initial implementation of action-based engine
+* Further updates to update.py
+* Split utils module
+* Rename Task.\_\_call\_\_ to Task.execute
+* Reader/writer no longer used
+* Rename "revert\_with" => "revert" and "execute\_with" to "execute"
+* Notify on task reversion
+* Have runner keep the exception
+* Use distutil version classes
+* Add features to task.Task
+* Add get\_required\_callable\_args utility function
+* Add get\_callable\_name utility function
+* Require uuid + move functor\_task to task.py
+* Check examples when running tests
+* Use the same root test class
+* LazyPluggable is no longer used
+* Add a locally running threaded flow
+* Change namings in functor\_task and add docs to its \_\_init\_\_
+* Rework the persistence layer
+* Do not have the runner modify the uuid
+* Refactor decorators
+* Nicer way to make task out of any callable
+* Use oslo's sqlalchemy layer
+* File movements
+* Added Backend API Database Implementation
+* Added Memory Persistence API and Generic Datatypes
+* Resync the latest oslo code
+* Remove openstack.common.exception usage
+* Forgot to move this one to the right folder
+* Add a new simple calculator example
+* Quiet the provider linking
+* Deep-copy not always possible
+* Add a example which simulates booting a vm
+* Add a more complicated graph example
+* Move examples under the source tree
+* Adjust a bunch of hacking violations
+* Fix typos in test\_linear\_flow.py and simple\_linear\_listening.py
+* Fix minor code style
+* Fix two minor bugs in docs/examples
+* Show file modifications and fix dirpath based on config file
+* Add a way to use taskflow until library stabilized
+* Provide the length of the flows
+* Parents should be frozen after creation
+* Allow graph dependencies to be manually provided
+* Add helper reset internals function
+* Move to using pbr
+* Unify creation/usage of uuids
+* Use the runner interface as the best task lookup
+* Ensure we document and complete correct removal
+* Pass runners instead of task objects/uuids
+* Move how resuming is done to be disconnected from jobs/flows
+* Clear out before connecting
+* Make connection/validation of tasks be after they are added
+* Add helper to do notification
+* Store results by add() uuid instead of in array format
+* Integrate better locking and a runner helper class
+* Cleaning up various components
+* Move some of the ordered flow helper classes to utils
+* Allow instance methods to be wrapped and unwrapped correctly
+* Add a start of a few simple examples
+* Update readme to point to links
+* Fix most of the hacking rules
+* Fix all flake8 E\* and F\* errors
+* Fix the current flake8 errors
+* Don't keep the state/version in the task name
+* Dinky change to trigger jenkins so I can cleanup
+* Add the task to the accumulator before running
+* Add .settings and .venv into .gitignore
+* Fix tests for python 2.6
+* Add the ability to soft\_reset a workflow
+* Add a .gitreview file so that git-review works
+* Ensure we have an exception and capture the exc\_info
+* Update how graph results are fetched when they are optional
+* Allow for optional task requirements
+* We were not notifying when errors occured so fix that
+* Bring over the nova get\_wrapped\_function helper and use it
+* Allow for passing in the metadata when creating a task detail entry
+* Update how the version task functor attribute is found
+* Remove more tabs incidents
+* Removed test noise and formatted for pep8
+* Continue work on decorator usage
+* Ensure we pickup the packages
+* Fixed pep8 formatting... Finally
+* Add flow disassociation and adjust the assocate path
+* Add a setup.cfg and populate it with a default set of nosetests options
+* Fix spacing
+* Add a better task name algorithm
+* Add a major/minor version
+* Add a get many attr/s and join helper functions
+* Reduce test noise
+* Fix a few unit tests due to changes
+* Ensure we handle functor names and resetting correctly
+* Remove safe\_attr
+* Modifying db tests
+* Removing .pyc
+* Fixing .py in .gitignore
+* Update db api test
+* DB api test cases and revisions
+* Allow for turning off auto-extract and add a test
+* Use a function to filter args and add comments
+* Use update instead of overwrite
+* Move decorators to new file and update to use better wraps()
+* Continue work with decorator usage
+* Update with adding a provides and requires decorator for standalone function usage
+* Instead of apply use \_\_call\_\_
+* Add comment to why we accumulate before notifying task listeners
+* Use a default sqlite backing using a taskflow file
+* Add a basic rollback accumlator test
+* Use rollback accumulator and remove requires()/provides() from being functions
+* Allow (or disallow) multiple providers of items
+* Clean the lines in a seperate function
+* Resync with oslo-incubator
+* Remove uuid since we are now using uuidutils
+* Remove error code not found in strict version of pylint
+* Include more dev testing packages + matching versions
+* Update dependencies for new db/distributed backends
+* Move some of the functions to use there openstack/common counterparts
+* More import fixups
+* Patch up the imports
+* Fix syntax error
+* Rename cause -> exception and make exception optional
+* Allow any of the previous tasks to satisfy requirements
+* Ensure we change the self and parents states correctly
+* Always have a name provided
+* Cleaning up files/extraneous files/fixing relations
+* More pylint cleanups
+* Make more tests for linear and shuffle test utils to common file
+* Only do differences on set objects
+* Ensure we fetch the appropriate inputs for the running task
+* Have the linear workflow verify the tasks inputs
+* Specify that task provides/requires must be an immutable set
+* Clean Up for DB changes
+* db api defined
+* Fleshing out sqlalchemy api
+* Almost done with sqlalchemy api
+* Fix state check
+* Fix flow exception wording
+* Ensure job is pending before we associate and run
+* More pylint cleanups
+* Ensure we associate with parent flows as well
+* Add a nice run() method to the job class that will run a flow
+* Massive pylint cleanup
+* deleting .swp files
+* deleting .swp files
+* cleaning for initial pull request
+* Add a few more graph ordering test cases
+* Update automatic naming and arg checks
+* Update order calls and connect call
+* Move flow failure to flow file and correctly catch ordering failure
+* Just kidding - really fixing relations this time
+* Fixing table relations
+* Allow job id to be passed in
+* Check who is being connected to and ensure > 0 connectors
+* Move the await function to utils
+* Graph tests and adjustments releated to
+* Add graph flow tests
+* Fix name changes missed
+* Enable extraction of what a functor requires from its args
+* Called flow now, not workflow
+* Second pass at models
+* More tests
+* Simplify existence checks
+* More pythonic functions and workflow -> flow renaming
+* Added more utils, added model for workflow
+* Spelling errors and stuff
+* adding parentheses to read method
+* Implemented basic sqlalchemy session class
+* Setting up Configs and SQLAlchemy/DB backend
+* Fix the import
+* Use a different logger method if tolerant vs not tolerant
+* More function comments
+* Add a bunch of linear workflow tests
+* Allow resuming stage to be interrupted
+* Fix the missing context variable
+* Moving over celery/distributed workflows
+* Update description wording
+* Pep fix
+* Instead of using notify member functions, just use functors
+* More wording fixes
+* Add the ability to alter the task failure reconcilation
+* Correctly run the tasks after partial resumption
+* Another wording fix
+* Spelling fix
+* Allow the functor task to take a name and provide it a default
+* Updated functor task comments
+* Move some of the useful helpers and functions to other files
+* Add the ability to associate a workflow with a job
+* Move the useful functor wrapping task from test to wrappers file
+* Add a thread posting/claiming example and rework tests to use it
+* After adding reposting/unclaiming reflect those changes here
+* Add a nicer string name that shows what the class name is
+* Adjust some of the states jobs and workflows could be in
+* Add a more useful name that shows this is a task
+* Remove impl of erasing which doesn't do much and allow for job reposting
+* Various reworkings
+* Rename logbook contents
+* Get a memory test example working
+* Add a pylintrc file to be used with pylint
+* Rework the logbook to be chapter/page based
+* Move ordered workflow to its own file
+* Increase the number of comments
+* Start adding in a more generic DAG based workflow
+* Remove dict\_provider dependency
+* Rework due to code comments
+* Begin adding testing functionality
+* Fill in the majority of the memory job
+* Rework how we should be using lists instead of ordereddicts for optimal usage
+* Add a context manager to the useful read/writer lock
+* Ensure that the task has a name
+* Add a running state which can be used to know when a workflow is running
+* Rename the date created field
+* Add some search functionality and adjust the await() function params
+* Remove and add a few new exceptions
+* Shrink down the exposed methods
+* Remove the promise object for now
+* Add RESUMING
+* Fix spelling
+* Continue on getting ready for the memory impl. to be useful
+* On python <= 2.6 we need to import ordereddict
+* Remove a few other references to nova
+* Add in openstack common and remove patch references
+* Move simplification over
+* Continue moving here
+* Update README.md
+* Update readme
+* Move the code over for now
+* Initial commit
diff -pruN 5.1.0-1/PKG-INFO 5.1.0-0ubuntu1/PKG-INFO
--- 5.1.0-1/PKG-INFO	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/PKG-INFO	2023-01-05 10:10:08.173206000 +0000
@@ -0,0 +1,106 @@
+Metadata-Version: 2.1
+Name: taskflow
+Version: 5.1.0
+Summary: Taskflow structured state management library.
+Home-page: https://docs.openstack.org/taskflow/latest/
+Author: OpenStack
+Author-email: openstack-discuss@lists.openstack.org
+License: UNKNOWN
+Description: ========================
+        Team and repository tags
+        ========================
+        
+        .. image:: https://governance.openstack.org/tc/badges/taskflow.svg
+            :target: https://governance.openstack.org/tc/reference/tags/index.html
+        
+        .. Change things from this point on
+        
+        TaskFlow
+        ========
+        
+        .. image:: https://img.shields.io/pypi/v/taskflow.svg
+            :target: https://pypi.org/project/taskflow/
+            :alt: Latest Version
+        
+        A library to do [jobs, tasks, flows] in a highly available, easy to understand
+        and declarative manner (and more!) to be used with OpenStack and other
+        projects.
+        
+        * Free software: Apache license
+        * Documentation: https://docs.openstack.org/taskflow/latest/
+        * Source: https://opendev.org/openstack/taskflow
+        * Bugs: https://bugs.launchpad.net/taskflow/
+        * Release notes: https://docs.openstack.org/releasenotes/taskflow/
+        
+        Join us
+        -------
+        
+        - https://launchpad.net/taskflow
+        
+        Testing and requirements
+        ------------------------
+        
+        Requirements
+        ~~~~~~~~~~~~
+        
+        Because this project has many optional (pluggable) parts like persistence
+        backends and engines, we decided to split our requirements into two
+        parts: - things that are absolutely required (you can't use the project
+        without them) are put into ``requirements.txt``. The requirements
+        that are required by some optional part of this project (you can use the
+        project without them) are put into our ``test-requirements.txt`` file (so
+        that we can still test the optional functionality works as expected). If
+        you want to use the feature in question (`eventlet`_ or the worker based engine
+        that uses `kombu`_ or the `sqlalchemy`_ persistence backend or jobboards which
+        have an implementation built using `kazoo`_ ...), you should add
+        that requirement(s) to your project or environment.
+        
+        Tox.ini
+        ~~~~~~~
+        
+        Our ``tox.ini`` file describes several test environments that allow to test
+        TaskFlow with different python versions and sets of requirements installed.
+        Please refer to the `tox`_ documentation to understand how to make these test
+        environments work for you.
+        
+        Developer documentation
+        -----------------------
+        
+        We also have sphinx documentation in ``docs/source``.
+        
+        *To build it, run:*
+        
+        ::
+        
+            $ python setup.py build_sphinx
+        
+        .. _kazoo: https://kazoo.readthedocs.io/en/latest/
+        .. _sqlalchemy: https://www.sqlalchemy.org/
+        .. _kombu: https://kombu.readthedocs.io/en/latest/
+        .. _eventlet: http://eventlet.net/
+        .. _tox: https://tox.testrun.org/
+        
+        
+Keywords: reliable,tasks,execution,parallel,dataflow,workflows,distributed
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Environment :: OpenStack
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Information Technology
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Topic :: Software Development :: Libraries
+Classifier: Topic :: System :: Distributed Computing
+Requires-Python: >=3.8
+Provides-Extra: database
+Provides-Extra: eventlet
+Provides-Extra: redis
+Provides-Extra: test
+Provides-Extra: workers
+Provides-Extra: zookeeper
diff -pruN 5.1.0-1/debian/changelog 5.1.0-0ubuntu1/debian/changelog
--- 5.1.0-1/debian/changelog	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/changelog	2023-01-06 22:12:04.000000000 +0000
@@ -1,135 +1,147 @@
-python-taskflow (5.1.0-1) experimental; urgency=medium
+python-taskflow (5.1.0-0ubuntu1) lunar; urgency=medium
 
-  * New upstream release.
-  * Removed patch applied upstream:
-    - Adapt-to-new-jsonschema-versions.patch
-    - py3.11_Fix-test_while_is_not.patch
-
- -- Thomas Goirand <zigo@debian.org>  Mon, 27 Feb 2023 09:31:42 +0100
+  * New upstream release for OpenStack Antelope.
+  * d/p/adapt-to-new-jsonschema-versions.patch: Dropped. No longer needed.
 
-python-taskflow (5.0.0-3) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 06 Jan 2023 17:12:04 -0500
 
-  * Add py3.11_Fix-test_while_is_not.patch (Closes: #1025126).
+python-taskflow (5.0.0-0ubuntu1) kinetic; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 09 Dec 2022 11:22:43 +0100
+  * New upstream release for OpenStack Zed.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/adapt-to-new-jsonschema-versions.patch: Updates to work with
+    new jsonschema.
+  * d/p/*: Rebased.
 
-python-taskflow (5.0.0-2) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 02 Aug 2022 16:13:39 -0400
 
-  * Uploading to unstable.
+python-taskflow (4.6.4-0ubuntu3) kinetic; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 23 Sep 2022 12:16:16 +0200
+  * d/t/control: Switch test name from python-ostestr to python-stestr.
 
-python-taskflow (5.0.0-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 21 Jun 2022 10:19:38 -0400
 
-  * New upstream release.
-  * Removed python3-six from (build-)depends.
+python-taskflow (4.6.4-0ubuntu2) kinetic; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 30 Aug 2022 12:16:30 +0200
+  * d/t/control, d/t/python-(o)stestr: Switch from ostestr to stestr.
 
-python-taskflow (4.7.0-1) experimental; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 13 Jun 2022 09:15:12 -0400
 
-  * New upstream release.
-  * Set min version of python3-fasteners to 0.17.3.
+python-taskflow (4.6.4-0ubuntu1) jammy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 30 Aug 2022 12:09:36 +0200
+  * New upstream release for OpenStack Yoga.
 
-python-taskflow (4.6.4-3) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 02 Mar 2022 15:51:50 -0500
 
-  * Refreshed patches.
-  * Add Adapt-to-new-jsonschema-versions.patch (Closes: #1016228).
-  * Add autopkgtest.
+python-taskflow (4.6.3-0ubuntu1) jammy; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Sun, 31 Jul 2022 12:57:31 +0200
+  * New upstream release for OpenStack Yoga.
+  * d/control: Bump debhelper compat to 13.
+  * d/control: Align (Build-)Depends with upstream.
 
-python-taskflow (4.6.4-2) unstable; urgency=medium
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 08 Dec 2021 10:12:01 -0500
 
-  * Uploading to unstable.
+python-taskflow (4.6.0-0ubuntu1) hirsute; urgency=medium
 
- -- Thomas Goirand <zigo@debian.org>  Thu, 24 Mar 2022 10:59:02 +0100
+  [ Chris MacNaughton ]
+  * d/control: Update VCS paths for move to lp:~ubuntu-openstack-dev.
 
-python-taskflow (4.6.4-1) experimental; urgency=medium
+  [ Corey Bryant ]
+  * New upstream release for OpenStack Wallaby.
 
-  * New upstream release.
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 17 Mar 2021 10:45:47 -0400
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 19 Feb 2022 10:58:53 +0100
+python-taskflow (4.5.0-0ubuntu1) groovy; urgency=medium
 
-python-taskflow (4.6.2-2) unstable; urgency=medium
+  * New upstream release for OpenStack Victoria.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/*: Rebased.
 
-  * Uploading to unstable.
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 18 Sep 2020 12:38:56 -0400
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 29 Sep 2021 11:45:46 +0200
+python-taskflow (4.4.0-0ubuntu1) groovy; urgency=medium
 
-python-taskflow (4.6.2-1) experimental; urgency=medium
+  * New upstream release for OpenStack Victoria.
 
-  * New upstream release.
+ -- Chris MacNaughton <chris.macnaughton@canonical.com>  Thu, 03 Sep 2020 08:53:56 +0000
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 07 Sep 2021 11:02:23 +0200
+python-taskflow (4.3.1-0ubuntu1) groovy; urgency=medium
 
-python-taskflow (4.6.1-1) experimental; urgency=medium
+  [ Chris MacNaughton ]
+  * New upstream release for OpenStack Victoria.
+  * d/control: Align (Build-)Depends with upstream.
 
-  * New upstream release.
-  * Removed python3-mock from build-depends.
-  * Requires SQLA 1.4.
-  * Set minimum sqlalchemy-utils to >= 0.37.
+  [ Corey Bryant ]
+  * d/control: Restore previous min version of python3-sqlalchemy-utils BD.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 24 Aug 2021 11:21:21 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 29 Jul 2020 14:01:41 -0400
 
-python-taskflow (4.6.0-2) unstable; urgency=medium
+python-taskflow (4.2.0-0ubuntu2) groovy; urgency=medium
 
-  * Upload to unstable.
+  * d/control: Add depends on python3-sqlalchemy-utils.
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 16 Aug 2021 09:48:27 +0200
+ -- Chris MacNaughton <chris.macnaughton@canonical.com>  Tue, 21 Jul 2020 14:59:33 +0000
 
-python-taskflow (4.6.0-1) experimental; urgency=medium
+python-taskflow (4.2.0-0ubuntu1) groovy; urgency=medium
 
-  * New upstream release.
-  * Removed (build-)depends versions when satisfied in Bullseye.
+  * New upstream release for OpenStack Victoria.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/control, d/rules: Switch to debhelper compat 13 and pybuild.
+  * d/control: Update Standards-Version to 4.5.0.
 
- -- Thomas Goirand <zigo@debian.org>  Mon, 08 Mar 2021 13:08:26 +0100
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 12 Jun 2020 13:23:18 -0400
 
-python-taskflow (4.5.0-3) unstable; urgency=medium
+python-taskflow (4.1.0-0ubuntu2) groovy; urgency=medium
 
-  * Added Restrictions: superficial to d/tests/control (Closes: #974511).
+  * Move python3-kazoo to Suggests (LP: #1880705)
 
- -- Thomas Goirand <zigo@debian.org>  Sat, 21 Nov 2020 00:05:12 +0100
+ -- Chris MacNaughton <chris.macnaughton@canonical.com>  Wed, 27 May 2020 14:02:53 +0100
 
-python-taskflow (4.5.0-2) unstable; urgency=medium
+python-taskflow (4.1.0-0ubuntu1) focal; urgency=medium
 
-  * Fixed debian/watch.
-  * Uploading to unstable.
-  * Add a debian/salsa-ci.yml.
+  * New upstream release for OpenStack Ussuri.
+  * d/control: Align (Build-)Depends with upstream.
 
- -- Thomas Goirand <zigo@debian.org>  Wed, 14 Oct 2020 14:21:42 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 10 Apr 2020 10:06:26 -0400
 
-python-taskflow (4.5.0-1) experimental; urgency=medium
+python-taskflow (4.0.0-0ubuntu1) focal; urgency=medium
 
-  * New upstream release.
-  * Fixed (build-)depends for this release.
+  * New upstream release for OpenStack Ussuri.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/*: Rebased.
 
- -- Thomas Goirand <zigo@debian.org>  Sun, 13 Sep 2020 14:46:42 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 11 Mar 2020 16:36:28 -0400
 
-python-taskflow (4.4.0-1) experimental; urgency=medium
+python-taskflow (3.8.0-0ubuntu2) focal; urgency=medium
 
-  * New upstream release.
-  * Set minimum version for python3-jsonschema.
+  * d/control: Drop Depends on python3-pydot as it's in Suggests and switch
+    Recommends to python3.
 
- -- Thomas Goirand <zigo@debian.org>  Tue, 08 Sep 2020 08:35:53 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 23 Jan 2020 15:59:26 -0500
 
-python-taskflow (4.1.0-2) unstable; urgency=medium
+python-taskflow (3.8.0-0ubuntu1) focal; urgency=low
 
-  * Uploading to unstable.
+  * Merge from Debian unstable.  Remaining changes:
+    - d/control, d/tests/*: Add import and unit test autopkgtests.
+    - d/control: Move python3-pydot(plus) to Suggests as they're only
+      required for tools/state_graph.py, and aren't in Ubuntu main.
+    - d/gbp.conf: Retain for gbp and pristine-tar config.
+    - d/p/0003-Pass-digest-to-hmac.new.patch: Fix working with Python 3.8
+      by passing digest to hmac.new() (LP: #1852317)
+    - d/p/move-test-requirements-out-of-runtime-requirements.patch:
+      Move stestr and pydot from runtime requirements to test requirements,
+      avoiding pulling these two packages into Ubuntu main.
+    - d/watch: Get tarball from tarballs.openstack.org.
+    - d/control: Drop python3-contextlib2 as it is only needed for < python3.0.
+    - d/control,python-taskflow-doc.links: Use generated assets for
+      documentation rather than using libjs-* packages.
+  * New upstream release for OpenStack Ussuri.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/0003-Pass-digest-to-hmac.new.patch,
+    d/p/fix-networkx-2.x-compatibility.patch,
+    d/p/fix-py38-hmac-compatibility.patch: Dropped. Fixed in upstream release.
 
- -- Thomas Goirand <zigo@debian.org>  Fri, 08 May 2020 11:58:58 +0200
-
-python-taskflow (4.1.0-1) experimental; urgency=medium
-
-  * New upstream release.
-  * Fixed (build-)depends for this release.
-  * Removed patches applied upstream:
-    - fix-py38-hmac-compatibility.patch
-    - fix-networkx-2.x-compatibility.patch    
-
- -- Thomas Goirand <zigo@debian.org>  Mon, 06 Apr 2020 22:59:02 +0200
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 12 Dec 2019 17:10:29 -0500
 
 python-taskflow (3.7.1-4) unstable; urgency=medium
 
@@ -162,6 +174,45 @@ python-taskflow (3.7.1-1) experimental;
 
  -- Thomas Goirand <zigo@debian.org>  Wed, 18 Sep 2019 22:26:28 +0200
 
+python-taskflow (3.7.1-0ubuntu3) focal; urgency=medium
+
+  * Fix working with Python 3.8 by passing digest to hmac.new()
+    (LP: #1852317)
+
+ -- Balint Reczey <rbalint@ubuntu.com>  Tue, 12 Nov 2019 16:52:52 +0100
+
+python-taskflow (3.7.1-0ubuntu2) eoan; urgency=medium
+
+  * d/p/python-ostestr: Drop py2 tests as package no longer ships a py2
+    module.
+
+ -- James Page <james.page@ubuntu.com>  Wed, 02 Oct 2019 08:16:42 +0100
+
+python-taskflow (3.7.1-0ubuntu1) eoan; urgency=medium
+
+  * New upstream release for OpenStack Train.
+
+ -- James Page <james.page@ubuntu.com>  Thu, 26 Sep 2019 10:36:29 +0100
+
+python-taskflow (3.7.0-0ubuntu3) eoan; urgency=medium
+
+  * d/control: Drop python3-contextlib2 as it is only needed for < python3.0.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 13 Aug 2019 15:36:07 -0400
+
+python-taskflow (3.7.0-0ubuntu2) eoan; urgency=medium
+
+  * d/control, d/rules, d/pydist-overrides: Drop Python 2 support.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 10 Jul 2019 17:11:29 -0400
+
+python-taskflow (3.7.0-0ubuntu1) eoan; urgency=medium
+
+  * New upstream release for OpenStack Stein.
+  * d/p/*: Refresh.
+
+ -- James Page <james.page@ubuntu.com>  Wed, 05 Jun 2019 15:11:16 +0100
+
 python-taskflow (3.4.0-2) unstable; urgency=medium
 
   * Uploading to unstable.
@@ -176,6 +227,28 @@ python-taskflow (3.4.0-1) experimental;
 
  -- Thomas Goirand <zigo@debian.org>  Wed, 27 Mar 2019 13:41:21 +0100
 
+python-taskflow (3.4.0-0ubuntu1) disco; urgency=medium
+
+  * New upstream release for OpenStack Stein.
+  * d/p/*: Refresh.
+
+ -- James Page <james.page@ubuntu.com>  Fri, 22 Mar 2019 14:11:03 +0000
+
+python-taskflow (3.3.1-0ubuntu2) disco; urgency=medium
+
+  * d/p/move-test-requirements-out-of-runtime-requirements.patch:
+    Move stestr and pydot from runtime requirements to test requirements,
+    avoiding pulling these two packages into Ubuntu main.
+
+ -- James Page <james.page@ubuntu.com>  Tue, 20 Nov 2018 14:24:02 +0000
+
+python-taskflow (3.3.1-0ubuntu1) disco; urgency=medium
+
+  * New upstream release for OpenStack Stein.
+  * d/control: Switch to stestr for unit tests.
+
+ -- James Page <james.page@ubuntu.com>  Tue, 20 Nov 2018 10:39:18 +0000
+
 python-taskflow (3.2.0-3) unstable; urgency=medium
 
   * Add patch to fix StrEnum class that is breaking multiple packages at
@@ -202,6 +275,29 @@ python-taskflow (3.2.0-1) unstable; urge
 
  -- Thomas Goirand <zigo@debian.org>  Fri, 07 Sep 2018 12:11:00 +0200
 
+python-taskflow (3.2.0-0ubuntu2) cosmic; urgency=medium
+
+  * d/control,python-taskflow-doc.links: Use generated assets for
+    documentation rather than using libjs-* packages.
+
+ -- James Page <james.page@ubuntu.com>  Tue, 14 Aug 2018 14:16:01 +0100
+
+python-taskflow (3.2.0-0ubuntu1) cosmic; urgency=low
+
+  * Merge from Debian unstable.  Remaining changes:
+    - d/control: Enable autopkgtest-pkg-python testsuite.
+    - d/control: Move python-pydotplus to Suggests as it is only required
+      for tools/state_graph.py, and it is not in Ubuntu main.
+    - d/gbp.conf: Retain for gbp and pristine-tar config.
+    - d/watch: Get tarball from tarballs.openstack.org.
+    - d/tests/*: Replace python-taskflow with python-ostestr as it has
+      better coverage.
+  * New upstream release.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/p/fix-networkx-2-support.patch: Dropped. Fixed in new upstream release.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 07 Aug 2018 09:32:59 -0400
+
 python-taskflow (3.1.0-5) unstable; urgency=medium
 
   * Fix description in fix-networkx-2-support.patch (Closes: #902985).
@@ -257,6 +353,73 @@ python-taskflow (3.1.0-1) experimental;
 
  -- Thomas Goirand <zigo@debian.org>  Thu, 15 Feb 2018 09:05:20 +0000
 
+python-taskflow (3.1.0-0ubuntu6) cosmic; urgency=medium
+
+  * Tweak 5f4c3d67335d3d28f8c27a5bbf95656615ad9143.patch to make it build.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org>  Tue, 03 Jul 2018 10:01:13 +0200
+
+python-taskflow (3.1.0-0ubuntu5) cosmic; urgency=medium
+
+  * debian/patches/5f4c3d67335d3d28f8c27a5bbf95656615ad9143.patch:
+    - upstream-proposed patch to make it compatible with networkx2
+    - add pydot to dependencies
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org>  Thu, 28 Jun 2018 16:09:16 +0200
+
+python-taskflow (3.1.0-0ubuntu4) cosmic; urgency=medium
+
+  * d/tests/*,d/control: Add autopkgtests to exercise import and unit
+    tests as part of Ubuntu CI, resolving current failures.
+  * d/p/oslo.serialization-compat.patch: Cherry pick fix for compat
+    with oslo.serialization 2.26.0.
+
+ -- James Page <james.page@ubuntu.com>  Tue, 19 Jun 2018 23:35:12 +0100
+
+python-taskflow (3.1.0-0ubuntu3) cosmic; urgency=medium
+
+  * d/tests/control: Use @builddeps@ when executing unit tests.
+
+ -- James Page <james.page@ubuntu.com>  Tue, 19 Jun 2018 15:57:36 +0100
+
+python-taskflow (3.1.0-0ubuntu2) bionic; urgency=medium
+
+  * d/rules: Set PYTHONPATH to CURDIR for override_dh_auto_test and
+    override_dh_sphinxdoc. This fixes "ImportError: No module named taskflow"
+    for test_resume_many_flows.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Wed, 11 Apr 2018 12:35:25 -0400
+
+python-taskflow (3.1.0-0ubuntu1) bionic; urgency=medium
+
+  * New upstream release.
+  * d/*: wrap-and-sort -bast.
+  * d/control: Align (Build-)Depends with upstream.
+  * d/control: Update Standards-Version to 4.1.2.
+  * d/control: Bump debhelper compat to 10.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 25 Jan 2018 09:19:52 -0500
+
+python-taskflow (2.17.0-0ubuntu2) bionic; urgency=medium
+
+  * d/p/*: Drop, revert being held in oslo.serialization until
+    OpenStack projects are compatible with oslo.serialization >= 2.21.2.
+
+ -- James Page <james.page@ubuntu.com>  Mon, 11 Dec 2017 09:09:43 +0000
+
+python-taskflow (2.17.0-0ubuntu1) bionic; urgency=medium
+
+  * New upstream release.
+  * Align (Build-)Depends with upstream milestone.
+  * d/p/*: Drop, no longer needed.
+  * d/control: Fixup alembic runtime depends.
+  * d/control: wrap-and-sort -at
+  * d/p/oslo.serialization-2.21.2-compat.patch: Fix compatibility
+    with oslo.serialization >= 2.21.2 (LP: #1736394).
+  * d/control: Add python-openstackdocstheme to BD's.
+
+ -- James Page <james.page@ubuntu.com>  Tue, 05 Dec 2017 13:10:32 +0000
+
 python-taskflow (2.14.0-1) experimental; urgency=medium
 
   [ Ondřej Nový ]
@@ -284,6 +447,73 @@ python-taskflow (2.14.0-1) experimental;
 
  -- Thomas Goirand <zigo@debian.org>  Sat, 07 Oct 2017 11:44:18 +0200
 
+python-taskflow (2.14.0-0ubuntu1) artful; urgency=medium
+
+  * New upstream release.
+  * d/p/drop-openstackdoctheme.patch: Temporarily drop openstackdocstheme
+    sphinx extension until sphinx>=1.6.2 is available.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Tue, 15 Aug 2017 17:00:17 -0400
+
+python-taskflow (2.13.0-0ubuntu1) artful; urgency=medium
+
+  * New upstream release.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Fri, 07 Jul 2017 15:49:20 -0400
+
+python-taskflow (2.11.0-0ubuntu1) artful; urgency=medium
+
+  * d/watch: Use tarballs.openstack.org.
+  * New upstream release.
+  * Align (Build-)Depends with upstream milestone.
+
+ -- James Page <james.page@ubuntu.com>  Fri, 02 Jun 2017 09:23:00 +0100
+
+python-taskflow (2.9.0-0ubuntu1) zesty; urgency=medium
+
+  * New upstream release.
+
+ -- Chuck Short <zulcss@ubuntu.com>  Mon, 23 Jan 2017 10:12:57 -0500
+
+python-taskflow (2.8.0-0ubuntu1) zesty; urgency=medium
+
+  * New upstream release.
+  * d/control: Align (Build-)Depends with upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 05 Dec 2016 11:01:39 -0500
+
+python-taskflow (2.7.0-0ubuntu1) zesty; urgency=medium
+
+  * d/gbp.conf: Update gbp configuration file.
+  * d/control: Update Vcs-* links and maintainers.
+  * New upstream release.
+  * d/control: Align (Build-)Depends with upstream.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Thu, 20 Oct 2016 09:35:30 -0400
+
+python-taskflow (2.3.0-1ubuntu1) yakkety; urgency=medium
+
+  * d/control: Move python-pydotplus to Suggests as it is only required
+    for tools/state_graph.py, and it is not in Ubuntu main.
+
+ -- Corey Bryant <corey.bryant@canonical.com>  Mon, 03 Oct 2016 13:14:33 -0400
+
+python-taskflow (2.3.0-1) experimental; urgency=medium
+
+  [ Ondřej Nový ]
+  * Standards-Version is 3.9.8 now (no change)
+  * Added missing Debian tests dependencies
+  * Added Python module import Debian tests
+  * d/rules: Changed UPSTREAM_GIT protocol to https
+  * d/copyright: Changed source URL to https protocol
+
+  [ Thomas Goirand ]
+  * New upstream release.
+  * Fixed (build-)depends for this release.
+  * Using pkgos-dh_auto_{test,install} from openstack-pkg-tools >= 52~.
+
+ -- Thomas Goirand <zigo@debian.org>  Wed, 13 Jul 2016 21:47:19 +0200
+
 python-taskflow (1.30.0-2) unstable; urgency=medium
 
   * Uploading to unstable.
@@ -451,3 +681,4 @@ python-taskflow (0.1.2-1) unstable; urge
   * Initial release.
 
  -- Thomas Goirand <zigo@debian.org>  Fri, 24 Jan 2014 22:06:31 +0800
+
diff -pruN 5.1.0-1/debian/control 5.1.0-0ubuntu1/debian/control
--- 5.1.0-1/debian/control	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/control	2023-01-06 22:12:04.000000000 +0000
@@ -1,62 +1,63 @@
 Source: python-taskflow
 Section: python
 Priority: optional
-Maintainer: Debian OpenStack <team+openstack@tracker.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian OpenStack <team+openstack@tracker.debian.org>
 Uploaders:
  Thomas Goirand <zigo@debian.org>,
  Michal Arbet <michal.arbet@ultimum.io>,
 Build-Depends:
- debhelper-compat (= 10),
+ debhelper-compat (= 13),
  dh-python,
  openstack-pkg-tools,
  python3-all,
- python3-pbr,
+ python3-pbr (>= 2.0.0),
  python3-setuptools,
- python3-sphinx,
+ python3-sphinx (>= 2.0.0),
 Build-Depends-Indep:
  alembic,
- python3-alembic,
- python3-automaton,
- python3-cachetools,
+ python3-alembic (>= 0.8.10),
+ python3-automaton (>= 1.9.0),
+ python3-cachetools (>= 2.0.0),
  python3-coverage,
- python3-eventlet,
+ python3-eventlet (>= 0.18.2),
  python3-fasteners (>= 0.17.3),
- python3-futurist,
- python3-hacking,
- python3-jsonschema,
- python3-kazoo,
- python3-kombu,
+ python3-futurist (>= 1.2.0),
+ python3-jsonschema (>= 3.2.0),
+ python3-kazoo (>= 2.6.0),
+ python3-kombu (>= 4.3.0),
  python3-netifaces,
- python3-networkx,
- python3-openstackdocstheme,
- python3-oslo.serialization,
- python3-oslo.utils,
- python3-oslotest,
- python3-psycopg2,
- python3-pydot,
- python3-pymysql,
- python3-redis,
- python3-sqlalchemy (>= 1.4),
- python3-sqlalchemy-utils (>= 0.37),
- python3-stestr,
- python3-stevedore,
+ python3-networkx (>= 2.1.0),
+ python3-openstackdocstheme (>= 2.2.1),
+ python3-oslo.serialization (>= 2.18.0),
+ python3-oslo.utils (>= 3.33.0),
+ python3-oslotest (>= 1:3.2.0),
+ python3-psycopg2 (>= 2.8.0),
+ python3-pydot (>= 1.2.4),
+ python3-pydotplus (>= 2.0.2),
+ python3-pymysql (>= 0.7.6),
+ python3-redis (>= 2.10.0),
+ python3-six (>= 1.10.0),
+ python3-sqlalchemy (>= 1.0.10),
+ python3-sqlalchemy-utils (>= 0.36.1-0ubuntu2~),
+ python3-stestr (>= 2.0.0),
+ python3-stevedore (>= 1:1.20.0),
  python3-subunit,
- python3-tenacity,
- python3-testscenarios,
- python3-testtools,
- python3-zake,
+ python3-tenacity (>= 6.0.0),
+ python3-testscenarios (>= 0.4),
+ python3-testtools (>= 2.2.0),
+ python3-zake (>= 0.1.6),
  subunit,
-Standards-Version: 4.5.1
-Vcs-Browser: https://salsa.debian.org/openstack-team/libs/python-taskflow
-Vcs-Git: https://salsa.debian.org/openstack-team/libs/python-taskflow.git
+Standards-Version: 4.5.0
+Vcs-Browser: https://git.launchpad.net/~ubuntu-openstack-dev/ubuntu/+source/python-taskflow
+Vcs-Git: https://git.launchpad.net/~ubuntu-openstack-dev/ubuntu/+source/python-taskflow
 Homepage: https://github.com/openstack/taskflow
+Testsuite: autopkgtest-pkg-python
 
 Package: python-taskflow-doc
 Section: doc
 Architecture: all
 Depends:
- libjs-bootstrap,
- libjs-jquery,
  ${misc:Depends},
  ${sphinxdoc:Depends},
 Description: Taskflow structured state management library - doc
@@ -71,28 +72,32 @@ Architecture: all
 Depends:
  alembic,
  python3-alembic,
- python3-automaton,
- python3-cachetools,
+ python3-automaton (>= 1.9.0),
+ python3-cachetools (>= 2.0.0),
  python3-eventlet,
  python3-fasteners (>= 0.17.3),
- python3-futurist,
- python3-jsonschema,
- python3-kazoo,
+ python3-futurist (>= 1.2.0),
+ python3-jsonschema (>= 3.2.0),
  python3-kombu,
- python3-networkx,
- python3-oslo.serialization,
- python3-oslo.utils,
- python3-pbr,
+ python3-networkx (>= 2.1.0),
+ python3-oslo.serialization (>= 2.18.0),
+ python3-oslo.utils (>= 3.33.0),
+ python3-pbr (>= 2.0.0),
  python3-psycopg2,
- python3-pydot,
  python3-pymysql,
- python3-sqlalchemy (>= 1.4),
- python3-stevedore,
- python3-tenacity,
+ python3-six (>= 1.10.0),
+ python3-sqlalchemy,
+ python3-sqlalchemy-utils (>= 0.36.1-0ubuntu2~),
+ python3-stevedore (>= 1:1.20.0),
+ python3-tenacity (>= 6.0.0),
  ${misc:Depends},
  ${python3:Depends},
 Recommends:
- ${python:Recommends},
+ ${python3:Recommends},
+Suggests:
+ python3-kazoo,
+ python3-pydot,
+ python3-pydotplus,
 Description: Taskflow structured state management library - Python 3.x
  TaskFlow, is a library to do [jobs, tasks, flows] in a HA manner
  using different backends to be used with OpenStack projects.
diff -pruN 5.1.0-1/debian/gbp.conf 5.1.0-0ubuntu1/debian/gbp.conf
--- 5.1.0-1/debian/gbp.conf	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/gbp.conf	2023-01-06 22:12:04.000000000 +0000
@@ -0,0 +1,7 @@
+[DEFAULT]
+debian-branch = master
+upstream-tag = %(version)s
+pristine-tar = True
+
+[buildpackage]
+export-dir = ../build-area
diff -pruN 5.1.0-1/debian/patches/move-test-requirements-out-of-runtime-requirements.patch 5.1.0-0ubuntu1/debian/patches/move-test-requirements-out-of-runtime-requirements.patch
--- 5.1.0-1/debian/patches/move-test-requirements-out-of-runtime-requirements.patch	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/patches/move-test-requirements-out-of-runtime-requirements.patch	2023-01-06 22:12:04.000000000 +0000
@@ -0,0 +1,31 @@
+From 74db4d924bb6204395b9803e6168caa953896b2b Mon Sep 17 00:00:00 2001
+From: James Page <james.page@ubuntu.com>
+Date: Tue, 20 Nov 2018 14:05:37 +0000
+Subject: [PATCH] Move test requirements out of runtime requirements
+
+pydot and stestr are test requirements for taskflow; drop
+from requirements.txt.
+---
+ requirements.txt      | 6 ------
+ test-requirements.txt | 1 +
+ 2 files changed, 1 insertion(+), 6 deletions(-)
+
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -32,6 +32,3 @@
+ 
+ # For lru caches and such
+ cachetools>=2.0.0 # MIT License
+-
+-# For pydot output tests
+-pydot>=1.2.4 # MIT License
+--- a/test-requirements.txt
++++ b/test-requirements.txt
+@@ -23,6 +23,7 @@
+ psycopg2>=2.8.0 # LGPL/ZPL
+ 
+ # test
++pydot>=1.2.4 # MIT License
+ pydotplus>=2.0.2 # MIT License
+ hacking<2.1,>=2.0
+ oslotest>=3.2.0 # Apache-2.0
diff -pruN 5.1.0-1/debian/patches/remove-bad-enum.py-calls.patch 5.1.0-0ubuntu1/debian/patches/remove-bad-enum.py-calls.patch
--- 5.1.0-1/debian/patches/remove-bad-enum.py-calls.patch	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/patches/remove-bad-enum.py-calls.patch	2023-01-06 22:12:04.000000000 +0000
@@ -4,11 +4,9 @@ Forwarded: no
 Bug-Debian: https://bugs.debian.org/910447
 Last-Update: 2018-10-07
 
-Index: python-taskflow/taskflow/utils/misc.py
-===================================================================
---- python-taskflow.orig/taskflow/utils/misc.py
-+++ python-taskflow/taskflow/utils/misc.py
-@@ -49,13 +49,6 @@ _SCHEME_REGEX = re.compile(r"^([A-Za-z][
+--- a/taskflow/utils/misc.py
++++ b/taskflow/utils/misc.py
+@@ -50,13 +50,6 @@
  class StrEnum(str, enum.Enum):
      """An enumeration that is also a string and can be compared to strings."""
  
@@ -20,5 +18,5 @@ Index: python-taskflow/taskflow/utils/mi
 -        return super(StrEnum, cls).__new__(cls, *args, **kwargs)
 -
  
- class StringIO(six.StringIO):
+ class StringIO(io.StringIO):
      """String buffer with some small additions."""
diff -pruN 5.1.0-1/debian/patches/reproducible_build.patch 5.1.0-0ubuntu1/debian/patches/reproducible_build.patch
--- 5.1.0-1/debian/patches/reproducible_build.patch	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/patches/reproducible_build.patch	2023-01-06 22:12:04.000000000 +0000
@@ -3,11 +3,9 @@ Author: Chris Lamb <lamby@debian.org>
 Forwarded: https://review.openstack.org/600702
 Last-Update: 2017-04-15
 
-Index: python-taskflow/taskflow/conductors/backends/impl_executor.py
-===================================================================
---- python-taskflow.orig/taskflow/conductors/backends/impl_executor.py
-+++ python-taskflow/taskflow/conductors/backends/impl_executor.py
-@@ -103,7 +103,9 @@ class ExecutorConductor(base.Conductor,
+--- a/taskflow/conductors/backends/impl_executor.py
++++ b/taskflow/conductors/backends/impl_executor.py
+@@ -103,7 +103,9 @@
      def __init__(self, name, jobboard,
                   persistence=None, engine=None,
                   engine_options=None, wait_timeout=None,
diff -pruN 5.1.0-1/debian/patches/series 5.1.0-0ubuntu1/debian/patches/series
--- 5.1.0-1/debian/patches/series	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/patches/series	2023-01-06 22:12:04.000000000 +0000
@@ -1 +1,3 @@
 reproducible_build.patch
+move-test-requirements-out-of-runtime-requirements.patch
+remove-bad-enum.py-calls.patch
diff -pruN 5.1.0-1/debian/python-taskflow-doc.links 5.1.0-0ubuntu1/debian/python-taskflow-doc.links
--- 5.1.0-1/debian/python-taskflow-doc.links	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/python-taskflow-doc.links	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-usr/share/javascript/bootstrap/js/bootstrap.js usr/share/doc/python-taskflow-doc/html/_static/js/bootstrap.js
-usr/share/javascript/bootstrap/js/bootstrap.min.js usr/share/doc/python-taskflow-doc/html/_static/js/bootstrap.min.js
-usr/share/javascript/jquery/jquery.js usr/share/doc/python-taskflow-doc/html/_static/js/jquery-3.2.1.js
-usr/share/javascript/jquery/jquery.min.js usr/share/doc/python-taskflow-doc/html/_static/js/jquery-3.2.1.min.js
diff -pruN 5.1.0-1/debian/rules 5.1.0-0ubuntu1/debian/rules
--- 5.1.0-1/debian/rules	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/rules	2023-01-06 22:12:04.000000000 +0000
@@ -1,10 +1,12 @@
 #!/usr/bin/make -f
 
+export PYBUILD_NAME=taskflow
+
 UPSTREAM_GIT := https://github.com/openstack/taskflow.git
 include /usr/share/openstack-pkg-tools/pkgos.make
 
 %:
-	dh $@ --buildsystem=python_distutils --with python3,sphinxdoc
+	dh $@ --buildsystem=pybuild --with python3,sphinxdoc
 
 override_dh_auto_clean:
 	find . -iname '*.pyc' -delete
diff -pruN 5.1.0-1/debian/salsa-ci.yml 5.1.0-0ubuntu1/debian/salsa-ci.yml
--- 5.1.0-1/debian/salsa-ci.yml	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/salsa-ci.yml	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-include:
-  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
-  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
diff -pruN 5.1.0-1/debian/tests/control 5.1.0-0ubuntu1/debian/tests/control
--- 5.1.0-1/debian/tests/control	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/tests/control	2023-01-06 22:12:04.000000000 +0000
@@ -1,4 +1,3 @@
-Tests: unittests
-Depends:
- @builddeps@,
-Restrictions: allow-stderr needs-root
+Tests: python-stestr
+Depends: @, @builddeps@
+Restrictions: allow-stderr, needs-recommends
diff -pruN 5.1.0-1/debian/tests/python-stestr 5.1.0-0ubuntu1/debian/tests/python-stestr
--- 5.1.0-1/debian/tests/python-stestr	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/tests/python-stestr	2023-01-06 22:12:04.000000000 +0000
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -ex
+
+for py in $(py3versions -r 2>/dev/null); do
+    echo "Testing with $py:"
+    PYTHON=$py stestr run
+    rm -rf .stestr
+done
diff -pruN 5.1.0-1/debian/tests/unittests 5.1.0-0ubuntu1/debian/tests/unittests
--- 5.1.0-1/debian/tests/unittests	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/tests/unittests	1970-01-01 00:00:00.000000000 +0000
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-set -e
-set -x
-export OSLO_PACKAGE_VERSION=$(dpkg-parsechangelog -SVersion | sed -e 's/^[[:digit:]]*://' -e 's/[-].*//' -e 's/~git.*//' -e 's/~/.0/' -e 's/+dfsg1//' -e 's/+ds1//' | head -n 1)
-
-CWD=$(pwd)
-
-python3 setup.py install -f --install-layout=deb --root=$(CURDIR)/debian/tmp
-pkgos-dh_auto_test --no-py2 'taskflow\.tests\.(?!(.*test_examples\.ExamplesTestCase.*|.*worker_based\.test_protocol\.TestProtocol\.test_to_dict_with_invalid_json_failures.*))'
diff -pruN 5.1.0-1/debian/watch 5.1.0-0ubuntu1/debian/watch
--- 5.1.0-1/debian/watch	2023-02-27 08:31:42.000000000 +0000
+++ 5.1.0-0ubuntu1/debian/watch	2023-01-06 22:12:04.000000000 +0000
@@ -1,3 +1,3 @@
 version=3
-opts="uversionmangle=s/\.0rc/~rc/;s/\.0b1/~b1/;s/\.0b2/~b2/;s/\.0b3/~b3/" \
-https://github.com/openstack/taskflow/tags .*/(\d[brc\d\.]+)\.tar\.gz
+opts="uversionmangle=s/\.(b|rc)/~$1/" \
+    http://tarballs.openstack.org/taskflow/ taskflow-(\d.*)\.tar\.gz
diff -pruN 5.1.0-1/setup.cfg 5.1.0-0ubuntu1/setup.cfg
--- 5.1.0-1/setup.cfg	2022-12-05 17:21:48.000000000 +0000
+++ 5.1.0-0ubuntu1/setup.cfg	2023-01-05 10:10:08.177206300 +0000
@@ -1,81 +1,81 @@
 [metadata]
 name = taskflow
 summary = Taskflow structured state management library.
-description_file =
-    README.rst
+description_file = 
+	README.rst
 author = OpenStack
 author_email = openstack-discuss@lists.openstack.org
 home_page = https://docs.openstack.org/taskflow/latest/
 keywords = reliable,tasks,execution,parallel,dataflow,workflows,distributed
 python_requires = >=3.8
-classifier =
-    Development Status :: 4 - Beta
-    Environment :: OpenStack
-    Intended Audience :: Developers
-    Intended Audience :: Information Technology
-    License :: OSI Approved :: Apache Software License
-    Operating System :: POSIX :: Linux
-    Programming Language :: Python
-    Programming Language :: Python :: 3
-    Programming Language :: Python :: 3.8
-    Programming Language :: Python :: 3.9
-    Programming Language :: Python :: 3 :: Only
-    Programming Language :: Python :: Implementation :: CPython
-    Topic :: Software Development :: Libraries
-    Topic :: System :: Distributed Computing
+classifier = 
+	Development Status :: 4 - Beta
+	Environment :: OpenStack
+	Intended Audience :: Developers
+	Intended Audience :: Information Technology
+	License :: OSI Approved :: Apache Software License
+	Operating System :: POSIX :: Linux
+	Programming Language :: Python
+	Programming Language :: Python :: 3
+	Programming Language :: Python :: 3.8
+	Programming Language :: Python :: 3.9
+	Programming Language :: Python :: 3 :: Only
+	Programming Language :: Python :: Implementation :: CPython
+	Topic :: Software Development :: Libraries
+	Topic :: System :: Distributed Computing
 
 [files]
-packages =
-    taskflow
+packages = 
+	taskflow
 
 [entry_points]
-taskflow.jobboards =
-    zookeeper = taskflow.jobs.backends.impl_zookeeper:ZookeeperJobBoard
-    redis = taskflow.jobs.backends.impl_redis:RedisJobBoard
-
-taskflow.conductors =
-    blocking = taskflow.conductors.backends.impl_blocking:BlockingConductor
-    nonblocking = taskflow.conductors.backends.impl_nonblocking:NonBlockingConductor
-
-taskflow.persistence =
-    dir = taskflow.persistence.backends.impl_dir:DirBackend
-    file = taskflow.persistence.backends.impl_dir:DirBackend
-    memory = taskflow.persistence.backends.impl_memory:MemoryBackend
-    mysql = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
-    postgresql = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
-    sqlite = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
-    zookeeper = taskflow.persistence.backends.impl_zookeeper:ZkBackend
-
-taskflow.engines =
-    default = taskflow.engines.action_engine.engine:SerialActionEngine
-    serial = taskflow.engines.action_engine.engine:SerialActionEngine
-    parallel = taskflow.engines.action_engine.engine:ParallelActionEngine
-    worker-based = taskflow.engines.worker_based.engine:WorkerBasedActionEngine
-    workers = taskflow.engines.worker_based.engine:WorkerBasedActionEngine
+taskflow.jobboards = 
+	zookeeper = taskflow.jobs.backends.impl_zookeeper:ZookeeperJobBoard
+	redis = taskflow.jobs.backends.impl_redis:RedisJobBoard
+taskflow.conductors = 
+	blocking = taskflow.conductors.backends.impl_blocking:BlockingConductor
+	nonblocking = taskflow.conductors.backends.impl_nonblocking:NonBlockingConductor
+taskflow.persistence = 
+	dir = taskflow.persistence.backends.impl_dir:DirBackend
+	file = taskflow.persistence.backends.impl_dir:DirBackend
+	memory = taskflow.persistence.backends.impl_memory:MemoryBackend
+	mysql = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
+	postgresql = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
+	sqlite = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
+	zookeeper = taskflow.persistence.backends.impl_zookeeper:ZkBackend
+taskflow.engines = 
+	default = taskflow.engines.action_engine.engine:SerialActionEngine
+	serial = taskflow.engines.action_engine.engine:SerialActionEngine
+	parallel = taskflow.engines.action_engine.engine:ParallelActionEngine
+	worker-based = taskflow.engines.worker_based.engine:WorkerBasedActionEngine
+	workers = taskflow.engines.worker_based.engine:WorkerBasedActionEngine
 
 [extras]
-# NOTE(dhellmann): The entries in this section of the file need to be
-# kept consistent with the entries in test-requirements.txt.
-zookeeper =
-  kazoo>=2.6.0 # Apache-2.0
-  zake>=0.1.6 # Apache-2.0
-redis =
-  redis>=2.10.0 # MIT
-workers =
-  kombu>=4.3.0 # BSD
-eventlet =
-  eventlet!=0.18.3,!=0.20.1,!=0.21.0,>=0.18.2 # MIT
-database =
-  SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT
-  alembic>=0.8.10 # MIT
-  SQLAlchemy-Utils>=0.30.11 # BSD License
-  PyMySQL>=0.7.6 # MIT License
-  psycopg2>=2.8.0 # LGPL/ZPL
-test =
-  pydotplus>=2.0.2 # MIT License
-  hacking<0.11,>=0.10.0
-  oslotest>=3.2.0 # Apache-2.0
-  mock>=2.0.0 # BSD
-  testtools>=2.2.0 # MIT
-  testscenarios>=0.4 # Apache-2.0/BSD
-  stestr>=2.0.0 # Apache-2.0
+zookeeper = 
+	kazoo>=2.6.0 # Apache-2.0
+	zake>=0.1.6 # Apache-2.0
+redis = 
+	redis>=2.10.0 # MIT
+workers = 
+	kombu>=4.3.0 # BSD
+eventlet = 
+	eventlet!=0.18.3,!=0.20.1,!=0.21.0,>=0.18.2 # MIT
+database = 
+	SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT
+	alembic>=0.8.10 # MIT
+	SQLAlchemy-Utils>=0.30.11 # BSD License
+	PyMySQL>=0.7.6 # MIT License
+	psycopg2>=2.8.0 # LGPL/ZPL
+test = 
+	pydotplus>=2.0.2 # MIT License
+	hacking<0.11,>=0.10.0
+	oslotest>=3.2.0 # Apache-2.0
+	mock>=2.0.0 # BSD
+	testtools>=2.2.0 # MIT
+	testscenarios>=0.4 # Apache-2.0/BSD
+	stestr>=2.0.0 # Apache-2.0
+
+[egg_info]
+tag_build = 
+tag_date = 0
+
diff -pruN 5.1.0-1/taskflow.egg-info/PKG-INFO 5.1.0-0ubuntu1/taskflow.egg-info/PKG-INFO
--- 5.1.0-1/taskflow.egg-info/PKG-INFO	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/taskflow.egg-info/PKG-INFO	2023-01-05 10:10:07.000000000 +0000
@@ -0,0 +1,106 @@
+Metadata-Version: 2.1
+Name: taskflow
+Version: 5.1.0
+Summary: Taskflow structured state management library.
+Home-page: https://docs.openstack.org/taskflow/latest/
+Author: OpenStack
+Author-email: openstack-discuss@lists.openstack.org
+License: UNKNOWN
+Description: ========================
+        Team and repository tags
+        ========================
+        
+        .. image:: https://governance.openstack.org/tc/badges/taskflow.svg
+            :target: https://governance.openstack.org/tc/reference/tags/index.html
+        
+        .. Change things from this point on
+        
+        TaskFlow
+        ========
+        
+        .. image:: https://img.shields.io/pypi/v/taskflow.svg
+            :target: https://pypi.org/project/taskflow/
+            :alt: Latest Version
+        
+        A library to do [jobs, tasks, flows] in a highly available, easy to understand
+        and declarative manner (and more!) to be used with OpenStack and other
+        projects.
+        
+        * Free software: Apache license
+        * Documentation: https://docs.openstack.org/taskflow/latest/
+        * Source: https://opendev.org/openstack/taskflow
+        * Bugs: https://bugs.launchpad.net/taskflow/
+        * Release notes: https://docs.openstack.org/releasenotes/taskflow/
+        
+        Join us
+        -------
+        
+        - https://launchpad.net/taskflow
+        
+        Testing and requirements
+        ------------------------
+        
+        Requirements
+        ~~~~~~~~~~~~
+        
+        Because this project has many optional (pluggable) parts like persistence
+        backends and engines, we decided to split our requirements into two
+        parts: - things that are absolutely required (you can't use the project
+        without them) are put into ``requirements.txt``. The requirements
+        that are required by some optional part of this project (you can use the
+        project without them) are put into our ``test-requirements.txt`` file (so
+        that we can still test the optional functionality works as expected). If
+        you want to use the feature in question (`eventlet`_ or the worker based engine
+        that uses `kombu`_ or the `sqlalchemy`_ persistence backend or jobboards which
+        have an implementation built using `kazoo`_ ...), you should add
+        that requirement(s) to your project or environment.
+        
+        Tox.ini
+        ~~~~~~~
+        
+        Our ``tox.ini`` file describes several test environments that allow to test
+        TaskFlow with different python versions and sets of requirements installed.
+        Please refer to the `tox`_ documentation to understand how to make these test
+        environments work for you.
+        
+        Developer documentation
+        -----------------------
+        
+        We also have sphinx documentation in ``docs/source``.
+        
+        *To build it, run:*
+        
+        ::
+        
+            $ python setup.py build_sphinx
+        
+        .. _kazoo: https://kazoo.readthedocs.io/en/latest/
+        .. _sqlalchemy: https://www.sqlalchemy.org/
+        .. _kombu: https://kombu.readthedocs.io/en/latest/
+        .. _eventlet: http://eventlet.net/
+        .. _tox: https://tox.testrun.org/
+        
+        
+Keywords: reliable,tasks,execution,parallel,dataflow,workflows,distributed
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Environment :: OpenStack
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Information Technology
+Classifier: License :: OSI Approved :: Apache Software License
+Classifier: Operating System :: POSIX :: Linux
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Topic :: Software Development :: Libraries
+Classifier: Topic :: System :: Distributed Computing
+Requires-Python: >=3.8
+Provides-Extra: database
+Provides-Extra: eventlet
+Provides-Extra: redis
+Provides-Extra: test
+Provides-Extra: workers
+Provides-Extra: zookeeper
diff -pruN 5.1.0-1/taskflow.egg-info/SOURCES.txt 5.1.0-0ubuntu1/taskflow.egg-info/SOURCES.txt
--- 5.1.0-1/taskflow.egg-info/SOURCES.txt	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/taskflow.egg-info/SOURCES.txt	2023-01-05 10:10:08.000000000 +0000
@@ -0,0 +1,327 @@
+.coveragerc
+.mailmap
+.pre-commit-config.yaml
+.stestr.conf
+.zuul.yaml
+AUTHORS
+CONTRIBUTING.rst
+ChangeLog
+LICENSE
+README.rst
+bindep.txt
+pylintrc
+requirements.txt
+run_tests.sh
+setup.cfg
+setup.py
+test-requirements.txt
+tox.ini
+doc/requirements.txt
+doc/diagrams/area_of_influence.graffle.tgz
+doc/diagrams/core.graffle.tgz
+doc/diagrams/jobboard.graffle.tgz
+doc/diagrams/tasks.graffle.tgz
+doc/diagrams/worker-engine.graffle.tgz
+doc/source/conf.py
+doc/source/index.rst
+doc/source/templates/layout.html
+doc/source/user/arguments_and_results.rst
+doc/source/user/atoms.rst
+doc/source/user/conductors.rst
+doc/source/user/engines.rst
+doc/source/user/examples.rst
+doc/source/user/exceptions.rst
+doc/source/user/history.rst
+doc/source/user/index.rst
+doc/source/user/inputs_and_outputs.rst
+doc/source/user/jobs.rst
+doc/source/user/notifications.rst
+doc/source/user/patterns.rst
+doc/source/user/persistence.rst
+doc/source/user/resumption.rst
+doc/source/user/shelf.rst
+doc/source/user/states.rst
+doc/source/user/types.rst
+doc/source/user/utils.rst
+doc/source/user/workers.rst
+doc/source/user/img/area_of_influence.svg
+doc/source/user/img/conductor.png
+doc/source/user/img/conductor_cycle.png
+doc/source/user/img/distributed_flow_rpc.png
+doc/source/user/img/engine_states.svg
+doc/source/user/img/flow_states.svg
+doc/source/user/img/job_states.svg
+doc/source/user/img/jobboard.png
+doc/source/user/img/mandelbrot.png
+doc/source/user/img/retry_states.svg
+doc/source/user/img/task_states.svg
+doc/source/user/img/tasks.png
+doc/source/user/img/wbe_request_states.svg
+doc/source/user/img/worker-engine.svg
+releasenotes/notes/.placeholder
+releasenotes/notes/add-sentinel-redis-support-9fd16e2a5dd5c0c9.yaml
+releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml
+releasenotes/notes/fix-endless-loop-on-storage-error-dd4467f0bbc66abf.yaml
+releasenotes/notes/zookeeper-ssl-support-b9abf24a39096b62.yaml
+releasenotes/source/conf.py
+releasenotes/source/index.rst
+releasenotes/source/ocata.rst
+releasenotes/source/pike.rst
+releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
+releasenotes/source/stein.rst
+releasenotes/source/train.rst
+releasenotes/source/unreleased.rst
+releasenotes/source/ussuri.rst
+releasenotes/source/victoria.rst
+releasenotes/source/_static/.placeholder
+releasenotes/source/_templates/.placeholder
+taskflow/__init__.py
+taskflow/atom.py
+taskflow/deciders.py
+taskflow/exceptions.py
+taskflow/flow.py
+taskflow/formatters.py
+taskflow/logging.py
+taskflow/retry.py
+taskflow/states.py
+taskflow/storage.py
+taskflow/task.py
+taskflow/test.py
+taskflow/version.py
+taskflow.egg-info/PKG-INFO
+taskflow.egg-info/SOURCES.txt
+taskflow.egg-info/dependency_links.txt
+taskflow.egg-info/entry_points.txt
+taskflow.egg-info/not-zip-safe
+taskflow.egg-info/pbr.json
+taskflow.egg-info/requires.txt
+taskflow.egg-info/top_level.txt
+taskflow/conductors/__init__.py
+taskflow/conductors/base.py
+taskflow/conductors/backends/__init__.py
+taskflow/conductors/backends/impl_blocking.py
+taskflow/conductors/backends/impl_executor.py
+taskflow/conductors/backends/impl_nonblocking.py
+taskflow/contrib/__init__.py
+taskflow/engines/__init__.py
+taskflow/engines/base.py
+taskflow/engines/helpers.py
+taskflow/engines/action_engine/__init__.py
+taskflow/engines/action_engine/builder.py
+taskflow/engines/action_engine/compiler.py
+taskflow/engines/action_engine/completer.py
+taskflow/engines/action_engine/deciders.py
+taskflow/engines/action_engine/engine.py
+taskflow/engines/action_engine/executor.py
+taskflow/engines/action_engine/process_executor.py
+taskflow/engines/action_engine/runtime.py
+taskflow/engines/action_engine/scheduler.py
+taskflow/engines/action_engine/scopes.py
+taskflow/engines/action_engine/selector.py
+taskflow/engines/action_engine/traversal.py
+taskflow/engines/action_engine/actions/__init__.py
+taskflow/engines/action_engine/actions/base.py
+taskflow/engines/action_engine/actions/retry.py
+taskflow/engines/action_engine/actions/task.py
+taskflow/engines/worker_based/__init__.py
+taskflow/engines/worker_based/dispatcher.py
+taskflow/engines/worker_based/endpoint.py
+taskflow/engines/worker_based/engine.py
+taskflow/engines/worker_based/executor.py
+taskflow/engines/worker_based/protocol.py
+taskflow/engines/worker_based/proxy.py
+taskflow/engines/worker_based/server.py
+taskflow/engines/worker_based/types.py
+taskflow/engines/worker_based/worker.py
+taskflow/examples/99_bottles.py
+taskflow/examples/alphabet_soup.py
+taskflow/examples/build_a_car.py
+taskflow/examples/buildsystem.py
+taskflow/examples/calculate_in_parallel.py
+taskflow/examples/calculate_linear.py
+taskflow/examples/create_parallel_volume.py
+taskflow/examples/delayed_return.py
+taskflow/examples/distance_calculator.py
+taskflow/examples/dump_memory_backend.py
+taskflow/examples/echo_listener.py
+taskflow/examples/example_utils.py
+taskflow/examples/fake_billing.py
+taskflow/examples/graph_flow.py
+taskflow/examples/hello_world.py
+taskflow/examples/jobboard_produce_consume_colors.py
+taskflow/examples/parallel_table_multiply.py
+taskflow/examples/persistence_example.py
+taskflow/examples/pseudo_scoping.out.txt
+taskflow/examples/pseudo_scoping.py
+taskflow/examples/resume_from_backend.out.txt
+taskflow/examples/resume_from_backend.py
+taskflow/examples/resume_many_flows.out.txt
+taskflow/examples/resume_many_flows.py
+taskflow/examples/resume_vm_boot.py
+taskflow/examples/resume_volume_create.py
+taskflow/examples/retry_flow.out.txt
+taskflow/examples/retry_flow.py
+taskflow/examples/reverting_linear.out.txt
+taskflow/examples/reverting_linear.py
+taskflow/examples/run_by_iter.out.txt
+taskflow/examples/run_by_iter.py
+taskflow/examples/run_by_iter_enumerate.out.txt
+taskflow/examples/run_by_iter_enumerate.py
+taskflow/examples/share_engine_thread.py
+taskflow/examples/simple_linear.out.txt
+taskflow/examples/simple_linear.py
+taskflow/examples/simple_linear_listening.out.txt
+taskflow/examples/simple_linear_listening.py
+taskflow/examples/simple_linear_pass.out.txt
+taskflow/examples/simple_linear_pass.py
+taskflow/examples/simple_map_reduce.py
+taskflow/examples/switch_graph_flow.py
+taskflow/examples/timing_listener.py
+taskflow/examples/tox_conductor.py
+taskflow/examples/wbe_event_sender.py
+taskflow/examples/wbe_mandelbrot.out.txt
+taskflow/examples/wbe_mandelbrot.py
+taskflow/examples/wbe_simple_linear.out.txt
+taskflow/examples/wbe_simple_linear.py
+taskflow/examples/wrapped_exception.py
+taskflow/examples/resume_many_flows/my_flows.py
+taskflow/examples/resume_many_flows/resume_all.py
+taskflow/examples/resume_many_flows/run_flow.py
+taskflow/jobs/__init__.py
+taskflow/jobs/base.py
+taskflow/jobs/backends/__init__.py
+taskflow/jobs/backends/impl_redis.py
+taskflow/jobs/backends/impl_zookeeper.py
+taskflow/listeners/__init__.py
+taskflow/listeners/base.py
+taskflow/listeners/capturing.py
+taskflow/listeners/claims.py
+taskflow/listeners/logging.py
+taskflow/listeners/printing.py
+taskflow/listeners/timing.py
+taskflow/patterns/__init__.py
+taskflow/patterns/graph_flow.py
+taskflow/patterns/linear_flow.py
+taskflow/patterns/unordered_flow.py
+taskflow/persistence/__init__.py
+taskflow/persistence/base.py
+taskflow/persistence/models.py
+taskflow/persistence/path_based.py
+taskflow/persistence/backends/__init__.py
+taskflow/persistence/backends/impl_dir.py
+taskflow/persistence/backends/impl_memory.py
+taskflow/persistence/backends/impl_sqlalchemy.py
+taskflow/persistence/backends/impl_zookeeper.py
+taskflow/persistence/backends/sqlalchemy/__init__.py
+taskflow/persistence/backends/sqlalchemy/migration.py
+taskflow/persistence/backends/sqlalchemy/tables.py
+taskflow/persistence/backends/sqlalchemy/alembic/README
+taskflow/persistence/backends/sqlalchemy/alembic/alembic.ini
+taskflow/persistence/backends/sqlalchemy/alembic/env.py
+taskflow/persistence/backends/sqlalchemy/alembic/script.py.mako
+taskflow/persistence/backends/sqlalchemy/alembic/versions/0bc3e1a3c135_set_result_meduimtext_type.py
+taskflow/persistence/backends/sqlalchemy/alembic/versions/14b227d79a87_add_intention_column.py
+taskflow/persistence/backends/sqlalchemy/alembic/versions/1c783c0c2875_replace_exception_an.py
+taskflow/persistence/backends/sqlalchemy/alembic/versions/1cea328f0f65_initial_logbook_deta.py
+taskflow/persistence/backends/sqlalchemy/alembic/versions/2ad4984f2864_switch_postgres_to_json_native.py
+taskflow/persistence/backends/sqlalchemy/alembic/versions/3162c0f3f8e4_add_revert_results_and_revert_failure_.py
+taskflow/persistence/backends/sqlalchemy/alembic/versions/40fc8c914bd2_fix_atomdetails_failure_size.py
+taskflow/persistence/backends/sqlalchemy/alembic/versions/589dccdf2b6e_rename_taskdetails_to_atomdetails.py
+taskflow/persistence/backends/sqlalchemy/alembic/versions/6df9422fcb43_fix_flowdetails_meta_size.py
+taskflow/persistence/backends/sqlalchemy/alembic/versions/84d6e888850_add_task_detail_type.py
+taskflow/persistence/backends/sqlalchemy/alembic/versions/README
+taskflow/tests/__init__.py
+taskflow/tests/test_examples.py
+taskflow/tests/utils.py
+taskflow/tests/unit/__init__.py
+taskflow/tests/unit/test_arguments_passing.py
+taskflow/tests/unit/test_check_transition.py
+taskflow/tests/unit/test_conductors.py
+taskflow/tests/unit/test_deciders.py
+taskflow/tests/unit/test_engine_helpers.py
+taskflow/tests/unit/test_engines.py
+taskflow/tests/unit/test_exceptions.py
+taskflow/tests/unit/test_failure.py
+taskflow/tests/unit/test_flow_dependencies.py
+taskflow/tests/unit/test_formatters.py
+taskflow/tests/unit/test_functor_task.py
+taskflow/tests/unit/test_listeners.py
+taskflow/tests/unit/test_mapfunctor_task.py
+taskflow/tests/unit/test_notifier.py
+taskflow/tests/unit/test_progress.py
+taskflow/tests/unit/test_reducefunctor_task.py
+taskflow/tests/unit/test_retries.py
+taskflow/tests/unit/test_states.py
+taskflow/tests/unit/test_storage.py
+taskflow/tests/unit/test_suspend.py
+taskflow/tests/unit/test_task.py
+taskflow/tests/unit/test_types.py
+taskflow/tests/unit/test_utils.py
+taskflow/tests/unit/test_utils_async_utils.py
+taskflow/tests/unit/test_utils_binary.py
+taskflow/tests/unit/test_utils_iter_utils.py
+taskflow/tests/unit/test_utils_threading_utils.py
+taskflow/tests/unit/action_engine/__init__.py
+taskflow/tests/unit/action_engine/test_builder.py
+taskflow/tests/unit/action_engine/test_compile.py
+taskflow/tests/unit/action_engine/test_creation.py
+taskflow/tests/unit/action_engine/test_process_executor.py
+taskflow/tests/unit/action_engine/test_scoping.py
+taskflow/tests/unit/jobs/__init__.py
+taskflow/tests/unit/jobs/base.py
+taskflow/tests/unit/jobs/test_entrypoint.py
+taskflow/tests/unit/jobs/test_redis_job.py
+taskflow/tests/unit/jobs/test_zk_job.py
+taskflow/tests/unit/patterns/__init__.py
+taskflow/tests/unit/patterns/test_graph_flow.py
+taskflow/tests/unit/patterns/test_linear_flow.py
+taskflow/tests/unit/patterns/test_unordered_flow.py
+taskflow/tests/unit/persistence/__init__.py
+taskflow/tests/unit/persistence/base.py
+taskflow/tests/unit/persistence/test_dir_persistence.py
+taskflow/tests/unit/persistence/test_memory_persistence.py
+taskflow/tests/unit/persistence/test_sql_persistence.py
+taskflow/tests/unit/persistence/test_zk_persistence.py
+taskflow/tests/unit/worker_based/__init__.py
+taskflow/tests/unit/worker_based/test_creation.py
+taskflow/tests/unit/worker_based/test_dispatcher.py
+taskflow/tests/unit/worker_based/test_endpoint.py
+taskflow/tests/unit/worker_based/test_executor.py
+taskflow/tests/unit/worker_based/test_message_pump.py
+taskflow/tests/unit/worker_based/test_pipeline.py
+taskflow/tests/unit/worker_based/test_protocol.py
+taskflow/tests/unit/worker_based/test_proxy.py
+taskflow/tests/unit/worker_based/test_server.py
+taskflow/tests/unit/worker_based/test_types.py
+taskflow/tests/unit/worker_based/test_worker.py
+taskflow/types/__init__.py
+taskflow/types/entity.py
+taskflow/types/failure.py
+taskflow/types/graph.py
+taskflow/types/latch.py
+taskflow/types/notifier.py
+taskflow/types/sets.py
+taskflow/types/timing.py
+taskflow/types/tree.py
+taskflow/utils/__init__.py
+taskflow/utils/async_utils.py
+taskflow/utils/banner.py
+taskflow/utils/eventlet_utils.py
+taskflow/utils/iter_utils.py
+taskflow/utils/kazoo_utils.py
+taskflow/utils/kombu_utils.py
+taskflow/utils/misc.py
+taskflow/utils/persistence_utils.py
+taskflow/utils/redis_utils.py
+taskflow/utils/schema_utils.py
+taskflow/utils/threading_utils.py
+tools/clear_zk.sh
+tools/env_builder.sh
+tools/pretty_tox.sh
+tools/schema_generator.py
+tools/speed_test.py
+tools/state_graph.py
+tools/subunit_trace.py
+tools/test-setup.sh
+tools/update_states.sh
\ No newline at end of file
diff -pruN 5.1.0-1/taskflow.egg-info/dependency_links.txt 5.1.0-0ubuntu1/taskflow.egg-info/dependency_links.txt
--- 5.1.0-1/taskflow.egg-info/dependency_links.txt	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/taskflow.egg-info/dependency_links.txt	2023-01-05 10:10:07.000000000 +0000
@@ -0,0 +1 @@
+
diff -pruN 5.1.0-1/taskflow.egg-info/entry_points.txt 5.1.0-0ubuntu1/taskflow.egg-info/entry_points.txt
--- 5.1.0-1/taskflow.egg-info/entry_points.txt	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/taskflow.egg-info/entry_points.txt	2023-01-05 10:10:07.000000000 +0000
@@ -0,0 +1,24 @@
+[taskflow.conductors]
+blocking = taskflow.conductors.backends.impl_blocking:BlockingConductor
+nonblocking = taskflow.conductors.backends.impl_nonblocking:NonBlockingConductor
+
+[taskflow.engines]
+default = taskflow.engines.action_engine.engine:SerialActionEngine
+parallel = taskflow.engines.action_engine.engine:ParallelActionEngine
+serial = taskflow.engines.action_engine.engine:SerialActionEngine
+worker-based = taskflow.engines.worker_based.engine:WorkerBasedActionEngine
+workers = taskflow.engines.worker_based.engine:WorkerBasedActionEngine
+
+[taskflow.jobboards]
+redis = taskflow.jobs.backends.impl_redis:RedisJobBoard
+zookeeper = taskflow.jobs.backends.impl_zookeeper:ZookeeperJobBoard
+
+[taskflow.persistence]
+dir = taskflow.persistence.backends.impl_dir:DirBackend
+file = taskflow.persistence.backends.impl_dir:DirBackend
+memory = taskflow.persistence.backends.impl_memory:MemoryBackend
+mysql = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
+postgresql = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
+sqlite = taskflow.persistence.backends.impl_sqlalchemy:SQLAlchemyBackend
+zookeeper = taskflow.persistence.backends.impl_zookeeper:ZkBackend
+
diff -pruN 5.1.0-1/taskflow.egg-info/not-zip-safe 5.1.0-0ubuntu1/taskflow.egg-info/not-zip-safe
--- 5.1.0-1/taskflow.egg-info/not-zip-safe	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/taskflow.egg-info/not-zip-safe	2023-01-05 10:10:07.000000000 +0000
@@ -0,0 +1 @@
+
diff -pruN 5.1.0-1/taskflow.egg-info/pbr.json 5.1.0-0ubuntu1/taskflow.egg-info/pbr.json
--- 5.1.0-1/taskflow.egg-info/pbr.json	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/taskflow.egg-info/pbr.json	2023-01-05 10:10:07.000000000 +0000
@@ -0,0 +1 @@
+{"git_version": "5bcac4c7", "is_release": true}
\ No newline at end of file
diff -pruN 5.1.0-1/taskflow.egg-info/requires.txt 5.1.0-0ubuntu1/taskflow.egg-info/requires.txt
--- 5.1.0-1/taskflow.egg-info/requires.txt	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/taskflow.egg-info/requires.txt	2023-01-05 10:10:07.000000000 +0000
@@ -0,0 +1,41 @@
+automaton>=1.9.0
+cachetools>=2.0.0
+fasteners>=0.17.3
+futurist>=1.2.0
+jsonschema>=3.2.0
+networkx>=2.1.0
+oslo.serialization!=2.19.1,>=2.18.0
+oslo.utils>=3.33.0
+pbr!=2.1.0,>=2.0.0
+pydot>=1.2.4
+stevedore>=1.20.0
+tenacity>=6.0.0
+
+[database]
+PyMySQL>=0.7.6
+SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10
+SQLAlchemy-Utils>=0.30.11
+alembic>=0.8.10
+psycopg2>=2.8.0
+
+[eventlet]
+eventlet!=0.18.3,!=0.20.1,!=0.21.0,>=0.18.2
+
+[redis]
+redis>=2.10.0
+
+[test]
+hacking<0.11,>=0.10.0
+mock>=2.0.0
+oslotest>=3.2.0
+pydotplus>=2.0.2
+stestr>=2.0.0
+testscenarios>=0.4
+testtools>=2.2.0
+
+[workers]
+kombu>=4.3.0
+
+[zookeeper]
+kazoo>=2.6.0
+zake>=0.1.6
diff -pruN 5.1.0-1/taskflow.egg-info/top_level.txt 5.1.0-0ubuntu1/taskflow.egg-info/top_level.txt
--- 5.1.0-1/taskflow.egg-info/top_level.txt	1970-01-01 00:00:00.000000000 +0000
+++ 5.1.0-0ubuntu1/taskflow.egg-info/top_level.txt	2023-01-05 10:10:07.000000000 +0000
@@ -0,0 +1 @@
+taskflow
