Generated from: http://github.com/boto/botoflow/blob/master/CHANGELOG.rst
Change Log
0.9 (WIP)
Improvements
- Add support for setting task priorities. Thanks @paulcollinsiii for PR. #9
0.8 (2016-11-16)
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 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 (2016-04-15)
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 (2015-08-27)
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 (2014-10-03)
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 (2014-05-21)
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.
0.3 (2014-04-07)
Improvements
- Include additional attributes when serializing / deserializing
subclasses of list and dict.
- Handle (de)serialization of subclasses of list.
Bugfixes
- json_data_converter - base64 encode any string that can't bedecoded as unicode.
- json_data_converter - Make sure we "flowify" dictionary values.
- Fix workflow and activity registration issue where default task list
would not be set.
Miscellaneous
- Test that default activity task list is honoured.
0.2 (2013-05-06)
API Changes
- You can use now @async and @async() with the same result.
- As a shortcut:
from botoflow import Future
.
New Features
- Implement the
@workflow
decorator. Using this decorator, you can
change the workflow name.
@execute
now also accepts data_converter and description
parameters. If not specified, the description parameter defaults to
the @execute method's docstring, as with @activity
.
Improvements
- The metaclass will now look at all bases of a WorkflowDefinition
subclass and copy all the
@execute
and @signal
methods to
the class we're creating. Subclassing another workflow should now
work much better.
- Refactor the data_converter attribute into a property, and add a
type check.
Bugfixes
- Create a new event loop on every reset to help with an edge case
where gc happens at the wrong moment.
Miscellaneous
- Add a test that tests ability to pass in multiple signals as data
into workflow.
- Add a simple workflow subclassing test.
- Add a test that shows multiver works.
- Add a test that tests that
@execute
method is copied from the
superclass to the subclass.