From lbraglia at gmail.com  Sun Jul 27 16:46:03 2014
From: lbraglia at gmail.com (Luca Braglia)
Date: Sun, 27 Jul 2014 16:46:03 +0200
Subject: [Rd] [Wishlist] a 'PackageDevelopment' Task View
In-Reply-To: <8E2B1A5C-6EC9-4E2E-AEA5-189AA8644361@gmail.com>
References: <CAFOm_+7DUEbtPwz_KS+EEQwsWO9Y7-byhBL4Zki=HP9qGCegxQ@mail.gmail.com>
	<53D24DBB.4070901@gmail.com>
	<CAFOm_+7xQwfpmV+VvWUPi6Cu_5Jf=j34gUobqzTnNhp5ymQMrQ@mail.gmail.com>
	<8E2B1A5C-6EC9-4E2E-AEA5-189AA8644361@gmail.com>
Message-ID: <20140727144602.GA3424@np350v5c>

On 27/07/14 -  09:33, Christophe Dutang wrote:
> Hi Luca,
> 
> Let me suggest to follow the table of contents of http://cran.r-project.org/doc/manuals/r-release/R-exts.html
> 
> For example, you could use the following TOC:
> 
> 1 - Creating R pkg
> 2 - Writing documentation and vignettes
> 3 - Profiling code
> 4 - Debugging, spell checking
> 5 - Foreign languages interfaces
> 6 - GUI and other frond-ends 
> 7 - Unit testing
> 8 - Benchmarking
> 9 - Automation
> 
> 
> Maybe 7 and 8 could be merged?
> 


Thanks Christophe for the feedback

I'm starting to think I'd like to keep the "Source Code" section
separated from the "Documentation" section ...  eg ideally the
macro topics could be in this order

1 - Creation
2 - Source Code
3 - Documentation
4 - Tools and services (was "Automation")

Furthermore IMHO a granular sub-topic structure is a plus (eg
few packages for a distinct/well-focused task is no problem,
maybe a resource ... )

An updated temp TOC (integrating your ideas, and some new
packages listed) could be

==============================================================

1 - Creation


  o Creating R packages - utils::package.skeleton, pkgKitten,
    Rcpp::Rcpp.package.skeleton 


2 - Source code


  o Foreign languages interfaces - base R support for that,
    inline, Rcpp , Rcpp11, rJava 

  o Debugging - base::debug utils::recover and friends

  o Code analysis - codetools

  o Profiling - utils::Rprof, aprof, profr, proftools 

  o Benchmarking - base::system.time, microbenchmarking, rbenchmark 

  o Unit testing - RUnit, svUnit, testthat 


3 - Documentation


  o Writing Package Documentation (functions, data sets, classes
    and methods, packages) - roxygen2

  o Writing Vignettes - Sweave, knitr

  o Spell checking - tools::aspell_package_* functions
   
 
4 - Tools and services


  o Editors (supporting package development)
  
  o IDEs (supporting package development)

  o Makefiles

  o Revision control (most common in the R community): 
    subversion, git

  o Hosting services (most common in the R community): 
    r-forge, github


==============================================================


I have a few doubts if "8.Linking GUIs and other front-ends to R"
from R-exts could be strictly in topic with _R_package_
development (eg looking at the list above) but not much
experience in that area and jm2c.

And I have to integrate these Gabor's suggestions yet :

1) List the software mentioned here or provide links:
   http://en.wikibooks.org/wiki/R_Programming/Settings#Integrated_development_environment
   http://en.wikipedia.org/wiki/Comparison_of_open-source_software_hosting_facilities
   http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
   http://en.wikipedia.org/wiki/Continuous_integration#Software

2) Go through the R Extensions manual and add all tools listed.

3) Use of Rcpp/Rcpp11 implies the use of C++ tools too and use of
   rjava implies java tools.




Further ideas/comments/proposals are welcome.


Cheers, Luca



[Rd] [Wishlist] a 'PackageDevelopment' Task View
Luca Braglia