3.3.7 - Model Behavior

Released on April 28, 2025 Enhancements ➕➕
  • Determine field_keys using .model_fields instead of .model_json_schema by @ogenstad in #17908
Bug Fixes 🐞 Development & Tidiness 🧹 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.3.6…3.3.7

3.3.6 - One flow, many roads

Released on April 24, 2025 Direct submission of workflows to dynamic infrastructure is in beta! We’re pleased to announce the beta release of new infrastructure decorators enabling the submission of workflows directly to dynamic infrastructure. This feature enables you to easily execute workflows on various infrastructure environments without the need for multiple deployments or managing persistent workers. This simplifies workflow definitions and enhances portability. Here’s a small example of the new @kubernetes decorator in action:
from prefect import flow
from prefect_kubernetes import kubernetes

@kubernetes(work_pool="olympic")
@flow(result_storage="s3-bucket/remote-result-storage")
def my_k8s_flow():
    return "🏊‍♀️ Finished another lap!"

[@flow](https://github.com/flow)
def parent_flow():
    return my_k8s_flow() # will run in a Kubernetes cluster via the 'olympic' work pool

print(my_k8s_flow()) # prints "🏊‍♀️ Finished another lap!"
Check out the docs for more information on using this new feature. Feedback is very important for us to help refine this feature while it’s in beta. Give it a try, and share your feedback with us by opening an issue! Enhancements ➕➕ Bug Fixes 🐞 Development & Tidiness 🧹 Documentation 📓
  • Add initial documentation for submitting workflows directly to dynamic infrastructure by @desertaxle in #17861
  • Fix dead integration link by @zzstoatzz in #17831
  • Nginx sample config + note about client API key/auth string precedence by @ColinMaudry in #17810
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.3.5…3.3.6

3.3.5 - Don’t block, just commit

Released on April 17, 2025 Enhancements ➕➕ Bug Fixes 🐞 Integrations & Dependencies 🤝 Development & Tidiness 🧹 Documentation 📓 Experimental 🧪 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.3.4…3.3.5

3.3.4 - Support for 3.13 in All Integrations - A Triskaidekaphobe’s Worst Nightmare

Released on April 11, 2025 Enhancements ➕➕ Bug Fixes 🐞
  • Avoid deleting runs where execution has been attempted or are past their scheduled start date by @desertaxle in #17769
  • Update event occurred + related resource indexes for Postgres by @desertaxle in #17731
  • Fix readiness_result type to match expected Process type by @Igort4 in #17771
  • deprecate runner webserver machinery by @zzstoatzz in #17775
  • Only prompt to save if file does not exist by @cicdw in #17519
Development & Tidiness 🧹 Experimental Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.3.3…3.3.4

3.3.3 - Where were you at midnight UTC on January 1st, 1 AD?

Released on April 05, 2025 Includes a fix for a bug loading the flow run graph caused by an incorrect timezone-naive default. Enhancements ➕➕
  • Add server side error handling to block class registration by @cicdw in #17670
Bug Fixes 🐞
  • prefect-dask: fix string cluster_class instantiation by @zzstoatzz in #17737
  • Include timezone in default since value for flow run graph v2 endpoint by @desertaxle in #17747
Integrations & Dependencies 🤝 Experimental Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.3.2…3.3.3

3.3.2 - Just Pumping My GitHub Stats Again

Released on April 03, 2025 Bug Fixes 🐞 Integrations & Dependencies 🤝 Development & Tidiness 🧹 Documentation 📓 Experimental
  • Includes Deployment versioning info in flow run execution event by @chrisguidry in #17701
  • Add version and branching info to DeploymentCreate and DeploymentUpdate by @zangell44 in #17711
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.3.1…3.3.2

3.3.1

Released on April 01, 2025 Alleviates a potential error ValueError: Must provide start_date as a datetime caused by changes to deprecation utils in #17577. Enhancements ➕➕
  • Added worker for Snowflake’s Snowpark Container Services by @bjorhn in #16393
Bug Fixes 🐞
  • Fixes class instance tasks and flows when called directly on a class by @desertaxle in #17660
  • Update DaskTaskRunner to lazily load the Dask client by @desertaxle in #17648
  • handle targeted_retries=0 in run_dbt_cloud_job by @zzstoatzz in #17663
  • temporarily allow str or datetime for generate_deprecation_message by @zzstoatzz in #17671
Development & Tidiness 🧹 Documentation 📓
  • docs: correct worker type for Google Cloud Run V2 by @rcash in #17669
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.3.0…3.3.1

3.3.0 - Whenever, wherever

Released on March 31, 2025 We’re excited to announce Python 3.13 support! To accommodate Python 3.13, we’ve switched from pendulum to whenever for handling date/time functionality. This change currently applies only when installing prefect with Python 3.13; environments using Python 3.12 and below will continue using pendulum. We plan to fully transition to whenever for all Python versions in a future release. Additionally, this release cleans up deprecated features whose deprecation periods have ended. For detailed information on removed functionalities, see #17632. Enhancements ➕➕ Bug Fixes 🐞 Development & Tidiness 🧹 Documentation 📓
  • Fix broken link in docs for settings reference documentation by @rcash in #17639
  • Fix Google Cloud run worker guide link by @rcash in #17642
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.2.15…3.3.0