-
Notifications
You must be signed in to change notification settings - Fork 2
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
Support TFX 1.14 #297
Support TFX 1.14 #297
Conversation
ce6946d
to
2c84a66
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My main concern is how to document the shapely pinning to version <2. Should it be an issue on this repo that we link from both places with a "FIXME" comment?
It should be noted somehow. At least referring to the issue it fixes would explain to OSS users why it's there. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some more thoughts on versions:
.tool-versions
- ✅ We should always use the latest Python version from
pyproject.toml
- ❎ We should always use the latest Poetry
- ✅ We should always use the latest Python version from
argo/kfp-compiler/pyproject.toml
- ✅ we should pin tfx to the latest supported version
- ✅ Python version range should be set accordingly
argo/kfp-compiler/Makefile
andargo/kfp-compiler/Dockerfile
- ❎ We should build and test with all versions. In the PR 3.9 and 3.10 seem completely arbitrary, and 3.8 is missed.
17bc044
to
7b62378
Compare
- also an unexpected fix for PyYAML in tests
7b62378
to
acaaf05
Compare
This PR updates the KFP compiler build and test to support TFX 1.14. TFX 1.14 official container is built with Python 3.10, so compiler build/test is updated for that. It also removes support for Python 3.7, which is no longer required.
The following changes were required:
python = ">=3.8,<3.11"
- removes support for 3.7; adds support for 3.10PyYAML = ">=5.4.1"
- this was updated in conjunction with a breaking change (see below)pytest = "7.4.0"
- this was found to be necessary to get some pipeline unit tests to work, so also upgraded hereshapely = "<2"
- see this Google AI Platform issueDockerfile
to remove Python 3.7 and add 3.10yaml.load()
now needs aLoader
arg, or usesafe_load()
method. The latter was used.integration-test
Python versionsintegration-test
- was missing--execution_mode
arg and compiler expects--pipeline_config
arg to be a fileintegration-test
Dockerfile
, the initialshapely
downgrade on singlepip
commandRUN pip install tfx==$TFX_VERSION "shapely<2"
did not work and introduced null errors and segmentation faults when importing TFX packages incompiler.py
. Following the exact instructions in the issue above, ie.pip install -U google-cloud-aiplatform "shapely<2"
fixed the issuev1
andv2
args on--execution_mode
shapely
issue, noticed:://
inPYTHONPATH
incompile.sh
- it obviously did 'work' before, but corrected it anywayREADME.md
✅ unit tests passing
✅ acceptance test passing
✅ integration test passing
✅ prBuild passing
Note: the issue with Python version during compile build/test was due to Poetry installation picking up Python 3.11.2. It does not 'pick' the 'currently active' version in a multi-Pyhon installation. There is no easy way for force it, but you can tell it which to use. The line:
in the compiler makefile forces Poetry to use a specified available version, in this case 3.10.12. the Python
bin
path in Jenkins is not the same as local machines, which is not ideal.