[Rcpp-devel] Rcpp and required steps before next release

Romain François romain at r-enthusiasts.com
Tue Jan 28 17:28:40 CET 2014


Just don’t assume you can #include anything else than Rcpp.h and RcppCommon.h (but this one only if you need to provide custom wrap and as). 

Romain

Le 28 janv. 2014 à 17:24, Steffen Neumann <sneumann at ipb-halle.de> a écrit :

> Hi,
> 
> I just pushed mzR-1.9.4 to BioC-SVN, which only required a change 
> of #include's in src/pwiz/utility/misc/sha1calc.cpp
> 
> "[...] because it tries to include Rcpp/iostream/Rostream.h, 
> which no longer exists 
> (consolidated into Rcpp/iostream/Rstreambuf.h) [...]"
> 
> => Since when does Rstreambuf.h exist ? (Almost) always ? 
>   Or should we have a versioned Dependency on Rcpp here ?
> 
> It passes R CMD check with R version 3.0.2 (2013-09-25) 
> and Rcpp_0.10.6.1
> 
> Yours,
> Steffen
> 
> 
> 
> 
> 
> On Mon, 2014-01-27 at 19:35 -0600, Dirk Eddelbuettel wrote:
>> All,
>> 
>> A new Rcpp release is ready. But we need to take a few step to get to it.
>> 
>> With considerable help from Kevin Ushey, I have spent the last two weeks
>> testing this release against all known [but 5] CRAN dependents (and Kevin did
>> the same for BioConductor), identifying and correcting a few last minute
>> issues, and preparing patches for the few packages which need a change. More
>> on that below. Per JJ's suggestion, we also rebuilt the entire Rcpp Gallery
>> which lead to another fix.
>> 
>> So in sum, we are at the same time excited about the new release, and pretty
>> confident that it will be a reasonably smooth passage.
>> 
>> There is one major change in the build process: Romain changed Rcpp to
>> instantiate all required symbols via registration with R (see Section 5.4 of
>> Writing R Extensions).  The non-technical upshot is that there is no longer a
>> linking step, and src/Makevars will go away for most packages. [ Exceptions:
>> Armadillo users still to link to LAPACK,BLAS,FORTAN as provided by R; those
>> using an external library still need to link to it too. But no more linking
>> to Rcpp. ]
>> 
>> [ The release also brings a run-time change. You will probably have to
>>  reinstall all packages using Rcpp on all your systems. See below for a
>>  pointer to a short script finding all those packages. ]
>> 
>> I kept track of all the testing, scripts, logs and patches here:
>> 
>>     https://github.com/RcppCore/rcpp-logs
>> 
>> What follows below is the file status/status-2014-01-27.txt summarizing
>> things.  Please give it a read (below, or via the repo).  I will also contact
>> the maintainers of the fifteen packages needed a simple Imports:/importFrom:
>> patch, and those of the three other packages with issues.
>> 
>> Per discussion with the CRAN maintainers, it has been suggested to plan a
>> week for this next step of prepating the client packages.  
>> 
>> In case of questions, please do not hesitate to email me, or better still,
>> the rcpp-devel list here.
>> 
>> Regards,
>> 
>> Dirk 
>> on behalf of the Rcpp Core team
>> 
>> 
>> 
>> 
>> 
>> Release status of Rcpp as of 2014-01-27
>> =======================================
>> 
>> 
>> Summary
>> -------
>> 
>> Running the script summarizing results straight out of its repo:
>> 
>>    edd at max:~/git/rcpp-logs$ Rscript results/Rcpp-Summary-20140112.R 
>>    Good          157 
>>      AsIs        139
>>      w/Imports   15 
>>      w/Other     2
>>      w/Question  1 
>>    Bad Rcpp      0 
>>      RcppApi     0 
>>      Unclear     0 
>>    Bad other     6 
>>      BioCDep     4 
>>      NotRcpp     1 
>>      Skipped     1 
>>    Total         163 
>>    Bad Rcpp Pct  0 
>> 
>> The scripts contains more details and comments. It reflect two weeks of
>> testing, patching and refinements following an initial batch test on Jan 12.
>> 
>> The script, patches, summary (as well as old release checks) are in the
>> repository at https://github.com/RcppCore/rcpp-logs
>> 
>> 
>> Current state:
>> --------------
>> 
>> Rcpp development sources are in the GitHub repo 
>> 
>>    https://github.com/RcppCore/Rcpp
>> 
>> and build and test fine.  
>> 
>> The rest of this post is about how this version fares relative to existing
>> CRAN packages with a reverse dependency on Rcpp.
>> 
>> 
>> Good packages: Works "As Is"
>> ----------------------------
>> 
>> The vast majority of packages -- 139 in total -- build as-is under the
>> upcoming Rcpp releease, including 'R CMD check' which is very satisfying.
>> 
>> 
>> Good packages: Need an Imports / importFrom update
>> --------------------------------------------------
>> 
>> Fifteen packages need to 
>> 
>>    i)  add   Imports: Rcpp               to DESCRIPTION
>> 
>>    ii) add   importFrom(Rcpp, evalCpp)   to NAMESPACE
>> 
>> Note that just adding import(Rcpp) does not suffice.
>> 
>> We have provided patches in this Github repo / directory:
>> 
>>    https://github.com/RcppCore/rcpp-logs/tree/master/patches/2014-01
>> 
>> for the following packages
>> 
>>    CDM-2.4-9.patch
>>    fdaMixed-0.3.patch
>>    gRbase-1.6-12.patch
>>    gRim-0.1-17.patch
>>    HLMdiag-0.2.3.patch
>>    lme4-1.05.patch
>>    openair-0.9-0.patch
>>    rgam-0.6.2.patch
>>    Ruchardet-0.0-2.patch
>>    Rvcg-0.6-3.patch
>>    SBSA-0.2.2.patch
>>    sirt-0.41-21.patch
>>    SpatialTools-0.5.5.patch
>>    strum-0.1.patch
>>    TAM-1.0-0.patch
>> 
>> I will also contact each of these maintainers by email.
>> 
>> 
>> Good packages: Need another update / fix
>> ----------------------------------------
>> 
>> Two remaining package needs to apply a minimal change to their include files
>> and order (in essence: include just Rcpp.h, or RcppArmadillo.h, and no other
>> Rcpp* headers as this can often derail some internal interdependencies).
>> 
>> We have provided patches in this Github repo / directory:
>> 
>>    https://github.com/RcppCore/rcpp-logs/tree/master/patches/2014-01
>> 
>> for the following package
>> 
>>    httpuv-1.2.1.patch
>> 
>> The dplyr package is already fixed in its repo as well and builds, but needs
>> an update on CRAN. I also suggested a minor update to the examples (which do
>> not always check if packages from a Suggests: are installed as it should).
>> 
>> A few of our packages neededed fixes as well, we first updated them in their
>> respective R-Forge or GitHub repos, and have since uploaded them to CRAN:
>> RQuantLib, RcppClassic, RcppEigen, RcppZiggurat as well as an earlier change
>> in RProtoBuf
>> 
>> Special thanks to Alexios who already applied patches to rugarch and rmgarch,
>> and uploaded those new versions to CRAN, and to Martin Vincent who relaxed a
>> test condition in his sglOptim and uploaded it to CRAN.
>> 
>> 
>> Good packages: Open question
>> ----------------------------
>> 
>> Amelia builds, and tests fine -- but loops forever in one segment in the
>> vignette.  After discussing this with Matt it was concluded that this is
>> probably an Amelia issue.
>> 
>> 
>> Bad/unknown packages: Missing Depends on BioConductor
>> -----------------------------------------------------
>> 
>> Four packages were not tested as their Depends included BioConductor packages:
>> 
>>     GeneticTools GOsummaries orQA snplist 
>> 
>> It would be nice if someone with BioC installs could test these.
>> 
>> 
>> Bad/unknown: Not Rcpp
>> ---------------------
>> 
>> One packages has anoother issues:
>> 
>>     roxygen2  does not terminate its unit test
>> 
>> 
>> Bad/skipped: Not tested
>> -----------------------
>> 
>> As before, we have excluded the quadrupen package as its test appears to run
>> for hours on end.
>> 
>> 
>> BioConductor
>> ------------
>> 
>> Kevin also tested the sixteen or so BioConductor packages, see 
>> 
>>     https://github.com/kevinushey/RcppBiocChecks
>> 
>> One package needs one of our fixed packages, another fails with an include
>> issue similar to the one reported above -- and the rest passes.
>> 
>> 
>> Summary
>> =======
>> 
>> We consider Rcpp ready for release.  
>> 
>> Per discussion with CRAN, we plan to upload Rcpp in a week from giving
>> maintainers time to apply the patches we prepared.
>> 
>> 
>> 
>> Appendix
>> --------
>> 
>> There is also a run-time issue.  We recommend to reinstall all packages that
>> use Rcpp.  A helper script is provided at 
>> 
>>   https://github.com/RcppCore/rcpp-logs/blob/master/scripts/showReverseRcppDepends.r
>> 
>> which lists installed package that use Rcpp, and for which current sources
>> are (or are not) currently available on CRAN and its mirrors.
>> 
>> 
> 
> 
> -- 
> IPB Halle                    AG Massenspektrometrie & Bioinformatik
> Dr. Steffen Neumann          http://www.IPB-Halle.DE
> Weinberg 3                   http://msbi.bic-gh.de
> 06120 Halle                  Tel. +49 (0) 345 5582 - 1470
>                                  +49 (0) 345 5582 - 0
> sneumann(at)IPB-Halle.DE     Fax. +49 (0) 345 5582 - 1409
> 
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel



More information about the Rcpp-devel mailing list