[R-pkg-devel] [EXTERNAL] Proper CRAN way - How to handle dependency of java jar file?
Rainer M Krug
R@|ner @end|ng |rom krug@@de
Tue Jun 23 20:53:09 CEST 2020
Perfect. You also mention the “backports” package - how can I use that one to be able to also support old versions of R?
Thanks,
Rainer
> On 23 Jun 2020, at 16:34, Hong Ooi <hongooi using microsoft.com> wrote:
>
> Yes, that’s the one.
>
> From: Rainer M Krug <Rainer using krugs.de>
> Sent: Tuesday, 23 June 2020 11:12 PM
> To: Hong Ooi <hongooi using microsoft.com>
> Cc: R Package Devel <r-package-devel using r-project.org>
> Subject: Re: [EXTERNAL] [R-pkg-devel] Proper CRAN way - How to handle dependency of java jar file?
>
> Thanks Hong - I like that.
>
> I found that package in the tools::R_user_dir() package - us that the one?
>
> Rainer
>
>
>
> On 23 Jun 2020, at 15:07, Hong Ooi <hongooi using microsoft.com <mailto:hongooi using microsoft.com>> wrote:
>
> Another possibility, if you want the jar to be dynamic and also have a standard location for it, is to write it to the R config/user dir. This is available via R_user_dir() in R 4.0 (and earlier versions via the backports package). An older alternative that still works is to use the rappdirs package.
>
>
> -----Original Message-----
> From: R-package-devel <r-package-devel-bounces using r-project.org <mailto:r-package-devel-bounces using r-project.org>> On Behalf Of Rainer M Krug
> Sent: Tuesday, 23 June 2020 10:48 PM
> To: Duncan Murdoch <murdoch.duncan using gmail.com <mailto:murdoch.duncan using gmail.com>>
> Cc: R Package Devel <r-package-devel using r-project.org <mailto:r-package-devel using r-project.org>>
> Subject: [EXTERNAL] Re: [R-pkg-devel] Proper CRAN way - How to handle dependency of java jar file?
>
> Thanks Duncan.
>
>
> On 23 Jun 2020, at 14:35, Duncan Murdoch <murdoch.duncan using gmail.com <mailto:murdoch.duncan using gmail.com>> wrote:
>
> Your assumption that .jar files are not allowed is wrong: a number of packages contain them: rscala, J4R, Rbgs, bartMachine, OpenStreetMap, ... There's a specific mention about how to include them in the CRAN policy document:
>
> That’s good to know.
>
>
>
> "For Java .class and .jar files, the sources should be in a top-level java directory in the source package (or that directory should explain how they can be obtained)."
>
> So a tet file in the inst/jar directory giving the link to the GitHub repo would be fine in this case?
>
>
>
> If you still decide not to include your .jar file (maybe it is too big, for example),
>
>
> I guess it would be stretching it a bit, as the jar file is 8.2 MB, and plantuml has regular continuous updates, so I would prefer to keep it dynamic.
>
>
>
> then I think your option 1 is unusable for those people who can't write to the library location because of permission problems. (Admin privileges are often necessary to install packages in the main library.) Generally I think everyone can install packages somewhere, but users do really get confused when they have multiple library locations, possibly each containing a different version of a package.
>
> So the suggested option would be to have a function, which
> 1) ask the user to create a directory in the home folder
> 2) download the jar file into that directory or, when no permission is granted, into the tmpdir()
>
> Thanks, no major changes necessary for that,
>
> Rainer
>
>
>
>
> Duncan Murdoch
>
> On 23/06/2020 8:18 a.m., Rainer M Krug wrote:
>
> Hi
> I have a package called `plantuml` (https://github.com/rkrug/plantuml <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Frkrug%2Fplantuml&data=02%7C01%7Chongooi%40microsoft.com%7C590b1587b3394bb6a8fd08d817770dc9%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637285147406339418&sdata=tDq%2Fnri4fwPoPvupKmloF47d5QH1Vb3J0lb5L17%2Fu%2FY%3D&reserved=0>) which converts plantuml code to UML graphs. It uses for this the java program https://plantuml.com <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplantuml.com%2F&data=02%7C01%7Chongooi%40microsoft.com%7C590b1587b3394bb6a8fd08d817770dc9%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637285147406339418&sdata=5vv%2B%2BXZCPuoblNQUH9%2Fyaz8Fg39aV8XlNIMh1RawoU0%3D&reserved=0> which is Open Source.
> As it is not allowed to distribute a binary with an R package, I use the approach of a function which downloads the jar file into the directory `system.file("jar/plantuml.jar", package = "plantuml”)`.
> This works nicely, and at the moment, the function is called automatically before the plantuml.jar is used.
> Now I would like to submit the package to CRAN. I can’t find the guidelines anymore, so I am asking here:
> What is the appropriate way of handling this?
> I can think of a at least two ways of making it obvious to the user, that a binary is downloaded:
> 1) if the file plantuml.jar is not present, ask the user to run the function `updatePlantumlJar()` which downloads the jar to the original location in the package directory
> 2) tell the user to download the file manually and to put it somewhere, where the package will find it
> I would prefer the first version, as the plantuml.jar would be in the package directory, where usually nobody but the package is doing stuff.
> Any suggestions on how I could make this “CRAN conform”?
> Thanks a lot,
> Rainer
> --
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
> Orcid ID: 0000-0002-7490-0066
> Department of Evolutionary Biology and Environmental Studies
> University of Zürich
> Office Y34-J-74
> Winterthurerstrasse 190
> 8075 Zürich
> Switzerland
> Office: +41 (0)44 635 47 64
> Cell: +41 (0)78 630 66 57
> email: Rainer.Krug using uzh.ch <mailto:Rainer.Krug using uzh.ch>
> Rainer using krugs.de <mailto:Rainer using krugs.de>
> Skype: RMkrug
> PGP: 0x0F52F982
> --
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
> Orcid ID: 0000-0002-7490-0066
> Department of Evolutionary Biology and Environmental Studies
> University of Zürich
> Office Y34-J-74
> Winterthurerstrasse 190
> 8075 Zürich
> Switzerland
> Office: +41 (0)44 635 47 64
> Cell: +41 (0)78 630 66 57
> email: Rainer.Krug using uzh.ch <mailto:Rainer.Krug using uzh.ch>
> Rainer using krugs.de <mailto:Rainer using krugs.de>
> Skype: RMkrug
> PGP: 0x0F52F982
> ______________________________________________
> R-package-devel using r-project.org <mailto:R-package-devel using r-project.org> mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel <https://stat.ethz.ch/mailman/listinfo/r-package-devel>
>
>
> --
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>
> Orcid ID: 0000-0002-7490-0066
>
> Department of Evolutionary Biology and Environmental Studies
> University of Zürich
> Office Y34-J-74
> Winterthurerstrasse 190
> 8075 Zürich
> Switzerland
>
> Office: +41 (0)44 635 47 64
> Cell: +41 (0)78 630 66 57
> email: Rainer.Krug using uzh.ch <mailto:Rainer.Krug using uzh.ch>
> Rainer using krugs.de <mailto:Rainer using krugs.de>
> Skype: RMkrug
>
> PGP: 0x0F52F982
>
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-package-devel using r-project.org <mailto:R-package-devel using r-project.org> mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel <https://stat.ethz.ch/mailman/listinfo/r-package-devel>
>
> --
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>
> Orcid ID: 0000-0002-7490-0066
>
> Department of Evolutionary Biology and Environmental Studies
> University of Zürich
> Office Y34-J-74
> Winterthurerstrasse 190
> 8075 Zürich
> Switzerland
>
> Office: +41 (0)44 635 47 64
> Cell: +41 (0)78 630 66 57
> email: Rainer.Krug using uzh.ch <mailto:Rainer.Krug using uzh.ch>
> Rainer using krugs.de <mailto:Rainer using krugs.de>
> Skype: RMkrug
>
> PGP: 0x0F52F982
>
>
>
--
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
Orcid ID: 0000-0002-7490-0066
Department of Evolutionary Biology and Environmental Studies
University of Zürich
Office Y34-J-74
Winterthurerstrasse 190
8075 Zürich
Switzerland
Office: +41 (0)44 635 47 64
Cell: +41 (0)78 630 66 57
email: Rainer.Krug using uzh.ch
Rainer using krugs.de
Skype: RMkrug
PGP: 0x0F52F982
[[alternative HTML version deleted]]
More information about the R-package-devel
mailing list