[R] Forking and adapting an R package

timo at timogrossenbacher.ch timo at timogrossenbacher.ch
Thu Jul 14 08:40:37 CEST 2016


On Jul 13, 2016 15:02, Adams, Jean wrote:
>
> Timo,
>
> A couple of thoughts ...
>
> First, could you achieve what you want by simply modifying (your own copies
> of) a function or two from the hexbin package, without having to modify the
> entire package?  This might give you fewer tripping points.
>

Good point, how would I do this? Just copy-paste the original source and
redeclare/overwrite the functions within my use case script?

> Second, right after you forked the package (so that you have a copy on your
> own space on GitHub) and before you modified anything ... were you able to
> install and use the package from there successfully?
>>
>> library("devtools")
>> devtools::install_github("grssnbchr/hexbin")
>> library(hexbin)
>

I basically forked and cloned it, and then ran devtools::check() without
modifying anything, and it threw an error when compiling the vignette. Also
building fails this way. It seems to work fine when installed with
devtools::install_github(). Weird, I know.

Anyhow, the question with (modifying and) debugging a (forked) package in order
to understand how it works still stands, maybe there's something in Hadley's
book that I oversaw.

Timo

>
> Jean
>
> On Tue, Jul 12, 2016 at 6:28 AM, <timo at timogrossenbacher.ch> wrote:
>>
>> Hello.
>>
>> I'm trying to adapt the package “hexbin” to suit my needs. This is the first
>> time I do this. I've read a bit through Hadley's “R packages”, but now I'm
>> pretty lost (from a workflow point of view). I am using RStudio and Hadley's
>> devtools.
>>
>> So I forked the repo I want to adapt: https://github.com/grssnbchr/hexbin
>>  and
>> cloned it using RStudio (I created a new project). What I basically want to
>> do
>> is adapt the package slightly and use the adapted source on my use case (an
>> Rmd
>> file in another location) - ideally, I would call the respective function
>> (hexbin::grid.hexagons) in the Rmd and the source code of “hexbin” would be
>> called and debugged (just for understanding what the package “hexbin”
>> actually
>> does in that case, I do not have to build it yet, or even publish it). What
>> is
>> the workflow for this?
>>
>> Also, I tried running devtools::check() and it already fails there:
>> R version 3.2.5 (2016-04-14) -- "Very, Very Secure Dishes"
>>
>> Platform: x86_64-pc-linux-gnu (64-bit)
>>
>> > devtools::check()
>> Updating hexbin documentation
>> Loading hexbin
>> Creating a generic function for ‘plot’ from package ‘graphics’ in package
>> ‘hexbin’
>> Creating a generic function for ‘summary’ from package ‘base’ in package
>> ‘hexbin’
>> Setting env vars
>> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>> CFLAGS : -Wall -pedantic
>> CXXFLAGS: -Wall -pedantic
>> Building hexbin
>> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>> '/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet
>> CMD build '/home/tgrossen/R/hexbin' --no-resave-data --no-manual
>>
>> * checking for file ‘/home/tgrossen/R/hexbin/DESCRIPTION’ ... OK
>> * preparing ‘hexbin’:
>> * checking DESCRIPTION meta-information ... OK
>> * cleaning src
>> * installing the package to build vignettes
>> * creating vignettes ... ERROR
>>
>> Error: processing vignette 'hexagon_binning.Rnw' failed with diagnostics:
>>  chunk 1 (label = comphexsq)
>> Error in eval(expr, envir, enclos) : could not find function “hexbin”
>> Execution halted
>> Error: Command failed (1)
>>
>> As you can see, I am very much lost. I googled for "adapt R package and
>> debug"
>> and so forth but couldn't find any tutorial or anything.
>>
>> Thanks,
>>
>> Timo
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
>



More information about the R-help mailing list