Scalable and flexible workflow orchestration platform that seamlessly unifies data, ML and analytics stacks.
Pre-release testing.
Pre-release testing.
Beta release.
Due to a mishap in the move to the monorepo, we ended up generating the git tags between 1.10.1 to 1.10.5, so in order to decrease the confusion we decided to skip those patch versions and go straight to the next available version.
We've shipped a ton of stuff in this patch release, here are some of the highlights.
You'll be able to get more fine-grained in the use GPU Accelerators in your tasks. Here are some examples:
No preference of GPU accelerator to use:
@task(limits=Resources(gpu="1"))
def my_task() -> None:
...
Schedule on a specific GPU accelerator:
from flytekit.extras.accelerators import T4
@task(
limits=Resources(gpu="1"),
accelerator=T4,
)
def my_task() -> None:
...
Schedule on a Multi-instance GPU (MIG) accelerator with no preference of partition size:
from flytekit.extras.accelerators import A100
@task(
limits=Resources(gpu="1"),
accelerator=A100,
)
def my_task() -> None:
...
Schedule on a Multi-instance GPU (MIG) accelerator with a specific partition size:
from flytekit.extras.accelerators import A100
@task(
limits=Resources(gpu="1"),
accelerator=A100.partition_1g_5gb,
)
def my_task() -> None:
...
Schedule on an unpartitioned Multi-instance GPU (MIG) accelerator:
from flytekit.extras.accelerators import A100
@task(
limits=Resources(gpu="1"),
accelerator=A100.unpartitioned,
)
def my_task() -> None:
...
https://github.com/flyteorg/flyte/pull/4266 opens the door for RayJob logs to be persisted.
In https://github.com/flyteorg/flyte/pull/4397 we added support for a link to a Ray dashboard to show up in the task card.
We updated the official grafana dashboards in https://github.com/flyteorg/flyte/pull/4382.
A new version of our stow fork added support for Azure AD in https://github.com/flyteorg/stow/pull/9.
flytepropeller/pkg /controller/executors
from 72.3% to 87.3% coverage by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4276
existing_cluster_id
and new_cluster
options to create a Job by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4361
array_test.go
, branch_test.go
, error_test.go
, and iface_test.go
with 0.13% Coverage Improvement by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4234
GetTaskPhase
Bug by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4469
shell: task
by @eapolinario in https://github.com/flyteorg/flyte/pull/4498
GetReplicaFunc
(Error Handling) by @Future-Outlier in https://github.com/flyteorg/flyte/pull/4471
Beta release.
This release marks the move to the (monorepo](https://github.com/flyteorg/flyte/pull/4014). From now on the development of backend components is going to be done in the Flyte main repo.
Flyte Agents are also getting a major lift. They are not only more performant, but we're also announcing support for a variety of agents, including Airflow, Memverge, Snowflake, Databricks.
Programmatically consuming inputs and outputs using flyteremote became a lot easier with the introduction of code snippets directly in the UI. For example, notice the small blurbs below inputs and outputs in the side panel:
You'll now be able to use offloaded types in eager workflows.
More ergonomic improvements to pyflyte, including the inclusion of a progress bar, the ability to activate launchplans, and the ability to interact with gate nodes in local executions.
And much more. Here's the exhaustive list of changes:
pyflyte run
by @kumare3 in https://github.com/flyteorg/flytekit/pull/1785
fsspec
in flytekit
by @fiedlerNr9 in https://github.com/flyteorg/flytekit/pull/1813
flytekit
to authenticate with proxy in front of FlyteAdmin by @fg91 in https://github.com/flyteorg/flytekit/pull/1787
name
Argument and registry
Argument to Lowercase in ImageSpec by @Future-Outlier in https://github.com/flyteorg/flytekit/pull/1881
typing_extension
Any import to typing due to typing_extension
version compatibility by @hfurkanvural in https://github.com/flyteorg/flytekit/pull/1877
Change routing in single binary. https://github.com/flyteorg/flyte/pull/3978
In this release we're announcing two experimental features, namely (1) ArrayNode map tasks, and (2) Execution Tags.
ArrayNodes are described more fully in RFC 3346, but the summary is that ArrayNode map tasks are a drop-in replacement for regular map tasks, the only difference being the submodule used to import the map_task
function.
More explicitly, let's say you have this code:
from typing import List
from flytekit import map_task, task, workflow
@task
def t(a: int) -> int:
...
@workflow
def wf(xs: List[int]) -> List[int]:
return map_task(t)(a=xs)
In order to switch to using array node map tasks you should import map_task from the flytekit.experimental
module like so:
from typing import List
from flytekit import task, workflow
from flytekit.experimental import map_task
@task
def t(a: int) -> int:
...
@workflow
def wf(xs: List[int]) -> List[int]:
return map_task(t)(a=xs)
Execution tags allow users to can discover their executions and other flyte entities more easily, by creating smarter groupings. The feature is described in this RFC.
As mentioned before, this feature is shipped in an experimental capacity, the idea being that we're going to incorporate the feedback of the community as we iterate. More work is expected to give prominence to the feature in flyteconsole, in the meanwhile, the feature is supported via Remote.
FLYTE_SDK_RICH_TRACEBACKS=0
is set by @fg91 in https://github.com/flyteorg/flytekit/pull/1760
https://github.com/flyteorg/flyteconsole/releases/tag/v1.8.6 https://github.com/flyteorg/flyteconsole/releases/tag/v1.8.7
Full Changelog: https://github.com/flyteorg/flyteconsole/compare/v1.8.5...v1.8.7