The devtools package makes it all lot less painful, so start by installing 
that. https://cran.r-project.org/web/packages/devtools/README.html 
<https://cran.r-project.org/web/packages/devtools/README.html>

ESS has a minor mode ess-r-package-mode that will drive devtools commands, for 
instance ess-r-devtools-load-package (C-c C-w C-l) will recompile and reload 
all the code in your package while working around locked namespaces.

(in an R buffer in a package source directory)
M-x ess-r-package-mode
C-c C-w C-l

When activated in a R buffer, ess-r-package-mode makes it so that evaluating 
definitions in that a buffer goes into the package namespace (I usually just 
C-(c-w-l) so I’m not super clear on what’s going on there )

Peter

> On Mar 7, 2018, at 17:28, Boylan, Ross <ross.boy...@ucsf.edu> wrote:
> 
> Can anyone suggest to me a good way to develop R packages with ESS?  "good" 
> here means that I  can debug the code and make changes to the code without 
> rebuilding the whole package.
> 
> So far I've tried a bunch of different approaches, but none has quite worked.
> 
> 1. When I had an old (or even new) version of the package in the standard 
> load paths I tended to get "namespace is locked" errors when I modified the 
> code and attempted to read it in.  So I deleted the installation in the 
> standard path.
> 
> 2. Wrote a script that sourced all the .R files.  But when I change them and 
> reload in ESS I get the error "unable to load <mylibrary>", even if I do C-c 
> C-t C-s to turn off the namespace.  I suspected the problem might have been 
> from evaluating vignette code in an .rnw file, but even if I copied and 
> pasted it into the the main *R* buffer I still get the problem:
> Loading required package: LazarSim
> Error in .requirePackage(package) (from SimParameters.R#35) :                 
>                                                                               
>                                  
>   unable to find required package ‘LazarSim’
> In addition: Warning message:
> In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return 
> = TRUE,  :
>   there is no package called ‘LazarSim’
> BTW, that error happened after I attempted to execute some code from the 
> package, not when I issued any load/library/require type command.
> 
> R is running in the directory above the package directory.
> Grep confirms my recollection that I don't have code that does require().
> Maybe R overrides the basic code for sourcing files?  My test file uses 
> source() to load the source files, which are in the package directory.
> 
> Thanks for any help.
> Ross
> ______________________________________________
> ESS-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/ess-help


        [[alternative HTML version deleted]]

______________________________________________
ESS-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/ess-help

Reply via email to