* Add support for setting task priorities. Thanks paulcollinsiii for PR. 9
0.8
---------
**API Changes**
* Remove ``botoflow.retry`` module in favor of ``retry_activity`` decorator which is much more extensible and is based on ``retrying`` library. * ``WorkflowStarter`` is now ``workflow_starter`` as context managers should be snake case and it's better to do this now, before 1.0 release. * Renamed ``botoflow.workflow_types`` module to ``botoflow.flow_types`` package. * Removed ``botoflow.types`` alias. Use ``botoflow.flow_types``. * ``async`` is now ``coroutine`` to closer align with ``asyncio`` naming. See 1 for details.
**Bugfixes**
* Fix a **critical** bug in decider history event ordering, which could affect any workflows that execute activities/child workflows concurrently. * ``activities`` decorator was ignoring ``data_converter`` option. Thanks glharding. * Better wrapping of errors from SWF. Thanks glharding.
**Miscellaneous**
* It's open sourced! * ``doc`` directory renamed to ``docs``. * Various package naming fixes. * Add ``CONTRIBUTING.rst``. * Add ``README.rst``. * Lots of work and refactoring in documentation. * Up to date `requirements.txt`. * CircleCI integration. * Thanks to `Gintare Laniauskaite <http://github.com/myselfher>`_ for work on the LOGO and documentation design! * Add tox support and test CPython 2.7, 3.4 and 3.5. * Mark some tests in test_async_traceback as xfail for Python 3.5.0 specifically (works fine on 3.5.1). * Add ``botoflow.__version__``. * ``examples`` directory and ``helloworld`` example. Thanks to l2ol33rt for contribution.
0.7
----------------
**Improvements**
* Add ThrottlingException. * Do not skip registration for all activities. * Only try registering unregistered activities. * Supporting more BaseFuture methods properly. * *json_data_converter* - add support for Decimal objects + tests. * *json_data_converter* - Make ActivityType serializable in cases where ``ActivityFailedException`` is passsed throug SWF. * *json_data_converter* - Support ``datetime`` and ``timedelta`` object serialization. * Add support for activity retrying using the ``retrying`` library as the base with the **major difference** being that it takes seconds as the smallest resolution as opposed to millis. * Support handling basic inputs that for example come from on botoflow based workflow starters. See commit `70423b5`_ for details.
**Bugfixes**
* Fix a regression in ChildWorkflowExecutionHandler where child workflow exceptions aren't passed to the parent process. * Make sure that (Any|All)Future s behave wen passed in an empty iterable (they will immediately set an empty result). * Handle starting a child workflow with a duplicate Workflow ID.
**Miscellaneous**
* Unit and integration test improvements. * *json_data_converter* - Unit test improvements.
0.6
----------------
**API Changes**
* Expose workflow_id and run_id to decision context. * Initial workflow cancellation support.
* Add .cancel() method in ``WorkflowDefinition``.
* Add async ``cancellation_handler`` method that can be overwritten to do cleanup for workflow cancellation tasks.
**Improvements**
* Implement workflow cancellation events. * Big refactor of decider.py into a bunch of specific handlers (ie. ``activity_task_handler.py``, etc.). * Add separate future for cancel activity. * Support ``RequestCancelActivityTaskFailedError``. * ``ActivityWorker`` understands ``Cancellation`` / ``CancelledError``. * Implement ``ActivityFuture`` that replaces the regular Future for all activities and has SWF support for cancellations. * Implement ``request_heartbeat()`` in Activity context. * ``ActivityTaskHandler`` uses ``ActivityFuture``.
**Bugfixes**
* Add fallback handling for decoding of exception objects. * Fix bug in workflow options overrides. * Added kwarg formatting translation for Child workflow execution trigger. * Respect pagination token returned in SWF workflow execution history. * Fixed bug with activities decorator kwargs not falling down to enclosed activity decorators.
**Miscellaneous**
* Cleanup bogus prints. * Doctype the async decorator a bit. * Implement some integration tests. * ``delete_decision()`` now returns True if a decision was deleted successfully and False otherwise. * Adjust handling of cancel events; parse exception out of event details. * Cleanup of new handlers and decider. * More activity cancellation work and more integration tests. * Logic improvements + integration tests. * Docstrings all around cancellation work. * Refactor a bunch of cancellation related tests into a separate test file.
0.5
----------------
**API Changes**
* The worker API now uses ``botocore`` session, followed by region, followed by domain, followed by default tasklist.
**Miscellaneous**
* Use BotoCore 0.66 which has lots of incompatible changes, therefore the worker API changes as well.
0.4
----------------
**API Changes**
* Threading and multiprocessing based workers are renamed "Executor" and accept a worker as an argument so that they can be used with either the normal WorkflowWorker or GenericWorkflowWorker.
**New Features**
* Add GenericWorkflowWorker which allows specifying a function that can use any method it wants to lookup workflow definitions from a name and version, including by dynamically creating it.