Skip to content

Releases: Netflix/metaflow

2.18.3

08 Sep 22:33
8dd5ed1

Choose a tag to compare

Features

Argo Events sensor namespace configuration

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

Compressing of large commands on AWS Step Functions

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

Improvements

Improve support for conditional steps with Argo Workflows

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.

What's Changed

  • Make argo events sensor namespace configurable by @dhpollack in #1463
  • feat: add S3 command upload support for AWS Step Functions to handle large commands by @nlwstein in #2534
  • Patch 2025-09-08-01 fix minor typos by @myatt83 in #2591
  • Update metaflow client to accept both pathspec and _object together by @talsperre in #2590
  • fix: argo conditional skip step parsing by @saikonen in #2587
  • release: 2.18.3 by @saikonen in #2592

New Contributors

Full Changelog: 2.18.2...2.18.3

2.18.2

03 Sep 09:28
9054abe

Choose a tag to compare

Improvements

Provide git-info metadata for deployed flows

Git 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.

What's Changed

Full Changelog: 2.18.1...2.18.2

2.18.1

29 Aug 12:28
7d60a21

Choose a tag to compare

Features

Support custom AWS Batch tags

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

  1. Through the @batch decorator
@batch(aws_batch_tags={"my tag": "my custom value"})
  1. Through the CLI when deploying to AWS Step Functions
python BatchTags.py step-functions create \
--aws-batch-tag "tagging from"="CLI with value" \
--aws-batch-tag another=value2
  1. Specifying default through an environment variable
export METAFLOW_BATCH_DEFAULT_TAGS='{"envtag": "value123", "another":"from env"}'

or in Metaflow config:

{
    "METAFLOW_BATCH_DEFAULT_TAGS": {"envtag": "value123", "another":"from env"}
}

What's Changed

Full Changelog: 2.18.0...2.18.1

2.18.0

27 Aug 00:49
5bc4735

Choose a tag to compare

What's Changed

Full Changelog: 2.17.5...2.18.0

2.17.5

25 Aug 19:53
5bd1195

Choose a tag to compare

What's Changed

Full Changelog: 2.17.4...2.17.5

2.17.4

25 Aug 16:28
a3d62bd

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.17.3...2.17.4

2.17.3

21 Aug 21:43
85abf6f

Choose a tag to compare

What's Changed

Full Changelog: 2.17.2...2.17.3

2.17.2

19 Aug 19:59
2401e34

Choose a tag to compare

What's Changed

Full Changelog: 2.17.1...2.17.2

2.17.1

11 Aug 21:08
e72508a

Choose a tag to compare

What's Changed

Full Changelog: 2.17.0...2.17.1

2.17.0

05 Aug 22:46
27c6aae

Choose a tag to compare

Improvements

Argo Workflows name length restriction

This release introduces a limit to the workflow name lengths that are deployed to Argo Workflows.

Why was this necessary?

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.

What about existing flows?

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.

What happens with long names now?

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.

What's Changed

Full Changelog: 2.16.8...2.17.0