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

2020-07-13 Thread Rainer M Krug



> On 13 Jul 2020, at 11:31, Paul SAVARY  wrote:
> 
> 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, ...).

Jup - exactly.

> 
> 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.

Yes - the `mode = “wb”` bit me as well - developing on MacOS, testing on travis 
on GitHub with Linux and Mac,, and what did I get, a corrupt jar on windows.

Thanks,

Rainer

> 
> 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" 
> À: "Maëlle SALMON" 
> Cc: "r-package-devel" 
> 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  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  
>> skrev: 
>> 
>> 
>> 
>> 
>> 
>> Thanks Duncan.
>> 
>>> On 23 Jun 2020, at 14:35, Duncan Murdoch  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?
>>

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

2020-07-13 Thread Paul SAVARY
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" 
À: "Maëlle SALMON" 
Cc: "r-package-devel" 
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  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  skrev: 
> 
> 
> 
> 
> 
> Thanks Duncan.
> 
>> On 23 Jun 2020, at 14:35, Duncan Murdoch  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
>>>

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

2020-07-13 Thread Rainer M Krug
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  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  skrev: 
> 
> 
> 
> 
> 
> Thanks Duncan.
> 
>> On 23 Jun 2020, at 14:35, Duncan Murdoch  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: -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.k...@uzh.ch
>>> rai...@krugs.de
>>> Skype:RMkrug
>>> PGP: 0x0F52F982
>>> --
>>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, 
>>> UCT), Dipl. Phys. (Germany)
>>> Orcid ID: -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.k...@uzh.ch
>>> rai...@krugs.de
>>> Skype:RMkrug
>>> PGP: 0x0F52F982
>>> __
>>> R-package-devel@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: -0002-7490-0066
> 
> Department of Evolutionary Biology and Environmental Studies
> University of Zürich
> Office Y34-J-74
> Winterthurerstrasse 190
> 8075 

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

2020-07-13 Thread Maëlle SALMON via R-package-devel
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  skrev: 





Thanks Duncan.

> On 23 Jun 2020, at 14:35, Duncan Murdoch  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: -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.k...@uzh.ch
>>         rai...@krugs.de
>> Skype:    RMkrug
>> PGP: 0x0F52F982
>> --
>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, 
>> UCT), Dipl. Phys. (Germany)
>> Orcid ID: -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.k...@uzh.ch
>>         rai...@krugs.de
>> Skype:    RMkrug
>> PGP: 0x0F52F982
>> __
>> R-package-devel@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: -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.k...@uzh.ch
        rai...@krugs.de
Skype:    RMkrug

PGP: 0x0F52F982




    [[alternative HTML version deleted]]


__
R-package-devel@r-project.org mailing list

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

2020-06-23 Thread Rainer M Krug
Thanks Duncan.

> On 23 Jun 2020, at 14:35, Duncan Murdoch  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: -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.k...@uzh.ch
>>  rai...@krugs.de
>> Skype: RMkrug
>> PGP: 0x0F52F982
>> --
>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, 
>> UCT), Dipl. Phys. (Germany)
>> Orcid ID: -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.k...@uzh.ch
>>  rai...@krugs.de
>> Skype: RMkrug
>> PGP: 0x0F52F982
>> __
>> R-package-devel@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: -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.k...@uzh.ch
rai...@krugs.de
Skype: RMkrug

PGP: 0x0F52F982




[[alternative HTML version deleted]]

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


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

2020-06-23 Thread Duncan Murdoch
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:


"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)."


If you still decide not to include your .jar file (maybe it is too big, 
for example), 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.


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: -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.k...@uzh.ch
rai...@krugs.de
Skype: RMkrug

PGP: 0x0F52F982





--
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, 
UCT), Dipl. Phys. (Germany)

Orcid ID: -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.k...@uzh.ch
rai...@krugs.de
Skype: RMkrug

PGP: 0x0F52F982

__
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