nolanlab / Rclusterpp

Memory efficient clustering in R for large datasets
Other
20 stars 11 forks source link

CRAN Resubmission #15

Closed jtlandis closed 2 years ago

jtlandis commented 2 years ago

Hello,

I was wondering if the maintainer would be willing to try and resubmit this package to CRAN. A colleague and I would like to submit a package to CRAN that also depends on this package. I had forked this repository to my own Github and made a few edits. These edits include:

With these changes I was able to build this with the github actions which had built for all OS except for MacOS. The issue with Mac OS seems to be with the use of pointer_to_binary_function and functions like this that have been deprecated in C++11.

I believe this will still be permissible for CRAN. Please let me know if this is something you are willing to do.

SamGG commented 2 years ago

Dear @rbruggner, could you have a look to the proposed PR? Best.

bnaras commented 2 years ago

I'll take a look at this later this week.

rbruggner commented 2 years ago

@bnaras If you don't have time to take a look, i can probably work on in the next week or two - lmk!

bnaras commented 2 years ago

I merged this, but still several warnings on deprecated headers... The pragma warnings are harmless, but the deprecated warnings will not pass CRAN. @rbruggner can you take a look at this, please? See attached. 00install.txt

rbruggner commented 2 years ago

Yes - I can take a look this week.

rbruggner commented 2 years ago

Quick update - I wasn't able to recreate the pragma warnings in linux. Will get access to a mac os x env for testing soon...

mlinderm commented 2 years ago

@rbruggner @bnaras I had offered to resubmit to CRAN. So I don't repeat any work already done, is that something you have already done? Or should I go ahead and resubmit Rob's latest version (which suppresses the deprecated warnings)?

bnaras commented 2 years ago

It won't pass CRAN checks because of the warnings and so it cannot be submitted as it stands now.

Karna:GitHub naras$ R CMD check Rclusterpp_0.2.6.tar.gz --as-cran
* using log directory ‘/Users/naras/GitHub/Rclusterpp.Rcheck’
* using R version 4.2.0 (2022-04-22)
* using platform: x86_64-apple-darwin21.3.0 (64-bit)
* using session charset: UTF-8
* using option ‘--as-cran’
* checking for file ‘Rclusterpp/DESCRIPTION’ ... OK
* checking extension type ... Package
* this is package ‘Rclusterpp’ version ‘0.2.6’
* package encoding: UTF-8
* checking CRAN incoming feasibility ... NOTE
Maintainer: ‘Balasubramanian Narasimhan <naras@stanford.edu>’

New submission

Package was archived on CRAN

The Date field is over a month old.
* checking package namespace information ... OK
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking if there is a namespace ... OK
* checking for executable files ... OK
* checking for hidden files and directories ... OK
* checking for portable file names ... OK
* checking for sufficient/correct file permissions ... OK
* checking serialization versions ... OK
* checking whether package ‘Rclusterpp’ can be installed ... OK
* checking installed package size ... OK
* checking package directory ... OK
* checking for future file timestamps ... OK
* checking ‘build’ directory ... OK
* checking DESCRIPTION meta-information ... OK
* checking top-level files ... WARNING
A complete check needs the 'checkbashisms' script.
See section ‘Configure and cleanup’ in the ‘Writing R Extensions’
manual.
* checking for left-over files ... OK
* checking index information ... OK
* checking package subdirectories ... OK
* checking R files for non-ASCII characters ... OK
* checking R files for syntax errors ... OK
* checking whether the package can be loaded ... OK
* checking whether the package can be loaded with stated dependencies ... OK
* checking whether the package can be unloaded cleanly ... OK
* checking whether the namespace can be loaded with stated dependencies ... OK
* checking whether the namespace can be unloaded cleanly ... OK
* checking loading without being on the library search path ... OK
* checking use of S3 registration ... OK
* checking dependencies in R code ... OK
* checking S3 generic/method consistency ... OK
* checking replacement functions ... OK
* checking foreign function calls ... OK
* checking R code for possible problems ... OK
* checking Rd files ... OK
* checking Rd metadata ... OK
* checking Rd line widths ... OK
* checking Rd cross-references ... OK
* checking for missing documentation entries ... OK
* checking for code/documentation mismatches ... OK
* checking Rd \usage sections ... OK
* checking Rd contents ... OK
* checking for unstated dependencies in examples ... OK
* checking line endings in shell scripts ... OK
* checking line endings in C/C++/Fortran sources/headers ... OK
* checking line endings in Makefiles ... OK
* checking compilation flags in Makevars ... OK
* checking for GNU extensions in Makefiles ... OK
* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK
* checking use of PKG_*FLAGS in Makefiles ... OK
* checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK
* checking include directives in Makefiles ... OK
* checking pragmas in C/C++ headers and code ... NOTE
Files which contain pragma(s) suppressing diagnostics:
  ‘inst/include/Rclusterpp/algorithm.h’
  ‘inst/include/Rclusterpp/method.h’
* checking compilation flags used ... OK
* checking compiled code ... OK
* checking installed files from ‘inst/doc’ ... OK
* checking files in ‘vignettes’ ... OK
* checking examples ... OK
* checking for unstated dependencies in ‘tests’ ... OK
* checking tests ...
  Running ‘doRUnit.R’
 OK
* checking for unstated dependencies in vignettes ... OK
* checking package vignettes in ‘inst/doc’ ... OK
* checking re-building of vignette outputs ... OK
* checking PDF version of manual ... OK
* checking HTML version of manual ... NOTE
Found the following problems:
Rclusterpp-package.Rd:4:1: Warning: <link> inserting "type" attribute
Rclusterpp-package.Rd:12:1: Warning: <script> proprietary attribute "onload"
Rclusterpp-package.Rd:12:1: Warning: <script> inserting "type" attribute
Rclusterpp-package.Rd:17:1: Warning: <table> lacks "summary" attribute
Rclusterpp.hclust.Rd:4:1: Warning: <link> inserting "type" attribute
Rclusterpp.hclust.Rd:12:1: Warning: <script> proprietary attribute "onload"
Rclusterpp.hclust.Rd:12:1: Warning: <script> inserting "type" attribute
Rclusterpp.hclust.Rd:17:1: Warning: <table> lacks "summary" attribute
Rclusterpp.hclust.Rd:37:1: Warning: <table> lacks "summary" attribute
Rclusterpp.linkageKinds.Rd:4:1: Warning: <link> inserting "type" attribute
Rclusterpp.linkageKinds.Rd:12:1: Warning: <script> proprietary attribute "onload"
Rclusterpp.linkageKinds.Rd:12:1: Warning: <script> inserting "type" attribute
Rclusterpp.linkageKinds.Rd:17:1: Warning: <table> lacks "summary" attribute
Rclusterpp.package.skeleton.Rd:4:1: Warning: <link> inserting "type" attribute
Rclusterpp.package.skeleton.Rd:12:1: Warning: <script> proprietary attribute "onload"
Rclusterpp.package.skeleton.Rd:12:1: Warning: <script> inserting "type" attribute
Rclusterpp.package.skeleton.Rd:17:1: Warning: <table> lacks "summary" attribute
Rclusterpp.package.skeleton.Rd:42:1: Warning: <table> lacks "summary" attribute
Rclusterpp.setThreads.Rd:4:1: Warning: <link> inserting "type" attribute
Rclusterpp.setThreads.Rd:12:1: Warning: <script> proprietary attribute "onload"
Rclusterpp.setThreads.Rd:12:1: Warning: <script> inserting "type" attribute
Rclusterpp.setThreads.Rd:17:1: Warning: <table> lacks "summary" attribute
Rclusterpp.setThreads.Rd:37:1: Warning: <table> lacks "summary" attribute
* checking for non-standard things in the check directory ... OK
* checking for detritus in the temp directory ... OK
* DONE

Status: 1 WARNING, 3 NOTEs
See
  ‘/Users/naras/GitHub/Rclusterpp.Rcheck/00check.log’
for details.
mlinderm commented 2 years ago

@bnaras It seems like the only real note is the following. Would that lead to rejection?

* checking pragmas in C/C++ headers and code ... NOTE
Files which contain pragma(s) suppressing diagnostics:
  ‘inst/include/Rclusterpp/algorithm.h’
  ‘inst/include/Rclusterpp/method.h’
bnaras commented 2 years ago

Yes, unfortunately. It should be relatively easy to fix the root cause, I'd think. @rbruggner ?

rbruggner commented 2 years ago

I have relatively little CRAN xp so hard for me to know what passes the bar or not.

My brief readings on the warnings lead me to believe that the RccpEigen package was most of root cause, and the RcppEigen maintainer (Dirk, super experienced) just recommended to suppress the warnings, so that's what I went for.

Warnings suppressions were added in https://github.com/nolanlab/Rclusterpp/commit/6a172904a8d401a7ade1e8fdcba17980cf681d5e so at this point, maybe we just submit and see if we get rejected? @mlinderm I have not tried to submit to cran yet.

Up to y'all!

bnaras commented 2 years ago

@rbruggner I see. I didn't examine the warning carefully. Some warnings from Eigen are expected and my packages generate those too. Why don't you try submitting to CRAN and see what happens. In the submission, be sure to note in the comment field that the notes and warnings are coming from RcppEigen and that you're following the recommendations of the the RcppEigen author Dirk.