grimme-lab / xtb

Semiempirical Extended Tight-Binding Program Package
https://xtb-docs.readthedocs.io/
GNU Lesser General Public License v3.0
594 stars 148 forks source link

xtb's dependency hell #1120

Open foxtran opened 1 month ago

foxtran commented 1 month ago

xtb has multiple dependencies and those also have their own dependensies... Their versions are managed via subprojects/*.wrap files which are not unified between different deps sometimes.

To Reproduce

  1. clone xtb
  2. configure for example with cmake via command cmake -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_Fortran_COMPILER=gfortran
  3. run
    head -n 10 `find . -name "*.wrap" | rev | sort | rev | grep subprojects`

One will see something like:

==> ./subprojects/toml-f.wrap <==
[wrap-git]
directory = toml-f
url = https://github.com/toml-f/toml-f
revision = v0.4.1

==> ./build/_deps/s-dftd3-src/subprojects/toml-f.wrap <==
[wrap-git]
directory = toml-f
url = https://github.com/toml-f/toml-f
revision = v0.2.4

==> ./build/_deps/tblite-src/subprojects/toml-f.wrap <==
[wrap-git]
directory = toml-f
url = https://github.com/toml-f/toml-f
revision = v0.4.0

So, s-dftd3, tblite and xtb have different versions of toml-f. At build/_deps/toml-f-src, I have v0.4.0, not v0.4.1 or v0.2.4... So, it is not clear which version will be downloaded first :) I suppose for toml-f it is not so critical, but for dftd4 it is because old v3.4.0 was selected.

Expected behaviour All deps must have the same version