Adoption and refinement of singleline query of System Requirements
Closed this issue · 11 comments
Due to our own augmentation of the sysreqs database 05934b3
.query_sysreqs_bioc("Rhtslib", "ubuntu-20.04")
##[1] "apt-get install -y make"
##[2] "apt-get install -y libcurl4-openssl-dev"
##[3] "apt-get install -y liblzma-dev"
##[4] "apt-get install -y libbz2-dev"
.query_sysreqs_github("Bioconductor/Rhtslib", "ubuntu-20.04")
##[1] "apt-get install -y make"
##[2] "apt-get install -y libcurl4-openssl-dev"
Should we switch the sysreqs querying of github packages away from Posit?
PROS: More accurate
CONS: Not support SLE/SuSE
hmm how big of an issue is not supporting SLE/SuSE. I feel like this is easier to communicate than saying "there might be inaccurate sysreqs". A (kind of) guarantee for sysreqs is more important in my opinion
@schochastics I think 99.999999999% of cases are "ubuntu-20.04", except just one unit test case in our constellation of tests that tests for SLE.
Actually, we don't even provide dockerization for RPM distros (yet, and not on our radar). So our support for SLE's zypper is almost like theoretical, despite the fact that Posit supports it.
Yeah my vote would then be one dropping the SLE support for now
TODOs
- switch github to bioc's singlelinesysreqs method
- add github test
- check for all bioc sysreqs and further improve the augmentation
- remove SLE in the internal data supported_os
- remove SLE in the tests
- gsl don't work
@chainsawriot "check for all bioc sysreqs and further improve the augmentation" sounds like an arduous task. can I support you in any way, or are you good?
@schochastics I have implemented just now the infra. I think the "adoption" part is now finished. And hp[efully, most CRAN (or CRAN packages in the cran github mirror) would work.
Now, the problem is that many bioc packages use some system requirements that can't be recognized by https://sysreqs.r-hub.io/map .
Those can be added into the list here. But actually, I don't know what are the things in the wild and it is pretty unrealistic to add all the things under the sun. A more realistic approach is to check these top n packages.
https://bioconductor.org/packages/stats/
I have added Rhtslib
, which is the top 20. I think I have checked at least the top 20. If you could take this up, I will focus on the crazy task of #14 .
Sure happy to take this up! Not yet fully into what is actually going on under the hood here but this gives me the chance to learn it :)
@chainsawriot still trying to get a hang of this. webbioc
raw sysreqs are Unix, Perl (>= 5.6.0), Netpbm
.query_sysreqs_bioc("webbioc","ubuntu-20.04")
## character(0)
should
singleline_sysreqs
## "Unix, Perl (>= 5.6.0), Netpbm"
.extract_uncheckable_sysreqs(singleline_sysreqs)
## NULL
return something else than NULL
e.g.
c("apt-get install -y perl","apt-get install -y netpbm")
Netbpm
I can get by adding it to uncheckable_sysreqs
. Perl is in the sysdeb db but I guess the (>= 5.6.0) screws with the query
Also, how far do we go with sysreqs. some package has samtools
and this is needed to install it:
https://bioinformaticsreview.com/20210404/installing-samtools-on-ubuntu/
https://github.com/r-hub/sysreqsdb/blob/master/sysreqs/perl.json
.query_singleline_sysreqs("perl")
I don't know why it doesn't work. But it actually means it should goes into uncheckable.
To me, sysreqs
(that we can support) are things that one can install with apt
or dnf
. If a system requirement is Tensorflow, then we can't support it because it requires pip install.
Yeah that was my thought to. I will just run through the reqs and see if I find apt or dnf installs and include those. Good find on samtools