We're excited to release version 0.15.0 of Dagster, which marks software-defined assets as fully stable and ready for primetime. Software-defined assets are a layer on top that links computations to long-lived objects, allowing users to build their Dagster jobs in a way that declares ahead of time what assets they produce and consume. This feature enables far-reaching lineage, improved code ergonomics, and the ability to operate assets directly. Additionally, we've made improvements to job retries, partition & backfill pages, left navigation pane in Dagit, Python API enhancements, and more. New features include asset groups, which organize software-defined assets into smaller groups that cut out irrelevant assets; configuration support for software-defined assets; and graph-backed assets, which enable the reuse of ops across different assets and jobs. We've also reworked our dbt integration to allow seamless interaction with tools like dbt, including rematerializing arbitrary sets of models from Dagit and scheduling jobs that run subsets of a dbt graph. Furthermore, we've introduced top-level inputs for Dagster jobs, generic outputs, run retries, metadata on jobs, a redesigned left navigation pane in Dagit, new backfills and partitions experience, and improvements to working with configuration and bulk actions on runs.