dnbaker / dashing

Fast and accurate genomic distances using HyperLogLog
GNU General Public License v3.0
160 stars 11 forks source link

Recursive checkout failure #7

Closed kloetzl closed 5 years ago

kloetzl commented 5 years ago

As mentioned in the readme I did a git clone --recursive https://github.com/dnbaker/dashing which downloaded a bunch of stuff but then ended with

…
Submodule path 'bonsai/zlib': checked out 'cacf7f1d4e3d44d871b605da3b647f07d718623f'
error: Server does not allow request for unadvertised object be71acca9721786f6a3bc3c5b4a42f699721a057
Fetched in submodule path 'bonsai/zstd', but it did not contain be71acca9721786f6a3bc3c5b4a42f699721a057. Direct fetching of that commit failed.
Submodule path 'distmat': checked out '3ffee11dc51a4cfeb562ca6d04ce46d3cb42db39'
Failed to recurse into submodule path 'bonsai'

Apart from the error I am wondering why dashing/bonsai comes with copies of zlib, zstd, divsufsort and others at all? My computer has perfectly fine versions of them installed already.

dnbaker commented 5 years ago

Thanks for your help! I've had strange issues like this before, but I have been able to patch them up with some work. I'll get back to you upon its resolution.

The design decision of providing local builds of dependencies is to avoid requiring system-wide installation and associated sudo privileges. Additionally, this way I can ensure that recent versions are being used. (For example, if you want to use gzbuffer, you need zlib >= 1.2.6, which is not installed by default on many operating systems.) It does come with various hassles, but I think that making it relatively easy for local builds makes it an overall win.

Perhaps including frozen copies of these dependencies instead of submodules may be a better solution, eliminating potential issues with upstream git history revisions.

kloetzl commented 5 years ago

Perhaps including frozen copies of these dependencies instead of submodules may be a better solution, …

In Debian that is called a “convenience copy” and is explicitly forbidden by the policy. That prevents dashing from entering the Debian package repositories.

kloetzl commented 5 years ago

As of the latest version checkout works fine now. However git status produces a new error message:

fatal: not a git repository: cppitertools/../../.git/modules/bonsai/modules/cppitertools
fatal: 'git status --porcelain=2' failed in submodule bonsai
kloetzl commented 5 years ago

Looks fixed in v0.1.1-27-g784609b.