Force setuptools to be new enough
- setuptools_scm would like setuptools to be >= version 61 -- Install it
before we process our requirements file so it's available to the
setup process. Also add it to the requirements file, just in case.
Change-Id: I4e9ea19c9d19efa810563755b331680a0bae2452
diff --git a/python-requirements.txt b/python-requirements.txt
index c21675e..a7953de 100644
--- a/python-requirements.txt
+++ b/python-requirements.txt
@@ -74,3 +74,6 @@
# Working version for CentOS 7
urllib3==1.26.15
+
+setuptools==62
+setuptools_scm==8.1.0
diff --git a/sanitized_requirements.txt b/sanitized_requirements.txt
index 40012e2..8cbcd69 100644
--- a/sanitized_requirements.txt
+++ b/sanitized_requirements.txt
@@ -58,6 +58,8 @@
PyYAML==6.0
requests==2.31.0
rich==12.5.1
+setuptools==62
+setuptools_scm==8.1.0
simplesat==0.8.2
six==1.16.0
smmap==5.0.1
diff --git a/third_party/python/pip.bzl b/third_party/python/pip.bzl
index 32eb1c4..d077ff6 100644
--- a/third_party/python/pip.bzl
+++ b/third_party/python/pip.bzl
@@ -52,6 +52,25 @@
if result.return_code:
fail("pip_wheel failed: {} ({})".format(result.stdout, result.stderr))
+ # Install a modern-enough setuptools before the rest of our requirements.
+ args = [
+ rctx.path(rctx.attr.python_interpreter),
+ "-m",
+ "pip",
+ "install",
+ "-U",
+ "--ignore-installed",
+ "setuptools==62",
+ ]
+ rctx.report_progress("Installing the Python setuptools package")
+ result = rctx.execute(
+ args,
+ timeout = rctx.attr.timeout,
+ quiet = rctx.attr.quiet,
+ )
+ if result.return_code:
+ fail("pip_wheel failed: {} ({})".format(result.stdout, result.stderr))
+
# Next, we download/build all the Python wheels for each requirement.
args = [
rctx.path(rctx.attr.python_interpreter),