CHANGES
- Edit Vcs urls
- Decrease dependency version of python-tenacity
- Change control
- Edit debian/changelog , new version
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
- Bumped debhelper compat version to 10
- 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
- Changed the home-page link
- Using assertIsNone() instead of assertIs(None, ..)
- Updated from global requirements
- Uploading to unstable
- Fix a typo in documentation
- Fix typo: remove redundant ‘that’
- Updated from global requirements
- Fix a typo in logging.py
- Fixed oslotest EPOCH
- Mass changes
- Use method ensure_tree from oslo.utils
- Set oslotest minimum version to 2.5.0
- Add a .gitreview file
- Make failure formatter configurable for DynamicLoggingListener
- Updated from global requirements
- Some classes not define __ne__() built-in function
2.5.0
- Updated from global requirements
- Packaging 2.3.0
- 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
- Added python-pydotplus as build-depends
- Using pkgos-dh_auto_{test,install} from openstack-pkg-tools >= 52~
- Fixed (build-)depends for this release
- Now packaging 2.2.0 from debian/newton to experimental
- 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
- d/copyright: Changed source URL to https protocol
- d/rules: Changed UPSTREAM_GIT protocol to https
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
- Added Python module import Debian tests
- Added missing Debian tests dependencies
1.31.0
- Updated from global requirements
- Don’t set html_last_updated_fmt without git
- Standards-Version is 3.9.8 now (no change)
- Updated from global requirements
- Uploading to unstable
- 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)
- Added git as build-depends-indep
- Standards-Version: 3.9.7
- Now packaging 1.30.0
- Fallback if git is absent
- Fixed VCS URLs (https)
- 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
- Fixed debian/copyright ordering
- Now packaging 1.26.0
- Some additional engine logging
- 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’
- Change engine ‘self._check’ into a decorator
- Move engine options extraction to __init__ methods
- Convert executor proxied engine options into their correct type
- Use the misc.ensure_dict helper in conductor engine options saving
- Move ‘convert_to_timeout’ to timing type as a helper function
- Add validation of base exception type(s) in failure type
- Add in-memory backend delete() in recursive/non-recursive modes
- Use the sqlalchemy-utils json type instead of our own
- Use alembic upgrade function/command directly
- 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
- Rebuilt by bop
- Removed diff with upstream
- Removed use-async_utils.patch
- Fixed (build-)depends for this release
- Now packaging 1.25.0 from debian/mitaka branch
- 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_*
- Downgrade python-networkx minimum version to 1.9 instead of 1.10, as it doesn’t look like the update will come soon
- 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
- Uploading to unstable
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
- Added python{3,}-netifaces as build-depends-indep
- Releasing to experimental
- Use the node built-in ‘dfs_iter’ instead of recursion
1.22.0
- Simplify flow action engine compilation
- Fix ‘dependened upon’ spelling error
- Add use-async_utils.patch
- New release 1.21.0
- 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
- Fixed wrong watch file URL (moved upstream)
- Fixed compat level
- Builds the sphinx doc
- Removed non python3 build-deps
- Added Python 3 support
- Use the sqlalchemy-utils json type instead of our own
- Applied what’s remaining as usefull in the Ubuntu patch (Closes: #791930)
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
- Removed wrong manual merge
- Blacklist taskflow.tests.test_examples.ExamplesTestCase.test_99_bottles, see https://bugs.launchpad.net/taskflow/+bug/1479958
- Removed debian/patches/disable-kombu-3-test.patch
- Fixed (build-)depends for this release
- Now packaging 1.17.0
- Modify listeners to handle the results now possible from revert()
- 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
- Updated from global requirements
- 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
- Fixed gbp.conf
- 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
- Unify the zookeeper/redis jobboard iterators
- Run the ‘99_bottles.py’ demo at a fast rate when activated
- Use io.open vs raw open
- Retain atom ‘revert’ result (or failure)
- Add docs for u, v, decider on graph flow link method
- Remove setup.cfg ‘requires-python’ incorrect entry
- Compile lists of retry/task atoms at runtime compile time
- Make currently implemented jobs use @functools.total_ordering
- Use encodeutils for exception -> string function
- Just make the compiler object at __init__ time
- Remove kazoo hack/fix for issue no longer needed
- Update states comment to refer to task section
- Document more of the retry subclasses special keyword arguments
- Address concurrent mutation of sqlalchemy backend
- 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
- Removed debian/patches/disable-kombu-3-test.patch
- Using debian/liberty branch for packaging
- New upstream release. * Fixed build-depends for this release
- 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
- Uploading to unstable
- (build-)depends
- 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
- Now packaging 0.7.1
- 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
- Refreshed patche
- && -> ;
- Reviewed (build-)depends for this release
- Now packaging upstream remote 0.7.0
- Now using debian/kilo as packaging branch
- 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.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
- Add patch to disable unit tests using Kombu 3.x, which isn’t available normally with OpenStack Juno
- Removes differences with upstream release
- Updated (build-)depends for this release. * Do not support python 2.6 because of the need for ordereddict. Therefore setting-up X-Python-Version: >= 2.7
- Now packaging 0.4.0
- gbp.conf using the experimental branch
- 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.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.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
- Added missing export OSLO_PACKAGE_VERSION=$(VERSION)
- Added initial debian folder
- 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()