NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #5187 most downloaded on PyPI
Metaflow: More AI and ML, Less Engineering
Last release 15 days ago
02 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
267 releases · first in 2019
One column per quarter.
get_triggered_run for argo by @mt-ob in https://github.com/Netflix/metaflow/pull/2522
Full Changelog: https://github.com/Netflix/metaflow/compare/2.16.6...2.16.7
backward compatibility for generate_fake_flow_file_contents by @mt-ob in https://github.com/Netflix/metaflow/pull/2511
Full Changelog: https://github.com/Netflix/metaflow/compare/2.16.5...2.16.6
Fixes tolerations typehint by @Winterflower in https://github.com/Netflix/metaflow/pull/2502
list_deployed_flows for argo by @mt-ob in https://github.com/Netflix/metaflow/pull/2508Full Changelog: https://github.com/Netflix/metaflow/compare/2.16.4...2.16.5
[bug fix] fix subtle bug from netflix/metaflow#2463 by @valayDave in https://github.com/Netflix/metaflow/pull/2498
Full Changelog: https://github.com/Netflix/metaflow/compare/2.16.3...2.16.4
fix: regression with default notifications on argo workflows by @saikonen in https://github.com/Netflix/metaflow/pull/2496
Full Changelog: https://github.com/Netflix/metaflow/compare/2.16.2...2.16.3
retry 500s too for service by @savingoyal in https://github.com/Netflix/metaflow/pull/2493
Full Changelog: https://github.com/Netflix/metaflow/compare/2.16.1...2.16.2
fix: uv bootstrapping by @saikonen in https://github.com/Netflix/metaflow/pull/2491
Full Changelog: https://github.com/Netflix/metaflow/compare/2.16.0...2.16.1
New packaging support by @saikonen in https://github.com/Netflix/metaflow/pull/2487
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.21...2.16.0
feature: increase argo exit hook resources by @saikonen in https://github.com/Netflix/metaflow/pull/2484
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.20...2.15.21
fix: change get_secrets to get_secret by @saikonen in https://github.com/Netflix/metaflow/pull/2482
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.19...2.15.20
vendor imghdr into metaflow by @valayDave in https://github.com/Netflix/metaflow/pull/2467
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.18...2.15.19
This release adds the ability to force rebuild environments, which can be used to try solve environment resolution related issues
@conda/@pypi environmentsThis release adds the ability to force rebuild environments, which can be used to try solve environment resolution related issues
Simply apply the new flag to trigger a rebuild
python HelloConda.py --environment conda --force-rebuild-environments run
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.17...2.15.18
Two fixes: runner/deployer with configs and None config by @romain-intel in https://github.com/Netflix/metaflow/pull/2454
kubernetes image pull secrets by @nschmeller in https://github.com/Netflix/metaflow/pull/2400Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.16...2.15.17
fix: boto3 client configuration handling in client_params by @yg7445 in https://github.com/Netflix/metaflow/pull/2412
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.15...2.15.16
fix: skip metaflow dependencies in uv-environment by @saikonen in https://github.com/Netflix/metaflow/pull/2421
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.14...2.15.15
fix: add back conda debug option that got removed. by @saikonen in https://github.com/Netflix/metaflow/pull/2419
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.13...2.15.14
[conda] conda deps pinning for azure/gcp downloaders by @valayDave in https://github.com/Netflix/metaflow/pull/2413
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.12...2.15.13
fix: threaded resolve for conda/pypi omitting exceptions by @saikonen in https://github.com/Netflix/metaflow/pull/2399
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.11...2.15.12
This release fixes an issue where the default timeouts of the Google Cloud Storage client were affecting uploading massive files to the flow datastore
This release fixes an issue where the default timeouts of the Google Cloud Storage client were affecting uploading massive files to the flow datastore.
The fix should affect flows that relied on @conda/@pypi with large individual dependencies, which might previously timeout during their upload, resulting in a broken environment.
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.10...2.15.11
support nvct by @madhur-ob in https://github.com/Netflix/metaflow/pull/2393
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.9...2.15.10
[kubernetes] security context for pods by @valayDave in https://github.com/Netflix/metaflow/pull/2387
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.8...2.15.9
[RFR] S3 bugfixes by @npow in https://github.com/Netflix/metaflow/pull/2329
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.7...2.15.8
fix python names and help params in DeployedFlow from_deployment by @madhur-ob in https://github.com/Netflix/metaflow/pull/2357
docker info for more portable check for running docker daemon by @yonirab in https://github.com/Netflix/metaflow/pull/2350Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.6...2.15.7
This release adds support for more pip tags which should help with environments previously being unable to resolve with some newer packages
pip tagsThis release adds support for more pip tags which should help with environments previously being unable to resolve with some newer packages
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.5...2.15.6
This release changes the incident.io support for flow notifications to use alerts, instead of directly creating incidents. The benefits of using alert
Incident.io alertsThis release changes the incident.io support for flow notifications to use alerts, instead of directly creating incidents.
The benefits of using alerts include being able to customize handling of notifications on the incident.io side, and an easier user experience enabling these when deploying flows.
Read more about this feature in the Metaflow docs
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.4...2.15.5
check gum and helm is installed properly by @savingoyal in https://github.com/Netflix/metaflow/pull/2326
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.3...2.15.4
Fix issue with parsers not being compatible with extensions by @romain-intel in https://github.com/Netflix/metaflow/pull/2320
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.2...2.15.3
look for Makefile in more places by @savingoyal in https://github.com/Netflix/metaflow/pull/2315
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.1...2.15.2
support alternate architectures for @conda/@pypi by @savingoyal in https://github.com/Netflix/metaflow/pull/2304
Full Changelog: https://github.com/Netflix/metaflow/compare/2.15.0...2.15.1
mute stubs test for linux py3.13 by @savingoyal in https://github.com/Netflix/metaflow/pull/2295
Full Changelog: https://github.com/Netflix/metaflow/compare/2.14.3...2.15.0
Revert "change default micromamba for s3 datastore" by @savingoyal in https://github.com/Netflix/metaflow/pull/2288
Full Changelog: https://github.com/Netflix/metaflow/compare/2.14.2...2.14.3
[Ready for Review] Make TOGGLE_DECOSPECS only add default decorator once. by @darinyu in https://github.com/Netflix/metaflow/pull/2097
Full Changelog: https://github.com/Netflix/metaflow/compare/2.14.1...2.14.2
change default micromamba for s3 datastore by @savingoyal in https://github.com/Netflix/metaflow/pull/2262
Full Changelog: https://github.com/Netflix/metaflow/compare/2.14.0...2.14.1
This release reverts a change that caused the Metaflow deployer for Argo Workflows and AWS Step Functions not to work.
This release reverts a change that caused the Metaflow deployer for Argo Workflows and AWS Step Functions not to work.
The minor version is being bumped due to last releases https://github.com/Netflix/metaflow/pull/2243 changing defaults for artifact serialization, even though these should not have any functional effect with Python versions >=3.4
Improves the time it takes to launch the first task by using a connection pool for the metadata service traffic
Full Changelog: https://github.com/Netflix/metaflow/compare/2.13.10...2.14.0
This release introduces support for Incident.io alerts with Argo Workflows. In order to enable these, some additional configuration is required compar
This release introduces support for Incident.io alerts with Argo Workflows. In order to enable these, some additional configuration is required compared to other notification implementations.
as an example
python alerting_flow.py argo-workflows create \
--notify-on-error \
--notify-on-success \
--notify-incident-io-api-key API-KEY \
--incident-io-error-severity-id ERROR-ID \
--incident-io-success-severity-id SUCCESS-ID
The API key used should have permissions to create incidents.
The severity ID's are a requirement from incident.io as this is how alerts are categorized. All severity ID's are account based and users can create new ones as they please, which is why we must set ones as part the flow deployment.
This release changes the default artifact serialization to use protocol 4 for pickling. The change should lead to storage savings in small (<2 GB) artifacts along with faster serializations due to skipping trying protocol 2 first.
echo_always() for method output_raw and `out… by @xujiboy in https://github.com/Netflix/metaflow/pull/2244Full Changelog: https://github.com/Netflix/metaflow/compare/2.13.9...2.13.10
This release fixes an issue that was introduced in the previous version, where @conda/@pypi environment creation would fail if a micromamba binary was
micromamba on-demand installation.This release fixes an issue that was introduced in the previous version, where @conda/@pypi environment creation would fail if a micromamba binary was missing and had to be installed on-the-fly.
Full Changelog: https://github.com/Netflix/metaflow/compare/2.13.8...2.13.9
[RfR]Reload all related parameters in runner by @wangchy27 in https://github.com/Netflix/metaflow/pull/2217
Full Changelog: https://github.com/Netflix/metaflow/compare/2.13.7...2.13.8
Fix an issue with using MutableFlow by @romain-intel in https://github.com/Netflix/metaflow/pull/2223
Full Changelog: https://github.com/Netflix/metaflow/compare/2.13.6...2.13.7
fix: Argo events project bug by @saikonen in https://github.com/Netflix/metaflow/pull/2216
Full Changelog: https://github.com/Netflix/metaflow/compare/2.13.5...2.13.6
metadata for spot termination for k8s by @madhur-ob in https://github.com/Netflix/metaflow/pull/2207
Full Changelog: https://github.com/Netflix/metaflow/compare/2.13.4...2.13.5
fix: remove step level decospecs by @saikonen in https://github.com/Netflix/metaflow/pull/2203
Full Changelog: https://github.com/Netflix/metaflow/compare/2.13.3...2.13.4
[cards] PythonCode component by @valayDave in https://github.com/Netflix/metaflow/pull/2196
PythonCode component by @valayDave in https://github.com/Netflix/metaflow/pull/2196Full Changelog: https://github.com/Netflix/metaflow/compare/2.13.2...2.13.3
Allow additional commands to be injected directly on the Runner() by @romain-intel in https://github.com/Netflix/metaflow/pull/2192
Full Changelog: https://github.com/Netflix/metaflow/compare/2.13.1...2.13.2
feature: custom annotations revisited by @saikonen in https://github.com/Netflix/metaflow/pull/1568
@kubernetes, @conda etc. by @savingoyal in https://github.com/Netflix/metaflow/pull/2186Full Changelog: https://github.com/Netflix/metaflow/compare/2.13...2.13.1
This release includes performance improvements for resolving and bootstrapping environments defined with @conda/@pypi.
@conda/@pypiThis release includes performance improvements for resolving and bootstrapping environments defined with @conda/@pypi.
One of these changes is that we make sure to install only packages that were resolved and cached for the defined environment. No installing of transitive dependencies or building of packages should be happening when executing remotely with @pypi.
These changes come with some tradeoffs which will affect users using packages that have platform-specific dependencies. One such package is torch.
A flow used to work with @pypi(packages={"torch"="2.5.1"}) when deploying from a mac to run on Kubernetes, but is now failing with something akin to
ValueError: libcublas.so.[0-9] not found in the system path
which points to missing CUDA libraries in the environment. This is due to torch marking the CUDA dependencies linux-only, which is why they do not get bundled when the deploying machine is not a linux system. In previous versions of Metaflow the flows used to work, as the missing dependencies were getting installed on-the-fly, leading to very slow startup times.
So how do we make our torch flow work again? For cross-platform deployment we have three options
@conda instead of @pypi for the torch steps, as conda does a bit of a better job with the dependencies in this case.torch step with a custom Docker image that has CUDA libraries baked in. torch will look for the libraries on a system level as well.torch in your decorator, for example@pypi(
python="3.12",
packages={
"torch": "2.5.1",
# linux specific dependencies of torch that would not get resolved otherwise on non-linux machines
"nvidia-cuda-runtime-cu12": "12.4.127",
"nvidia-cudnn-cu12": "9.1.0.70",
"nvidia-cuda-nvrtc-cu12": "12.4.127",
"nvidia-cuda-cupti-cu12": "12.4.127",
"nvidia-cublas-cu12": "12.4.5.8",
"nvidia-cufft-cu12": "11.2.1.3",
"nvidia-curand-cu12": "10.3.5.147",
"nvidia-cusolver-cu12": "11.6.1.9",
"nvidia-cusparse-cu12": "12.3.1.170",
"nvidia-nccl-cu12": "2.21.5",
"nvidia-nvtx-cu12": "12.4.127",
"nvidia-nvjitlink-cu12":" 12.4.127",
"triton": "3.2.0"
},
)
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.39...2.13
Fix issue where run_command blocks when it shouldn't by @romain-intel in https://github.com/Netflix/metaflow/pull/2169
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.38...2.12.39
Fix case where the decorator's init function could be called twice. by @romain-intel in https://github.com/Netflix/metaflow/pull/2167
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.37...2.12.38
We have strived to keep changes backward compatible so there should be no breaking changes apart from the following:
This release does not contain announced user features but contains architectural changes to support upcoming new features. We have strived to keep changes backward compatible so there should be no breaking changes apart from the following:
METAFLOW_ environment variables to pass top-level options for flow-decorators (like METAFLOW_BRANCH to pass the equivalent of --branch for the project decorator), you will now have to use METAFLOW_FLOW_ (so METAFLOW_BRANCH is now METAFLOW_FLOW_BRANCH). The reason for this change was to more safely scope flow-level decorator options.__init__ to a new callback hook called init (no argument). Failure to do so should not impact current functionality but may prevent your decorator from taking advantage of upcoming changes.We are not aware of any other user-visible breaking changes but please come ask us (or file an issue) if you notice other regressions.
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.36...2.12.37
Fix issue with resume combined with @parallel by @romain-intel in https://github.com/Netflix/metaflow/pull/2163
@parallel by @romain-intel in https://github.com/Netflix/metaflow/pull/2163Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.35...2.12.36
fix: argo workflows --only-json by @saikonen in https://github.com/Netflix/metaflow/pull/2162
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.34...2.12.35
Async runner improvements by @filipcacky in https://github.com/Netflix/metaflow/pull/2056
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.33...2.12.34
[parallel] exclude _parallel_ubf_iter from merge_artifacts by @valayDave in https://github.com/Netflix/metaflow/pull/2152
_parallel_ubf_iter from merge_artifacts by @valayDave in https://github.com/Netflix/metaflow/pull/2152Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.32...2.12.33
[runtime] run heartbeats for local runtime's run command by @valayDave in https://github.com/Netflix/metaflow/pull/2150
run command by @valayDave in https://github.com/Netflix/metaflow/pull/2150Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.31...2.12.32
[jobsets] Fix killing jobsets by @valayDave in https://github.com/Netflix/metaflow/pull/2149
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.30...2.12.31
This release fixes a regression with 2.12.29 which lead to flows not being able to execute on Argo workflows or AWS Step functions
This release fixes a regression with 2.12.29 which lead to flows not being able to execute on Argo workflows or AWS Step functions
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.29...2.12.30
dont support slurm with airflow and sfn by @madhur-ob in https://github.com/Netflix/metaflow/pull/2134
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.28...2.12.29
[kubernetes][jobsets] dont set replicas to 0 by @valayDave in https://github.com/Netflix/metaflow/pull/2118
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.27...2.12.28
Set metadata properly in runner by @romain-intel in https://github.com/Netflix/metaflow/pull/2113
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.26...2.12.27
use cwd in nbrunner and nbdeployer by @madhur-ob in https://github.com/Netflix/metaflow/pull/2088
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.25...2.12.26
add logs to error message for @pypi by @savingoyal in https://github.com/Netflix/metaflow/pull/2079
Full Changelog: https://github.com/Netflix/metaflow/compare/2.12.24...2.12.25
Your coding agent can read these notes before it upgrades. Set up the MCP server →