Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release v1.2] Backport v1.6 #1645

Merged
merged 81 commits into from
May 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
4555578
Data subsystem (#1526)
wild-endeavor Mar 10, 2023
f6331ca
Pluck retry from flytekit and into sagemaker (#1411)
eapolinario Mar 14, 2023
2731766
Update the pypi wait (#1554)
wild-endeavor Mar 20, 2023
0c47d46
Stream Directories and Files using Flyte (#1512)
kumare3 Mar 20, 2023
1f7f510
Make `FlyteFile` compatible with `Annotated[..., HashMethod]` (#1544)
AdrianoKF Mar 21, 2023
236309a
move FlyteSchema deprecation warning to initialization method (#1558)
cosmicBboy Mar 23, 2023
756148b
add pod_template and pod_template_name arguments for ContainerTask (#…
flixr Mar 24, 2023
b22e5e3
Pass locally defined scopes to RemoteClientConfigStore (#1553)
franco-bocci Mar 24, 2023
f0abcc9
TypeTransformer for TensorFlow model (#1562)
samhita-alla Mar 25, 2023
bd6a7e5
Remove fsspec flytekit plugin from main Dockerfile (#1561)
wild-endeavor Mar 27, 2023
b757306
Device auth flow / Headless auth (#1552)
kumare3 Mar 28, 2023
7e76d4b
url encode secret in client credentials flow (#1566)
wild-endeavor Mar 28, 2023
19a0367
Python run multiple files (#1559)
pingsutw Mar 29, 2023
9a31a01
General Partial support in flytekit and multi-list support in flyteki…
kumare3 Mar 29, 2023
d8c10c6
fix: Silence keyring warnings by changing to debug (#1568)
ggydush Mar 30, 2023
06ea83b
Support GCP secrets (#1571)
wild-endeavor Mar 31, 2023
57e21c2
Automatically remove unused import (#1574)
pingsutw Apr 3, 2023
082f8fb
Disallow partial lists in map tasks (#1577)
eapolinario Apr 3, 2023
0c0c2ac
Remove duplicate reporting logic (#1578)
wild-endeavor Apr 4, 2023
3ed7f83
[Core feature] Convert List[Any] to a single pickle file (#1535)
Yicheng-Lu-llll Apr 4, 2023
8941718
Improve authoring structure documentation (#1572)
samhita-alla Apr 5, 2023
3be7f50
Unify sqlalchemy Dockerfiles (#1585)
eapolinario Apr 7, 2023
a591b7d
Pyflyte build imageSpec (#1555)
pingsutw Apr 15, 2023
915ea43
Feature/3506: Improve Type Conversion errors, use rich to prettify er…
cosmicBboy Apr 17, 2023
f8cc630
Add support nested FlyteFile in pyflyte run (#1587)
pingsutw Apr 17, 2023
8e26a59
Set cache_regions=True in the case of s3fs (#1592)
eapolinario Apr 18, 2023
b60fe84
Set default ComSpec when running on Windows (#1595)
pingsutw Apr 18, 2023
ec61f34
Feature: add activate-launchplan command to pyflyte (#1588)
wckdman Apr 18, 2023
34ea031
nit (#1596)
wild-endeavor Apr 18, 2023
34326ca
Add log streaming to papermill plugin (#1129)
Apr 19, 2023
a545e9e
Set lower bound for s3fs (#1598)
pingsutw Apr 19, 2023
083b16b
Implement horovod task in mpi plugin (#1575)
ByronHsu Apr 19, 2023
e3447ce
add ImageRender class for Flyte Decks (#1599)
peridotml Apr 19, 2023
2d6aaa5
Bump tensorflow from 2.10.0 to 2.11.1 in /plugins/flytekit-mlflow (#1…
dependabot[bot] Apr 19, 2023
5d4da60
Handle batchable lists of length 0 (#1600)
eapolinario Apr 20, 2023
5097ee7
pyflyte run imperative workflow (#1597)
pingsutw Apr 20, 2023
ac92ce6
Backfill should fill in the right input vars (#1593)
kumare3 Apr 21, 2023
66a3ee6
Pyflyte prettified (#1602)
kumare3 Apr 22, 2023
21bd0a7
pyflyte run now supports json/yaml files (#1606)
kumare3 Apr 26, 2023
93179b1
Add is_inside func to ImageSpec (#1601)
pingsutw Apr 30, 2023
3eaca9c
Measuring the time taken for each component when executing a task (#1…
Yicheng-Lu-llll May 1, 2023
1df828f
Skip the image building process if the check for its existence fails …
pingsutw May 2, 2023
c7f20e6
Enable torch elastic training (torchrun) (#1603)
fg91 May 3, 2023
33a2f32
update sphinx youtube plugin (#1619)
pingsutw May 4, 2023
b2fb4bf
Read polar dataframe without copying to local (#1618)
pingsutw May 4, 2023
d778232
Add default spark image (#1616)
pingsutw May 5, 2023
5a66411
Lazy load modules (#1590)
pingsutw May 5, 2023
7c64c8d
Override node name with a name containing underscore (#1608)
pingsutw May 5, 2023
a04a128
External Plugin Service (grpc) (#1524)
pingsutw May 6, 2023
d9174fd
Include traceback in errors from admin (#1621)
wild-endeavor May 8, 2023
6577c61
Add support for copying all the files in source root (#1622)
pingsutw May 8, 2023
4c23c91
fix PipelineModel transformer issue 3648 (#1623)
peridotml May 8, 2023
a7391c9
update GH workflow for external plugin service (#1624)
pingsutw May 8, 2023
7409889
[Issue-3617] Enables FlyteFiles, FlyteDirectors, and StructuredDatase…
peridotml May 11, 2023
396080c
Add support for using a list as an input for a subworkflow (#1605)
pingsutw May 11, 2023
2fab5db
Improve task decorator type hints with overload (#1631)
ringohoffman May 11, 2023
af17385
add annotation option for serialization (#1615)
elibixby May 11, 2023
fc065db
Delete removed data persistence classes from docs (#1633)
cosmicBboy May 12, 2023
ded15a8
Improve workflow decorator type hints with overload (#1635)
ringohoffman May 12, 2023
af49155
Fix mypy errors (#1313)
pingsutw Feb 16, 2023
725cdb7
type-protobuf<4
eapolinario May 16, 2023
02f7830
Allow for python 3.7
eapolinario May 17, 2023
6836d62
Fix protobuf transformer merge error
eapolinario May 17, 2023
bbda9ad
Fix bad merge of s/_task_models/task_models/
eapolinario May 17, 2023
8914849
Add maxsize=128 to @lru_cache to cover python 3.7
eapolinario May 17, 2023
2178128
Lint
eapolinario May 17, 2023
6059a60
Regenerate doc-requirements.txt
eapolinario May 17, 2023
f5e4ae5
Add missing call to lru_cache
eapolinario May 17, 2023
f24f261
Bump version and regenerate requirements in a few plugins
eapolinario May 17, 2023
14fb5b5
Revert "Fix mypy errors (#1313)"
eapolinario May 17, 2023
184b173
Remove docs
eapolinario May 17, 2023
61d0afc
More linting
eapolinario May 17, 2023
5ee2067
Fix type of get_type_for_output_var
eapolinario May 17, 2023
2fd8094
Remove tensorflow test_model
eapolinario May 17, 2023
a947a45
Replace use of shutil.copytree
eapolinario May 17, 2023
e36e4f6
Other use of copytree
eapolinario May 17, 2023
d5547e7
Stringify paths in test_script_mode
eapolinario May 17, 2023
7a01c0a
os.path.isfile instead in imagespec
eapolinario May 17, 2023
f1c71bb
Remove tests
eapolinario May 17, 2023
d10cac7
More linting
eapolinario May 17, 2023
1540d1c
Remove flaky test
eapolinario May 17, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 0 additions & 26 deletions .github/workflows/docs_build.yml

This file was deleted.

17 changes: 1 addition & 16 deletions .github/workflows/pythonbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ jobs:
- flytekit-deck-standard
- flytekit-dolt
- flytekit-duckdb
- flytekit-envd
- flytekit-greatexpectations
- flytekit-hive
- flytekit-k8s-pod
Expand Down Expand Up @@ -156,19 +157,3 @@ jobs:
uses: ludeeus/action-shellcheck@master
with:
ignore_paths: boilerplate

docs:
runs-on: ubuntu-latest
steps:
- name: Fetch the code
uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip==21.2.4 setuptools wheel
pip install -r doc-requirements.txt
- name: Build the documentation
run: make -C docs html
114 changes: 108 additions & 6 deletions .github/workflows/pythonpublish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,28 @@ jobs:
run: |
make -C plugins build_all_plugins
make -C plugins publish_all_plugins
# Added sleep because PYPI take some time in publish
- name: Sleep for 180 seconds
uses: jakejarvis/wait-action@master
with:
time: '180s'
- name: Sleep until pypi is available
id: pypiwait
run: |
# from refs/tags/v1.2.3 get 1.2.3 and make sure it's not an empty string
VERSION=$(echo $GITHUB_REF | sed 's#.*/v##')
if [ -z "$VERSION" ]
then
echo "No tagged version found, exiting"
exit 1
fi
LINK="https://pypi.org/project/flytekit/${VERSION}"
for i in {1..60}; do
if curl -L -I -s -f ${LINK} >/dev/null; then
echo "Found pypi"
exit 0
else
echo "Did not find - Retrying in 10 seconds..."
sleep 10
fi
done
exit 1
shell: bash
outputs:
version: ${{ steps.bump.outputs.version }}

Expand Down Expand Up @@ -120,6 +137,91 @@ jobs:
tags: ${{ steps.sqlalchemy-names.outputs.tags }}
build-args: |
VERSION=${{ needs.deploy.outputs.version }}
file: ./plugins/flytekit-sqlalchemy/Dockerfile.py${{ matrix.python-version }}
PYTHON_VERSION=${{ matrix.python-version }}
file: ./plugins/flytekit-sqlalchemy/Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max

build-and-push-external-plugin-service-images:
runs-on: ubuntu-latest
needs: deploy
steps:
- uses: actions/checkout@v2
with:
fetch-depth: "0"
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Login to GitHub Container Registry
if: ${{ github.event_name == 'release' }}
uses: docker/login-action@v1
with:
registry: ghcr.io
username: "${{ secrets.FLYTE_BOT_USERNAME }}"
password: "${{ secrets.FLYTE_BOT_PAT }}"
- name: Prepare External Plugin Service Image Names
id: external-plugin-service-names
uses: docker/metadata-action@v3
with:
images: |
ghcr.io/${{ github.repository_owner }}/external-plugin-service
tags: |
latest
${{ github.sha }}
${{ needs.deploy.outputs.version }}
- name: Push External Plugin Service Image to GitHub Registry
uses: docker/build-push-action@v2
with:
context: "."
platforms: linux/arm64, linux/amd64
push: ${{ github.event_name == 'release' }}
tags: ${{ steps.external-plugin-service-names.outputs.tags }}
build-args: |
VERSION=${{ needs.deploy.outputs.version }}
file: ./Dockerfile.external-plugin-service
cache-from: type=gha
cache-to: type=gha,mode=max

build-and-push-spark-images:
runs-on: ubuntu-latest
needs: deploy
steps:
- uses: actions/checkout@v2
with:
fetch-depth: "0"
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Login to GitHub Container Registry
if: ${{ github.event_name == 'release' }}
uses: docker/login-action@v1
with:
registry: ghcr.io
username: "${{ secrets.FLYTE_BOT_USERNAME }}"
password: "${{ secrets.FLYTE_BOT_PAT }}"
- name: Prepare Spark Image Names
id: spark-names
uses: docker/metadata-action@v3
with:
images: |
ghcr.io/${{ github.repository_owner }}/flytekit
tags: |
spark-latest
spark-${{ github.sha }}
spark-${{ needs.deploy.outputs.version }}
- name: Push Spark Image to GitHub Registry
uses: docker/build-push-action@v2
with:
context: "./plugins/flytekit-spark/"
platforms: linux/arm64, linux/amd64
push: ${{ github.event_name == 'release' }}
tags: ${{ steps.spark-names.outputs.tags }}
build-args: |
VERSION=${{ needs.deploy.outputs.version }}
file: ./plugins/flytekit-spark/Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,4 @@ htmlcov
*.ipynb
*dat
docs/source/_tags/
.hypothesis
4 changes: 4 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,7 @@ repos:
rev: v0.8.0.4
hooks:
- id: shellcheck
- repo: https://github.com/conorfalvey/check_pdb_hook
rev: 0.0.9
hooks:
- id: check_pdb_hook
2 changes: 2 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ build:
os: ubuntu-20.04
tools:
python: "3.9"
apt_packages:
- graphviz

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand Down
3 changes: 1 addition & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ RUN apt-get update && apt-get install build-essential -y
RUN pip install -U flytekit==$VERSION \
flytekitplugins-pod==$VERSION \
flytekitplugins-deck-standard==$VERSION \
flytekitplugins-data-fsspec[aws]==$VERSION \
flytekitplugins-data-fsspec[gcp]==$VERSION \
flytekitplugins-envd==$VERSION \
scikit-learn

RUN useradd -u 1000 flytekit
Expand Down
32 changes: 32 additions & 0 deletions Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# This Dockerfile is here to help with end-to-end testing
# From flytekit
# $ docker build -f Dockerfile.dev --build-arg PYTHON_VERSION=3.10 -t localhost:30000/flytekittest:someversion .
# $ docker push localhost:30000/flytekittest:someversion
# From your test user code
# $ pyflyte run --image localhost:30000/flytekittest:someversion

ARG PYTHON_VERSION
FROM python:${PYTHON_VERSION}-slim-buster

MAINTAINER Flyte Team <users@flyte.org>
LABEL org.opencontainers.image.source https://github.com/flyteorg/flytekit

WORKDIR /root

ARG VERSION

RUN apt-get update && apt-get install build-essential vim -y

COPY . /flytekit

# Pod tasks should be exposed in the default image
RUN pip install -e /flytekit
RUN pip install -e /flytekit/plugins/flytekit-k8s-pod
RUN pip install -e /flytekit/plugins/flytekit-deck-standard
RUN pip install scikit-learn

ENV PYTHONPATH "/flytekit:/flytekit/plugins/flytekit-k8s-pod:/flytekit/plugins/flytekit-deck-standard:"

RUN useradd -u 1000 flytekit
RUN chown flytekit: /root
USER flytekit
9 changes: 9 additions & 0 deletions Dockerfile.external-plugin-service
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM python:3.9-slim-buster

MAINTAINER Flyte Team <users@flyte.org>
LABEL org.opencontainers.image.source=https://github.com/flyteorg/flytekit

ARG VERSION
RUN pip install -U flytekit==$VERSION flytekitplugins-bigquery==$VERSION

CMD pyflyte serve --port 8000
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ setup: install-piptools ## Install requirements

.PHONY: fmt
fmt: ## Format code with black and isort
autoflake --remove-all-unused-imports --ignore-init-module-imports --ignore-pass-after-docstring --in-place -r flytekit plugins tests
pre-commit run black --all-files || true
pre-commit run isort --all-files || true

Expand Down
5 changes: 5 additions & 0 deletions dev-requirements.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

git+https://github.com/flyteorg/pytest-flyte@main#egg=pytest-flyte
coverage[toml]
hypothesis
joblib
mock
pytest
Expand All @@ -21,3 +22,7 @@ tensorflow==2.8.1; platform_machine!='arm64' or platform_system!='Darwin'
# we put this constraint while we do not have per-environment requirements files
torch<=1.12.1
scikit-learn
types-protobuf<4
types-croniter
types-mock
autoflake
3 changes: 2 additions & 1 deletion doc-requirements.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.
-e file:.#egg=flytekit

grpcio<=1.49.1
git+https://github.com/flyteorg/furo@main
sphinx
sphinx-gallery
Expand All @@ -11,7 +12,7 @@ sphinx-autoapi
sphinx-copybutton
sphinx_fontawesome
sphinx-panels
sphinxcontrib-yt
sphinxcontrib-youtube
cryptography
google-api-core[grpc]
scikit-learn
Expand Down
Loading