NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #5533 most downloaded on PyPI
Metaflow: More AI and ML, Less Engineering
Last release 1 months 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
fix: argo conditional issue by @saikonen in #3340
Full Changelog: 2.19.38...2.19.39
One column per quarter.
build(deps-dev): bump js-yaml from 4.3.0 to 4.3.1 in /metaflow/plugins/cards/ui by @dependabot [bot] in #3336
Full Changelog: 2.19.37...2.19.38
Fix duplicate test name masking parse_kube_keyvalue_list success cases by @prabhaharanv in #3315
pandas>=3.0 by @ShreehariVaasishta in #3290Full Changelog: 2.19.36...2.19.37
build(deps-dev): bump brace-expansion from 1.1.12 to 1.1.16 in /metaflow/plugins/cards/ui by @dependabot [bot] in #3322
Full Changelog: 2.19.35...2.19.36
feat(tracing): respect otel service name via env variable by @vivekkhimani in #3231
Full Changelog: 2.19.34...2.19.35
fix(argo): order conditional input fallback by DAG by @talsperre in #3233
Full Changelog: 2.19.33...2.19.34
Fix broad exception handling in CLI step lookup and resume run-id validation by @LuisJG8 in #3179
DAGNode.foreach_param / output_steps()["foreach_artifact"] correctly populated on python3.12+ by @vivekkhimani in #3237Full Changelog: 2.19.32...2.19.33
fix: optionally use schedules for cronjob by @dhpollack in #3094
Full Changelog: 2.19.31...2.19.32
build(deps-dev): bump postcss from 8.5.6 to 8.5.12 in /metaflow/plugins/cards/ui by @dependabot [bot] in #3153
Full Changelog: 2.19.30...2.19.31
fix(s3): guard _put_many_files and _read_many_files against empty input by @romain-intel in #3194
Full Changelog: 2.19.29...2.19.30
fix: corrected package name typo in MutableStep flow type hint by @agsaru in #3183
Full Changelog: 2.19.28...2.19.29
fix: use sys.version_info instead of platform.python_version() in conda decorator by @npow in https://github.com/Netflix/metaflow/pull/3177
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.27...2.19.28
Fix pip config parsing for multiple extra-index-urls by @harkrish-1 in https://github.com/Netflix/metaflow/pull/3125
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.26...2.19.27
Add pluggable artifact serializer framework by @saeidbarati157 in https://github.com/Netflix/metaflow/pull/3117
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.25...2.19.26
Remove unused audit() callbacks from test_config flow files by @talsperre in https://github.com/Netflix/metaflow/pull/3171
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.24...2.19.25
fix(ci): replace minikube devstack with standalone MinIO container by @npow in https://github.com/Netflix/metaflow/pull/3157
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.23...2.19.24
Testing Infra Enhancements by @npow in https://github.com/Netflix/metaflow/pull/3040
--compress-state-machine help text by @dpoznik in https://github.com/Netflix/metaflow/pull/3146path_key instead of stale path in load_blobs error messages by @codeMaestro78 in https://github.com/Netflix/metaflow/pull/2943Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.22...2.19.23
fix: correct filename typo in timeout_decorator stack-frame filter by @Vansh0204 in https://github.com/Netflix/metaflow/pull/3030
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.21...2.19.22
Fix #2923: Changed CSV Parsing to DictReader in tutorial 01 and 02 by @antidude900 in https://github.com/Netflix/metaflow/pull/2933
batch (list|kill) applies to the latest run by default by @dpoznik in https://github.com/Netflix/metaflow/pull/2964Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.20...2.19.21
fix: Missing values from reserved-params by @saikonen in https://github.com/Netflix/metaflow/pull/2787
shared_memory doesn't set kubernetes deco shared_memory by @theOGognf in https://github.com/Netflix/metaflow/pull/2760Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.19...2.19.20
feature: AWS Batch privileged option by @saikonen in https://github.com/Netflix/metaflow/pull/2767
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.18...2.19.19
Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in https://github.com/Netflix/metaflow/pull/2763
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.17...2.19.18
fix: edge case with symlink traversal in packaging by @saikonen in https://github.com/Netflix/metaflow/pull/2751
--only-json flag in Argo Workflows CLI by @vivekkhimani in https://github.com/Netflix/metaflow/pull/2743Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.16...2.19.17
pre-commit autoupdate 2025-12-21 by @cclauss in https://github.com/Netflix/metaflow/pull/2731
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.15...2.19.16
fix: force-rebuild-environments edge case with conda by @saikonen in https://github.com/Netflix/metaflow/pull/2721
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.14...2.19.15
Remove a case where duplicate init functions were called (when deploy… by @romain-intel in https://github.com/Netflix/metaflow/pull/2719
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.13...2.19.14
[S3] raise error on s3 retry exhaustion by @npow in https://github.com/Netflix/metaflow/pull/2703
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.12...2.19.13
Fix: allow FlowMutator and FlowDecorator to co-exist by @aquarin in https://github.com/Netflix/metaflow/pull/2709
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.11...2.19.12
Add default IAM role setting for AWS Secrets Manager plugin by @oavdeev in https://github.com/Netflix/metaflow/pull/2707
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.10...2.19.11
fix: argo foreach join incorrect task-id's with conditional branching by @saikonen in https://github.com/Netflix/metaflow/pull/2699
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.9...2.19.10
Revert "fix: pypi with site pip config" by @savingoyal in https://github.com/Netflix/metaflow/pull/2696
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.8...2.19.9
Fix a crash when mixing UserStepDecorators and regular decorators by @romain-intel in https://github.com/Netflix/metaflow/pull/2680
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.6...2.19.7
Update S3 docs and constructor by @talsperre in https://github.com/Netflix/metaflow/pull/2677
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.5...2.19.6
This release resolves issues with certain packages that have platform-specific dependencies that would not otherwise get bundled, resulting in a broke
This release resolves issues with certain packages that have platform-specific dependencies that would not otherwise get bundled, resulting in a broken execution environment.
The most common issue that this solves is with the torch package. For example in the past running on a mac with --with kubernetes would result in errors regarding missing CUDA libraries, due to these not getting bundled up as part of the resolved environment.
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.4...2.19.5
update module importer by @malder08 in https://github.com/Netflix/metaflow/pull/2636
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.3...2.19.4
use packaging 24.0 instead for python 3.7 by @mt-ob in https://github.com/Netflix/metaflow/pull/2663
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.2...2.19.3
add packaging as a dependency for gcp by @mt-ob in https://github.com/Netflix/metaflow/pull/2661
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.1...2.19.2
adding startingDeadlineSeconds to 59 mins by @iamsgarg-ob in https://github.com/Netflix/metaflow/pull/2657
Full Changelog: https://github.com/Netflix/metaflow/compare/2.19.0...2.19.1
build(deps-dev): bump vite from 5.4.19 to 5.4.21 in /metaflow/plugins/cards/ui by @dependabot[bot] in https://github.com/Netflix/metaflow/pull/2649
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.13...2.19.0
Fix issue with cards when .metaflow exists in a *parent* directory by @romain-intel in https://github.com/Netflix/metaflow/pull/2641
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.12...2.18.13
fix for error capture script by @iamsgarg-ob in https://github.com/Netflix/metaflow/pull/2633
Markdown component to support indented multi-line strings by @ShreehariVaasishta in https://github.com/Netflix/metaflow/pull/2634Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.11...2.18.12
[cards] max artifact size checks by @valayDave in https://github.com/Netflix/metaflow/pull/2630
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.10...2.18.11
fix params leakage in click api by @mt-ob in https://github.com/Netflix/metaflow/pull/2621
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.9...2.18.10
[metaflow dev] Jobsets + Locking Versions by @valayDave in https://github.com/Netflix/metaflow/pull/2528
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.8...2.18.9
[cards] valuebox component by @valayDave in https://github.com/Netflix/metaflow/pull/2614
TimeoutException by @npow in https://github.com/Netflix/metaflow/pull/2613Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.7...2.18.8
fix pip tags to use resolved python from environment by @mt-ob in https://github.com/Netflix/metaflow/pull/2608
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.6...2.18.7
Refactor trigger decorator and deploy time evaluation logic by @talsperre in https://github.com/Netflix/metaflow/pull/2290
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.5...2.18.6
This release fixes an issue where flows that ran with Metaflow versions <2.17.4 could not be resumed by later versions.
This release fixes an issue where flows that ran with Metaflow versions <2.17.4 could not be resumed by later versions.
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.4...2.18.5
fix: error on delete argo deployment when template missing by @saikonen in https://github.com/Netflix/metaflow/pull/2593
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.3...2.18.4
This release enables deploying the Argo sensor in its own namespace. The sensors are required when using Metaflow triggers when deploying to Argo Work
This release enables deploying the Argo sensor in its own namespace. The sensors are required when using Metaflow triggers when deploying to Argo Workflows.
The sensor namespace can be configured by either by the Metaflow config, or through an environment variable
export METAFLOW_ARGO_EVENTS_SENSOR_NAMESPACE=example
AWS Step Functions has a maximum size for the step command that can become a problem with complex flows. To get around this limitation, this release introduces a way to compress the command being executed by offloading it to S3 instead.
Setting the following environment variable or Metaflow config value to true will enable the feature.
export METAFLOW_SFN_COMPRESS_STATE_MACHINE=True
This release fixes an issue with conditional steps on Argo Workflows, where deployment would fail with a flow that had a conditional step where a case would not introduce its own steps, but instead skip ahead in the graph.
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.2...2.18.3
Git repository information is not available during execution of a scheduled flow, such as with Argo Workflows or AWS Step Functions due to Metaflow on
git-info metadata for deployed flowsGit repository information is not available during execution of a scheduled flow, such as with Argo Workflows or AWS Step Functions due to Metaflow only packaging files necessary for flow execution.
This release introduces a change where the git info is read during deployment time and retained as part of the deployment.
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.1...2.18.2
This release adds support for adding custom tags to AWS Batch. In order to enable Batch tagging, a config flag needs to be set either in the environme
This release adds support for adding custom tags to AWS Batch. In order to enable Batch tagging, a config flag needs to be set either in the environment, or in Metaflow config
export METAFLOW_BATCH_EMIT_TAGS=True
The supported ways for adding custom tags are
@batch decorator@batch(aws_batch_tags={"my tag": "my custom value"})
python BatchTags.py step-functions create \
--aws-batch-tag "tagging from"="CLI with value" \
--aws-batch-tag another=value2
export METAFLOW_BATCH_DEFAULT_TAGS='{"envtag": "value123", "another":"from env"}'
or in Metaflow config:
{
"METAFLOW_BATCH_DEFAULT_TAGS": {"envtag": "value123", "another":"from env"}
}
Full Changelog: https://github.com/Netflix/metaflow/compare/2.18.0...2.18.1
chore: clarify argo conditionals exception by @saikonen in https://github.com/Netflix/metaflow/pull/2569
Full Changelog: https://github.com/Netflix/metaflow/compare/2.17.5...2.18.0
feature: support recursive conditionals on Argo Workflows by @saikonen in https://github.com/Netflix/metaflow/pull/2562
Full Changelog: https://github.com/Netflix/metaflow/compare/2.17.4...2.17.5
fix: DAG for default card with conditionals by @rsanteri in https://github.com/Netflix/metaflow/pull/2561
Full Changelog: https://github.com/Netflix/metaflow/compare/2.17.3...2.17.4
feature: conditionals for Argo Workflows by @saikonen in https://github.com/Netflix/metaflow/pull/2550
Full Changelog: https://github.com/Netflix/metaflow/compare/2.17.2...2.17.3
Feat/conditionals by @romain-intel in https://github.com/Netflix/metaflow/pull/2545
Full Changelog: https://github.com/Netflix/metaflow/compare/2.17.1...2.17.2
Bump tmp from 0.2.3 to 0.2.4 in /metaflow/plugins/cards/ui by @dependabot[bot] in https://github.com/Netflix/metaflow/pull/2536
public=True by @talsperre in https://github.com/Netflix/metaflow/pull/2539Full Changelog: https://github.com/Netflix/metaflow/compare/2.17.0...2.17.1
This release introduces a limit to the workflow name lengths that are deployed to Argo Workflows.
This release introduces a limit to the workflow name lengths that are deployed to Argo Workflows.
Argo Workflows attaches the workflow template name (the deployed flow name) as a label to the Kubernetes resources it creates when argo itself launches a flow (events, schedule, Argo UI). The problem is that Kubernetes labels have a maximum length of 63 characters, and if a workflow name is longer than that, it will fail to launch due to not fitting in the label.
Launching flows on Argo Workflows through the Metaflow CLI has always been exempt of this issue, as this has not tried to attach such a label to the resources.
Existing flows continue to operate as previously, and these can still be operated on with the Metaflow CLI commands, e.g. argo-workflows trigger/argo-workflows delete.
An existing flow will always be replaced when running argo-workflows create. With the new version this might also result in a differently named deployment, in case the old one had a name that was too long.
When using the @project decorator, Metaflow will automatically truncate the deployed name if it is too long. A part of each name partial (project / branch / flow_name) is kept to help with finding the deployments in Argo UI.
If the name of the deployment is too long when deploying without @project, then this is treated as an error and it is up to the user to provide a shorter name. This can be done by either renaming the flow class, or by supplying a custom name with --name
⚠️ NOTE
Deploying the same flow with an older version of Metaflow will lead to two separate deployments existing at once if the length of the name exceeded the limit.
For such flows be sure to only deploy them with Metaflow versions >=2.17 or use the --name CLI option to specify a custom deploy name.
Full Changelog: https://github.com/Netflix/metaflow/compare/2.16.8...2.17.0
[argo] Fix eventing for @parallel based workflow by @valayDave in https://github.com/Netflix/metaflow/pull/2516
@parallel based workflow by @valayDave in https://github.com/Netflix/metaflow/pull/2516Full Changelog: https://github.com/Netflix/metaflow/compare/2.16.7...2.16.8
Your coding agent can read these notes before it upgrades. Set up the MCP server →