From 1222eea865e53aed902f5502d0a75dbb2fa6952c Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Mon, 25 May 2020 21:36:48 -0400 Subject: [PATCH 01/10] * Add dev container build --- CONTRIBUTING.md | 21 ++++++--------------- tools/build_dev_container.sh | 17 +++++++++++++++++ tools/docker/build_wheel.Dockerfile | 9 +++++++-- tools/docker/dev_container.Dockerfile | 14 ++++++++++++++ tools/update_release_version.sh | 3 ++- 5 files changed, 46 insertions(+), 18 deletions(-) create mode 100644 tools/build_dev_container.sh create mode 100644 tools/docker/dev_container.Dockerfile diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e3d04ddb67..e487298d89 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -267,28 +267,22 @@ to install any additional tools. CPU Docker: ``` -docker run --rm -it -v ${PWD}:/addons -w /addons tensorflow/tensorflow:2.1.0-custom-op-ubuntu16 +docker run --rm -it -v ${PWD}:/addons -w /addons tfaddons/dev_container:latest ``` GPU Docker: ``` -docker run --runtime=nvidia --rm -it -v ${PWD}:/addons -w /addons tensorflow/tensorflow:2.1.0-custom-op-gpu-ubuntu16 -``` - -Configure: -``` -python3 -m pip install tensorflow==2.2.0 -python3 ./configure.py # Links project with TensorFlow dependency +docker run --runtime=nvidia --rm -it -v ${PWD}:/addons -w /addons tfaddons/dev_container:latest ``` Install in editable mode ``` -python3 -m pip install -e . -python3 -m pip install -r tools/install_deps/pytest.txt +python -m pip install -e . ``` Compile the custom ops ``` +export TF_NEED_CUDA=1 # If GPU is to be used bash tools/install_so_files.sh ``` @@ -312,16 +306,13 @@ for Python testing. Internally, Google can use Bazel to test many commits quickly, as Bazel has great support for caching and distributed testing. -To test with Bazel: +To test with Bazel within our docker container: ``` -python3 -m pip install tensorflow==2.2.0 -python3 configure.py -python3 -m pip install -r tools/install_deps/pytest.txt +python configure.py bazel test -c opt -k \ --test_timeout 300,450,1200,3600 \ --test_output=all \ ---run_under=$(readlink -f tools/testing/parallel_gpu_execute.sh) \ //tensorflow_addons/... ``` diff --git a/tools/build_dev_container.sh b/tools/build_dev_container.sh new file mode 100644 index 0000000000..8c1e3a4299 --- /dev/null +++ b/tools/build_dev_container.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +set -x -e + +DOCKER_BUILDKIT=1 docker build \ + --cache-from tfaddons/dev_container:latest \ + -f tools/docker/build_wheel.Dockerfile \ + --target base_install \ + --build-arg TF_VERSION=2.2.0 \ + --build-arg PY_VERSION=3.6 \ + -t addons_base:latest ./ + +DOCKER_BUILDKIT=1 docker build \ + --cache-from tfaddons/dev_container:latest \ + -f tools/docker/dev_container.Dockerfile \ + --target build_dev_container \ + -t tfaddons/dev_container:latest ./ diff --git a/tools/docker/build_wheel.Dockerfile b/tools/docker/build_wheel.Dockerfile index c7c48ad822..f457292bf4 100644 --- a/tools/docker/build_wheel.Dockerfile +++ b/tools/docker/build_wheel.Dockerfile @@ -22,6 +22,7 @@ RUN mv /usr/bin/lsb_release2 /usr/bin/lsb_release ARG PY_VERSION RUN ln -sf $(which python$PY_VERSION) /usr/bin/python +RUN ln -sf $(which python$PY_VERSION) /usr/bin/python3 RUN python -m pip install --upgrade pip==19.0 auditwheel==2.0.0 @@ -33,16 +34,20 @@ RUN python -m pip install -r /install_deps/pytest.txt COPY requirements.txt . RUN python -m pip install -r requirements.txt +RUN rm requirements.txt + +# ------------------------------------------------------------------- +FROM base_install as addons_container COPY ./ /addons WORKDIR /addons # ------------------------------------------------------------------- -FROM base_install as tfa_gpu_tests +FROM addons_container as tfa_gpu_tests CMD ["bash", "tools/testing/build_and_run_tests.sh"] # ------------------------------------------------------------------- -FROM base_install as make_wheel +FROM addons_container as make_wheel ARG NIGHTLY_FLAG ARG NIGHTLY_TIME RUN --mount=type=cache,id=cache_bazel,target=/root/.cache/bazel \ diff --git a/tools/docker/dev_container.Dockerfile b/tools/docker/dev_container.Dockerfile new file mode 100644 index 0000000000..f54bcf541b --- /dev/null +++ b/tools/docker/dev_container.Dockerfile @@ -0,0 +1,14 @@ +#syntax=docker/dockerfile:1.1.5-experimental +FROM addons_base:latest as build_dev_container + +COPY tools/install_deps /install_deps +RUN pip install -r /install_deps/black.txt -r /install_deps/flake8.txt +RUN bash /install_deps/buildifier.sh +RUN bash /install_deps/clang-format.sh + +ENV ADDONS_DEV_CONTAINER="1" + +# Clean up +RUN apt-get autoremove -y \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* \ No newline at end of file diff --git a/tools/update_release_version.sh b/tools/update_release_version.sh index 8fe4df61e6..b88385fa90 100755 --- a/tools/update_release_version.sh +++ b/tools/update_release_version.sh @@ -23,4 +23,5 @@ sed -ri "s/(TF_VERSION=|tensorflow(-cpu)*(~|=)=|tf-version: \[')[0-9]+[a-zA-Z0-9 tools/docker/cpu_tests.Dockerfile \ tools/install_deps/tensorflow-cpu.txt \ tools/install_deps/tensorflow.txt \ - tools/run_gpu_tests.sh + tools/run_gpu_tests.sh \ + tools/build_dev_container.sh From e8489e3db96d9451fb7e49a3842eac0f35efc517 Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Mon, 25 May 2020 21:39:28 -0400 Subject: [PATCH 02/10] * Add docker upload on commit push --- .github/workflows/release.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e4be2404e8..604167a5c3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,6 +87,7 @@ jobs: py-version: ['3.5', '3.6', '3.7', '3.8'] tf-version: ['2.2.0'] fail-fast: false + if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'release' steps: - uses: actions/download-artifact@v1 with: @@ -97,7 +98,17 @@ jobs: ls -la dist/ sha256sum dist/*.whl - uses: pypa/gh-action-pypi-publish@v1.1.0 - if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'release' with: user: __token__ password: ${{ secrets.pypi_token }} + upload-dev-container: + name: Upload dev container to DockerHub + needs: [release-wheel, test-with-bazel] + runs-on: ubuntu-18.04 + if: (github.event_name == 'push' && github.ref == 'refs/heads/master') + steps: + - run: | + set -e -x + docker login --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PW }} + bash bash tools/build_dev_container.sh + docker push tfaddons/dev_container:latest From 605836154982dbf4776019c25280a0fe8e7f1411 Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Mon, 25 May 2020 21:40:09 -0400 Subject: [PATCH 03/10] * Modify pre-commit to work in dev container --- tools/pre-commit.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tools/pre-commit.sh b/tools/pre-commit.sh index 5a7ff91b9d..d7e76f94ee 100755 --- a/tools/pre-commit.sh +++ b/tools/pre-commit.sh @@ -1,14 +1,15 @@ #!/usr/bin/env bash # usage: bash tools/pre-commit.sh -# by default uses docker buildkit. -# to disable it: -# DOCKER_BUILDKIT=0 bash tools/pre-commit.sh set -e -export DOCKER_BUILDKIT=1 -docker build -t tf_addons_formatting -f tools/docker/pre-commit.Dockerfile . +if [ -z "${ADDONS_DEV_CONTAINER}" ]; then + export DOCKER_BUILDKIT=1 + docker build -t tf_addons_formatting -f tools/docker/pre-commit.Dockerfile . -export MSYS_NO_PATHCONV=1 -docker run --rm -t -v "$(pwd -P):/addons" tf_addons_formatting + export MSYS_NO_PATHCONV=1 + docker run --rm -t -v "$(pwd -P):/addons" tf_addons_formatting +else + python tools/format.py +fi From f77e5d85a2f102ebdde759737266e3d76a1bf8cf Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Mon, 25 May 2020 21:53:05 -0400 Subject: [PATCH 04/10] * Move to workflows since we need to run a command to clear space --- {tools => .github/workflows}/build_dev_container.sh | 5 +++++ .github/workflows/release.yml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) rename {tools => .github/workflows}/build_dev_container.sh (87%) diff --git a/tools/build_dev_container.sh b/.github/workflows/build_dev_container.sh similarity index 87% rename from tools/build_dev_container.sh rename to .github/workflows/build_dev_container.sh index 8c1e3a4299..89c0a077f4 100644 --- a/tools/build_dev_container.sh +++ b/.github/workflows/build_dev_container.sh @@ -2,6 +2,11 @@ set -x -e +df -h +docker info +# to get more disk space +rm -rf /usr/share/dotnet & + DOCKER_BUILDKIT=1 docker build \ --cache-from tfaddons/dev_container:latest \ -f tools/docker/build_wheel.Dockerfile \ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 604167a5c3..d18e132d5a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -110,5 +110,5 @@ jobs: - run: | set -e -x docker login --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PW }} - bash bash tools/build_dev_container.sh + bash bash .github/workflows/build_dev_container.sh docker push tfaddons/dev_container:latest From f85e2af64dd3674f4e802133672c02ea32986216 Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Wed, 27 May 2020 20:44:54 -0400 Subject: [PATCH 05/10] * Update dockerfile dependencies --- tools/docker/dev_container.Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/docker/dev_container.Dockerfile b/tools/docker/dev_container.Dockerfile index f54bcf541b..d8e2bd24f4 100644 --- a/tools/docker/dev_container.Dockerfile +++ b/tools/docker/dev_container.Dockerfile @@ -2,7 +2,11 @@ FROM addons_base:latest as build_dev_container COPY tools/install_deps /install_deps -RUN pip install -r /install_deps/black.txt -r /install_deps/flake8.txt +RUN pip install -r /install_deps/black.txt \ + -r /install_deps/flake8.txt \ + -r /install_deps/pytest.txt \ + -r /install_deps/typedapi.txt + RUN bash /install_deps/buildifier.sh RUN bash /install_deps/clang-format.sh From 8b0f05e114f9e9281ff287e7232a0225df9e8c39 Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Wed, 27 May 2020 20:45:40 -0400 Subject: [PATCH 06/10] * Modularize build script --- .github/workflows/github_build_dev_container.sh | 10 ++++++++++ .github/workflows/release.yml | 2 +- {.github/workflows => tools}/build_dev_container.sh | 5 ----- 3 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/github_build_dev_container.sh rename {.github/workflows => tools}/build_dev_container.sh (87%) mode change 100644 => 100755 diff --git a/.github/workflows/github_build_dev_container.sh b/.github/workflows/github_build_dev_container.sh new file mode 100644 index 0000000000..2d28e0f559 --- /dev/null +++ b/.github/workflows/github_build_dev_container.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +set -x -e + +df -h +docker info +# to get more disk space +rm -rf /usr/share/dotnet & + +tools/build_dev_container.sh diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d18e132d5a..2d361a7c14 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -110,5 +110,5 @@ jobs: - run: | set -e -x docker login --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PW }} - bash bash .github/workflows/build_dev_container.sh + bash bash .github/workflows/github_build_dev_container.sh docker push tfaddons/dev_container:latest diff --git a/.github/workflows/build_dev_container.sh b/tools/build_dev_container.sh old mode 100644 new mode 100755 similarity index 87% rename from .github/workflows/build_dev_container.sh rename to tools/build_dev_container.sh index 89c0a077f4..8c1e3a4299 --- a/.github/workflows/build_dev_container.sh +++ b/tools/build_dev_container.sh @@ -2,11 +2,6 @@ set -x -e -df -h -docker info -# to get more disk space -rm -rf /usr/share/dotnet & - DOCKER_BUILDKIT=1 docker build \ --cache-from tfaddons/dev_container:latest \ -f tools/docker/build_wheel.Dockerfile \ From e456790932474cf717c1b5622b1b7d40cdc4684d Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Sun, 7 Jun 2020 22:27:19 -0400 Subject: [PATCH 07/10] Update to CPU only dev container for now --- .github/workflows/release.yml | 2 +- CONTRIBUTING.md | 11 +++++++---- tools/build_dev_container.sh | 15 ++++----------- tools/docker/build_wheel.Dockerfile | 10 ++-------- tools/docker/dev_container.Dockerfile | 11 +++++++++-- 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2d361a7c14..e54134a789 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -111,4 +111,4 @@ jobs: set -e -x docker login --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PW }} bash bash .github/workflows/github_build_dev_container.sh - docker push tfaddons/dev_container:latest + docker push tfaddons/dev_container:latest-cpu \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e487298d89..ee6e43d2fd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -267,16 +267,17 @@ to install any additional tools. CPU Docker: ``` -docker run --rm -it -v ${PWD}:/addons -w /addons tfaddons/dev_container:latest +docker run --rm -it -v ${PWD}:/addons -w /addons tfaddons/dev_container:latest-cpu ``` GPU Docker: ``` -docker run --runtime=nvidia --rm -it -v ${PWD}:/addons -w /addons tfaddons/dev_container:latest +docker run --runtime=nvidia --rm -it -v ${PWD}:/addons -w /addons tensorflow/tensorflow:2.1.0-custom-op-gpu-ubuntu16 ``` Install in editable mode ``` +python -m pip install -r tools/install_deps/pytest.txt python -m pip install -e . ``` @@ -306,10 +307,12 @@ for Python testing. Internally, Google can use Bazel to test many commits quickly, as Bazel has great support for caching and distributed testing. -To test with Bazel within our docker container: +To test with Bazel: ``` -python configure.py +python3 -m pip install tensorflow==2.2.0 +python3 configure.py +python3 -m pip install -r tools/install_deps/pytest.txt bazel test -c opt -k \ --test_timeout 300,450,1200,3600 \ --test_output=all \ diff --git a/tools/build_dev_container.sh b/tools/build_dev_container.sh index 8c1e3a4299..896b4d9dff 100755 --- a/tools/build_dev_container.sh +++ b/tools/build_dev_container.sh @@ -3,15 +3,8 @@ set -x -e DOCKER_BUILDKIT=1 docker build \ - --cache-from tfaddons/dev_container:latest \ - -f tools/docker/build_wheel.Dockerfile \ - --target base_install \ - --build-arg TF_VERSION=2.2.0 \ - --build-arg PY_VERSION=3.6 \ - -t addons_base:latest ./ - -DOCKER_BUILDKIT=1 docker build \ - --cache-from tfaddons/dev_container:latest \ -f tools/docker/dev_container.Dockerfile \ - --target build_dev_container \ - -t tfaddons/dev_container:latest ./ + --build-arg TF_VERSION=2.2.0 \ + --build-arg TF_PACKAGE=tensorflow-cpu \ + --target dev_container_cpu \ + -t tfaddons/dev_container:latest-cpu ./ diff --git a/tools/docker/build_wheel.Dockerfile b/tools/docker/build_wheel.Dockerfile index f457292bf4..7252965690 100644 --- a/tools/docker/build_wheel.Dockerfile +++ b/tools/docker/build_wheel.Dockerfile @@ -22,7 +22,6 @@ RUN mv /usr/bin/lsb_release2 /usr/bin/lsb_release ARG PY_VERSION RUN ln -sf $(which python$PY_VERSION) /usr/bin/python -RUN ln -sf $(which python$PY_VERSION) /usr/bin/python3 RUN python -m pip install --upgrade pip==19.0 auditwheel==2.0.0 @@ -34,20 +33,15 @@ RUN python -m pip install -r /install_deps/pytest.txt COPY requirements.txt . RUN python -m pip install -r requirements.txt -RUN rm requirements.txt - -# ------------------------------------------------------------------- -FROM base_install as addons_container COPY ./ /addons WORKDIR /addons - # ------------------------------------------------------------------- -FROM addons_container as tfa_gpu_tests +FROM base_install as tfa_gpu_tests CMD ["bash", "tools/testing/build_and_run_tests.sh"] # ------------------------------------------------------------------- -FROM addons_container as make_wheel +FROM base_install as make_wheel ARG NIGHTLY_FLAG ARG NIGHTLY_TIME RUN --mount=type=cache,id=cache_bazel,target=/root/.cache/bazel \ diff --git a/tools/docker/dev_container.Dockerfile b/tools/docker/dev_container.Dockerfile index d8e2bd24f4..9a78c6ea7c 100644 --- a/tools/docker/dev_container.Dockerfile +++ b/tools/docker/dev_container.Dockerfile @@ -1,5 +1,12 @@ #syntax=docker/dockerfile:1.1.5-experimental -FROM addons_base:latest as build_dev_container +FROM tensorflow/tensorflow:2.1.0-custom-op-ubuntu16 as dev_container_cpu +ARG TF_PACKAGE +ARG TF_VERSION + +# Temporary until custom-op container is updated +RUN ln -sf /usr/bin/python3 /usr/bin/python +RUN ln -sf /usr/local/bin/pip3 /usr/local/bin/pip +RUN pip install --default-timeout=1000 $TF_PACKAGE==$TF_VERSION COPY tools/install_deps /install_deps RUN pip install -r /install_deps/black.txt \ @@ -15,4 +22,4 @@ ENV ADDONS_DEV_CONTAINER="1" # Clean up RUN apt-get autoremove -y \ && apt-get clean -y \ - && rm -rf /var/lib/apt/lists/* \ No newline at end of file + && rm -rf /var/lib/apt/lists/* From 0b53e58cd35415b4dc7b44cc4eec17312977ab45 Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Sun, 7 Jun 2020 22:28:06 -0400 Subject: [PATCH 08/10] * Symlink clang-format --- tools/install_deps/clang-format.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/install_deps/clang-format.sh b/tools/install_deps/clang-format.sh index 851dea9aa0..ee72fb0b31 100644 --- a/tools/install_deps/clang-format.sh +++ b/tools/install_deps/clang-format.sh @@ -16,4 +16,5 @@ wget -O /usr/local/bin/clang-format-9 https://github.com/DoozyX/clang-format-lint-action/raw/master/clang-format/clang-format9 -chmod +x /usr/local/bin/clang-format-9 \ No newline at end of file +chmod +x /usr/local/bin/clang-format-9 +ln -s /usr/local/bin/clang-format-9 /usr/local/bin/clang-format \ No newline at end of file From f2f782f3612fabff9993ef30e56e1001df412abb Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Sun, 7 Jun 2020 22:31:17 -0400 Subject: [PATCH 09/10] * Minimize diff --- CONTRIBUTING.md | 10 ++++++++-- tools/docker/build_wheel.Dockerfile | 1 + tools/install_deps/clang-format.sh | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ee6e43d2fd..4dc61394e5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -275,10 +275,16 @@ GPU Docker: docker run --runtime=nvidia --rm -it -v ${PWD}:/addons -w /addons tensorflow/tensorflow:2.1.0-custom-op-gpu-ubuntu16 ``` +Configure: +``` +python3 -m pip install tensorflow==2.2.0 +python3 ./configure.py # Links project with TensorFlow dependency +``` + Install in editable mode ``` -python -m pip install -r tools/install_deps/pytest.txt -python -m pip install -e . +python3 -m pip install -e . +python3 -m pip install -r tools/install_deps/pytest.txt ``` Compile the custom ops diff --git a/tools/docker/build_wheel.Dockerfile b/tools/docker/build_wheel.Dockerfile index 7252965690..c7c48ad822 100644 --- a/tools/docker/build_wheel.Dockerfile +++ b/tools/docker/build_wheel.Dockerfile @@ -36,6 +36,7 @@ RUN python -m pip install -r requirements.txt COPY ./ /addons WORKDIR /addons + # ------------------------------------------------------------------- FROM base_install as tfa_gpu_tests CMD ["bash", "tools/testing/build_and_run_tests.sh"] diff --git a/tools/install_deps/clang-format.sh b/tools/install_deps/clang-format.sh index ee72fb0b31..16f93dcf0d 100644 --- a/tools/install_deps/clang-format.sh +++ b/tools/install_deps/clang-format.sh @@ -17,4 +17,4 @@ wget -O /usr/local/bin/clang-format-9 https://github.com/DoozyX/clang-format-lint-action/raw/master/clang-format/clang-format9 chmod +x /usr/local/bin/clang-format-9 -ln -s /usr/local/bin/clang-format-9 /usr/local/bin/clang-format \ No newline at end of file +ln -s /usr/local/bin/clang-format-9 /usr/local/bin/clang-format From 4fd6fb38c56bf2b3534114959205fc4a49d441b3 Mon Sep 17 00:00:00 2001 From: Sean Morgan Date: Mon, 8 Jun 2020 14:42:12 -0400 Subject: [PATCH 10/10] * Install requirements --- tools/docker/dev_container.Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/docker/dev_container.Dockerfile b/tools/docker/dev_container.Dockerfile index 9a78c6ea7c..07a0d66ed7 100644 --- a/tools/docker/dev_container.Dockerfile +++ b/tools/docker/dev_container.Dockerfile @@ -9,10 +9,12 @@ RUN ln -sf /usr/local/bin/pip3 /usr/local/bin/pip RUN pip install --default-timeout=1000 $TF_PACKAGE==$TF_VERSION COPY tools/install_deps /install_deps +COPY requirements.txt /tmp/requirements.txt RUN pip install -r /install_deps/black.txt \ -r /install_deps/flake8.txt \ -r /install_deps/pytest.txt \ - -r /install_deps/typedapi.txt + -r /install_deps/typedapi.txt \ + -r /tmp/requirements.txt RUN bash /install_deps/buildifier.sh RUN bash /install_deps/clang-format.sh