From 25c6312595fca01089ffd6efdd114951e7201030 Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Thu, 18 Apr 2024 19:31:00 -0700 Subject: [PATCH 1/2] Build against TF2.16 --- .github/workflows/release.yml | 32 ++++++++++++++-------- CONTRIBUTING.md | 10 +++---- WORKSPACE | 6 ++-- tensorflow_addons/utils/resource_loader.py | 4 +-- tensorflow_addons/version.py | 4 +-- tools/build_dev_container.sh | 2 +- tools/docker/cpu_tests.Dockerfile | 2 +- tools/install_deps/tensorflow-cpu.txt | 2 +- tools/install_deps/tensorflow.txt | 2 +- tools/run_gpu_tests.sh | 2 +- 10 files changed, 37 insertions(+), 29 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 618486d232..a6de7d9eee 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,7 +19,7 @@ permissions: env: MIN_PY_VERSION: '3.9' - MAX_PY_VERSION: '3.11' + MAX_PY_VERSION: '3.12' jobs: test-with-bazel: @@ -46,22 +46,26 @@ jobs: os: ['macos-12', 'ubuntu-20.04'] # Removing windows builds due to broken upstream package https://github.com/tensorflow/tensorflow/issues/61830 # os: ['macos-12', 'windows-2019', 'ubuntu-20.04'] - py-version: ['3.9', '3.10', '3.11'] - tf-version: ['2.13.1', '2.14.0', '2.15.0'] + py-version: ['3.9', '3.10', '3.11', '3.12'] + tf-version: ['2.14.1', '2.15.1', '2.16.1'] cpu: ['x86'] include: - os: 'macos-12' cpu: 'arm64' - tf-version: '2.15.0' + tf-version: '2.16.1' py-version: '3.9' - os: 'macos-12' cpu: 'arm64' - tf-version: '2.15.0' + tf-version: '2.16.1' py-version: '3.10' - os: 'macos-12' cpu: 'arm64' - tf-version: '2.15.0' + tf-version: '2.16.1' py-version: '3.11' + - os: 'macos-12' + cpu: 'arm64' + tf-version: '2.16.1' + py-version: '3.12' fail-fast: false steps: - uses: actions/github-script@0.3.0 @@ -71,7 +75,7 @@ jobs: script: | const commit_details = await github.git.getCommit({owner: context.repo.owner, repo: context.repo.repo, commit_sha: context.sha}); return commit_details.data.author.date - - if: matrix.tf-version != '2.15.0' + - if: matrix.tf-version != '2.16.1' shell: bash run: echo "SKIP_CUSTOM_OP_TESTS=--skip-custom-ops" >> $GITHUB_ENV - if: github.event_name == 'push' @@ -107,22 +111,26 @@ jobs: os: ['macOS', 'Linux'] # Removing windows builds due to broken upstream package https://github.com/tensorflow/tensorflow/issues/61830 # os: ['macOS', 'Windows', 'Linux'] - py-version: ['3.9', '3.10', '3.11'] - tf-version: ['2.15.0'] + py-version: ['3.9', '3.10', '3.11', '3.12'] + tf-version: ['2.16.1'] cpu: ['x86'] include: - os: 'macOS' cpu: 'arm64' - tf-version: '2.15.0' + tf-version: '2.16.1' py-version: '3.9' - os: 'macOS' cpu: 'arm64' - tf-version: '2.15.0' + tf-version: '2.16.1' py-version: '3.10' - os: 'macOS' cpu: 'arm64' - tf-version: '2.15.0' + tf-version: '2.16.1' py-version: '3.11' + - os: 'macOS' + cpu: 'arm64' + tf-version: '2.16.1' + py-version: '3.12' fail-fast: false if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'release' steps: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5f7c746a9d..461fae026d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -173,8 +173,8 @@ conda activate my_dev_environement Just run from the root: ```bash -pip install tensorflow==2.15.0 -# you can use "pip install tensorflow-cpu==2.15.0" too if you're not testing on gpu. +pip install tensorflow==2.16.1 +# you can use "pip install tensorflow-cpu==2.16.1" too if you're not testing on gpu. pip install -e ./ ``` @@ -262,7 +262,7 @@ If you need a custom C++/Cuda op for your test, compile your ops with ```bash python configure.py -pip install tensorflow==2.15.0 -e ./ -r tools/install_deps/pytest.txt +pip install tensorflow==2.16.1 -e ./ -r tools/install_deps/pytest.txt bash tools/install_so_files.sh # Linux/macos/WSL2 sh tools/install_so_files.sh # PowerShell ``` @@ -290,7 +290,7 @@ docker run --gpus all --rm -it -v ${PWD}:/addons -w /addons gcr.io/tensorflow-te Configure: ```bash -python3 -m pip install tensorflow==2.15.0 +python3 -m pip install tensorflow==2.16.1 python3 ./configure.py # Links project with TensorFlow dependency ``` @@ -329,7 +329,7 @@ quickly, as Bazel has great support for caching and distributed testing. To test with Bazel: ```bash -python3 -m pip install tensorflow==2.15.0 +python3 -m pip install tensorflow==2.16.1 python3 configure.py python3 -m pip install -r tools/install_deps/pytest.txt bazel test -c opt -k \ diff --git a/WORKSPACE b/WORKSPACE index fb378c5b98..0c8a4a6f97 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -11,10 +11,10 @@ http_archive( patches = [ "//build_deps/tf_dependency:tf.patch", ], - sha256 = "9cec5acb0ecf2d47b16891f8bc5bc6fbfdffe1700bdadc0d9ebe27ea34f0c220", - strip_prefix = "tensorflow-2.15.0", + sha256 = "c729e56efc945c6df08efe5c9f5b8b89329c7c91b8f40ad2bb3e13900bd4876d", + strip_prefix = "tensorflow-2.16.1", urls = [ - "https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.15.0.tar.gz", + "https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.16.1.tar.gz", ], ) diff --git a/tensorflow_addons/utils/resource_loader.py b/tensorflow_addons/utils/resource_loader.py index 862ce7d824..7a67beecdc 100644 --- a/tensorflow_addons/utils/resource_loader.py +++ b/tensorflow_addons/utils/resource_loader.py @@ -20,8 +20,8 @@ import tensorflow as tf -INCLUSIVE_MIN_TF_VERSION_FOR_ABI_COMPATIBILITY = "2.15.0" -EXCLUSIVE_MAX_TF_VERSION_FOR_ABI_COMPATIBILITY = "2.16.0" +INCLUSIVE_MIN_TF_VERSION_FOR_ABI_COMPATIBILITY = "2.16.0" +EXCLUSIVE_MAX_TF_VERSION_FOR_ABI_COMPATIBILITY = "2.17.0" abi_warning_already_raised = False SKIP_CUSTOM_OPS = False diff --git a/tensorflow_addons/version.py b/tensorflow_addons/version.py index 7825d9d72b..07346a0adc 100644 --- a/tensorflow_addons/version.py +++ b/tensorflow_addons/version.py @@ -15,8 +15,8 @@ """Define TensorFlow Addons version information.""" # Required TensorFlow version [min, max) -INCLUSIVE_MIN_TF_VERSION = "2.13.0" -EXCLUSIVE_MAX_TF_VERSION = "2.16.0" +INCLUSIVE_MIN_TF_VERSION = "2.14.0" +EXCLUSIVE_MAX_TF_VERSION = "2.17.0" # We follow Semantic Versioning (https://semver.org/) _MAJOR_VERSION = "0" diff --git a/tools/build_dev_container.sh b/tools/build_dev_container.sh index 000a121fbe..d8157456db 100755 --- a/tools/build_dev_container.sh +++ b/tools/build_dev_container.sh @@ -4,7 +4,7 @@ set -x -e docker build \ -f tools/docker/dev_container.Dockerfile \ - --build-arg TF_VERSION=2.15.0 \ + --build-arg TF_VERSION=2.16.1 \ --build-arg TF_PACKAGE=tensorflow \ --build-arg PY_VERSION=$PY_VERSION \ --no-cache \ diff --git a/tools/docker/cpu_tests.Dockerfile b/tools/docker/cpu_tests.Dockerfile index 788e91d492..df77268810 100644 --- a/tools/docker/cpu_tests.Dockerfile +++ b/tools/docker/cpu_tests.Dockerfile @@ -1,7 +1,7 @@ #syntax=docker/dockerfile:1.1.5-experimental FROM python:3.9 as build_wheel -ARG TF_VERSION=2.15.0 +ARG TF_VERSION=2.16.1 RUN pip install --default-timeout=1000 tensorflow-cpu==$TF_VERSION RUN apt-get update && apt-get install -y sudo rsync diff --git a/tools/install_deps/tensorflow-cpu.txt b/tools/install_deps/tensorflow-cpu.txt index ec368a0140..53968756bd 100644 --- a/tools/install_deps/tensorflow-cpu.txt +++ b/tools/install_deps/tensorflow-cpu.txt @@ -1 +1 @@ -tensorflow-cpu~=2.15.0 +tensorflow-cpu~=2.16.1 diff --git a/tools/install_deps/tensorflow.txt b/tools/install_deps/tensorflow.txt index ed722745f5..2917bf6b1d 100644 --- a/tools/install_deps/tensorflow.txt +++ b/tools/install_deps/tensorflow.txt @@ -1 +1 @@ -tensorflow~=2.15.0 \ No newline at end of file +tensorflow~=2.16.1 \ No newline at end of file diff --git a/tools/run_gpu_tests.sh b/tools/run_gpu_tests.sh index 214afe0e3f..8f984708fb 100644 --- a/tools/run_gpu_tests.sh +++ b/tools/run_gpu_tests.sh @@ -6,7 +6,7 @@ export DOCKER_BUILDKIT=1 docker build \ -f tools/docker/build_wheel.Dockerfile \ --target tfa_gpu_tests \ - --build-arg TF_VERSION=2.15.0 \ + --build-arg TF_VERSION=2.16.1 \ --build-arg PY_VERSION=3.9 \ -t tfa_gpu_tests ./ docker run --rm -t --gpus=all --shm-size=512m tfa_gpu_tests From b7c528da7d6b60770c572fe4d11a1d7ed28c7438 Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Mon, 27 May 2024 15:29:47 -0700 Subject: [PATCH 2/2] Update patch --- build_deps/tf_dependency/tf.patch | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/build_deps/tf_dependency/tf.patch b/build_deps/tf_dependency/tf.patch index 4d732d447d..9b3df171e7 100644 --- a/build_deps/tf_dependency/tf.patch +++ b/build_deps/tf_dependency/tf.patch @@ -1,14 +1,14 @@ diff --git tensorflow/tools/toolchains/cpus/aarch64/aarch64_compiler_configure.bzl tensorflow/tools/toolchains/cpus/aarch64/aarch64_compiler_configure.bzl -index a2bdd6a7eed..ec25c23d8d4 100644 +index 9261a652f9c..0557e345ab1 100644 --- tensorflow/tools/toolchains/cpus/aarch64/aarch64_compiler_configure.bzl +++ tensorflow/tools/toolchains/cpus/aarch64/aarch64_compiler_configure.bzl @@ -2,7 +2,7 @@ - + load("//tensorflow/tools/toolchains:cpus/aarch64/aarch64.bzl", "remote_aarch64_configure") load("//third_party/remote_config:remote_platform_configure.bzl", "remote_platform_configure") -load("//third_party/py:python_configure.bzl", "remote_python_configure") +load("//third_party/py/non_hermetic:python_configure.bzl", "remote_python_configure") - + def ml2014_tf_aarch64_configs(name_container_map, env): for name, container in name_container_map.items(): diff --git tensorflow/tools/toolchains/remote_config/rbe_config.bzl tensorflow/tools/toolchains/remote_config/rbe_config.bzl @@ -17,36 +17,36 @@ index 9f71a414bf7..57f70752323 100644 +++ tensorflow/tools/toolchains/remote_config/rbe_config.bzl @@ -1,6 +1,6 @@ """Macro that creates external repositories for remote config.""" - + -load("//third_party/py:python_configure.bzl", "local_python_configure", "remote_python_configure") +load("//third_party/py/non_hermetic:python_configure.bzl", "local_python_configure", "remote_python_configure") load("//third_party/gpus:cuda_configure.bzl", "remote_cuda_configure") load("//third_party/nccl:nccl_configure.bzl", "remote_nccl_configure") load("//third_party/gpus:rocm_configure.bzl", "remote_rocm_configure") diff --git tensorflow/workspace2.bzl tensorflow/workspace2.bzl -index 7e9faa558a4..5b18cb0969a 100644 +index 9e15c75c183..facc1de3d73 100644 --- tensorflow/workspace2.bzl +++ tensorflow/workspace2.bzl -@@ -8,7 +8,7 @@ load("//third_party/gpus:rocm_configure.bzl", "rocm_configure") - load("//third_party/tensorrt:tensorrt_configure.bzl", "tensorrt_configure") +@@ -37,7 +37,7 @@ load("//third_party/nasm:workspace.bzl", nasm = "repo") load("//third_party/nccl:nccl_configure.bzl", "nccl_configure") - load("//third_party/git:git_configure.bzl", "git_configure") + load("//third_party/opencl_headers:workspace.bzl", opencl_headers = "repo") + load("//third_party/pasta:workspace.bzl", pasta = "repo") -load("//third_party/py:python_configure.bzl", "python_configure") +load("//third_party/py/non_hermetic:python_configure.bzl", "python_configure") - load("//third_party/systemlibs:syslibs_configure.bzl", "syslibs_configure") - load("//tensorflow/tools/toolchains:cpus/aarch64/aarch64_compiler_configure.bzl", "aarch64_compiler_configure") - load("//tensorflow/tools/toolchains:cpus/arm/arm_compiler_configure.bzl", "arm_compiler_configure") + load("//third_party/py/ml_dtypes:workspace.bzl", ml_dtypes = "repo") + load("//third_party/pybind11_abseil:workspace.bzl", pybind11_abseil = "repo") + load("//third_party/pybind11_bazel:workspace.bzl", pybind11_bazel = "repo") diff --git third_party/py/non_hermetic/python_configure.bzl third_party/py/non_hermetic/python_configure.bzl -index 300cbfb6c71..09d98505dd9 100644 +index 89732c3e33d..4ac1c8f5c04 100644 --- third_party/py/non_hermetic/python_configure.bzl +++ third_party/py/non_hermetic/python_configure.bzl -@@ -206,7 +206,7 @@ def _create_local_python_repository(repository_ctx): +@@ -203,7 +203,7 @@ def _create_local_python_repository(repository_ctx): # Resolve all labels before doing any real work. Resolving causes the # function to be restarted with all previous state being lost. This # can easily lead to a O(n^2) runtime in the number of labels. - build_tpl = repository_ctx.path(Label("//third_party/py:BUILD.tpl")) + build_tpl = repository_ctx.path(Label("//third_party/py/non_hermetic:BUILD.tpl")) - + python_bin = get_python_bin(repository_ctx) _check_python_bin(repository_ctx, python_bin) diff --git third_party/py/numpy/BUILD third_party/py/numpy/BUILD