Prefect v2.0.b4 Release Notes

  • ๐Ÿ— We're really busy over here at Prefect! We've been getting great feedback from early adopters. There's a lot of work going on behind the scenes as we work on building some exciting new features that will be exclusive to Prefect 2.0, but we want to keep the enhancements flowing to you. In that spirit, there are a lot of quality-of-life improvements here!

    ๐Ÿš€ While most of the development of Prefect 2.0 is still happening internally, we're incredibly excited to be getting contributions in our open source repository. Big shoutout to our contributors for this last release:

    • @dannysepler
    • @ColeMurray
    • @albarrentine
    • @mkarbo
    • @AlessandroLollo

    Flow and task runners

    • ๐Ÿ‘ท Flow runners now pass all altered settings to their jobs instead of just the API key and URL
    • ๐Ÿ”ง The Kubernetes flow runner supports configuration of a service account name
    • 0๏ธโƒฃ The subprocess flow runner streams output by default to match the other flow runners
    • The Dask task runner has improved display of task keys in the Dask dashboard
    • โฑ The Dask task runner now submits the execution graph to Dask allowing optimization by the Dask scheduler

    ๐Ÿš€ Note that the Dask and Ray task runners will be moving out of the core Prefect library into dedicated prefect-ray and prefect-dask collections with the next release. This will reduce the number of dependencies we require for most use cases. Since we now have concurrent execution built in to the core library, these packages do not need to be bundled with Prefect. We're looking forward to building additional tasks and flows specific to Ray and Dask in their respective collections.

    Collections

    Speaking of collections, we've received our first user-contributed collection. It includes tasks for Cube.js, check it out!

    ๐Ÿš€ The following collections have also been recently released:

    ๐Ÿ‘€ You can see a list of all available collections in the Prefect Collections Catalog.

    ๐Ÿ Windows compatibility

    ๐Ÿš€ We've excited to announce that we've begun work on Windows compatibility. Our full test suite isn't passing yet, but we have core features working on Windows. We expect the majority of the edge cases to be addressed in an upcoming release.

    ๐Ÿ“š Documentation improvements

    ๐Ÿ“š We've added some new documentation and made lots of improvements to existing documentation and tutorials:

    • โž• Added documentation for associating conda environments with separate Prefect profiles
    • โž• Added storage steps and advanced examples to the Deployments tutorial
    • ๐Ÿ“š Expanded documentation of storage options
    • โž• Added workspace details to the Prefect Cloud documentation
    • ๐Ÿ‘Œ Improved schedules documentation with examples
    • Revised the Kubernetes tutorial to include work queue setup
    • ๐Ÿ‘Œ Improved tutorial examples of task caching

    CLI

    • ๐Ÿš€ Deployments can be deleted from the CLI
    • 0๏ธโƒฃ The CLI displays help by default
    • prefect version is robust to server connection errors
    • 0๏ธโƒฃ prefect config view shows sources by default
    • ๐Ÿš€ prefect deployment create exits with a non-zero exit code if one of the deployments fails to be created
    • prefect config set allows setting values that contain equal signs
    • prefect config set validates setting types before saving them
    • prefect profile inpect displays settings in a profile instead of duplicating prefect config view behavior
    • prefect storage create trims long descriptions

    ๐Ÿ› Bug squashing

    We've eradicated some bugs, replacing them with good behavior:

    • ๐Ÿ‘ท Flow runs are now robust to log worker failure
    • ๐Ÿš€ Deployment creation is now robust to ObjectAlreadyExists errors
    • ๐Ÿ”€ Futures from async tasks in sync flows are now marked as synchronous
    • Tildes (~) in user-provided paths for PREFECT_HOME are expanded
    • ๐Ÿ›  Fixed parsing of deployments defined in YAML
    • ๐Ÿš€ Deployment deletion cleans up scheduled runs

    ๐Ÿ”จ Optimizations and refactors

    ๐ŸŽ You might not see these fixes in your day-to-day, but we're dedicated to improving performance and maintaining our reputation as maintainers of an approachable and clean project.

    • ๐ŸŽ The state_name is attached to run models for improved query performance
    • Lifespan management for the ephemeral Orion application is now robust to deadlocks
    • ๐Ÿšš The hello route has moved out of the admin namespace so it is available on Prefect Cloud
    • ๐Ÿ‘Œ Improved readability and performance of profile management code
    • ๐Ÿ‘Œ Improved lower-bounds dependency parsing
    • โœ… Tests are better isolated and will not run against a remote API
    • ๐Ÿ‘Œ Improved representation of Prefect Setting objects
    • โž• Added extensive tests for prefect config and prefect profile commands
    • ๐Ÿšš Moved testing utilities and fixtures to the core library for consumption by collections