[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bedtools 2.29.2+dfsg-6

Andreas Tille wrote:
> I do not fully understand why the htsutil binary should not stay in the
> bedtools package

If I were a Debian user who had installed the bedtools package, I would be confused by that package creating a /usr/lib/bedtools directory -- because bedtools does not have plugins or similar that would warrant such a /usr/lib subdirectory. I would be surprised to find an undocumented executable named "htsutil" in there, and would be annoyed if I found out that it was purely for test purposes and of no use to me (as I don't have the test data or scripts) but had been non-optionally installed on my machine nonetheless by the supposedly user-oriented main bedtools package.

> Alternatively I see the option to simply ship the code for htsutil
> inside bedtools-test package and rebuild it before running the test.
> What do you think?

I think you would find that you needed to include a lot of source files, not just htsutil.cpp, to be able to rebuild it. So it's not a great path to go down, and more work than having two bedtools-test / bedtools-testdata subpackages would be.

This is the approach used in Debian's htslib-test package, which rebuilds the htslib test harnesses from source. This is bad for two reasons: (1) htslib-test needs to include practically all the source code and build infrastructure; (2) it's testing the copy of the htslib routines produced by this recompilation -- it is not testing libhts.so as installed by the libhts3 package. For htslib-test the latter is IMHO a bug, for which I will send a patch if it ever gets to the top of my to-do list.

There is however another truly simpler alternative.

There is precedent (the undocumented regresstest subcommand) for having testing facilities in the main bedtools executable; if I had thought a separate htsutil executable would give Debian heartburn I might have put it within the bedtools executable too. I'm not going to propose that upstream at this point, but you could apply a patch like the attached to not build an htsutil executable at all. So neither package would need to include htsutil; instead that code would add a mere 6K to the size of the bedtools executable. Then (after the upcoming upstream release) your run-unit-test script would be able to run it by setting htsutil='/usr/bin/bedtools htsutil' when it runs test.sh.


Attachment: htsutil_subcmd.diff
Description: htsutil_subcmd.diff

Reply to: