Re: ncbi-cxx-toolkit-public - a monorepo for NCBI tools?

Andrius Merkys <[email protected]> Mon, 29 Sep 2025 15:48:51 +0300
Newsgroups gmane.linux.debian.devel.medical
Message-ID <[email protected]>
Hi Aaron,

On 2025-09-25 17:43, Aaron M. Ucko wrote:
> Andrius Merkys <[email protected]> writes:
> 
>> seems like a monorepo for a bunch of NCBI tools. Can anyone confirm
>> that?
> 
> To clarify, releases of BLAST+ and variants like IgBLAST are generally
> based on heavily trimmed snapshots of release branches like [1];
> however, each product releases on its own schedule, so their releases do
> not in general line up with each other or correspond to any of the
> overall C++ Toolkit's monthly releases.
> 
> The download link at the bottom of IgBLAST's online documentation [2]
> still points to traditional release tarballs; IgBLAST just hasn't had a
> release in almost two years.

Thanks for the explanation. I now see that individual tool schedules are 
still maintained. For IgBLAST I will look into backporting a patch for 
GCC-15 issue.

> I suppose we could consider tackling the full tree anyway -- we
> historically glossed over the analogous distinction between releases of
> NCBI's C Toolkit and of legacy BLAST -- but there are some additional
> complications.  In particular:
> 
> - The tree is *huge* -- the (gzipped) tarball alone is over 700 MB,
>    unpacking to roughly 3 GB, and even when using shared libraries, a
>    full amd64 build with debug symbols takes roughly an hour (or two with
>    a test-suite run thrown in) and consumes an additional ~14 GB, and the
>    200+ resulting shared libraries take up ~150 MB in total even after
>    stripping.  (That said, partial builds are certainly an option, and
>    there is a plausible middle ground between splitting the shared
>    libraries up into individual binary packages and sticking them all
>    together into one big one.)
> 
> - There are no ABI stability guarantees, so executables would need
>    fairly tight dependencies on shared libraries.

OK, I see. Maybe then the current approach of sticking to separate 
trimmed tarballs is for the best.

Thanks a lot,
Andrius

> [1] https://github.com/ncbi/ncbi-cxx-toolkit-public/tree/stable/29.0
> [2] https://ncbi.github.io/igblast/