github PrefectHQ/prefect 3.0.0rc2
Release 3.0.0rc2

latest releases: 3.1.3.dev2, 2.20.13, 3.1.3.dev1...
pre-release5 months ago

We're excited to announce the release candidate of Prefect 3.0. It's the most flexible, powerful, fastest version of Prefect yet. Prefect 3.0 includes several exciting new features. Install it by running pip install prefect==3.0.0rc2 and check out the docs here.

Run tasks independently of flows

You can now run and serve tasks outside of flows and inside of other tasks.

from prefect import task

@task
def my_background_task(name: str):
    print(f"Hello, {name}!")

if __name__ == "__main__":
    my_background_task.delay("ford")

Transactional semantics

Use rollback and commit hooks to facilitate idempotent python code.

from prefect import flow, task
from prefect.transactions import transaction
@task
def first_task():
    print('first')

@first_task.on_rollback
def roll(txn):
    print('rolling back')

@task
def second_task():
    raise RuntimeError("oopsie")

@flow
def txn_flow():
    with transaction():
        first_task()
        second_task()
if __name__ == "__main__":
    txn_flow()

Open source Events and Automations

Trigger actions, such as sending notifications, pausing schedules, starting flow runs and more in response to Prefect events.

More flexible variables and new artifact types

Variables can now be any JSON compatible type including dicts, lists, and integers. Progress and Image artifacts make it easy to add visual annotations to your flow run graph.

Faster and richer CLI

Improved CLI speed and several added commands and conveniences.

Updated navigation, styling, and interaction design

The new Runs page displays both flow and task run information, and an improved sidebar and switcher makes navigating Prefect simpler than ever.

Changes since 3.0.0rc1

Enhancements

Fixes

  • Fix load_flow_argument_from_entrypoint to work with async flows by @elisalimli in #13716
  • Add handling for positional only and keyword only arguments when parsing a function signature from source code by @desertaxle in #13774
  • Load assignments when safeloading a namespace by @desertaxle in #13775
  • Coerce work pool env values to str by @zzstoatzz in #13782
  • Support retry_delay_seconds in task engine by @zzstoatzz in #13815
  • Rename RedisFilesystem to RedisStorageContainer to match naming semantics of other filesystem classes by @bunchesofdonald in #13771

Documentation

New Contributors

Full Changelog: 3.0.0rc1...3.0.0rc2

Don't miss a new prefect release

NewReleases is sending notifications on new releases.