On 22:33:31 2020-12-18, Jani Nikula wrote:
On Fri, 18 Dec 2020, Bruno Santos <brunomanuelsantos@xxxxxxxxxxxxxxxxxx>
Hi Jani, thanks for picking this up and sorry for the delay in the
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
@@ -0,0 +1,2 @@
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
There are two problems with depending on clang from pypi:
- There is no official package, but there are two non-official ones,
- You need to install clang from distro packaging anyway, and you should
probably install the python bindings from there too. The package from
pypi might shadow the package from distro, and the latter is almost
certainly a better choice than the former.
I don't really know what the recommended approach is.
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
@@ -0,0 +1,21 @@
Probably nitpicking, but the case is different from the one in the
`-latest` file. Not sure if there's any difference in behaviour though.
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.
I'm certainly not an expert on python packaging. But my idea is that the
-latest file contains the direct dependencies without versions to pick
the latest available. The requirements.txt comes from pip freeze after
that. So to update requirements.txt, you'd start with a fresh venv, and
$ pip install -r requirements-latest.txt
$ pip freeze > requirements.txt
Using the exact versions from requirements.txt just guarantees the exact
same set of direct and indirect dependencies.