[R-pkg-devel] Proper CRAN way - How to handle dependency of java jar file?

Paul SAVARY p@u|@@@v@ry @end|ng |rom un|v-|comte@|r
Mon Jul 13 11:31:17 CEST 2020


Thanks you too.

That is also what I am doing. Note that I am downloading jar files into a directory created in rappdirs::user_data_dir() using the command download.file(url, ...).

If I do not specify 'mode='wb'' in download.file() on a Windows OS, downloaded jar file is corrupted and cannot be used because a text file is created in which \n are converted into \r\n, which does not make sens for a binary file.

I hope it can help
Cheers

Paul Savary - PhD Student
UMR 6049 ThéMA (Besançon), UMR 6282 Biogéosciences (Dijon), ARP-Astrance (Paris) 
Phone number : +33.6.30.97.34.27 
Research topics: population genetics, landscape ecology, graph theory, spatial statistics

----- Mail original -----
De: "Rainer M Krug" <Rainer using krugs.de>
À: "Maëlle SALMON" <maelle.salmon using yahoo.se>
Cc: "r-package-devel" <r-package-devel using r-project.org>
Envoyé: Lundi 13 Juillet 2020 11:15:10
Objet: Re: [R-pkg-devel]  Proper CRAN way - How to handle dependency of java jar file?

Thanks Maëlle - that is exactly what I am doing at the moment.

Cheers,

Rainer


> On 13 Jul 2020, at 08:17, Maëlle SALMON <maelle.salmon using yahoo.se> wrote:
> 
> Regarding where to save the jar file, you might be interested in "app dirs" (via tools::R_user_dir() in R from 4.0, the rappdirs package, the hoardr package) cf https://blog.r-hub.io/2020/03/12/user-preferences/#not-so-temporary-files3
> 
> Maëlle.
> 
> Den tisdag 23 juni 2020 14:56:30 CEST, Rainer M Krug <rainer using krugs.de> skrev: 
> 
> 
> 
> 
> 
> Thanks Duncan.
> 
>> On 23 Jun 2020, at 14:35, Duncan Murdoch <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) which converts plantuml code to UML graphs. It uses for this the java program https://plantuml.com 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
>>>         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
>>> ______________________________________________
>>> R-package-devel using r-project.org mailing list
>>> 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
>         Rainer using krugs.de
> Skype:    RMkrug
> 
> PGP: 0x0F52F982
> 
> 
> 
> 
>     [[alternative HTML version deleted]]
> 
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> 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
		Rainer using krugs.de
Skype:     RMkrug

PGP: 0x0F52F982




	[[alternative HTML version deleted]]

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



More information about the R-package-devel mailing list