Skip to content

Commit d8f0f22

Browse files
authored
repo: Use python toolchains (envoyproxy#20432)
Signed-off-by: Ryan Northey <[email protected]>
1 parent 3eb27a7 commit d8f0f22

File tree

4 files changed

+43
-22
lines changed

4 files changed

+43
-22
lines changed

WORKSPACE

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ load("//bazel:repositories_extra.bzl", "envoy_dependencies_extra")
1616

1717
envoy_dependencies_extra()
1818

19+
load("//bazel:python_dependencies.bzl", "envoy_python_dependencies")
20+
21+
envoy_python_dependencies()
22+
1923
load("//bazel:dependency_imports.bzl", "envoy_dependency_imports")
2024

2125
envoy_dependency_imports()

bazel/python_dependencies.bzl

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
load("@rules_python//python:pip.bzl", "pip_install", "pip_parse")
2+
load("@python3_10//:defs.bzl", "interpreter")
3+
4+
def envoy_python_dependencies():
5+
pip_parse(
6+
name = "base_pip3",
7+
python_interpreter_target = interpreter,
8+
requirements_lock = "@envoy//tools/base:requirements.txt",
9+
extra_pip_args = ["--require-hashes"],
10+
)
11+
12+
# These need to use `pip_install`
13+
pip_install(
14+
# Note: dev requirements do *not* check hashes
15+
python_interpreter_target = interpreter,
16+
name = "dev_pip3",
17+
requirements = "@envoy//tools/dev:requirements.txt",
18+
)
19+
20+
pip_install(
21+
name = "fuzzing_pip3",
22+
python_interpreter_target = interpreter,
23+
requirements = "@rules_fuzzing//fuzzing:requirements.txt",
24+
extra_pip_args = ["--require-hashes"],
25+
)

bazel/repositories_extra.bzl

+10-22
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,19 @@
11
load("@emsdk//:deps.bzl", emsdk_deps = "deps")
2-
load("@rules_python//python:pip.bzl", "pip_install", "pip_parse")
2+
load("@rules_python//python:repositories.bzl", "python_register_toolchains")
33
load("@proxy_wasm_cpp_host//bazel/cargo/wasmtime:crates.bzl", "wasmtime_fetch_remote_crates")
44
load("//bazel/external/cargo:crates.bzl", "raze_fetch_remote_crates")
55

6-
# Python dependencies.
7-
def _python_deps():
8-
pip_parse(
9-
name = "base_pip3",
10-
requirements_lock = "@envoy//tools/base:requirements.txt",
11-
extra_pip_args = ["--require-hashes"],
12-
)
13-
14-
# These need to use `pip_install`
15-
pip_install(
16-
# Note: dev requirements do *not* check hashes
17-
name = "dev_pip3",
18-
requirements = "@envoy//tools/dev:requirements.txt",
19-
)
20-
pip_install(
21-
name = "fuzzing_pip3",
22-
requirements = "@rules_fuzzing//fuzzing:requirements.txt",
23-
extra_pip_args = ["--require-hashes"],
24-
)
6+
# Python version for `rules_python`
7+
PYTHON_VERSION = "3.10.2"
258

269
# Envoy deps that rely on a first stage of dependency loading in envoy_dependencies().
27-
def envoy_dependencies_extra():
28-
_python_deps()
10+
def envoy_dependencies_extra(python_version = PYTHON_VERSION):
2911
emsdk_deps()
3012
raze_fetch_remote_crates()
3113
wasmtime_fetch_remote_crates()
14+
15+
# Registers underscored Python minor version - eg `python3_10`
16+
python_register_toolchains(
17+
name = "python%s" % ("_".join(python_version.split(".")[:-1])),
18+
python_version = python_version,
19+
)

ci/WORKSPACE.filter.example

+4
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ load("@envoy//bazel:repositories_extra.bzl", "envoy_dependencies_extra")
2121

2222
envoy_dependencies_extra()
2323

24+
load("@envoy//bazel:python_dependencies.bzl", "envoy_python_dependencies")
25+
26+
envoy_python_dependencies()
27+
2428
load("@envoy//bazel:dependency_imports.bzl", "envoy_dependency_imports")
2529

2630
envoy_dependency_imports()

0 commit comments

Comments
 (0)