Major Features
- Add ability to run scheduled flows locally via
on_schedule
kwarg inflow.run()
- #519 - Allow tasks to specify their own result handlers, ensure inputs and outputs are stored only when necessary, and ensure no raw data is sent to the database - #587
Minor Features
- Allow for building
ContainerEnvironment
s locally without pushing to registry - #514 - Make mapping more robust when running children tasks multiple times - #541
- Always prefer
cached_inputs
over upstream states, if available - #546 - Add hooks to
FlowRunner.initialize_run()
for manipulating task states and contexts - #548 - Improve state-loading strategy for Prefect Cloud - #555
- Introduce
on_failure
kwarg to Tasks and Flows for user-friendly failure callbacks - #551 - Include
scheduled_start_time
in context for Flow runs - #524 - Add GitHub PR template - #542
- Allow flows to be deployed to Prefect Cloud without a project id - #571
- Introduce serialization schemas for ResultHandlers - #572
- Add new
metadata
attribute to States for managing user-generated results - #573 - Add new 'JSONResultHandler' for serializing small bits of data without external storage - #576
- Use
JSONResultHandler
for all Parameter caching - #590
Fixes
- Fixed
flow.deploy()
attempting to access a nonexistent string attribute - #503 - Ensure all logs make it to the logger service in deployment - #508, #552
- Fix a situation where
Paused
tasks would be treated asPending
and run - #535 - Ensure errors raised in state handlers are trapped appropriately in Cloud Runners - #554
- Ensure unexpected errors raised in FlowRunners are robustly handled - #568
- Fixed non-deterministic errors in mapping caused by clients resolving futures of other clients - #569
- Older versions of Prefect will now ignore fields added by newer versions when deserializing objects - #583
- Result handler failures now result in clear task run failures - #575
- Fix issue deserializing old states with empty metadata - #590
- Fix issue serializing
cached_inputs
- #594
Breaking Changes
- Move
prefect.client.result_handlers
toprefect.engine.result_handlers
- #512 - Removed
inputs
kwarg fromTaskRunner.run()
- #546 - Moves the
start_task_ids
argument fromFlowRunner.run()
toEnvironment.run()
- #544, #545 - Convert
timeout
kwarg fromtimedelta
tointeger
- #540 - Remove
timeout
kwarg fromexecutor.wait
- #569 - Serialization of States will ignore any result data that hasn't been processed - #581
- Removes
VersionedSchema
in favor of implicit versioning: serializers will ignore unknown fields and thecreate_object
method is responsible for recreating missing ones - #583 - Convert and rename
CachedState
to a successful state namedCached
, and also remove the superfluouscached_result
attribute - #586