diff --git a/README.md b/README.md index b71d438afc..a8f93058c4 100644 --- a/README.md +++ b/README.md @@ -62,8 +62,9 @@ but other *untested* combinations may also work. tfx | Python | apache-beam[gcp] | ml-metadata | pyarrow | tensorflow | tensorflow-data-validation | tensorflow-metadata | tensorflow-model-analysis | tensorflow-serving-api | tensorflow-transform | tfx-bsl ------------------------------------------------------------------------- | -------------------- | ---------------- | ----------- | ------- | ----------------- | -------------------------- | ------------------- | ------------------------- | ---------------------- | -------------------- | ------- -[GitHub master](https://github.com/tensorflow/tfx/blob/master/RELEASE.md) | >=3.9,<3.11 | 2.47.0 | 1.15.0 | 10.0.0 | nightly (2.x) | 1.15.1 | 1.15.0 | 0.46.0 | 2.15.1 | 1.15.0 | 1.15.1 -[1.15.0](https://github.com/tensorflow/tfx/blob/v1.15.0/RELEASE.md) | >=3.9,<3.11 | 2.47.0 | 1.15.0 | 10.0.0 | 2.15 | 1.15.1 | 1.15.0 | 0.46.0 | 2.15.1 | 1.15.0 | 1.15.1 +[GitHub master](https://github.com/tensorflow/tfx/blob/master/RELEASE.md) | >=3.9,<3.11 | 2.59.0 | 1.16.0 | 10.0.1 | nightly (2.x) | 1.16.1 | 1.16.1 | 0.47.0 | 2.16.1 | 1.16.0 | 1.16.1 +[1.16.0](https://github.com/tensorflow/tfx/blob/v1.16.0/RELEASE.md) | >=3.9,<3.11 | 2.59.0 | 1.16.0 | 10.0.1 | 2.16 | 1.16.1 | 1.16.1 | 0.47.0 | 2.16.1 | 1.16.0 | 1.16.1 +[1.15.0](https://github.com/tensorflow/tfx/blob/v1.15.0/RELEASE.md) | >=3.9,<3.11 | 2.47.0 | 1.15.0 | 10.0.0 | 2.15 | 1.15.1 | 1.15.0 | 0.46.0 | 2.15.1 | 1.15.0 | 1.15.1 [1.14.0](https://github.com/tensorflow/tfx/blob/v1.14.0/RELEASE.md) | >=3.8,<3.11 | 2.47.0 | 1.14.0 | 10.0.0 | 2.13 | 1.14.0 | 1.14.0 | 0.45.0 | 2.9.0 | 1.14.0 | 1.14.0 [1.13.0](https://github.com/tensorflow/tfx/blob/v1.13.0/RELEASE.md) | >=3.8,<3.10 | 2.40.0 | 1.13.1 | 6.0.0 | 2.12 | 1.13.0 | 1.13.1 | 0.44.0 | 2.9.0 | 1.13.0 | 1.13.0 [1.12.0](https://github.com/tensorflow/tfx/blob/v1.12.0/RELEASE.md) | >=3.7,<3.10 | 2.40.0 | 1.12.0 | 6.0.0 | 2.11 | 1.12.0 | 1.12.0 | 0.43.0 | 2.9.0 | 1.12.0 | 1.12.0 diff --git a/RELEASE.md b/RELEASE.md index fbafb8db13..9f9f03b4af 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,6 +4,26 @@ ## Breaking Changes +### For Pipeline Authors + +### For Component Authors + +## Deprecations + +## Bug Fixes and Other Changes + +## Dependency Updates + +## Documentation Updates + +# Version 1.16.0 + +## Major Features and Improvements + +* N/A + +## Breaking Changes + * `Placeholder.__format__()` is now disallowed, so you cannot use placeholders in f-strings and `str.format()` calls anymore. If you get an error from this, most likely you discovered a bug and should not use an f-string in the first @@ -13,12 +33,21 @@ ### For Pipeline Authors +* N/A + ### For Component Authors +* N/A + ## Deprecations +* KubeflowDagRunner (KFP v1 SDK) is deprecated. Use KubeflowV2DagRunner (KFP v2 pipeline spec) instead. +* Since Estimators will no longer be available in TensorFlow 2.16 and later versions, we have deprecated examples and templates that use them. We encourage you to explore Keras as a more modern and flexible high-level API for building and training models in TensorFlow. + ## Bug Fixes and Other Changes +* N/A + ## Dependency Updates | Package Name | Version Constraints | Previously (in `v1.15.1`) | Comments | | -- | -- | -- | -- | @@ -26,6 +55,8 @@ ## Documentation Updates +* N/A + # Version 1.15.1 ## Major Features and Improvements diff --git a/nightly_test_constraints.txt b/nightly_test_constraints.txt index 1055bda932..9bd75cb146 100644 --- a/nightly_test_constraints.txt +++ b/nightly_test_constraints.txt @@ -11,28 +11,17 @@ # TODO(b/321609768): Remove pinned Flask-session version after resolving the issue. Flask-session<0.6.0 -#TODO(b/329181965): Remove once we migrate TFX to 2.16. -tensorflow==2.15.1 -tensorflow-text==2.15.0 +tensorflow==2.16.2 +tensorflow-text==2.16.1 +keras==3.6.0 absl-py==1.4.0 aiohappyeyeballs==2.4.3 -aiohttp==3.10.9 aiosignal==1.3.1 alembic==1.13.3 annotated-types==0.7.0 anyio==4.6.0 -apache-airflow==2.10.2 -apache-airflow-providers-common-compat==1.2.1rc1 -apache-airflow-providers-common-io==1.4.2rc1 -apache-airflow-providers-common-sql==1.18.0rc1 -apache-airflow-providers-fab==1.4.1rc1 -apache-airflow-providers-ftp==3.11.1 -apache-airflow-providers-http==4.13.1 -apache-airflow-providers-imap==3.7.0 -apache-airflow-providers-mysql==5.7.2rc1 -apache-airflow-providers-smtp==1.8.0 -apache-airflow-providers-sqlite==3.9.0 +apache-airflow==2.10.3 apache-beam==2.59.0 apispec==6.6.1 argcomplete==3.5.1 @@ -91,7 +80,6 @@ fasteners==0.19 fastjsonschema==2.20.0 filelock==3.16.1 Flask==2.2.5 -Flask-AppBuilder==4.5.0 Flask-Babel==2.0.0 Flask-Caching==2.3.0 Flask-JWT-Extended==4.6.0 @@ -152,7 +140,6 @@ importlib_resources==6.4.5 inflection==0.5.1 iniconfig==2.0.0 ipykernel==6.29.5 -ipython==7.34.0 ipython-genutils==0.2.0 ipywidgets==7.8.4 isoduration==20.11.0 @@ -179,7 +166,7 @@ jupyterlab==4.2.5 jupyterlab_pygments==0.3.0 jupyterlab_server==2.27.3 jupyterlab_widgets==1.1.10 -keras==2.15.0 +tf-keras==2.16.0 keras-tuner==1.4.7 kfp==2.5.0 kfp-pipeline-spec==0.2.2 @@ -205,12 +192,12 @@ mdurl==0.1.2 methodtools==0.4.7 mistune==3.0.2 ml-dtypes==0.3.2 -ml-metadata>=1.17.0.dev20241016 +ml-metadata>=1.16.0 mmh==2.2 more-itertools==10.5.0 msgpack==1.1.0 multidict==6.1.0 -mysql-connector-python==9.0.0 +mysql-connector-python==9.1.0 mysqlclient==2.2.4 nbclient==0.10.0 nbconvert==7.16.4 @@ -262,7 +249,6 @@ proto-plus==1.24.0 protobuf==3.20.3 psutil==6.0.0 ptyprocess==0.7.0 -pyarrow==10.0.1 pyarrow-hotfix==0.6 pyasn1==0.6.1 pyasn1_modules==0.4.1 @@ -316,33 +302,33 @@ SQLAlchemy==1.4.54 SQLAlchemy-JSONField==1.0.2 SQLAlchemy-Utils==0.41.2 sqlparse==0.5.1 -struct2tensor>=0.47.0.dev20240430; extra == "all" +struct2tensor>=0.47.0 tabulate==0.9.0 tenacity==9.0.0 -tensorboard==2.15.2 +tensorboard==2.16.2 tensorboard-data-server==0.7.2 -tensorflow==2.15.1 +tensorflow==2.16.2 tensorflow-cloud==0.1.16 -tensorflow-data-validation>=1.16.0.dev20240508 +tensorflow-data-validation>=1.16.1 tensorflow-datasets==4.9.3 -tensorflow-decision-forests==1.8.1 +tensorflow-decision-forests==1.9.2 tensorflow-estimator==2.15.0 tensorflow-hub==0.15.0 tensorflow-io==0.24.0 tensorflow-io-gcs-filesystem==0.24.0 -tensorflow-metadata>=1.17.0.dev20241016 -tensorflow-ranking==0.5.5 -tensorflow-serving-api==2.15.1 -tensorflow-text==2.15.0 -tensorflow-transform>=1.16.0.dev20240430 -tensorflow_model_analysis>=0.47.0.dev20240617 +tensorflow-metadata>=1.16.1 +# tensorflow-ranking==0.5.5 +tensorflow-serving-api==2.16.1 +tensorflow-text==2.16.1 +tensorflow-transform>=1.16.0 +tensorflow_model_analysis>=0.47.0 tensorflowjs==4.17.0 tensorstore==0.1.66 termcolor==2.5.0 terminado==0.18.1 text-unidecode==1.3 tflite-support==0.4.4 -tfx-bsl>=1.16.0.dev20240430 +tfx-bsl>=1.16.1 threadpoolctl==3.5.0 time-machine==2.16.0 tinycss2==1.3.0 @@ -367,7 +353,6 @@ wcwidth==0.2.13 webcolors==24.8.0 webencodings==0.5.1 websocket-client==0.59.0 -Werkzeug==2.2.3 widgetsnbextension==3.6.9 wirerope==0.4.7 wrapt==1.14.1 diff --git a/test_constraints.txt b/test_constraints.txt index 34c162df19..0433e34857 100644 --- a/test_constraints.txt +++ b/test_constraints.txt @@ -11,28 +11,17 @@ # TODO(b/321609768): Remove pinned Flask-session version after resolving the issue. Flask-session<0.6.0 -#TODO(b/329181965): Remove once we migrate TFX to 2.16. -tensorflow==2.15.1 -tensorflow-text==2.15.0 +tensorflow==2.16.2 +tensorflow-text==2.16.1 +keras==3.6.0 absl-py==1.4.0 aiohappyeyeballs==2.4.3 -aiohttp==3.10.9 aiosignal==1.3.1 alembic==1.13.3 annotated-types==0.7.0 anyio==4.6.0 -apache-airflow==2.10.2 -apache-airflow-providers-common-compat==1.2.1rc1 -apache-airflow-providers-common-io==1.4.2rc1 -apache-airflow-providers-common-sql==1.18.0rc1 -apache-airflow-providers-fab==1.4.1rc1 -apache-airflow-providers-ftp==3.11.1 -apache-airflow-providers-http==4.13.1 -apache-airflow-providers-imap==3.7.0 -apache-airflow-providers-mysql==5.7.2rc1 -apache-airflow-providers-smtp==1.8.0 -apache-airflow-providers-sqlite==3.9.0 +apache-airflow==2.10.3 apache-beam==2.59.0 apispec==6.6.1 argcomplete==3.5.1 @@ -91,7 +80,6 @@ fasteners==0.19 fastjsonschema==2.20.0 filelock==3.16.1 Flask==2.2.5 -Flask-AppBuilder==4.5.0 Flask-Babel==2.0.0 Flask-Caching==2.3.0 Flask-JWT-Extended==4.6.0 @@ -152,7 +140,6 @@ importlib_resources==6.4.5 inflection==0.5.1 iniconfig==2.0.0 ipykernel==6.29.5 -ipython==7.34.0 ipython-genutils==0.2.0 ipywidgets==7.8.4 isoduration==20.11.0 @@ -179,7 +166,7 @@ jupyterlab==4.2.5 jupyterlab_pygments==0.3.0 jupyterlab_server==2.27.3 jupyterlab_widgets==1.1.10 -keras==2.15.0 +tf-keras==2.16.0 keras-tuner==1.4.7 kfp==2.5.0 kfp-pipeline-spec==0.2.2 @@ -205,11 +192,12 @@ mdurl==0.1.2 methodtools==0.4.7 mistune==3.0.2 ml-dtypes==0.3.2 +ml-metadata>=1.16.0 mmh==2.2 more-itertools==10.5.0 msgpack==1.1.0 multidict==6.1.0 -mysql-connector-python==9.0.0 +mysql-connector-python==9.1.0 mysqlclient==2.2.4 nbclient==0.10.0 nbconvert==7.16.4 @@ -261,7 +249,6 @@ proto-plus==1.24.0 protobuf==3.20.3 psutil==6.0.0 ptyprocess==0.7.0 -pyarrow==10.0.1 pyarrow-hotfix==0.6 pyasn1==0.6.1 pyasn1_modules==0.4.1 @@ -315,27 +302,33 @@ SQLAlchemy==1.4.54 SQLAlchemy-JSONField==1.0.2 SQLAlchemy-Utils==0.41.2 sqlparse==0.5.1 +struct2tensor>=0.47.0 tabulate==0.9.0 tenacity==9.0.0 -tensorboard==2.15.2 +tensorboard==2.16.2 tensorboard-data-server==0.7.2 -tensorflow==2.15.1 +tensorflow==2.16.2 tensorflow-cloud==0.1.16 +tensorflow-data-validation>=1.16.1 tensorflow-datasets==4.9.3 -tensorflow-decision-forests==1.8.1 +tensorflow-decision-forests==1.9.2 tensorflow-estimator==2.15.0 tensorflow-hub==0.15.0 tensorflow-io==0.24.0 tensorflow-io-gcs-filesystem==0.24.0 -tensorflow-ranking==0.5.5 -tensorflow-serving-api==2.15.1 -tensorflow-text==2.15.0 +tensorflow-metadata>=1.16.1 +# tensorflow-ranking==0.5.5 +tensorflow-serving-api==2.16.1 +tensorflow-text==2.16.1 +tensorflow-transform>=1.16.0 +tensorflow_model_analysis>=0.47.0 tensorflowjs==4.17.0 tensorstore==0.1.66 termcolor==2.5.0 terminado==0.18.1 text-unidecode==1.3 tflite-support==0.4.4 +tfx-bsl>=1.16.1 threadpoolctl==3.5.0 time-machine==2.16.0 tinycss2==1.3.0 @@ -360,7 +353,6 @@ wcwidth==0.2.13 webcolors==24.8.0 webencodings==0.5.1 websocket-client==0.59.0 -Werkzeug==2.2.3 widgetsnbextension==3.6.9 wirerope==0.4.7 wrapt==1.14.1 diff --git a/tfx/dependencies.py b/tfx/dependencies.py index 7666dd185a..ca8469aefc 100644 --- a/tfx/dependencies.py +++ b/tfx/dependencies.py @@ -58,9 +58,9 @@ def make_pipeline_sdk_required_install_packages(): "ml-metadata" + select_constraint( # LINT.IfChange - default=">=1.15.0,<1.16.0", + default=">=1.16.0,<1.17.0", # LINT.ThenChange(tfx/workspace.bzl) - nightly=">=1.16.0.dev", + nightly=">=1.17.0.dev", git_master="@git+https://github.com/google/ml-metadata@master", ), "packaging>=22", @@ -105,31 +105,31 @@ def make_required_install_packages(): # Pip might stuck in a TF 1.15 dependency although there is a working # dependency set with TF 2.x without the sync. # pylint: disable=line-too-long - "tensorflow" + select_constraint(">=2.15.0,<2.16"), + "tensorflow" + select_constraint(">=2.16.0,<2.17"), # pylint: enable=line-too-long "tensorflow-hub>=0.15.0,<0.16", "tensorflow-data-validation" + select_constraint( - default=">=1.15.1,<1.16.0", - nightly=">=1.16.0.dev", + default=">=1.16.1,<1.17.0", + nightly=">=1.16.1.dev", git_master=("@git+https://github.com/tensorflow/data-validation@master"), ), "tensorflow-model-analysis" + select_constraint( - default=">=0.46.0,<0.47.0", + default=">=0.47.0,<0.48.0", nightly=">=0.47.0.dev", git_master="@git+https://github.com/tensorflow/model-analysis@master", ), - "tensorflow-serving-api>=2.15,<2.16", + "tensorflow-serving-api>=2.16,<2.17", "tensorflow-transform" + select_constraint( - default=">=1.15.0,<1.16.0", + default=">=1.16.0,<1.17.0", nightly=">=1.16.0.dev", git_master="@git+https://github.com/tensorflow/transform@master", ), "tfx-bsl" + select_constraint( - default=">=1.15.1,<1.16.0", + default=">=1.16.1,<1.17.0", nightly=">=1.16.0.dev", git_master="@git+https://github.com/tensorflow/tfx-bsl@master", ), @@ -199,7 +199,7 @@ def make_extra_packages_tf_ranking(): "tensorflow-ranking>=0.5,<0.6", "struct2tensor" + select_constraint( - default=">=0.46.0,<0.47.0", + default=">=0.47.0,<0.48.0", nightly=">=0.47.0.dev", git_master="@git+https://github.com/google/struct2tensor@master", ), @@ -211,7 +211,7 @@ def make_extra_packages_tfdf(): # Required for tfx/examples/penguin/penguin_utils_tfdf_experimental.py return [ # NOTE: TFDF 1.0.1 is only compatible with TF 2.10.x. - "tensorflow-decision-forests>=1.0.1,<1.9", + "tensorflow-decision-forests>=1.8.1,<2", ] diff --git a/tfx/tools/docker/requirements.txt b/tfx/tools/docker/requirements.txt index 479f41021e..080c4a941f 100644 --- a/tfx/tools/docker/requirements.txt +++ b/tfx/tools/docker/requirements.txt @@ -158,6 +158,7 @@ jupyterlab_pygments==0.3.0 jupyterlab_server==2.27.3 jupyterlab_widgets==1.1.10 tf-keras==2.16.0 +keras==3.6.0 keras-tuner==1.4.7 kfp==2.5.0 kfp-pipeline-spec==0.2.2 diff --git a/tfx/version.py b/tfx/version.py index 3b49d5f8bf..01a6b18e01 100644 --- a/tfx/version.py +++ b/tfx/version.py @@ -14,4 +14,4 @@ """Contains the version string of TFX.""" # Note that setup.py uses this version. -__version__ = '1.16.0.dev' +__version__ = '1.17.0.dev' diff --git a/tfx/workspace.bzl b/tfx/workspace.bzl index 6a92fad069..19bb617e3d 100644 --- a/tfx/workspace.bzl +++ b/tfx/workspace.bzl @@ -79,7 +79,7 @@ def tfx_workspace(): name = "com_github_google_ml_metadata", repo = "google/ml-metadata", # LINT.IfChange - tag = "v1.15.0", + tag = "v1.16.0", # LINT.ThenChange(//tfx/dependencies.py) ) @@ -89,6 +89,6 @@ def tfx_workspace(): repo = "tensorflow/metadata", # LINT.IfChange # Keep in sync with TFDV version (TFDV requires TFMD). - tag = "v1.15.0", + tag = "v1.16.1", # LINT.ThenChange(//tfx/dependencies.py) )