Releases: flyteorg/flyte
Flyte v1.16.0-b4 milestone release
Flyte 1.16.0-b4
This is a re-release of b3, only to pick up an updated console image.
Full Changelog: v1.16.0-b2...v1.16.0-b3
Flyte v1.16.0-b3 milestone release
Flyte 1.16.0-b3
Release highlights
Added
- SignalWatcher in Copilot (#6501) by @machichima
- NATS as cloud events sender (#6507) by @mattiadevivo
- Task retry support in Flyte Connectors (#6486) by @machichima
- Container name support in Kubeflow plugin log links (#6524) by @samhita-alla
Changed
- Workflow store interface cleanup (#6485) by @Sovietaced
- Cloud events Kafka documentation clarification (#6502) by @daadc
- CoPilot initialization and Pod status logic (#6523) by @pingsutw
- Base Ray pod spec service account configuration (#6514) by @Sovietaced
Fixed
- Removed SYS_PTRACE and sharenamespace settings (#6509) by @machichima
- Minor comment issues (#6511) by @gopherorg
- PodTemplate resource override behavior (#6483) by @punkerpunker
- Inconsistent function name in comments (#6528) by @jingchanglu
- PodTemplate resource state pollution (#6530) by @punkerpunker
- Plugin metric registration thread safety (#6532) by @Sovietaced
- FlyteAdmin graceful shutdown (#6289) by @lowc1012
- Work item enqueueing in node execution context (#6526) by @Sovietaced
- Workflow equality check (#6521) by @Sovietaced
Dependencies
- Bumped github.com/go-viper/mapstructure/v2 from 2.1.0 to 2.3.0 (#6512) by @dependabot[bot]
Full Changelog
Flyte v1.16.0-b2 milestone release
Flyte 1.16.0-b2 release notes
What's Changed
- Update Flyte components by @flyte-bot in #6491
- update CHANGELOG version by @pingsutw in #6492
Flyte v1.15.3 milestone release
Flyte 1.15.3 release notes
Added
- Made ArrayNode taskPhaseVersion increment retries configurable. #6374 by @hamersaw
- Added support for setting
s3.endpoint
in flyte-core. #6401 by @dwo - Added OIDC configuration option to allow mismatched discovery and issuer URLs. #5712 by @ddl-ebrown
Changed
- Changed QPS configuration parameter type to
float64
. #6303 by @pingsutw - Refactored code to utilize built-in
max
/min
functions for simplification. #6379 by @evenevent
Fixed
- Fixed incorrect failure of suspended Kubeflow jobs. #6295 by @fg91
- Fixed task logging bug in Propeller. #6399 by @Future-Outlier
- Adjusted cloud events configuration to use lowercase type for compatibility. #6408 by @Sovietaced
Contributors
We thank the following contributors for their work in this release:
@fg91, @hamersaw, @pingsutw, @evenevent, @Future-Outlier, @Sovietaced, @dwo, @flyte-bot, @ddl-ebrown
Full Changelog: v1.15.1...v1.15.3
flytectl/v0.9.5
Changelog
- 2c84109 Add instructions on how to yank a flytectl release (#6105)
- 754ab74 Bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 in /flyteidl (#6361)
- 222aff2 Bump golang.org/x/net from 0.27.0 to 0.33.0 in /flytestdlib (#6214)
- 4bf0f82 Bump jinja2 from 3.1.4 to 3.1.5 in /flytectl/docs (#6126)
- b779bed Bump jinja2 from 3.1.5 to 3.1.6 in /flytectl/docs (#6310)
- 5aedd11 Dep: Upgrade kubeflow training operator (#6294)
- b8fb68d Fix: Upgrade stow to fix listing error files (#6159)
- d5499e8 Remove mockery fork (#6280)
- 62ca2e3 Remove mockery fork logic (#6288)
- 34d124d Update flytectl_update_workflow-execution-config.rst (#5865)
- fd9a378 Upgrade golang.org/x/crypto lib to address vulnerability (#6133)
- c0eb6de fix: change to cmd ./bin/flytectl demo start (#6290)
Flyte v1.15.1 milestone release
Flyte 1.15.1 release notes
New Features & Enhancements
-
Per-Launch Plan Notifications: Added support for custom notification templates tied to specific launch plans (#6064).
-
AWS Secret Manager Integration: Environment variables can now reference secrets stored in AWS Secrets Manager (#6316).
-
Dynamic Pod Configuration: Improved merging of Ray head/worker node pod templates (#6232) and resource limits for Kubernetes plugins (Dask, Kubeflow) (#6264).
-
Array Node Improvements: Added support for bound inputs (#6276) and preemption handling (#6259).
-
Agent Enhancements: Added structured logging for agents (#6344) and reserved fields in execution payloads (#6321).
-
Connector Plugin: Introduced a new Connector plugin framework for extensibility (#6332).
Bug Fixes
-
Error Handling: Fixed critical errors in delete operations (#6269), array node metrics (#6291), and fastcache handling for failed nodes (#6318).
-
Dynamic Log Links: Enabled dynamic log links for Kubeflow plugins to improve debugging (#6284).
-
Preemption Handling: Addressed edge cases in pod preemption logic for worker nodes (#6259).
Security Patches
Documentation Updates
-
Streaming Decks: Added documentation for streaming deck visualization in Flyte fundamentals (#6251, #6272).
-
Slurm GPU Clusters: New guides for setting up Slurm agent (#6231) and GPU clusters (#6273).
-
Dynamic Log Links: Documented usage for Kubernetes-based task plugins (#6285).
-
Launch Plan Chaining: Explained how to chain launch plans effectively (#6317).
Other Improvements & Maintenance
- CI/CD: Aligned Go versions in CI with go.mod (#5736), removed mockery fork (#6280, #6288), and improved codecov reporting (#6299).
Contributor Experience
- Updated contribution docs for flytectl (#6290) and streamlined development workflows.
New Contributors
A warm welcome to first-time contributors:
@rustco, @mwaylonis, @sjtucoder, @bra-fsn, @CtfChan, @vlada-dudr, @jamestwebber, @0yukali0 🎉
Full changelog
- [Docs] Streaming Decks by @Future-Outlier in #6251
- Upgrade gh actions/cache to v4 by @eapolinario in #6256
- auto-update contributors by @flyte-bot in #6252
- Use go version from
go.mod
files in CI by @eapolinario in #5736 - Add support for merging complete head & worker node pod templates by @Sovietaced in #6232
- Upstream: Ensure that k8s plugins (dask, kfoperator) have resource requests and limits set by @katrogan in #6264
- Override literal in the case of attribute access of primitive values by @eapolinario in #6194
- [Docs] Add Slurm agent setup by @JiangJiaWei1103 in #6231
- Rework MergePodSpecs logic by @Sovietaced in #6262
- fix: Correct error handling in delete function by @pingsutw in #6269
- [Docs] Streaming Decks in flyte fundamentals by @Future-Outlier in #6272
- [Docs] Slurm GPU cluster by @Future-Outlier in #6273
- Set the max parallelism on the execution model correctly when triggered by launch plan by @Sovietaced in #6266
- add bound inputs to array node idl by @pvditt in #6276
- Union/upstream pod helper node preemption handling by @pvditt in #6259
- Remove mockery fork by @eapolinario in #6280
- auto-update contributors by @flyte-bot in #6268
- Fix: Enable kubeflow plugins to use dynamic log links by @fg91 in #6284
- Doc: Document usage of dynamic log links by @fg91 in #6285
- Remove mockery fork logic by @Sovietaced in #6288
- [DOCS] update contribution docs for flytectl by @machichima in #6290
- Don't error out for getting metrics of array node by @troychiu in #6291
- [Housekeeping] upgrade go_generate ci by @taieeuu in #6279
- [flyteagent] Add Output Prefix to GetTaskRequest by @Future-Outlier in #6265
- fix: return nil instead of error directly by @rustco in #6298
- Add allowedAudience to flyte-core external auth deployment documentation by @mwaylonis in #5124
- Feat: Support per-launch plan notification template by @peterxcli in #6064
- Bump jinja2 from 3.1.4 to 3.1.5 in /flytectl/docs by @dependabot in #6126
- chore: fix some function names in comment by @sjtucoder in #6230
- Ignore generated code from codecov reports by @eapolinario in #6299
- [flyteagent] add reserved field in Get Request Payload by @Future-Outlier in #6296
- Bump github.com/go-jose/go-jose/v3 from 3.0.3 to 3.0.4 by @dependabot in #6281
- Update glog 1.2.0 -> 1.2.4 - CVE-2024-45339 by @ddl-ebrown in #6301
- Bump golang.org/x/net and github.com/mattn/go-sqlite3 by @eapolinario in #6315
- fix: Ensure $(go env GOPATH)/bin exists by @honnix in #6314
- Bump jinja2 from 3.1.5 to 3.1.6 in /flytectl/docs by @dependabot in #6310
- RFC: Add workflow execution concurrency by @katrogan in #5659
- Add aws secret manager support to env_var by @thomasjpfan in #6316
- Document AWS SM by @bra-fsn in #6287
- Pin flytekit to 1.15.0 to unblock functional tests by @eapolinario in #6330
- Fix: fastcache should not cache lookup on failed node by @fg91 in #6318
- Reserve fields in execution protos by @eapolinario in #6321
- upstream bound inputs support by @pvditt in #6322
- fix: Make datacatalog gRPC server MaxRecvMsgSize configurable by @honnix in #6313
- Use child dir for branch taken by @andrewwdye in #6327
- Update Event Docs by @CtfChan in #6334
- [flytepropeller][flyteagent] Set ListAgent Timeout to unblock propeller launch execution by @Future-Outlier in #6312
- fix: really assign string scp claim by @vlada-dudr in #6336
- Add Connector plugin by @Future-Outlier in #6332
- Introduce structured log lines in the agent proto by @pingsutw in #6344
- Bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2 by @dependabot in #6362
- Bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2 in /flyteadmin by @dependabot in #6365
- fix typo: specify -> specific by @jamestwebber in #6342
- Bump github.com/go-jose/go-jose/v3 from 3.0.3 to 3.0.4 in /flyteadmin by @dependabot in #6366
- Bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 in /flyteidl by @dependabot in #6361
- Doc: Explain how to chain launch plans by @fg91 in #6317
- Bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 in /flytestdlib by @dependabot in #6370
- Bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 in /boilerplate/flyte/golang_support_tools by @dependabot in #6371
- [Docs] Fixing the broken link to Architecture Overview in Deployment Guide by @0yukali0 in https://github.com/flyteorg/flyte/pull...
Flyte v1.15.0 milestone release
Flyte 1.15.0 release notes
Added
Streaming Decks (#2779)
Decks is a Flyte feature that provides customizable visualization tools for tasks, offering both default and user-defined insights
For use cases like Hyperparameter Optimization, seeing the metrics, data, logs, and links on the Flyte Deck while the task is running is extremely useful. However, the Flyte Deck HTML is uploaded to the remote bucket only after the task succeeds.
With this change, flytepropeller now sends the Deck URI to flyteadmin once the task starts running. This feature is also helpful for debugging, identifying your task’s dependencies and even looking at the source code that is being executed.
Define shared memory in the task definition
Several ML libraries make use of shared memory, so this is now easier to do in Flyte. This new argument can be either a bool or a string value, the former means "memory backed volumes are sized to node allocatable memory", whereas the latter means that a volume of that size will be defined in the podspec used to run the task. For example, the simple case:
import os
from flytekit import task
@task(shared_memory=True)
def t1() -> bool:
# /dev/shm is available in the task
...
or a more complex case:
import os
from flytekit import task
@task(shared_memory="10Gi")
def t1() -> bool:
# /dev/shm of size 10Gi is available in the task
...
Progress bars to help visualize package creation and upload
Flytekit includes now progress tracking, including package creation/compression progress visualization.
Here's how the progress bar looks like:
And after files are compressed and uploaded:
Debug @dynamic tasks
Advancing the debug story we've been chipping away, we now support debugging @dynamic
tasks.
Changed
Better Secrets handling (#3048)
Flyte enables tasks to requests secrets managed by Kubernetes or by external systems.
If you want to map and mount a Kubernetes secret with an environment variable, flytekit required you to export an environment variable as _FSEC_<GROUP>_<GROUP_VERSION>_<KEY>
with GROUP
corresponding to the Secret name, and KEY
being the actual key to retrieve from the secret. This was inconvenient and too verbose.
Starting with this release, you can easily configure secrets from environment variables::
@task(secret_requests=[Secret(..., env_var="MY_ENVVAR", mount_requirement=Secret.MountType.ENV_VAR)
def hello():
...
Or from files:
@task(secret_requests=[Secret(..., env_var="MY_TOKEN_PATH", mount_requirement=Secret.MountType.FILE)
def hello():
...
Override Pod template using .with_overrides (#2981)
Flyte lets you specify default resources for task executions to enable deterministic scheduling behavior.
The .with_overrides
method allows you to override the global resource defaults dynamically:
@workflow
def my_pipeline(x: typing.List[int]) -> int:
return square_1(x=count_unique_numbers_1(x=x)).with_overrides(limits=Resources(cpu="6", mem="500Mi"))
This method has been available for Resources only. Starting with this release, you can now override the Pod template too.
Similar to Resources, you can instruct flytepropeller
to use a custom Pod template for the task executions, setting the template at different levels: from namespace-wide to the task configuration.
Starting with this release, you can override dynamically the Pod template when the task is invoked in the workflow:
@task
def say_hello() -> str:
return "Hello, World!"
@workflow
def hello_world_wf() -> str:
res = say_hello().with_overrides(limits=Resources(cpu="2", mem="600Mi"),pod_template=PodTemplate(
primary_container_name="primary-nelson",
labels={"lKeyA": "lValA", "lKeyB": "lValB"},
annotations={"aKeyA": "aValA", "aKeyB": "aValB"},
pod_spec=V1PodSpec(
containers=[
V1Container(
name="primary-nelson",
image="arbaobao/flyte-test-images:pythonpath5",
env=[V1EnvVar(name="eKeyC", value="eValC"), V1EnvVar(name="eKeyD", value="eValD")],
),
V1Container(
name="primary-nelson2",
image="arbaobao/flyte-test-images:pythonpath5",
env=[V1EnvVar(name="eKeyC", value="eValC"), V1EnvVar(name="eKeyD", value="eValD")],
),
],
)
))
return res
This change provides more flexible pod configuration management while maintaining compatibility with existing resource override patterns.
Introducing Caching Policies (#3129)
Flyte provides robust caching mechanisms to optimize workflow performance. Two key features users can leverage today include:
a. Task Output Caching with Deterministic Inputs
Users can enable task-level caching by setting cache=True
in the @task
decorator. This ensures that tasks with identical inputs reuse previously computed outputs, saving time and resources.
Example:
@task(cache=True, cache_version="1.0")
def square(n: int) -> int:
return n * n
b. Custom Hashing for Offloaded Objects (e.g., DataFrames)
Flyte allows users to define custom hash functions for non-deterministic objects (like pandas DataFrames) using Annotated types and HashMethod. This ensures caching works even for complex data types.
Example:
def hash_pandas_dataframe(df: pd.DataFrame) -> str:
return str(pd.util.hash_pandas_object(df))
@task
def data_loader(cache=True, cache_version="1.0",
) -> Annotated[pd.DataFrame, HashMethod(hash_pandas_dataframe)]:
return pd.DataFrame(...)
This release brings a refactoring of the Flyte’s caching system into a unified Cache
object, deprecating legacy parameters and adding advanced features:
1. Unified Cache Configuration Object
All caching parameters (existing and new) are now grouped under a single Cache class:
class Cache:
version: Optional[str] = None # Replaces `cache_version`
serialize: bool = False # Replaces `cache_serialize`
ignored_inputs: Union[Tuple[str, ...], str] = () # New: Exclude inputs from cache key
salt: str = "" New: Add unique salt to cache key
policies: Optional[Union[List[CachePolicy], CachePolicy]] = None # New: Dynamic versioning
Deprecation Notice: Legacy parameters (e.g.,
cache_version
,cache_serialize
) are deprecated but remain supported.
2. Advanced Cache Key Customization
-
Cache Policies: Define dynamic versioning logic via CachePolicy protocols.
-
Policies generate version strings through the
get_version
method. Those are then concatenated and hashed (SHA-256
) to form the final cache key.
In case a Cache object is defined, we require the definition of policies
-
Salt: Add a unique string to the cache key to avoid collisions (e.g., differentiate between teams sharing the same task).
-
Ignored Inputs: Exclude specific inputs (e.g.,
request_id
) from cache key calculation usingignored_inputs
.
c. Migration Path
Existing code using cache=True
or cache_version
will continue to work, but users are encouraged to migrate to the Cache
object:
@task(cache=Cache(version="1.0", serialize=True, ignored_inputs=("debug_mode",)))
def my_task(...) -> ...:
Faster GitIgnore checks
Algorithmic speed-ups are always welcome and this is exactly what happened in flyteorg/flytekit#3007. Enjoy the massive speedup!
Full changelog
- docs: Update datatype mapping for polars Dataframe and LazyFrame by @HansBambel in #6109
- Add custom info field to ExternalResourceInfo by @hamersaw in #6115
- improve error message in the agent plugin by @pingsutw in #6114
- upstream ArrayNode DataMode + BindingData LiteralOffloadedMetadata idl changes by @pvditt in #6074
- Pass CustomInfo metadata through ArrayNode ExternalResourceInfo (#591) by @hamersaw in #6116
- [Docs] Add new page for jupyter notebook interactive mode by @Mecoli1219 in #6036
- Use child dir for branch taken by @andrewwdye in #6120
- auto-update contributors by @flyte-bot in #6047
- Improve resource manager test coverage by @luckyarthur in #5973
- Add nodeName template var and update doc by @ketian-indeed in #6088
- Allow flytepropeller manager to have different resource request from flyte propeller by @cpaulik in #5974
- Unpin flytectl from single-binary tests by @eapolinario in #6113
- Add new
sandbox-bundled-offloaded-functional-tests
for offloading literals unit test by @Mecoli1219 in #6111 - chore: fix some function names in comment by @loselarry in #6122
- Flyteadmin digest comparison should rely on database semantics by @popojk in #6058
- Upgrade golang.org/x/crypto lib to address vulnerability by @katrogan in #6133
- chore: using dom...
Flyte v1.14.1 milestone release
Flyte 1.14.1 Release Notes
- Update flytestdlib and affected tools (copilot) for missing config.
What's Changed
- docs: Refactor merge sort code example to use literalinclude by @davidlin20dev in #6091
- [DOCS] Using ImageSpec in ContainerTask by @machichima in #6095
- Eager doc updates by @wild-endeavor in #6099
- Revert "fix: return the config file not found error" by @eapolinario in #6100
- Remove notes on deprecated Batch size by @wild-endeavor in #6102
- Upstream: Add labels to published execution events by @katrogan in #6104
- Fix: Make distributed error aggregation opt-in by @fg91 in #6103
- Add default labels and annotations to Ray worker pods too. by @katrogan in #6107
- Fix: Remove the default search dialog if it exists (on CMD + K) by @chmod77 in #6106
New Contributors
Full Changelog: v1.14.0...v1.14.1
flytectl/v0.9.4
Changelog
- b3330ba Adopt protogetter (#5981)
- 47edd99 Fix Union type with dataclass ambiguous error and support superset comparison (#5858)
- 636cc23 Fix remaining misuses of capturing the default file descriptors in flytectl unit tests (#5950)
- 121665d Fix: customize demo cluster port (#5969)
- ffa1672 Regenerate flytectl docs (#5914)
- 86c63f7 Remove explict go toolchain versions (#5723)
- b9900fe Update aws-go-sdk to v1.47.11 to support EKS Pod Identity (#5796)
- e4d29f8 Upstream contributions from Union.ai (#5769)
- 9abfbda [Flyte][3][flytepropeller][Attribute Access][flytectl] Binary IDL With MessagePack (#5763)
- 704f8eb fix: align the default config output (#5947)
Flyte v1.14.0 milestone release
Flyte 1.14.0 Release Notes
Added
Support for FlyteDirectory as input to ContainerTask (#5715)
A significant update to the flytekit storage interface enables downloading multi-part blobs. This allows Flyte to copy a FlyteDirectory as an input to ContainerTasks, enabling higher flexibility in workflow development with raw containers.
Fixed
Better handling of CORS in TLS connections (#5855)
When using Flyte with TLS certificates, CORS options were not enabled causing issues like the Flyte console UI not showing any project when multiple were created. This scenario came with relative frequency among users evaluating Flyte in non-production environments. Now, CORS will be enabled on TLS connections too.
Changed
Enhanced flexibility for Ray plugin configurations (#5933)
This release makes the configuration of RayJobs more flexible, letting you pass Pod specs independently for each Ray node type: Worker, Head, and Submitter. This enables you to declare configuration for each group to better align with your infrastructure requirements.
Example:
ray_config = RayJobConfig(
worker_node_config=
[WorkerNodeConfig(group_name="test_group", replicas=3, min_replicas=0, max_replicas=10,
k8s_pod=V1PodSpec (containers=[{name="ray-worker",
resources=V1ResourceRequirements(requests={....}, limits={....})])
],
head_node_config=HeadNodeConfig(k8s_pod=V1PodSpec(containers=[{name="ray-head",
resources=V1ResourceRequirements(requests={....}, limits={....}])),
runtime_env={"pip": ["numpy"]},
enable_autoscaling=True,
shutdown_after_job_finishes=True,
)
Breaking
-
As Python 3.8 hit the End of Life period in October 2024, starting with this release, flytekit requires Python >=3.9.
-
The
flyte-core
Helm chart doesn't set theappProtocol
in the Service manifests by default anymore. This might affect deployments that use the Istio service mesh.
Full changelog
- Flyte docs overhaul (phase 1) by @neverett in #5772
- [Flyte][3][flytepropeller][Attribute Access][flytectl] Binary IDL With MessagePack by @Future-Outlier in #5763
- Update aws-go-sdk to v1.47.11 to support EKS Pod Identity by @mthemis-provenir in #5796
- Add minimal version to failure nodes docs by @eapolinario in #5812
- Add finalizer to avoid premature CRD Deletion by @RRap0so in #5788
- [Docs] Use Pure Dataclass In Example by @Future-Outlier in #5829
- Link to github for flytekit docs by @thomasjpfan in #5831
- Added the documentation about uniqueness of execution IDs by @Murdock9803 in #5828
- DOC-648 Add wandb and neptune dependencies by @neverett in #5842
- Update contributing docs by @neverett in #5830
- Update schedules.md by @RaghavMangla in #5826
- [flytectl] Use Protobuf Struct as dataclass Input for backward compatibility by @Future-Outlier in #5840
- Add David as codeowner of deployment docs by @neverett in #5841
- Add an error for file size exceeded to prevent system retries by @wild-endeavor in #5725
- Add perian dependency for PERIAN plugin by @neverett in #5848
- [FlyteCopilot] Binary IDL Attribute Access Primitive Input by @Future-Outlier in #5850
- [Docs] Update for image spec/fast register notes by @wild-endeavor in #5726
- [Docs] add practical example to improve data management doc by @DenChenn in #5844
- Handle CORS in secure connections by @eapolinario in #5855
- Update Grafana User dashboard by @davidmirror-ops in #5703
- RFC: Community plugins by @davidmirror-ops in #5610
- Fix link to contributing docs by @Sovietaced in #5869
- [Docs] add streaming support example for file and directory by @DenChenn in #5879
- [Docs] Align Code lines of StructuredDataset with Flytesnacks Example by @JiangJiaWei1103 in #5874
- Sync client should call CloseSend when done sending by @RRap0so in #5884
- Upstream contributions from Union.ai by @andrewwdye in #5769
- Remove duplicate recovery interceptor by @Sovietaced in #5870
- fix: failed to make scheduler under flyteadmin by @lowc1012 in #5866
- [Docs] Recover the expected behaviors of example workflows by @JiangJiaWei1103 in #5880
- Use child context in watchAgents to avoid goroutine leak by @pingsutw in #5888
- [docs]add cache information in raw containers doc by @popojk in #5876
- Clarify behavior of interruptible map tasks by @RaghavMangla in #5845
- [Docs] Simplifying for better user understanding by @10sharmashivam in #5878
- Update ray.go not to fail when going suspend state. by @aminmaghsodi in #5816
- Add dependency review gh workflow by @eapolinario in #5902
- [Docs] improve contribute docs by @DenChenn in #5862
- Fix CONTRIBUTING.md and update by @taieeuu in #5873
- Add pod template support for init containers by @Sovietaced in #5750
- Update monitoring docs by @davidmirror-ops in #5903
- feat: add support for seedProjects with descriptions via seedProjectsWithDetails by @Terryhung in #5864
- Quick fix for monitoring docs YAML by @davidmirror-ops in #5917
- Added documentation about Fixed and unique domains by @Murdock9803 in #5923
- Remove unnecessary joins for list node and task execution entities in flyteadmin db queries by @katrogan in #5935
- Binary IDL Attribute Access for Map Task by @Future-Outlier in #5942
- Improve Documentation for Registering Workflows to avoid confusion by @sumana-2705 in #5941
- Added some CICD best practices to the documentation by @Murdock9803 in #5827
- [Docs]Document clarifying notes about the data lifecycle by @popojk in #5922
- fixed [Docs] Spot/interruptible docs imply retries come from the user… Closes #3956 by @ap0calypse8 in #5938
- Added new page under Data types and IO section for tensorflow_types in flyte documentation by @sumana-2705 in #5807
- Add basic SASL and TLS support for Kafka cloud events by @Sovietaced in #5814
- Fix broken links by @ppiegaze in #5946
- feat: improve registration patterns docs by @siiddhantt in #5808
- Improve literal type string representation handling by @pingsutw in #5932
- Update propeller sharding docs - types needs to be capitalized by @cpaulik in #5860
- fix: align the default config output by @Terryhung in #5947
- [Docs] Fix doc links to blob literal and type by @JiangJiaWei1103 in #5952
- Fix remaining misuses of capturing the default file descriptors in flytectl unit tests by @eapolinario in #5950
- Reduce where clause fanout when updating workflow, node & task executions by @katrogan in #5953
- [flyteadmin][API] get control plane version by @Future-Outlier in #5934
- Add multi file error aggregation strategy by @bgedik in #5795
- Fix: avoid log spam for log links generated during the pod's pending phase by @fg91 in #5945
- [Docs] Align Note with the Output Naming Convention by @JiangJiaWei1103 in #5919
- [DOC] add copy command examples and description by @mao3267 in #5782
- Hide generated launch plans starting with .flytegen in the UI by @troychiu in #5949
- Fix link in flyteidl README.md by @amitani in #5957
- Fix indentation for security block in auth_setup.rst by @jkhales in #5968
- [copilot][flytedirectory] multipart blob download by @wayner0628 in #5715
- Mark NamedEntityState reserved enum values by @katrogan in #5975
- [flytepropeller] Add tests in v1alpha by @DenChenn in #5896
- fix(admin): validate cron expression in launch plan schedule by @pet...