Releases: flyteorg/flyte-sdk
v2.0.2
What's Changed
- Fix(anthropic): route tool input_schema through Flyte type engine by @AdilFayyaz in #702
- Panel app examples: simple calculator, Flyte in-browser experience by @cosmicBboy in #701
- Update spark plugin to stable release >= 2.0.0 by @pingsutw in #705
- Fix shell injection of version-constrained pip package specs in dockerfile by @pingsutw in #706
- fix: accept enum names as valid CLI inputs in EnumTransformer by @pingsutw in #708
- Bug Fix: pod template should be carried over in replace: by @kumare3 in #709
- Stress fanout by @wild-endeavor in #710
- bugfix: use correct field name for app metrics protocol by @cosmicBboy in #712
- fix(anthropic): route async Flyte task execution through task.aio() by @AdilFayyaz in #714
- fix: align
File.from_localandFile.from_local_syncfile name by @ljstrnadiii in #713 - feat: add request_timeout support to AppEnvironment by @jeevb in #716
- Ignores by @wild-endeavor in #717
- adds
guess_python_typeto PydanticTransformer by @samhita-alla in #711 - human in the loop plugin by @cosmicBboy in #657
- stateless code sandbox by @samhita-alla in #658
- fix: prevent double initialization logging in CLI run command by @pingsutw in #722
- fix: skip ignore files inside standard-ignored directories by @pingsutw in #720
New Contributors
- @ljstrnadiii made their first contribution in #713
Full Changelog: v2.0.1...v2.0.2
v2.0.1
TL;DR
Bug fixes:
- Distributed training pytorch hanging bug is now fixed using a watchdog
- Support for S3 virtual hosted (export
FLYTE_AWS_S3_ADDRESSING_STYLEenv var in environment, image or with_runcontext) - Better retries for bad network connection
4.pod templates and code bundling improvements for apps - fix short name override for remote tasks
Features
- Orchestration Sandboxes 🚀
- H100 mig partitions support
What's Changed
- Minor edit to readme by @wild-endeavor in #688
- Example for cloning images using a script (e.g. in CI) by @jeevb in #685
- fix typeddict example for python<3.12 by @cosmicBboy in #689
- Code bundling using posix-style paths by @cosmicBboy in #690
- bugfix: address empty app conditions list by @cosmicBboy in #691
- bugfix: cli common to dict when available by @fiedlerNr9 in #693
- fix: app spec merges image and pod template by @cosmicBboy in #694
- Add FlyteWebhookAppEnvironment to flyte.app.extras by @cosmicBboy in #669
- Bump cryptography from 46.0.3 to 46.0.5 in /examples/published-library/my-flyte-project by @dependabot[bot] in #680
- Bump cryptography from 46.0.3 to 46.0.5 in /examples/published-library/my-task-library by @dependabot[bot] in #679
- Adds retry interceptor by @wild-endeavor in #696
- Orchestration sandbox. by @kumare3 in #667
- [BUG]Fix ref task shortname override error by @popojk in #699
- H100 mig partitions by @katrogan in #700
- Pytorch elastic hanging in case of cuda oom or non-rank0 exceptions by @kumare3 in #698
- reverse priority of path entries by @dansola in #692
- Add S3 virtual-hosted-style addressing support for S3-compatible backends by @AdilFayyaz in #703
Full Changelog: v2.0.0...v2.0.1
v2.0.0 Flyte (v2) SDK
🚀 Flyte v2 SDK GA
We’re excited to announce that with this release, the Flyte v2 SDK is officially out of beta and the Flyte v2 API is now stable for production use.
🔒 What “Stable” Means
- No breaking changes to the v2 API
- Production-ready reliability and performance
📚 Learn More
For full details, migration guidance, and usage examples, see the documentation:
👉 https://www.union.ai/docs/v2/flyte/user-guide/overview/
💬 Feedback & Support
We’d love to hear from you:
- Join the community on Slack: https://slack.flyte.org/
- Report issues or request features: https://github.com/flyteorg/flyte-sdk/issues
Thank you to everyone who tried this product throughout the beta period, and for all the us valuable feedback that helped shape this release.
Onward 🚀
v2.0.0b60
v2.0.0b59
What's Changed
- Update CI - use github.ref_name instead of env var by @wild-endeavor in #681
Full Changelog: v2.0.0b58...v2.0.0b59
v2.0.0b58
What's Changed
- Tests for Flyte File, Dir, DataFrame in Pydantic by @AdilFayyaz in #651
- Fix for blob example by @ursucarina in #659
- skip modules that are not filepaths by @cosmicBboy in #660
- Bump pillow from 12.0.0 to 12.1.1 in /examples/ml/image_classification by @dependabot[bot] in #654
- Bump pillow from 12.0.0 to 12.1.1 in /examples/ml/ocr by @dependabot[bot] in #653
- Add nested group example to grouping.py by @pingsutw in #665
- Add support for .flyteignore file by @pingsutw in #663
- Implement user-facing
HashFunctionby @cosmicBboy in #666 - Support for untyped lists by @kumare3 in #671
- Fix all typo in config/_config.py by @pingsutw in #677
- Improve clone existing image example for multi-env by @jeevb in #678
- Clean CLI output, no clobber, special status logger by @kumare3 in #672
- Generalize custom type detection in nested Pydantic models by @AdilFayyaz in #664
- Fix lookup_image_in_cache for ref_name images by @pingsutw in #670
- Play with actions service by @wild-endeavor in #673
- [Breaking] Add extendable parameter to Image class by @pingsutw in #668
Full Changelog: v2.0.0b57...v2.0.0b58
v2.0.0b57
What's Changed
- add n8n example by @cosmicBboy in #591
- Add example of django app by @cosmicBboy in #641
- Unit tests for list_files by @wild-endeavor in #643
- Add current_project helper and update examples by @AdilFayyaz in #645
- update n8n - require auth by @cosmicBboy in #644
- check if app spec is updated on re-deploy by @cosmicBboy in #642
- add subdomain name to n8n flyte webhook app by @cosmicBboy in #646
- Added support to handle nested Pydantic types by @AdilFayyaz in #640
- Use enum names instead of values in literals by @EngHabu in #618
- Fix BigQuery connector for protobuf VariableMap changes by @pingsutw in #639
- Bump cryptography from 46.0.4 to 46.0.5 by @dependabot[bot] in #648
- Render dataframe example by @kumare3 in #650
- Better local apps by @kumare3 in #649
- Bring determinism to your programs by @kumare3 in #599
- Add support for cloning an existing image by @jeevb in #652
- Fix Literal string serialization by @pingsutw in #655
- Local persistence does not need endpoint by @kumare3 in #656
Full Changelog: v2.0.0b56...v2.0.0b57
v2.0.0b56
Highlights
Local Run Persistence (#627) — Local workflow runs are now saved and browsable. Enable with flyte create config --local-persistence or flyte.init(local_persistence=True), then revisit
past runs anytime with flyte start tui.
Local App Serving (#628) — You can now serve Flyte apps on localhost for rapid local development. Use flyte.with_servecontext(mode="local") or the flyte serve --local CLI command.
Includes automatic process cleanup on exit.
Bug Fixes
- TUI output now renders newlines correctly (#634)
- Tasks can no longer be nested inside a trace (#636) — Tasks called from within a trace now correctly run as plain Python instead of causing errors.
Improvements
- Faster imports (#638) — Improved import optimization to reduce startup time.
Maintenance
Examples
- Added Anthropic agent deep research example (#635)
What's Changed
- remove wandb uvlock by @wild-endeavor in #626
- fix tui output format to render newlines by @cosmicBboy in #634
- Persistence of local runs by @kumare3 in #627
- Support local app serving by @cosmicBboy in #628
- add anthropic agent deep research example by @cosmicBboy in #635
- Bump protobuf from 6.33.2 to 6.33.5 in /examples/ml/image_classification by @dependabot[bot] in #637
- Import optimization improved by @kumare3 in #638
- Tasks cannot be nested within a trace! by @samhita-alla in #636
Full Changelog: v2.0.0b55...v2.0.0b56
v2.0.0b55
Highlights
Introducing the Local TUI
A new Terminal UI for local Flyte runs lets you visualize your workflow executions, inspect inputs/outputs, view caching status, and access reports — all from your terminal. (#621)
Anthropic Claude Plugin
New first-class plugin for integrating Anthropic's Claude API with Flyte. Includes a function_tool decorator to convert Flyte tasks into Claude tool definitions, automatic Python type-to-JSON-schema conversion, and an Agent class for running agentic loops. (#612)
Typed Interface Migration
Task interfaces now use ordered slices instead of variable maps, preserving input/output ordering. (#558)
New Features
- First-class
TypedDictsupport —TypedDictvalues are now serialized with full observability in the Flyte UI instead of being pickled, improving compatibility with AI frameworks like LangGraph and PydanticAI. (#613) - First-class
tupleandNamedTuplesupport — Tuples and named tuples are converted to Pydantic BaseModels under the hood, supporting complex nested subtypes includingFile,Dir, dataclasses, and more. (#597) - Enum support in Pydantic models — Enum fields in Pydantic
BaseModeltypes are now handled correctly instead of crashing with aKeyError. (#622) - Dynamic DAG generation from YAMLs — Workflows can now be dynamically generated from YAML configuration files. (#619)
- Snowflake connector improvements — Added DataFrame conversion support, automatic input batching with
batch=True,secret_groupparameter for simplified secret management, and updated docstrings. (#584)
Bug Fixes
- Large IO buffer leak — Large IO write operations now properly close the buffer. (#625)
- DataFrame local sync in nested types — Fixed DataFrame synchronization when used inside nested type structures. (#620)
- BigQuery credentials parsing — Fixed credentials parsing and a secret key typo. (#606)
.egg-infodirectories ignored during file copy — These directories are no longer inadvertently included when copying files. (#617)
Cleanup & Maintenance
- Removed BigQuery handlers from the dataframe module. (#624)
- Removed
get_cwd_editable_installfunction. (#615) - Unpinned
unionai-reusein examples. (#616) - Bumped
protobufto 6.33.5. (#609, #610, #611, #623)
New Examples
What's Changed
- Bump protobuf from 6.33.2 to 6.33.5 in /examples/ml/ocr by @dependabot[bot] in #611
- Bump protobuf from 6.33.2 to 6.33.5 in /plugins/wandb by @dependabot[bot] in #610
- Bump protobuf from 6.33.0 to 6.33.5 by @dependabot[bot] in #609
- wandb: default to single run for multi-node by @samhita-alla in #608
- Add first-class support for tuple and NamedTuple via pydantic by @cosmicBboy in #597
- Remove get_cwd_editable_install function by @pingsutw in #615
- Fix BigQuery credentials parsing and secret key typo by @pingsutw in #606
- [Feat] Typed interface migration by @machichima in #558
- Unpin unionai-reuse in examples by @wild-endeavor in #616
- dynamic DAG generation from yamls by @kumare3 in #619
- Fix .egg-info directories not being ignored during file copy by @pingsutw in #617
- Introducing TUI: Flyte local runs by @kumare3 in #621
- Add polars lazyframe example with big data by @cosmicBboy in #614
- fix df local sync in nested types by @cosmicBboy in #620
- Bump protobuf from 6.33.0 to 6.33.5 in /examples/published-library/my-flyte-project by @dependabot[bot] in #623
- Add first-class support for typeddict by @cosmicBboy in #613
- feat: Add Anthropic Claude plugin for Flyte by @andreahlert in #612
- Added support for Enum types in Pydantic models by @AdilFayyaz in #622
- snowflake connector: add support for DF conversion, batch inputs, and update docstrings by @samhita-alla in #584
- Remove BigQuery handlers from dataframe module by @pingsutw in #624
- Large IO Writing should close buffer by @kumare3 in #625
- Add integration tests for all examples by @ppiegaze in #543
New Contributors
- @andreahlert made their first contribution in #612
- @AdilFayyaz made their first contribution in #622
Full Changelog: v2.0.0b54...v2.0.0b55
v2.0.0b54
⏺ ## Flyte SDK v2.0.0b54 Changelog
Highlights
Connectors are now separate packages — BigQuery, Databricks, and Snowflake connectors have been split into
independent PyPI packages (flyteplugins-bigquery, flyteplugins-databricks, flyteplugins-snowflake), each with their
own versioning and release cycle. The old monolithic flyteplugins-connectors package is removed.
(#595)
Migrated off legacy flyteidl — The SDK now uses flyteidl2 for data proxy and removes the legacy flyteidl
dependency entirely. This is a significant internal modernization.
(#523, #526)
New Features
- W&B distributed training support — The Weights & Biases plugin now supports tracking single-node and multi-node
distributed training via the PyTorch plugin, with dashboard links for per-worker logs.
(#600) - Skip image builds for connector tasks — Snowflake and BigQuery tasks can now set
image=Noneto skip container
image building entirely, since these tasks run on the connector side.
(#559) - Optional
uv.lockin UVProject — You can now build images frompyproject.toml-only projects without requiring a
uv.lockfile. (#596) - CLI option dependencies — Added
RequiresOptionso that dependent CLI flags (e.g.,--docker-config-path
requiring--from-docker-config) now produce clear error messages instead of silently misbehaving.
(#586) - Fanout cancellation example — New example workflow demonstrating how to handle UI-canceled actions in fanout
groups. (#589)
Bug Fixes
- Duplicate secrets in image builds — Fixed an issue where the same secret used across multiple image layers (e.g.,
with_apt_packagesandwith_pip_packages) was added multiple times to build commands.
(#604) .dockerignorepattern matching — Fixed broken.dockerignoresupport — patterns like**,!negation, and
*.pycnow work correctly, preventing bloated Docker images with cache/build artifacts.
(#550)- DataFrame local-to-remote — Fixed an issue where a
flyte.io.DataFramecreated locally could not be passed as
input to a remote run. Also addedpreserve_original_typesoption towith_runcontextfor better type fidelity in
run.outputs(). (#594)
Improvements
- Machine-readable JSON output — Rich formatting (spinners, colors, panels) is now disabled when using
--log-format jsonortable-simple, ensuring clean machine-parseable output.
(#587) - Better error messages for Layer classes — List validation in image Layer classes now provides helpful error
messages instead of cryptic stack traces. (#593) - S3 storage config fix — Fixed
endpoint_urlvsendpointmismatch between s3fs and obstore backends.
(#592)
Maintenance
- Bumped
protobuffrom 6.33.0/6.33.2 to 6.33.5 (#601,
#603) - CI now fails the lint job when
make fmtproduces changes (#602)
What's Changed
- Add RequiresOption for CLI option dependencies by @pingsutw in #586
- Add helpful error messages for list validation in Layer classes by @pingsutw in #593
- Add example workflow with handling for UI-canceled actions in fanout group by @jpvotta in #589
- Make uvlock optional in UVProject by @pingsutw in #596
- [Feat] use flyteidl2 dataproxy by @machichima in #526
- Bump protobuf from 6.33.2 to 6.33.5 in /examples/genai/handoff by @dependabot[bot] in #601
- wandb: add support for distributed training by @samhita-alla in #600
- Storage config nits by @wild-endeavor in #592
- feat: Skip image building for Snowflake and BigQuery connector tasks by @pingsutw in #559
- Split connectors into separate PyPI packages by @pingsutw in #595
- ci: Fail lint job when make fmt changes files by @pingsutw in #602
- bugfix: fix df local to remote by @cosmicBboy in #594
- Disable rich formatting (spinner, colors) for json and table-simple output formats by @pingsutw in #587
- [Fix] .dockerignore pattern matching by @yuhuan130 in #550
- Remove flyteidl by @pingsutw in #523
- Bump protobuf from 6.33.0 to 6.33.5 in /examples/published-library/my-task-library by @dependabot[bot] in #603
- Fix duplicate secrets in image build commands by @pingsutw in #604
- Fixes a potential subtle race condition in call-seq-generation by @kumare3 in #607
New Contributors
- @yuhuan130 made their first contribution in #550
Full Changelog: v2.0.0b53...v2.0.0b54