17
17
load ("@bazel_features//:features.bzl" , "bazel_features" )
18
18
load ("//python:repositories.bzl" , "python_register_toolchains" )
19
19
load ("//python:versions.bzl" , "TOOL_VERSIONS" )
20
+ load ("//python/private:repo_utils.bzl" , "repo_utils" )
20
21
load (":pythons_hub.bzl" , "hub_repo" )
21
22
load (":text_util.bzl" , "render" )
22
23
load (":toolchains_repo.bzl" , "multi_toolchain_aliases" )
@@ -27,12 +28,6 @@ load(":util.bzl", "IS_BAZEL_6_4_OR_HIGHER")
27
28
_MAX_NUM_TOOLCHAINS = 9999
28
29
_TOOLCHAIN_INDEX_PAD_LENGTH = len (str (_MAX_NUM_TOOLCHAINS ))
29
30
30
- # Printing a warning msg not debugging, so we have to disable
31
- # the buildifier check.
32
- # buildifier: disable=print
33
- def _print_warn (msg ):
34
- print ("WARNING:" , msg )
35
-
36
31
def _python_register_toolchains (name , toolchain_attr , module , ignore_root_user_error ):
37
32
"""Calls python_register_toolchains and returns a struct used to collect the toolchains.
38
33
"""
@@ -71,6 +66,8 @@ def _python_impl(module_ctx):
71
66
72
67
ignore_root_user_error = None
73
68
69
+ logger = repo_utils .logger (module_ctx , "python" )
70
+
74
71
# if the root module does not register any toolchain then the
75
72
# ignore_root_user_error takes its default value: False
76
73
if not module_ctx .modules [0 ].tags .toolchain :
@@ -131,11 +128,14 @@ def _python_impl(module_ctx):
131
128
# version that rules_python provides as default.
132
129
first = global_toolchain_versions [toolchain_version ]
133
130
if mod .name != "rules_python" or not first .module .is_root :
131
+ # The warning can be enabled by setting the verbosity:
132
+ # env RULES_PYTHON_REPO_DEBUG_VERBOSITY=INFO bazel build //...
134
133
_warn_duplicate_global_toolchain_version (
135
134
toolchain_version ,
136
135
first = first ,
137
136
second_toolchain_name = toolchain_name ,
138
137
second_module_name = mod .name ,
138
+ logger = logger ,
139
139
)
140
140
toolchain_info = None
141
141
else :
@@ -231,11 +231,11 @@ def _fail_duplicate_module_toolchain_version(version, module):
231
231
module = module ,
232
232
))
233
233
234
- def _warn_duplicate_global_toolchain_version (version , first , second_toolchain_name , second_module_name ):
235
- _print_warn ( (
234
+ def _warn_duplicate_global_toolchain_version (version , first , second_toolchain_name , second_module_name , logger ):
235
+ logger . info ( lambda : (
236
236
"Ignoring toolchain '{second_toolchain}' from module '{second_module}': " +
237
237
"Toolchain '{first_toolchain}' from module '{first_module}' " +
238
- "already registered Python version {version} and has precedence"
238
+ "already registered Python version {version} and has precedence. "
239
239
).format (
240
240
first_toolchain = first .name ,
241
241
first_module = first .module .name ,
0 commit comments