Re: [R-pkg-devel] Package can't be imported with Suggests

2020-08-07 Thread Simon Bonner
Hi all,

Thanks for the suggestions and comments. I found a way to allow nimble to work 
and avoid the note when checking the package. My solution is to use:

requireNamespace(nimble)
attachNamespace("nimble")

I have a feeling that this may be against the spirit of the check (I believe 
that it essentially replicates library()), but it does allow nimble to find its 
own functions without any notes.

Cheers,

Simon



Simon Bonner
Assistant Professor of Environmetrics
Department of Statistical and Actuarial Sciences
University of Western Ontario
 
Office: Western Science Centre rm 276
 
Email: sbonn...@uwo.ca | Telephone: 519-661-2111 x88205 | Fax: 519-661-3813
Twitter: @bonnerstatslab | Website: http://simon.bonners.ca/bonner-lab/wpblog/

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] Package can't be imported with Suggests

2020-08-06 Thread Dr . Jens Oehlschlägel
Dirk,

This sounds familiar: in package 'bit' for  

bit | bitwhich 

R did neither S3-dispatch to "|.bit" nor to "|.bitwhich" but nonsensically to 
the default method. 

It took me a while to reverse my class thinking enough to realize that I could 
get control by forcing dispatch to a common class 'booltype'.  So far this 
sounds harmless. But the truth is that to make this work 'booltype' must not be 
a common superclass but needs to be a subclass of 'bit' in bit-objects and 
needs to be a subclass of 'bitwhich' in bitwhich-objects. Only then the 
dispatch to "|.booltype" dominates and we get a seemingly conflict-free 
dispatch to "|.booltype" which then resolves possible conflicts. I hope using 
R's S3 class system upside-down does not introduce "another problem". Citing 
from "Beautiful Code":

"
it is worth bringing our discussion to an end by noting that Lampson attributes 
the aphorism that started our exploration (all problems in computer science can 
be solved by another level of indirection) to David Wheeler, the inventor of 
the subroutine. Significantly, Wheeler completed his quote with another phrase: 
"But that usually will create another problem."
"

Best

Jens



#
> Gesendet: Donnerstag, 06. August 2020 um 01:30 Uhr
> Von: "Dirk Eddelbuettel" 
> An: "William Dunlap" 
> Cc: "r-package-devel@r-project.org" 
> Betreff: Re: [R-pkg-devel] Package can't be imported with Suggests
>
> 
> On 5 August 2020 at 16:25, William Dunlap wrote:
> | You might make a second package that depends only on nimble and your
> | main package can then suggest that second package and JAGS.
> 
> Nice. "We can solve any problem by introducing an extra level of indirection."
> 
> See https://en.wikipedia.org/wiki/Fundamental_theorem_of_software_engineering
> 
> Dirk
>  
> | Bill Dunlap
> | TIBCO Software
> | wdunlap tibco.com
> | 
> | On Wed, Aug 5, 2020 at 3:36 PM Simon Bonner  wrote:
> | >
> | > Hi all,
> | >
> | > I’m wondering if someone an offer advice on a problem I’m facing in 
> developing a package.
> | >
> | > My package essentially generates code and formats data for one of two 
> MCMC sampling engines, JAGS accessed via rjags or nimble (a native R 
> package), calls the engines, and then provides functions to access the 
> results. Since only one of the engines is needed I would like to include 
> rjags and nimble in Suggests in the DESCRIPTION and use requireNamespace() to 
> load the appropriate package when its functionality is needed.
> | >
> | > Unfortunately, nimble will not work with this mechanism. It relies on a 
> complex mechanism to compile C++ code to run the sampler, and some of the 
> functions cannot be found when the package is loaded in this way. I’ve been 
> in touch with the maintainers and they are aware of the issue but the current 
> fix is to include the package under Depends. However, this forces a user to 
> install nimble (which itself requires compiling lengthy C++ code) even if the 
> user intends to run the sampler in JAGS.
> | >
> | > I thought I’d solved the problem by including nimble in Suggests and then 
> loading it via library() so that all of its functions are attached. This 
> works, but produces a note during the check:
> | > ❯ checking dependencies in R code ... NOTE
> | >   'library' or 'require' call to ‘nimble’ in package code.
> | > Please use :: or requireNamespace() instead.
> | > See section 'Suggested packages' in the 'Writing R Extensions' manual
> | >
> | > What is the recommendation?
> | >
> | > I see two options:
> | >
> | >
> | >   1.  Include nimble in Depends and force user to install it.
> | >   2.  Ignore the note and explain the problem when I resubmit to CRAN.
> | >
> | > Am I missing anything?
> | >
> | > Thanks in advance!
> | >
> | > Simon
> | >
> | >
> | >
> | >
> | >
> | > Simon Bonner
> | > Assistant Professor of Environmetrics
> | > Department of Statistical and Actuarial Sciences
> | > University of Western Ontario
> | >
> | > Office: Western Science Centre rm 276
> | >
> | > Email: sbonn...@uwo.ca<mailto:sbonn...@uwo.ca> | Telephone: 519-661-2111 
> x88205 | Fax: 519-661-3813
> | > Twitter: @bonnerstatslab | Website: 
> http://simon.bonners.ca/bonner-lab/wpblog/
> | >
> | >
> | > [[alternative HTML version deleted]]
> | >
> | > __
> | > R-package-devel@r-project.org mailing list
> | > https://stat.ethz.ch/mailman/listinfo/r-package-devel
> | 
> | __
> | R-package-devel@r-project.org mailing list
> | https://stat.ethz.ch/mailman/listinfo/r-package-devel
> 
> -- 
> https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org
> 
> __
> R-package-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] Package can't be imported with Suggests

2020-08-05 Thread William Dunlap
You might make a second package that depends only on nimble and your
main package can then suggest that second package and JAGS.

Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Wed, Aug 5, 2020 at 3:36 PM Simon Bonner  wrote:
>
> Hi all,
>
> I’m wondering if someone an offer advice on a problem I’m facing in 
> developing a package.
>
> My package essentially generates code and formats data for one of two MCMC 
> sampling engines, JAGS accessed via rjags or nimble (a native R package), 
> calls the engines, and then provides functions to access the results. Since 
> only one of the engines is needed I would like to include rjags and nimble in 
> Suggests in the DESCRIPTION and use requireNamespace() to load the 
> appropriate package when its functionality is needed.
>
> Unfortunately, nimble will not work with this mechanism. It relies on a 
> complex mechanism to compile C++ code to run the sampler, and some of the 
> functions cannot be found when the package is loaded in this way. I’ve been 
> in touch with the maintainers and they are aware of the issue but the current 
> fix is to include the package under Depends. However, this forces a user to 
> install nimble (which itself requires compiling lengthy C++ code) even if the 
> user intends to run the sampler in JAGS.
>
> I thought I’d solved the problem by including nimble in Suggests and then 
> loading it via library() so that all of its functions are attached. This 
> works, but produces a note during the check:
> ❯ checking dependencies in R code ... NOTE
>   'library' or 'require' call to ‘nimble’ in package code.
> Please use :: or requireNamespace() instead.
> See section 'Suggested packages' in the 'Writing R Extensions' manual
>
> What is the recommendation?
>
> I see two options:
>
>
>   1.  Include nimble in Depends and force user to install it.
>   2.  Ignore the note and explain the problem when I resubmit to CRAN.
>
> Am I missing anything?
>
> Thanks in advance!
>
> Simon
>
>
>
>
>
> Simon Bonner
> Assistant Professor of Environmetrics
> Department of Statistical and Actuarial Sciences
> University of Western Ontario
>
> Office: Western Science Centre rm 276
>
> Email: sbonn...@uwo.ca | Telephone: 519-661-2111 
> x88205 | Fax: 519-661-3813
> Twitter: @bonnerstatslab | Website: http://simon.bonners.ca/bonner-lab/wpblog/
>
>
> [[alternative HTML version deleted]]
>
> __
> R-package-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] Package can't be imported with Suggests

2020-08-05 Thread Dirk Eddelbuettel


On 5 August 2020 at 16:25, William Dunlap wrote:
| You might make a second package that depends only on nimble and your
| main package can then suggest that second package and JAGS.

Nice. "We can solve any problem by introducing an extra level of indirection."

See https://en.wikipedia.org/wiki/Fundamental_theorem_of_software_engineering

Dirk
 
| Bill Dunlap
| TIBCO Software
| wdunlap tibco.com
| 
| On Wed, Aug 5, 2020 at 3:36 PM Simon Bonner  wrote:
| >
| > Hi all,
| >
| > I’m wondering if someone an offer advice on a problem I’m facing in 
developing a package.
| >
| > My package essentially generates code and formats data for one of two MCMC 
sampling engines, JAGS accessed via rjags or nimble (a native R package), calls 
the engines, and then provides functions to access the results. Since only one 
of the engines is needed I would like to include rjags and nimble in Suggests 
in the DESCRIPTION and use requireNamespace() to load the appropriate package 
when its functionality is needed.
| >
| > Unfortunately, nimble will not work with this mechanism. It relies on a 
complex mechanism to compile C++ code to run the sampler, and some of the 
functions cannot be found when the package is loaded in this way. I’ve been in 
touch with the maintainers and they are aware of the issue but the current fix 
is to include the package under Depends. However, this forces a user to install 
nimble (which itself requires compiling lengthy C++ code) even if the user 
intends to run the sampler in JAGS.
| >
| > I thought I’d solved the problem by including nimble in Suggests and then 
loading it via library() so that all of its functions are attached. This works, 
but produces a note during the check:
| > ❯ checking dependencies in R code ... NOTE
| >   'library' or 'require' call to ‘nimble’ in package code.
| > Please use :: or requireNamespace() instead.
| > See section 'Suggested packages' in the 'Writing R Extensions' manual
| >
| > What is the recommendation?
| >
| > I see two options:
| >
| >
| >   1.  Include nimble in Depends and force user to install it.
| >   2.  Ignore the note and explain the problem when I resubmit to CRAN.
| >
| > Am I missing anything?
| >
| > Thanks in advance!
| >
| > Simon
| >
| >
| >
| >
| >
| > Simon Bonner
| > Assistant Professor of Environmetrics
| > Department of Statistical and Actuarial Sciences
| > University of Western Ontario
| >
| > Office: Western Science Centre rm 276
| >
| > Email: sbonn...@uwo.ca | Telephone: 519-661-2111 
x88205 | Fax: 519-661-3813
| > Twitter: @bonnerstatslab | Website: 
http://simon.bonners.ca/bonner-lab/wpblog/
| >
| >
| > [[alternative HTML version deleted]]
| >
| > __
| > R-package-devel@r-project.org mailing list
| > https://stat.ethz.ch/mailman/listinfo/r-package-devel
| 
| __
| R-package-devel@r-project.org mailing list
| https://stat.ethz.ch/mailman/listinfo/r-package-devel

-- 
https://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


Re: [R-pkg-devel] Package can't be imported with Suggests

2020-08-05 Thread Gaurav Sood
I think the key line = " Unfortunately, nimble will not work with this
mechanism. "

Given that, depends seems like a good short-term solution. Change it to
suggests once the upstream problem is fixed.


On Wed, Aug 5, 2020 at 3:36 PM Simon Bonner  wrote:

> Hi all,
>
> I’m wondering if someone an offer advice on a problem I’m facing in
> developing a package.
>
> My package essentially generates code and formats data for one of two MCMC
> sampling engines, JAGS accessed via rjags or nimble (a native R package),
> calls the engines, and then provides functions to access the results. Since
> only one of the engines is needed I would like to include rjags and nimble
> in Suggests in the DESCRIPTION and use requireNamespace() to load the
> appropriate package when its functionality is needed.
>
> Unfortunately, nimble will not work with this mechanism. It relies on a
> complex mechanism to compile C++ code to run the sampler, and some of the
> functions cannot be found when the package is loaded in this way. I’ve been
> in touch with the maintainers and they are aware of the issue but the
> current fix is to include the package under Depends. However, this forces a
> user to install nimble (which itself requires compiling lengthy C++ code)
> even if the user intends to run the sampler in JAGS.
>
> I thought I’d solved the problem by including nimble in Suggests and then
> loading it via library() so that all of its functions are attached. This
> works, but produces a note during the check:
> ❯ checking dependencies in R code ... NOTE
>   'library' or 'require' call to ‘nimble’ in package code.
> Please use :: or requireNamespace() instead.
> See section 'Suggested packages' in the 'Writing R Extensions' manual
>
> What is the recommendation?
>
> I see two options:
>
>
>   1.  Include nimble in Depends and force user to install it.
>   2.  Ignore the note and explain the problem when I resubmit to CRAN.
>
> Am I missing anything?
>
> Thanks in advance!
>
> Simon
>
>
>
>
>
> Simon Bonner
> Assistant Professor of Environmetrics
> Department of Statistical and Actuarial Sciences
> University of Western Ontario
>
> Office: Western Science Centre rm 276
>
> Email: sbonn...@uwo.ca | Telephone: 519-661-2111
> x88205 | Fax: 519-661-3813
> Twitter: @bonnerstatslab | Website:
> http://simon.bonners.ca/bonner-lab/wpblog/
>
>
> [[alternative HTML version deleted]]
>
> __
> R-package-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>

[[alternative HTML version deleted]]

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel


[R-pkg-devel] Package can't be imported with Suggests

2020-08-05 Thread Simon Bonner
Hi all,

I’m wondering if someone an offer advice on a problem I’m facing in developing 
a package.

My package essentially generates code and formats data for one of two MCMC 
sampling engines, JAGS accessed via rjags or nimble (a native R package), calls 
the engines, and then provides functions to access the results. Since only one 
of the engines is needed I would like to include rjags and nimble in Suggests 
in the DESCRIPTION and use requireNamespace() to load the appropriate package 
when its functionality is needed.

Unfortunately, nimble will not work with this mechanism. It relies on a complex 
mechanism to compile C++ code to run the sampler, and some of the functions 
cannot be found when the package is loaded in this way. I’ve been in touch with 
the maintainers and they are aware of the issue but the current fix is to 
include the package under Depends. However, this forces a user to install 
nimble (which itself requires compiling lengthy C++ code) even if the user 
intends to run the sampler in JAGS.

I thought I’d solved the problem by including nimble in Suggests and then 
loading it via library() so that all of its functions are attached. This works, 
but produces a note during the check:
❯ checking dependencies in R code ... NOTE
  'library' or 'require' call to ‘nimble’ in package code.
Please use :: or requireNamespace() instead.
See section 'Suggested packages' in the 'Writing R Extensions' manual

What is the recommendation?

I see two options:


  1.  Include nimble in Depends and force user to install it.
  2.  Ignore the note and explain the problem when I resubmit to CRAN.

Am I missing anything?

Thanks in advance!

Simon





Simon Bonner
Assistant Professor of Environmetrics
Department of Statistical and Actuarial Sciences
University of Western Ontario

Office: Western Science Centre rm 276

Email: sbonn...@uwo.ca | Telephone: 519-661-2111 x88205 
| Fax: 519-661-3813
Twitter: @bonnerstatslab | Website: http://simon.bonners.ca/bonner-lab/wpblog/


[[alternative HTML version deleted]]

__
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel