[hawkmoth] Re: [PATCH 01/11] build: add initial requirements.txt

  • From: "Bruno Santos" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "brunomanuelsantos" for DMARC)
  • To: Jani Nikula <jani@xxxxxxxxxx>
  • Date: Fri, 18 Dec 2020 15:13:11 +0000

Hi Jani, thanks for picking this up and sorry for the delay in the
review.

On 20:59:58 2020-12-15, Jani Nikula wrote:

Make it easier for everyone to work on the same set of dependencies. Add
the canonical requirements.txt with sphinx==1.8.5, in alignment with the
status quo, though this is expected to change shortly.

Also add requirements-latest.txt, with just the direct dependencies of
Hawkmoth and no versions specified i.e. latest versions.
---
 requirements-latest.txt |  2 ++
 requirements.txt        | 21 +++++++++++++++++++++
 2 files changed, 23 insertions(+)
 create mode 100644 requirements-latest.txt
 create mode 100644 requirements.txt

diff --git a/requirements-latest.txt b/requirements-latest.txt
new file mode 100644
index 000000000000..d6ccda834a8e
--- /dev/null
+++ b/requirements-latest.txt
@@ -0,0 +1,2 @@
+sphinx
+sphinx-testing

Hmm, no Clang? As long as we're using pip, we could list Clang's
dependency for the bindings while having to provide Clang itself
separately. Instead of failing when the bindings are no longer
compatible with hawkmoth, it would fail when the Clang libraries are no
longer compatible with the bindings.

I'm not sure what's more benign, but I'd expect the bindings to know how
to print a better error message telling the user to install a different
Clang version.

diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 000000000000..30bb24052bb6
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,21 @@
+alabaster==0.7.12
+Babel==2.9.0
+certifi==2020.12.5
+chardet==3.0.4
+docutils==0.16
+idna==2.10
+imagesize==1.2.0
+Jinja2==2.11.2
+MarkupSafe==1.1.1
+packaging==20.7
+Pygments==2.7.3
+pyparsing==2.4.7
+pytz==2020.4
+requests==2.25.0
+six==1.15.0
+snowballstemmer==2.0.0
+Sphinx==1.8.5

Probably nitpicking, but the case is different from the one in the
`-latest` file. Not sure if there's any difference in behaviour though.

+sphinx-testing==1.0.1
+sphinxcontrib-serializinghtml==1.1.4
+sphinxcontrib-websupport==1.2.4
+urllib3==1.26.2

Do we really have to maintain all the indirect dependencies here? A
quick test seems to indicate there is no difference, but I know little
of Python packaging guidelines in general.

Cheers,
Bruno

Other related posts: