Skip to content

Commit 32927f3

Browse files
Test fixing tensorflow-text nightly builds.
PiperOrigin-RevId: 829016663
1 parent f0c7929 commit 32927f3

File tree

12 files changed

+168
-90
lines changed

12 files changed

+168
-90
lines changed

WORKSPACE

Lines changed: 59 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,34 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
44

55
http_archive(
66
name = "icu",
7-
strip_prefix = "icu-release-64-2",
7+
build_file = "//third_party/icu:BUILD.bzl",
8+
patch_args = ["-p1"],
9+
patches = ["//third_party/icu:udata.patch"],
810
sha256 = "dfc62618aa4bd3ca14a3df548cd65fe393155edd213e49c39f3a30ccd618fc27",
11+
strip_prefix = "icu-release-64-2",
912
urls = [
1013
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/unicode-org/icu/archive/release-64-2.zip",
1114
"https://github.com/unicode-org/icu/archive/release-64-2.zip",
1215
],
13-
build_file = "//third_party/icu:BUILD.bzl",
14-
patches = ["//third_party/icu:udata.patch"],
15-
patch_args = ["-p1"],
1616
)
1717

1818
http_archive(
1919
name = "com_google_sentencepiece",
20-
strip_prefix = "sentencepiece-0.1.96",
20+
build_file = "//third_party/sentencepiece:BUILD",
21+
patch_args = ["-p1"],
22+
patches = ["//third_party/sentencepiece:sp.patch"],
2123
sha256 = "8409b0126ebd62b256c685d5757150cf7fcb2b92a2f2b98efb3f38fc36719754",
24+
strip_prefix = "sentencepiece-0.1.96",
2225
urls = [
23-
"https://github.com/google/sentencepiece/archive/refs/tags/v0.1.96.zip"
26+
"https://github.com/google/sentencepiece/archive/refs/tags/v0.1.96.zip",
2427
],
25-
build_file = "//third_party/sentencepiece:BUILD",
26-
patches = ["//third_party/sentencepiece:sp.patch"],
27-
patch_args = ["-p1"],
2828
)
2929

3030
http_archive(
3131
name = "cppitertools",
32-
urls = ["https://github.com/ryanhaining/cppitertools/archive/refs/tags/v2.0.zip"],
3332
sha256 = "e56741b108d6baced98c4ccd83fd0d5a545937f2845978799c28d0312c0dee3d",
3433
strip_prefix = "cppitertools-2.0",
34+
urls = ["https://github.com/ryanhaining/cppitertools/archive/refs/tags/v2.0.zip"],
3535
)
3636

3737
http_archive(
@@ -56,10 +56,10 @@ http_archive(
5656

5757
http_archive(
5858
name = "org_tensorflow",
59-
strip_prefix = "tensorflow-40998f44c0c500ce0f6e3b1658dfbc54f838a82a",
60-
sha256 = "5a5bc4599964c71277dcac0d687435291e5810d2ac2f6283cc96736febf73aaf",
59+
sha256 = "c75a6fde64ba60d435f795a1a63f5caec0db8b352f544e222b8f51a1f6fec63e",
60+
strip_prefix = "tensorflow-735467e89ccfd7ace190363412bb5698164628b5",
6161
urls = [
62-
"https://github.com/tensorflow/tensorflow/archive/40998f44c0c500ce0f6e3b1658dfbc54f838a82a.zip"
62+
"https://github.com/tensorflow/tensorflow/archive/735467e89ccfd7ace190363412bb5698164628b5.zip",
6363
],
6464
)
6565

@@ -74,13 +74,13 @@ http_archive(
7474

7575
http_archive(
7676
name = "pybind11",
77+
build_file = "//third_party/pybind11:BUILD.bzl",
78+
sha256 = "efc901aa0aab439a3fea6efeaf930b5a349fb06394bf845c64ce15a9cf8f0240",
79+
strip_prefix = "pybind11-2.13.4",
7780
urls = [
7881
"https://storage.googleapis.com/mirror.tensorflow.org/github.com/pybind/pybind11/archive/v2.13.4.tar.gz",
7982
"https://github.com/pybind/pybind11/archive/v2.13.4.tar.gz",
8083
],
81-
sha256 = "efc901aa0aab439a3fea6efeaf930b5a349fb06394bf845c64ce15a9cf8f0240",
82-
strip_prefix = "pybind11-2.13.4",
83-
build_file = "//third_party/pybind11:BUILD.bzl",
8484
)
8585

8686
http_archive(
@@ -95,31 +95,35 @@ load("@org_tensorflow//third_party/py:python_init_rules.bzl", "python_init_rules
9595

9696
python_init_rules()
9797

98-
load("//tensorflow_text:tftext.bzl", "py_deps_profile")
98+
load("//tensorflow_text:py_deps_profile.bzl", "py_deps_profile")
9999

100100
py_deps_profile(
101101
name = "release_or_nightly",
102-
requirements_in = "//oss_scripts/pip_package:requirements.in",
103-
pip_repo_name = "pypi",
104102
deps_map = {
105-
"tensorflow": ["tf-nightly", "tf_header_lib", "libtensorflow_framework"],
106-
"tf-keras": ["tf-keras-nightly"]
103+
"tensorflow": [
104+
"tf-nightly",
105+
"tf_header_lib",
106+
"libtensorflow_framework",
107+
],
108+
"tf-keras": ["tf-keras-nightly"],
107109
},
110+
pip_repo_name = "pypi",
111+
requirements_in = "//oss_scripts/pip_package:requirements.in",
108112
switch = {
109-
"IS_NIGHTLY": "nightly"
110-
}
113+
"IS_NIGHTLY": "nightly",
114+
},
111115
)
112116

113117
load("@org_tensorflow//third_party/py:python_init_repositories.bzl", "python_init_repositories")
114118

115119
python_init_repositories(
120+
default_python_version = "system",
116121
requirements = {
117122
"3.9": "//oss_scripts/pip_package:requirements_lock_3_9.txt",
118123
"3.10": "//oss_scripts/pip_package:requirements_lock_3_10.txt",
119124
"3.11": "//oss_scripts/pip_package:requirements_lock_3_11.txt",
120125
"3.12": "//oss_scripts/pip_package:requirements_lock_3_12.txt",
121126
},
122-
default_python_version = "system",
123127
)
124128

125129
load("@org_tensorflow//third_party/py:python_init_toolchains.bzl", "python_init_toolchains")
@@ -136,18 +140,28 @@ install_deps()
136140

137141
# Initialize TensorFlow dependencies.
138142
load("@org_tensorflow//tensorflow:workspace3.bzl", "tf_workspace3")
143+
139144
tf_workspace3()
145+
140146
load("@org_tensorflow//tensorflow:workspace2.bzl", "tf_workspace2")
147+
141148
tf_workspace2()
149+
142150
load("@org_tensorflow//tensorflow:workspace1.bzl", "tf_workspace1")
151+
143152
tf_workspace1()
153+
144154
load("@org_tensorflow//tensorflow:workspace0.bzl", "tf_workspace0")
155+
145156
tf_workspace0()
146157

147158
# Set up Android.
148159
load("@org_tensorflow//third_party/android:android_configure.bzl", "android_configure")
149-
android_configure(name="local_config_android")
160+
161+
android_configure(name = "local_config_android")
162+
150163
load("@local_config_android//:android.bzl", "android_workspace")
164+
151165
android_workspace()
152166

153167
load(
@@ -158,7 +172,22 @@ load(
158172
python_wheel_version_suffix_repository(name = "tf_wheel_version_suffix")
159173

160174
load(
161-
"@local_xla//third_party/gpus/cuda/hermetic:cuda_json_init_repository.bzl",
175+
"@rules_ml_toolchain//cc/deps:cc_toolchain_deps.bzl",
176+
"cc_toolchain_deps",
177+
)
178+
179+
cc_toolchain_deps()
180+
181+
register_toolchains("@rules_ml_toolchain//cc:linux_x86_64_linux_x86_64")
182+
183+
register_toolchains("@rules_ml_toolchain//cc:linux_x86_64_linux_x86_64_cuda")
184+
185+
register_toolchains("@rules_ml_toolchain//cc:linux_aarch64_linux_aarch64")
186+
187+
register_toolchains("@rules_ml_toolchain//cc:linux_aarch64_linux_aarch64_cuda")
188+
189+
load(
190+
"@rules_ml_toolchain//third_party/gpus/cuda/hermetic:cuda_json_init_repository.bzl",
162191
"cuda_json_init_repository",
163192
)
164193

@@ -170,7 +199,7 @@ load(
170199
"CUDNN_REDISTRIBUTIONS",
171200
)
172201
load(
173-
"@local_xla//third_party/gpus/cuda/hermetic:cuda_redist_init_repositories.bzl",
202+
"@rules_ml_toolchain//third_party/gpus/cuda/hermetic:cuda_redist_init_repositories.bzl",
174203
"cuda_redist_init_repositories",
175204
"cudnn_redist_init_repository",
176205
)
@@ -184,21 +213,21 @@ cudnn_redist_init_repository(
184213
)
185214

186215
load(
187-
"@local_xla//third_party/gpus/cuda/hermetic:cuda_configure.bzl",
216+
"@rules_ml_toolchain//third_party/gpus/cuda/hermetic:cuda_configure.bzl",
188217
"cuda_configure",
189218
)
190219

191220
cuda_configure(name = "local_config_cuda")
192221

193222
load(
194-
"@local_xla//third_party/nccl/hermetic:nccl_redist_init_repository.bzl",
223+
"@rules_ml_toolchain//third_party/nccl/hermetic:nccl_redist_init_repository.bzl",
195224
"nccl_redist_init_repository",
196225
)
197226

198227
nccl_redist_init_repository()
199228

200229
load(
201-
"@local_xla//third_party/nccl/hermetic:nccl_configure.bzl",
230+
"@rules_ml_toolchain//third_party/nccl/hermetic:nccl_configure.bzl",
202231
"nccl_configure",
203232
)
204233

oss_scripts/configure.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ curl https://raw.githubusercontent.com/tensorflow/tensorflow/master/.bazelrc -o
5454
sed -i -e 's/build --noincompatible_remove_legacy_whole_archive//' .bazelrc
5555

5656
write_to_bazelrc "build:manylinux2014 --config=release_cpu_linux"
57+
# JUST FOR TESTING
58+
git clone https://github.com/tensorflow/tensorflow.git org_tensorflow
59+
cd org_tensorflow
60+
git checkout 735467e89ccfd7ace190363412bb5698164628b5
61+
cd ..
62+
write_to_bazelrc "common:linux --override_repository=org_tensorflow=./org_tensorflow"
5763

5864
if (which python3) | grep -q "python3"; then
5965
installed_python="python3"
@@ -76,8 +82,16 @@ if [[ "$TF_VERSION" == *"rc"* ]]; then
7682
REQUIREMENTS_EXTRA_FLAGS="$REQUIREMENTS_EXTRA_FLAGS --pre"
7783
fi
7884

85+
# JUST FOR TESTING
86+
wget https://storage.googleapis.com/ml-sysroot-testing/tensorflow_metadata-1.18.0.dev0-py3-none-any.whl
87+
mv tensorflow_metadata-1.18.0.dev0-py3-none-any.whl /github/tensorflow_metadata-1.18.0.dev0-py3-none-any.whl
88+
echo "tensorflow-metadata @ file:///github/tensorflow_metadata-1.18.0.dev0-py3-none-any.whl" >> oss_scripts/pip_package/requirements.in
89+
7990
bazel run //oss_scripts/pip_package:requirements.update -- $REQUIREMENTS_EXTRA_FLAGS
8091

92+
# JUST FOR TESTING
93+
sed -i 's#file://tensorflow_metadata-1.18.0.dev0-py3-none-any.whl#file:///github/tensorflow_metadata-1.18.0.dev0-py3-none-any.whl#g' oss_scripts/pip_package/requirements_lock_3_9.txt
94+
8195
TF_ABIFLAG=$(bazel run //oss_scripts/pip_package:tensorflow_build_info -- abi)
8296
SHARED_LIBRARY_NAME="libtensorflow_framework.so.2"
8397
if is_macos; then

oss_scripts/pip_package/BUILD

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Tools for building the TF.Text pip package.
2-
load("@python//:defs.bzl", "compile_pip_requirements")
2+
33
load("@python_version_repo//:py_version.bzl", "REQUIREMENTS")
4+
load("@rules_python//python:pip.bzl", "compile_pip_requirements")
45

56
package(default_visibility = ["//visibility:private"])
67

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
setuptools==70.0.0
22
dm-tree==0.1.8 # Limit for macos support.
33
numpy
4-
protobuf==4.25.3 # b/397977335 - Fix crash on python 3.9, 3.10.
54
tensorflow
65
tf-keras
76
tensorflow-datasets
8-
tensorflow-metadata
7+
#tensorflow-metadata

tensorflow_text/BUILD

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
# Placeholder: load py_library
2-
# Placeholder: load py_test
1+
load("@org_tensorflow//tensorflow:tensorflow.bzl", "if_oss")
32
load("@org_tensorflow//tensorflow/lite:build_def.bzl", "tflite_cc_shared_object")
43
load("@rules_cc//cc:cc_library.bzl", "cc_library")
4+
load("@rules_python//python:py_library.bzl", "py_library")
5+
load("@rules_python//python:py_test.bzl", "py_test")
56
load("//tensorflow_text:tftext.bzl", "extra_py_deps", "py_tf_text_library")
67
# [internal] load build_test.bzl
78

@@ -123,9 +124,11 @@ py_library(
123124
":wordpiece_tokenizer",
124125
":wordshape_ops",
125126
# python/util:all_util tensorflow dep,
126-
"//tensorflow_text/core/pybinds:tflite_registrar",
127127
"//tensorflow_text/tools/wordpiece_vocab",
128-
] + extra_py_deps(),
128+
] + if_oss(
129+
["//tensorflow_text/core/pybinds:tflite_registrar_library"],
130+
["//tensorflow_text/core/pybinds:tflite_registrar"],
131+
) + extra_py_deps(),
129132
)
130133

131134
# build_test

tensorflow_text/core/kernels/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,7 @@ cc_library(
337337
deps = [
338338
"@com_google_absl//absl/container:flat_hash_set",
339339
"@com_google_absl//absl/status:statusor",
340+
"@com_google_absl//absl/strings",
340341
"@darts_clone",
341342
],
342343
)

tensorflow_text/core/kernels/darts_clone_trie_builder.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@
1919
#include <numeric>
2020

2121
#include "absl/container/flat_hash_set.h"
22+
#include "absl/strings/str_cat.h"
2223
#include "include/darts.h"
24+
#define REGISTER_UNARY_VARIANT_DEVICE_COPY_HANDLER \
25+
1 // TODO(b/210217594): Remove once this is the default.
26+
#include "tensorflow/core/framework/variant_op_registry.h"
2327

2428
namespace tensorflow {
2529
namespace text {

tensorflow_text/core/pybinds/BUILD

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
# Code that exposes C++ libraries to Python via pybind11.
22

3-
# Placeholder: load py_test
4-
load("@org_tensorflow//tensorflow:tensorflow.bzl", "pybind_extension")
3+
load("@rules_python//python:py_test.bzl", "py_test")
4+
5+
# This comment separates the load statements, so copybara reverse transformation works.
6+
7+
load("@org_tensorflow//tensorflow:tensorflow.default.bzl", "pybind_extension", "pywrap_library")
58

69
licenses(["notice"])
710

@@ -11,6 +14,11 @@ package(default_visibility = [
1114
"//tensorflow_text:__subpackages__",
1215
])
1316

17+
pywrap_library(
18+
name = "tflite_registrar_library",
19+
deps = [":tflite_registrar"],
20+
)
21+
1422
pybind_extension(
1523
name = "tflite_registrar",
1624
srcs = [
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
"""
2+
Repository rule for open source dependencies.
3+
"""
4+
5+
def _py_deps_profile_impl(ctx):
6+
is_switch = False
7+
for var_name, var_val in ctx.attr.switch.items():
8+
is_switch = is_switch or ctx.os.environ.get(var_name, "") == var_val
9+
10+
prefix = ctx.attr.pip_repo_name
11+
reqirements_name = ctx.attr.requirements_in.name
12+
requirements_in_substitutions = {}
13+
build_content = ['exports_files(["{}"])'.format(reqirements_name)]
14+
for k, v in ctx.attr.deps_map.items():
15+
repo_name = v[0] if is_switch else k
16+
requirements_in_substitutions[k + "\n"] = repo_name + "\n"
17+
requirements_in_substitutions[k + "\r\n"] = repo_name + "\r\n"
18+
aliased_targets = ["pkg"] + v[1:]
19+
norm_repo_name = repo_name.replace("-", "_")
20+
norm_alas_name = k.replace("-", "_")
21+
for target in aliased_targets:
22+
alias_name = "{}_{}".format(norm_alas_name, target)
23+
alias_value = "@{}_{}//:{}".format(prefix, norm_repo_name, target)
24+
build_content.append("""
25+
alias(
26+
name = "{}",
27+
actual = "{}",
28+
visibility = ["//visibility:public"]
29+
)
30+
""".format(alias_name, alias_value))
31+
32+
ctx.file("BUILD", "".join(build_content))
33+
ctx.template(
34+
reqirements_name,
35+
ctx.attr.requirements_in,
36+
executable = False,
37+
substitutions = requirements_in_substitutions,
38+
)
39+
40+
py_deps_profile = repository_rule(
41+
implementation = _py_deps_profile_impl,
42+
attrs = {
43+
"requirements_in": attr.label(mandatory = True),
44+
"deps_map": attr.string_list_dict(mandatory = True),
45+
"pip_repo_name": attr.string(mandatory = True),
46+
"switch": attr.string_dict(mandatory = True),
47+
},
48+
local = True,
49+
)

0 commit comments

Comments
 (0)