3.1.15 - The Numbers Are Made Up But The Features Are Real

Released on January 30, 2025 Enhancements ➕➕ Bug Fixes 🐞 Integrations & Dependencies 🤝 Development & Tidiness 🧹 Experimental 🔬
  • [Experimental] Enhancement: Lineage interface event names and context resource registration by @znicholasbrown in #16842
  • [Experimental] Include tags as related resources on lineage events by @kevingrismore in #16895
Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.14…3.1.15

3.1.14 - Addition by Subtraction

Released on January 23, 2025 Bug Fixes 🐞
  • respect PREFECT_SERVER_LOGGING_LEVEL in prefect server start by @zzstoatzz in #16765
  • don’t make extra calls to cloud in prefect dashboard open by @zzstoatzz in #16768
  • Fix configuring loggers found in ‘PREFECT_LOGGING_EXTRA_LOGGERS’ by @estasney in #16652
  • Ensure multiple Inputs cache policies are consolidated when used in a CompoundCachePolicy by @zzstoatzz in #16785
  • Add missing function body import in client.find_automation by @aaazzam in #16824
  • Add auth string handling to server side client by @cicdw in #16833
  • Fix serialization for FlowRunContext for flow runs kicked off from a deployment by @desertaxle in #16831
  • Fix subtraction logic on non-input cache policies by @cicdw in #16840
  • fix block cli error messages by @aaazzam in #16787
Development & Tidiness 🧹 Documentation 📓 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.13…3.1.14

3.1.13 - type_all_the_things: bool = True

Released on January 17, 2025 We’re thrilled to announce a major milestone: prefect is now 100% type complete! 🎉 Every public interface in the library now includes comprehensive type annotations, bringing significant improvements to the developer experience. This means you’ll enjoy:
  • Enhanced autocompletion in your IDE, helping you write code faster and with fewer errors
  • Robust static analysis through tools like mypy and pyright, catching potential issues before runtime
  • Clear, unambiguous type signatures that serve as living documentation for the entire codebase
This achievement represents our commitment to building a more maintainable, reliable, and developer-friendly Python library. Enhancements ➕➕ Bug Fixes 🐞
  • Fix SendgridEmail code example by @jakekaplan in #16677
  • Fix connection string handling when individual components are provided via settings by @desertaxle in #16680
  • Handles the instrumentation case where a future is only used to wait_for by @chrisguidry in #16709
  • Fix bug where a server can’t be stopped and restarted without waiting several seconds by @desertaxle in #15729
  • Fixes to Prefect Basic Auth by @cicdw in #16735
  • Switch drain_all call to be called from new thread instead of global loop thread by @jeanluciano in #16739
  • Ensures that QueueService instances are unique within types by @chrisguidry in #16751
Integrations & Dependencies 🤝 Development & Tidiness 🧹 Documentation 📓 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.12…3.1.13

3.1.12 - Winter Summit is Coming

Released on January 09, 2025 Please consider joining us virtually January 22-23 for our Winter Summit, where we’ll be giving some exciting updates on our OSS community growth along with customer stories and updates on Prefect’s roadmap! Check out the agenda and register here. Enhancements ➕➕ Bug Fixes 🐞 Integrations & Dependencies 🤝
  • Update croniter requirement from <6.0.0,>=1.0.12 to >=1.0.12,<7.0.0 by @dependabot in #16431
Development & Tidiness 🧹 Documentation 📓 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.11…3.1.12

3.1.11 - Flow-verload

Released on January 02, 2025 Enhancements ➕➕ Bug Fixes 🐞 Integrations & Dependencies 🤝 Development & Tidiness 🧹 Documentation 📓 v2 UI Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.10…3.1.11

3.1.10 - Not a CPU was stirring, not even in prod

Released on December 25, 2024 ‘Twas the night before Christmas, when through every cloud Not a CPU was stirring, not even in prod Bug Fixes 🐞 Development & Tidiness 🧹 Documentation 📓 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.9…3.1.10

3.1.9 - All I Want for Christmas is Queue

Released on December 20, 2024 Enhancements ➕➕
  • Log exceptions when run submission fails in both the runner and worker by @cicdw in #16424
  • Refactor prefect.flow decorator by @mjpieters in #16405
Bug Fixes 🐞 Integrations & Dependencies 🤝 Development & Tidiness 🧹 Documentation 📓 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.8…3.1.9

3.1.8 - A Tale of Two Features

Released on December 17, 2024 Runner Heartbeats for Flow Run Monitoring Flow runs can now emit heartbeat events to detect infrastructure failures (crashed machines, evicted containers, etc). When enabled, an automation can automatically mark flows as crashed when heartbeats stop, preventing stuck “zombie” flows in the running state. Enable with:
  • Set PREFECT_RUNNER_HEARTBEAT_FREQUENCY (requires Prefect 3.1.8+)
  • Deploy the provided automation script to update flow states when heartbeats stop
from prefect.automations import Automation
from prefect.client.schemas.objects import StateType
from prefect.events.actions import ChangeFlowRunState
from prefect.events.schemas.automations import EventTrigger, Posture

my_automation = Automation(
    name="Crash zombie flows",
    trigger=EventTrigger(
        after={"prefect.flow-run.heartbeat"},
        expect={
            "prefect.flow-run.heartbeat",
            "prefect.flow-run.Completed",
            "prefect.flow-run.Failed",
            "prefect.flow-run.Cancelled",
            "prefect.flow-run.Crashed",
        },
        match={"prefect.resource.id": ["prefect.flow-run.*"]},
        for_each={"prefect.resource.id"},
        posture=Posture.Proactive,
        threshold=1,
        within=90,
    ),
    actions=[
        ChangeFlowRunState(
            state=StateType.CRASHED,
            message="Flow run marked as crashed due to missing heartbeats.",
        )
    ],
)

my_automation.create()
Basic Authentication We have also added a long requested feature: basic authentication support for the Prefect API. Enable by setting an auth string: Start a protected server:
PREFECT_SERVER_API_AUTH_STRING="admin:admin" prefect server start
Authenticate client operations:
PREFECT_API_AUTH_STRING="admin:admin" python flow_script.py
Enhancements ➕➕ Integrations & Dependencies 🤝 Documentation 📓 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.7…3.1.8

3.1.7 - Straight outta Half Moon Bay

Released on December 16, 2024 Enhancements ➕➕ Bug Fixes 🐞 Development & Tidiness 🧹 Documentation 📓 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.6…3.1.7

3.1.6 - list[type[Improvements]]

Released on December 11, 2024 This release begins a concerted effort to improve our public interface’s type completeness; we hope that this will make the experience of authoring Prefect flows within IDEs more robust and allow for better autocomplete. We welcome all contributions to this effort - follow along with this issue to get involved! Enhancements ➕➕ Bug Fixes 🐞 Integrations & Dependencies 🤝 Development & Tidiness 🧹 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.5…3.1.6

3.1.5 - Like Leftovers, But Async (No More Pi)

Released on December 03, 2024 Enhancements ➕➕ Bug Fixes 🐞 Integrations & Dependencies 🤝 Development & Tidiness 🧹 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.4…3.1.5

3.1.4 - Schrödinger’s Labels

Released on November 21, 2024 Enhancements ➕➕ Bug Fixes 🐞 Integrations & Dependencies 🤝
  • Update prefect pin to >=3.1.3 in prefect-aws by @zzstoatzz in #16064
  • Update AzureBlobStorageCredentials to close default credentials when used as a context manager by @desertaxle in #16071
Development & Tidiness 🧹 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.3…3.1.4

3.1.3 - Queue The Improvements

Released on November 19, 2024 Enhancements ➕➕ Bug Fixes 🐞 Integrations & Dependencies 🤝 Development & Tidiness 🧹 New OSS UI 📊 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.2…3.1.3

3.1.2 - Bug Fixes, Chicago Style, Hold the Ketchup

Released on November 12, 2024 Bug Fixes 🐞 Integrations & Dependencies 🤝 Development & Tidiness 🧹 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.1…3.1.2

3.1.1 - Around the Codebase in 80 PRs

Released on November 08, 2024 Enhancements ➕➕ Bug Fixes 🐞 Integrations & Dependencies 🤝
  • Update typer requirement from !=0.12.2,<0.13.0,>=0.12.0 to >=0.12.0,!=0.12.2,<0.14.0 by @dependabot in #15949
  • Setup OpenTelemetry exporters when initializing prefect by @bunchesofdonald in #15946
Development & Tidiness 🧹 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.1.0…3.1.1

3.1.0 - Configuro, ergo sum

Released on October 31, 2024 We’re excited to unveil a major overhaul of Prefect’s configuration system. At the heart of this release is a complete refactor of our settings architecture, now powered by pydantic-settings for enhanced organization and clarity. You can now define your settings in either a dedicated prefect.toml file or your existing pyproject.toml file, streamlining the configuration experience and making it more portable across environments. To learn more about new settings capabilities, check out the updated settings documentation or watch @zzstoatzz’s instructional demo on YouTube. New Features 🎉 Enhancements ➕➕ Bug Fixes 🐞
  • Don’t cache on any key computation errors and log for visibility by @cicdw in #15868
  • Fix logging for FastAPI and Uvicorn by @desertaxle in #15871
  • Allow for unpersisted 2.x result payloads in states by @cicdw in #15878
  • Update Settings.copy_with_update to ignore sources when restoring default settings by @desertaxle in #15884
  • Don’t reuse exception name in nested exception handling by @cicdw in #15894
Integrations & Dependencies 🤝 prefect-dbt
  • Add DbtCloudJob block to top level import by @cicdw in #15880
Dependencies Development & Tidiness 🧹 Full Changelog: https://github.com/PrefectHQ/prefect/compare/3.0.11…3.1.0