Hi Dirk, > On Oct 3, 2019, at 10:20 AM, Dirk Eddelbuettel <e...@debian.org> wrote: > > > Hi John, > > On 3 October 2019 at 13:56, Fox, John wrote: > | > On Oct 3, 2019, at 9:11 AM, Dirk Eddelbuettel <e...@debian.org> wrote: > | > On 3 October 2019 at 10:10, Driver, Charles wrote: > | > | I have a function that outputs / compiles some latex. To do this I use > Sys.which('pdflatex') and if nothing is found, prompt the user whether to > install tinytex package. So, normally I understand the use of 'Suggests' in > the package description to be for when there are only certain functions / > tests that require the package. In this case, the package requirement is also > conditional on other software (ie a tex distribution) not being found, > otherwise it is unnecessary. There are no tests or examples that depend on > the package. Should tinytex be in the 'Suggests' list? > | > > | > A few suggestions: > | > > | > - IIRC CRAN Policy asks you to not have interactive prompts, and clearly > | > prohibits messing with the system. So no to the prompt to install. > | > | Can you point to where in the CRAN policies this behaviour is prohibited? > > Well I hedged my bet with "IIRC".
Yes, I noticed that, but didn't want people to be potentially misled since you didn't "RC" ;) > Interactive prompts are neither explicitly > allowed, nor disallowed, but the larger paragraph you quote from gives some > hints. Now, turning from the 'letter of the law' to the 'spirit of the law', > how many packages have you checked in the 25+ years of using R? As it turns out, a lot, but I'm sure vastly fewer than you. The car package, e.g., has many reverse dependencies that I check before a new version of the package goes to CRAN. > How often > would you have wanted an interactive prompt? Well, never of course, but shouldn't interactive prompts only appear in interactive sessions -- e.g., enclosed in if (interactive()) {} in an example? Moreover, I wasn't trying to argue that one *should* necessarily do this, just point out that one can in certain circumstances without violating CRAN policies. In the original context of this thread, a simple error message indicating that LaTeX is absent probably would suffice. Best, John > I just ran reverse depends for > both Rcpp and RcppArmadillo in the last 48 hours so that is 2000+ packages -- > and I am rather glad I didn't face prompts for any one of those 2000+. > > | The closest I can see is: "Packages should not write in the user’s home > filespace (including clipboards), nor anywhere else on the file system apart > from the R session’s temporary directory ... " But then, "Limited exceptions > may be allowed in interactive sessions if the package obtains confirmation > from the user." > | > | Moreover, the tinytex package does precisely these kinds of things, > including installing LaTeX. > > And tinytex is something I keep finding problematic as it creates an > obfuscation layer. There was a recent (purely latex-side) bug I fixed in one > of my packages after an alert from CRAN. But the additional tinytex layer > made the latex-side error incomprehensible to misleading to the point where > the CRAN maintainer was mislead (as I was later). Running plain tex is > better. I so wish tinytex would let me opt out and render directly via > tools::texi2pdf but sadly I have no such option. I understand that tinytex > seems to help on some platforms without working infrastruture; I have always > had working (and extensible) texlive around due to the OS/distro I use. > > Anyway, this is going off-topic. It might be nice for R to offer a query > whether 'is tex available?' just how capabilities() and extSoftVersion() > gives hint on some other optional capabilities (which are arguably closer to > its core). > > Dirk > > -- > http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel