darcyj / specificity

R package for calculating specificity in ecological data
7 stars 1 forks source link

CRAN / Bioconductor availability #2

Open antagomir opened 1 year ago

antagomir commented 1 year ago

Thanks for this interesting piece of work for microbiome analysis and interpretation.

Making the package available through CRAN (or Bioconductor). This could support the handling of dependencies and support interoperability across many different platforms.

darcyj commented 1 year ago

CRAN submission was in the works, but was torpedoed by a now-defunct (and unlisted) package of the same name. The whole submission was ready to go, passing all checks, right until I received an email from an impolite person with a german-sounding name, informing me that the name was already taken, by a package that doesn't really exist. This irked me to no end.

Bioconductor, however, is a strong possibility; the only thing that would need to happen would be compatibility with their SummarizedExperiment class. It's easy enough to convert to a numeric matrix or data.frame to work with this package, so I don't see that being too difficult. It could be as simple as checking if the object inherits from SummarizedExperiment, and if so, converting it.

darcyj commented 1 year ago

note to self: comments would need to be added in the vignette, too, to make it clear "in bioconductor world, use blah blah blah"

antagomir commented 1 year ago

CRAN admin emails are notoriously short and rude. It is a classic. Bioconductor has Code of Conduct to promote friendly and inclusive behavior, hopefully that helps.

Really a pity if the name was taken already. It is also against Bioconductor guidelines to use a name that has been taken by a CRAN pkg. _"A package name should be descriptive and not already exist as a current package (case-insensitive) in Bioconductor or CRAN. Avoid names that are easily confused with existing package names, or that imply a temporal (e.g., ExistingPackage2) or qualitative (e.g., ExistingPackagePlus) relationship."_

"An easy way to check whether your name is already in use is to check that the following command fails"

if (!requireNamespace("BiocManager"))
install.packages("BiocManager")
BiocManager::install("MyPackage")
antagomir commented 1 year ago

For discussion on SummarizedExperiment, see #3

antagomir commented 1 year ago

Bioconductor has some additional requirements for package development, compared to CRAN, as described in the package guidelines.

One can add BiocCheck to automated build checks. These must pass without errors or substantial warnings/notes before Bioc submission is possible.

~/bin/R-4.2.0/bin/R CMD build ./ 
~/bin/R-4.2.0/bin/R CMD check pkgname_1.2.3.tar.gz 
~/bin/R-4.2.0/bin/R CMD BiocCheck pkgname_1.2.3.tar.gz
~/bin/R-4.2.0/bin/R CMD INSTALL pkgname_1.2.3.tar.gz 
darcyj commented 1 year ago

I think it could still go in BioConductor because there isn't a current CRAN package with the name. Note that install.packages("specificity") doesn't do anything.

antagomir commented 1 year ago

Yes that's a good point.