Prefect is a workflow orchestration tool empowering developers to build, observe, and react to data pipelines
APACHE-2.0 License
Bot releases are visible (Hide)
Published by marvin-robot 3 months ago
wait
utility for PrefectFutures
by @jeanluciano in https://github.com/PrefectHQ/prefect/pull/14608
prefect version
by @zzstoatzz in https://github.com/PrefectHQ/prefect/pull/14557
BaseWorker
class by @desertaxle in https://github.com/PrefectHQ/prefect/pull/14568
git_clone
pull step by @zzstoatzz in https://github.com/PrefectHQ/prefect/pull/14612
--ui
/--no-ui
flag on prefect server start
by @zzstoatzz in https://github.com/PrefectHQ/prefect/pull/14519
serve
by @zzstoatzz in https://github.com/PrefectHQ/prefect/pull/14563
GcsBucket.put/get_directory
by @rooperuu in https://github.com/PrefectHQ/prefect/pull/14432
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.0.0rc10...3.0.0rc11
Published by bunchesofdonald 3 months ago
ParameterTypeError.from_validation_error
— https://github.com/PrefectHQ/prefect/pull/14420
--ui/--no-ui
flag on prefect server start
— https://github.com/PrefectHQ/prefect/pull/14520
AwsClientParameters
is a dict
— https://github.com/PrefectHQ/prefect/pull/14438
print_func
for run_namespaced_job
— https://github.com/PrefectHQ/prefect/pull/14463
GcsBucket.put/get_directory
— https://github.com/PrefectHQ/prefect/pull/14537
Published by serinamarie 4 months ago
PREFECT_API_URL
when starting server if not set — https://github.com/PrefectHQ/prefect/pull/14294
prefect deploy
— https://github.com/PrefectHQ/prefect/pull/14307
prefect deploy
breaks using a trigger with within
— https://github.com/PrefectHQ/prefect/pull/14338
cache_result_in_memory=False
— https://github.com/PrefectHQ/prefect/pull/14359
prefect deploy
— https://github.com/PrefectHQ/prefect/pull/14405
ParameterTypeError.from_validation_error
— https://github.com/PrefectHQ/prefect/pull/14419
flow-run
CLI log printing and escape special characters — https://github.com/PrefectHQ/prefect/pull/14469
main
for migration script in upgrade doc — https://github.com/PrefectHQ/prefect/pull/14365
Deployment
overview and add note on run_deployment
sdk use — https://github.com/PrefectHQ/prefect/pull/14425
RunInput
examples — https://github.com/PrefectHQ/prefect/pull/14473
All changes: https://github.com/PrefectHQ/prefect/compare/3.0.0rc9...3.0.0rc10
Published by desertaxle 4 months ago
prefect deploy
- https://github.com/PrefectHQ/prefect/pull/14403
uvicorn>0.29.0
- https://github.com/PrefectHQ/prefect/pull/14370
2.x
branch in GitHub - https://github.com/PrefectHQ/prefect/pull/14378
All changes: https://github.com/PrefectHQ/prefect/compare/2.19.6...2.19.7
Published by desertaxle 4 months ago
parameters
from flow definition if none are given otherwise by @bunchesofdonald in https://github.com/PrefectHQ/prefect/pull/14220
kubernetes-cluster
configto
collection_blocks_data.json` by @desertaxle in https://github.com/PrefectHQ/prefect/pull/14266
requests
for prefect-docker
by @chrisguidry in https://github.com/PrefectHQ/prefect/pull/14276
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.0.0rc8...3.0.0rc9
Published by desertaxle 4 months ago
Flow.deploy
- https://github.com/PrefectHQ/prefect/pull/13981
concurrency
timeout scoping - https://github.com/PrefectHQ/prefect/pull/14183
job_variables
in a prefect.yaml
before saving server-side - https://github.com/PrefectHQ/prefect/pull/14156
Full Changelog: https://github.com/PrefectHQ/prefect/compare/2.19.5...2.19.6
Published by marvin-robot 4 months ago
.submit
and .map
by @desertaxle in https://github.com/PrefectHQ/prefect/pull/14222
Deployment
interface by @zangell44 in https://github.com/PrefectHQ/prefect/pull/14199
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.0.0rc7...3.0.0rc8
Published by marvin-robot 4 months ago
ThreadPoolTaskRunner
settings by @desertaxle in https://github.com/PrefectHQ/prefect/pull/14201
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.0.0rc6...3.0.0rc7
Published by marvin-robot 4 months ago
Task.serve
sync compatible by @bunchesofdonald in https://github.com/PrefectHQ/prefect/pull/14184
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.0.0rc5...3.0.0rc6
Published by desertaxle 4 months ago
PrefectFuture
are garbage collection before resolution by @desertaxle in https://github.com/PrefectHQ/prefect/pull/14148
PrefectFuture
s to flows by @desertaxle in https://github.com/PrefectHQ/prefect/pull/14152
ConcurrentTaskRunner
from docs and ensure examples use .wait()
by @zangell44 in https://github.com/PrefectHQ/prefect/pull/14144
KubernetesClusterConfig
import by @desertaxle in https://github.com/PrefectHQ/prefect/pull/14154
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.0.0rc4...3.0.0rc5
Published by desertaxle 4 months ago
TaskWorker
by @chrisguidry in https://github.com/PrefectHQ/prefect/pull/14089
PENDING
task rescheduling by default by @chrisguidry in https://github.com/PrefectHQ/prefect/pull/14128
KubernetesClusterConfig
block from the core library by @chrisguidry in https://github.com/PrefectHQ/prefect/pull/14107
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.0.0rc3...3.0.0rc4
Published by desertaxle 4 months ago
@task
and @flow
— https://github.com/PrefectHQ/prefect/pull/13944
task_worker
runs against ephemeral server — https://github.com/PrefectHQ/prefect/pull/13848
ThreadPoolTaskRunner
— https://github.com/PrefectHQ/prefect/pull/13866
not_any_
filters to flow run state name/type — https://github.com/PrefectHQ/prefect/pull/13920
error_detail
for validation errors — https://github.com/PrefectHQ/prefect/pull/13940
url_for
utility for generating URLs for Prefect objects — https://github.com/PrefectHQ/prefect/pull/13885
shield
when re-enqueuing task runs — https://github.com/PrefectHQ/prefect/pull/13883
ThreadPoolTaskRunner
concurrency by copying max_workers
on duplication — https://github.com/PrefectHQ/prefect/pull/13943
prefect deploy
with dynamic @flow decorator args — https://github.com/PrefectHQ/prefect/pull/13967
if __name__ == "__main__":
blocks when running prefect deploy
— https://github.com/PrefectHQ/prefect/pull/13922
GlobalConcurrencyLimitUpdate
— https://github.com/PrefectHQ/prefect/pull/14005
TaskRunWaiter
cache size and expiration time and pin task worker thread pool workers to passed limit
— https://github.com/PrefectHQ/prefect/pull/14030
PREFECT_API_URL
to start a worker — https://github.com/PrefectHQ/prefect/pull/13942
LiteralResult
and handle singleton values the same — https://github.com/PrefectHQ/prefect/pull/13905
pydantic
syntax in docs — https://github.com/PrefectHQ/prefect/pull/13888
EngineContext
— https://github.com/PrefectHQ/prefect/pull/13917
jobs_runs_submit_by_id_and_wait_for_completion
— https://github.com/PrefectHQ/prefect/pull/13958
All changes: https://github.com/PrefectHQ/prefect/compare/3.0.0rc2...3.0.0rc3
Published by jakekaplan 4 months ago
prefect deploy
when using dynamic @flow
parameters - https://github.com/PrefectHQ/prefect/pull/13991
prefect deploy
to prevent code execution inside main guard - https://github.com/PrefectHQ/prefect/pull/14004
GlobalConcurrencyLimitUpdate
- https://github.com/PrefectHQ/prefect/pull/14006
jobs_runs_submit_by_id_and_wait_for_completion
to prefect-databricks
- https://github.com/PrefectHQ/prefect/pull/13957
All changes: https://github.com/PrefectHQ/prefect/compare/2.19.4...2.19.5
Published by zangell44 4 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.
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")
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()
Trigger actions, such as sending notifications, pausing schedules, starting flow runs and more in response to Prefect events.
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.
Improved CLI speed and several added commands and conveniences.
The new Runs page displays both flow and task run information, and an improved sidebar and switcher makes navigating Prefect simpler than ever.
3.0.0rc1
deferred
kwarg to Task.map
to executed mapped tasks on a task server by @desertaxle in https://github.com/PrefectHQ/prefect/pull/13756
version
command by @pleek91 in https://github.com/PrefectHQ/prefect/pull/13715
Variable.set
return value + docs by @jakekaplan in https://github.com/PrefectHQ/prefect/pull/13557
PrefectDistributedFuture
to use an event websocket to determine task completion by @desertaxle in https://github.com/PrefectHQ/prefect/pull/13763
prefect-kubernetes
to pydantic 2 by @zzstoatzz in https://github.com/PrefectHQ/prefect/pull/13687
prefect-redis
to integrations by @bunchesofdonald in https://github.com/PrefectHQ/prefect/pull/13758
AwsCredentials
first to match default factory by @bunchesofdonald in https://github.com/PrefectHQ/prefect/pull/13819
load_flow_argument_from_entrypoint
to work with async flows by @elisalimli in https://github.com/PrefectHQ/prefect/pull/13716
str
by @zzstoatzz in https://github.com/PrefectHQ/prefect/pull/13782
retry_delay_seconds
in task engine by @zzstoatzz in https://github.com/PrefectHQ/prefect/pull/13815
RedisFilesystem
to RedisStorageContainer
to match naming semantics of other filesystem classes by @bunchesofdonald in https://github.com/PrefectHQ/prefect/pull/13771
agents
concept page and refs for 3.0 by @serinamarie in https://github.com/PrefectHQ/prefect/pull/13631
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.0.0rc1...3.0.0rc2
Published by desertaxle 5 months ago
Could not find flow '[...]' in '[...].py'
errors when using prefect deploy
to deploy async flows - https://github.com/PrefectHQ/prefect/pull/13769
prefect deploy
- https://github.com/PrefectHQ/prefect/pull/13778
prefect deploy
- https://github.com/PrefectHQ/prefect/pull/13781
All changes: https://github.com/PrefectHQ/prefect/compare/2.19.3...2.19.4
Published by zangell44 5 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.0rc1
and check out the docs here.
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")
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()
Trigger actions, such as sending notifications, pausing schedules, starting flow runs and more in response to Prefect events.
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.
Improved CLI speed and several added commands and conveniences.
The new Runs page displays both flow and task run information, and an improved sidebar and switcher makes navigating Prefect simpler than ever.
task_run.expected_start_time
— https://github.com/PrefectHQ/prefect/pull/13491
enforce_parameter_schema
from False
to True
— https://github.com/PrefectHQ/prefect/pull/13594
PREFECT_EXPERIMENTAL_ENABLE_WORK_POOLS
and PREFECT_EXPERIMENTAL_WARN_WORK_POOLS
— https://github.com/PrefectHQ/prefect/pull/13144
pydantic>=2.7
for Secret
— https://github.com/PrefectHQ/prefect/pull/13613
Duration
types with plain timedelta
s — https://github.com/PrefectHQ/prefect/pull/13603
prefect.yaml
and cli support for new schedule fields — https://github.com/PrefectHQ/prefect/pull/13318
index.md
— https://github.com/PrefectHQ/prefect/pull/13353
deployments-block-based
concept page and refs for 3.0 — https://github.com/PrefectHQ/prefect/pull/13626
infrastructure
concept page and refs for 3.0 — https://github.com/PrefectHQ/prefect/pull/13629
prefect.software
from docs — https://github.com/PrefectHQ/prefect/pull/13382
host.md
— https://github.com/PrefectHQ/prefect/pull/13351
storage
concept page and refs - https://github.com/PrefectHQ/prefect/pull/13630
prefect-dbt
to pydantic v2 - https://github.com/PrefectHQ/prefect/pull/13718
prefect-email
to pydantic v2 — https://github.com/PrefectHQ/prefect/pull/13654
prefect-slack
to pydantic v2 — https://github.com/PrefectHQ/prefect/pull/13673
prefect-shell
to pydantic v2 — https://github.com/PrefectHQ/prefect/pull/13675
prefect-gcp
to pydantic v2 — https://github.com/PrefectHQ/prefect/pull/13650
prefect-github
to pydantic v2 — https://github.com/PrefectHQ/prefect/pull/13655
prefect-gitlab
to pydantic v2 — https://github.com/PrefectHQ/prefect/pull/13656
prefect-docker
to pydantic v2 - https://github.com/PrefectHQ/prefect/pull/13697
prefect-sqlalchemy
to pydantic v2 - https://github.com/PrefectHQ/prefect/pull/13700
PrefectDistributedClient
to prefect-dask
— https://github.com/PrefectHQ/prefect/pull/13537
RayTaskRunner
for compatibility with new engine — https://github.com/PrefectHQ/prefect/pull/13575
DaskTaskRunner
for compatibility with the updated engine — https://github.com/PrefectHQ/prefect/pull/13555
prefect deployment build
CLI from main
— https://github.com/PrefectHQ/prefect/pull/13366
prefect agent
CLI from main
— https://github.com/PrefectHQ/prefect/pull/13365
prefect deployment apply
CLI from main
— https://github.com/PrefectHQ/prefect/pull/13367
PrefectAgent
class — https://github.com/PrefectHQ/prefect/pull/13374
prefect.software
— https://github.com/PrefectHQ/prefect/pull/13375
deployments
module — https://github.com/PrefectHQ/prefect/pull/13373
EcsTask
from main
— https://github.com/PrefectHQ/prefect/pull/13417
AzureContainerInstanceJob
from main
— https://github.com/PrefectHQ/prefect/pull/13418
VertexAICustomTrainingJob
from main
— https://github.com/PrefectHQ/prefect/pull/13419
CloudRunJob
from main
— https://github.com/PrefectHQ/prefect/pull/13420
main
— https://github.com/PrefectHQ/prefect/pull/13424
Infrastructure
, BlockWorker
from main
— https://github.com/PrefectHQ/prefect/pull/13430
main
— https://github.com/PrefectHQ/prefect/pull/13410
prefect-agent
as a possible work pool type — https://github.com/PrefectHQ/prefect/pull/13444
deprecated
module and its references — https://github.com/PrefectHQ/prefect/pull/13345
is_state
— https://github.com/PrefectHQ/prefect/pull/13569
prefect work-queue
and refs to agents - https://github.com/PrefectHQ/prefect/pull/13638
All changes: https://github.com/PrefectHQ/prefect/compare/2.19.0...3.0.0rc1
See release notes for details.
Published by abrookins 5 months ago
prefect deploy
now works even when dependencies are missing from the current environment. This can speed up deployment via CI by removing the need to install dependencies before deploying your flows.
See the following pull requests for implementation details:
All changes: https://github.com/PrefectHQ/prefect/compare/2.19.2...2.19.3
Published by serinamarie 5 months ago
This release includes a few bug fixes, ensuring:
deployments/{id}/create_flow_run
endpoint hydrates workspace variablesrequests
dependency pinned to <2.32.0
in requirements-dev.txt
- https://github.com/PrefectHQ/prefect/pull/13538
Published by desertaxle 5 months ago
prefect-dbt
for running dbt-core
commandsIntroducing prefect-dbt
summary artifacts! With summary artifacts, you get a view of all of the runs that succeeded, failed, or were skipped as well as where the failed models live in your dbt project and why they failed. This exposes information about each dbt node in a succinct format that teams can use for development, debugging, insights, and so much more.
These changes are available in prefect-dbt
version 0.5.0!
See the following pull requests for implementation details:
prefect-ray
- https://github.com/PrefectHQ/prefect/pull/13385
prefect<3.0.0
- https://github.com/PrefectHQ/prefect/pull/13408
This release was accompanied by the following integration library releases:
prefect-aws
- 0.4.17prefect-azure
- 0.3.10prefect-bitbucket
- 0.2.5prefect-dask
- 0.2.9prefect-databricks
- 0.2.7prefect-dbt
- 0.5.0prefect-docker
- 0.5.2prefect-email
- 0.3.5prefect-gcp
- 0.5.12prefect-github
- 0.2.5prefect-gitlab
- 0.2.5prefect-kubernetes
- 0.3.10prefect-ray
- 0.3.6prefect-shell
- 0.2.5prefect-slack
- 0.2.6prefect-snowflake
- 0.27.6prefect-sqlalchemy
- 0.4.3All changes: https://github.com/PrefectHQ/prefect/compare/2.19.0...2.19.1
Published by serinamarie 5 months ago
✨ This release includes a number of enhancements and fixes!
As prefect-dask
and other integrations have been added to the prefect codebase, this release adds these integrations as extra requirements of the prefect package, making it easier to install support for everything in your Prefect stack:
pip install 'prefect[dask]'
We loved this community contribution so much, we did it for all our first-party integrations:
pip install 'prefect[aws,kubernetes,dask,dbt,sqlalchemy,slack]'
You can see the full list of Prefect's extra requirements in our setup.py.
You may want to fail immediately if a global concurrency slot is unavailable. Rather than block and wait, you can now specify a timeout_seconds
argument in the global concurrency context manager and catch a TimeoutError
if a slot is not available within the specified time.
@flow
def fail_immediately_flow():
try:
with concurrency("there-can-be-only-one", occupy=1, timeout_seconds=0.1):
do_something_resource_intensive()
except TimeoutError:
return Cancelled(message="Another flow run is already running")
Global concurrency limits let you control how many operations can run simultaneously-- now you can create, read, edit, and delete global concurrency limits via the Prefect CLI!
To create a new concurrency limit, use the prefect gcl create
command. You must specify a --limit
argument, and can optionally specify a --slot-decay-per-second
and --disable
argument.
prefect gcl create my-concurrency-limit --limit 5 --slot-decay-per-second 1.0
You can inspect the details of a concurrency limit using the prefect gcl inspect
command:
prefect gcl inspect my-concurrency-limit
To update a concurrency limit, use the prefect gcl update
command. You can update the --limit
, --slot-decay-per-second
, --enable
, and --disable
arguments:
prefect gcl update my-concurrency-limit --limit 10
We also have many more bug fixes and in-flight work! See the release notes for details!