Repository navigation
Releases: flyteorg/flyte-migrate
Release list
v0.0.3
v0.0.2
v0.0.2b8
What's Changed
- Use real repo examples in the README CLI snippet by @pingsutw in #58
- Close v1 API coverage gaps: gates, StructuredDataset, ContainerTask, and decorator arg fidelity by @pingsutw in #65
- Fix env-name mismatch and missing deck reports for scripts run directly by @pingsutw in #64
- Bump the uv group across 1 directory with 13 updates by @dependabot[bot] in #57
- Remove merged_requirements.txt and gitignore it by @pingsutw in #67
- Add pull request template by @pingsutw in #68
- Make raw task templates block on the controller when called from sync workflows by @pingsutw in #69
- Bump requests from 2.32.5 to 2.33.0 in the uv group across 1 directory by @dependabot[bot] in #66
- Add a contribution guide by @pingsutw in #70
- Integration tests: fall back to config + PKCE login when FLYTE_API_KEY is unset by @pingsutw in #71
- Apply the shim at runtime via a custom task resolver by @pingsutw in #72
- Add disclaimer recommending the v2 migration guide by @pingsutw in #73
- Add an example mixing v1 code with a v2 flyte.Image by @pingsutw in #74
Full Changelog: v0.0.2b7...v0.0.2b8
v0.0.2b7
Fixes remote image builds silently downgrading flyte to 2.0.12.
0.0.2b6's metadata capped flyte<2.1, so every image that pip-installed flyte-migrate
had the base image's flyte (2.5.18) downgraded out from under it. This release depends on
flyte>=2.5.18, and #62 adds a flyte>= floor to the shim's own pip layers so a stale
release can't reintroduce the downgrade.
v0.0.2b6
Pre-release.
Fix
- Do not carry the v1 registry onto the derived v2 image.
ImageSpec.registry records where the v1 image was pulled from, which is not necessarily
somewhere the cluster may push to. Carrying it over made the derived build target
public.ecr.aws/unionai/flytekit, which the image builder has no push credentials for, so the
build succeeded and then failed on export:
#15 ERROR: failed to push public.ecr.aws/unionai/flytekit:c26bfcf523... 401 Unauthorized
The registry is now left unset, so the remote builder pushes to the backend's own default
registry and the target becomes a bare flytekit:<hash>. The image name is still propagated,
since Image.clone refuses to add layers to an unnamed image.
v0.0.2b5
Pre-release.
Fix
- Tolerate
ImageSpecfields that older flytekit does not have.
The shim is pip-installed into the user's own v1 image, so it runs against whatever flytekit
that image was built with. flytekit.ImageSpec has gained fields over time, and reading an
absent one raised AttributeError during image translation, before any user code ran:
AttributeError: 'ImageSpec' object has no attribute 'pip_secret_mounts'
Verified against a real v1 image running flytekit 1.13.5, whose ImageSpec is missing three
of the fields the shim reads: pip_secret_mounts, pip_extra_args, and copy. These now go
through a helper that treats absent as unset.
Checked by installing the shim into that image and importing a deck example end to end.
v0.0.2b4
Pre-release. Supersedes 0.0.2b3.
Fixes 0.0.2b3
0.0.2b3 was tagged on main, which does not carry the upgrade-exec CLI command that the
v1 to v2 upgrade flow invokes in the pod. Every upgraded run installing that version failed
with:
Usage: pyflyte-migrate [OPTIONS] ...
Try 'pyflyte-migrate --help' for help
Error
This release is cut from upgrade-exec (the same branch 0.0.2b2 came from), so
pyflyte-migrate upgrade-exec is present again, with the annotation fix cherry-picked on top.
Included
- Keep
_taskannotations lazy so the shim imports on older flytekit (#61).
flytekit.Cacheis only referenced in annotations; evaluating them eagerly broke
import flyte_migrateon v1 images built against older flytekit with
AttributeError: module 'flytekit' has no attribute 'Cache'.
v0.0.2b3
Pre-release.
Fix
- Keep
_taskannotations lazy so the shim imports on older flytekit (#61).
_task.py annotated three signatures with Union[bool, flytekit.Cache]. Module-level
annotations are evaluated eagerly, and flytekit.Cache only exists in newer flytekit, so
importing flyte_migrate inside a v1 image built against an older flytekit failed before any
user code ran:
AttributeError: module 'flytekit' has no attribute 'Cache'
This affected the v1 to v2 upgrade flow, which pip-installs the shim into the user's own
unmodified v1 image. Cache is referenced only in annotations and never at runtime, so
from __future__ import annotations is sufficient and avoids forcing a flytekit upgrade
inside images we do not control.