dnbaker / dashing2

Dashing 2 is a fast toolkit for k-mer and minimizer encoding, sketching, comparison, and indexing.
MIT License
62 stars 7 forks source link

please allow builds without recursive cloning #76

Open joelb123 opened 1 year ago

joelb123 commented 1 year ago

Recursive cloning results in a mess for distro packagers and can be a headache for both security and functionality. An example is bonsai pulling in sketch, which pulls in a pybind11 from 2 years ago. That version of pybind11 won't even work with python-3.11.

Please list the direct dependencies in the documentation and make sure the dependencies can actually be installed. As a bonus, your CI scripts will only show problems from the package being tested.

dnbaker commented 1 year ago

Hi Joel -

That's a fair point. Dependency management can be a mess and submodules has been a pretty reasonable way to handle them, but they come with some extra hassle. They're slow, take up extra space on disk, and can get recursively out of date or conflicting versions. Fortunately we don't need pybind11 for Dashing2, but then clearly we're downloading a lot of code + history that takes time + space.

I'll work on reducing the submodule usage + make it easier to integrate into package managers soon. But it will take a bit more time than the compilation issues I've been able to address quickly.

Thanks for the feedback - I really appreciate it.

Daniel