On 16/11/2020 4:55 a.m., Kamil Stachowski wrote:
I did briefly wonder why your reply to me cited an email from Akshit Achara
who asked about third party C++ API. I assumed it was because the solution
to his problem and mine was the same.
In the meantime, I got a reply from Kurt Hornik who said I have a top-level
call
soundcorrsGUI <- shiny::shinyApp (ui, server)
so what I should really do is to move "shiny" from "Suggests" to "Imports".
I don't want to do this, however, because the GUI is just an addition, the
package is perfectly usable without it. I wrapped "soundcorrsGUI" in a
function:
soundcorrsGUI <- function () {
if (!requireNamespace("shiny",quietly=T) ||
!requireNamespace("shinyjqui",quietly=T))
stop ("\"soundcorrsGUI\" requires packages \"shiny\" and \"shinyjqui\".")
shiny::shinyApp (ui, server)
}
and this seems to solve the problem with "shiny", but now I have a problem
with "shinyjqui". I actually only need one function from it: in the call to
"shinyApp" above,
ui <- shiny::navbarPage ([…] ui.soundchanges […])
where
ui.soundchanges <- shiny::fluidPage ([…]
shinyjqui::sortableCheckboxGroupInput […])
I tried wrapping "ui.soundchanges" in a function in the same way as I did
with "soundcorrsGUI" but this doesn't help.
Is there a way to make it work without turning "shiny" and "shinyjqui" into
obligatory dependencies?
If you never call shinyjqui::sortableCheckboxGroupInput except in that
one place, then you should put that call within the requireNamespace
test. Things I'd change there:
- Do not use T, use TRUE.
- Wrap *everything* that requires those packages in the
requireNamespace test.
- Make sure your example code in help pages never calls that function
unless shiny and shinyjqui are present, by a test similar to the above
but a positive one:
if (requireNamespace("shiny") && requireNamespace("shinyjqui")) {
# example code
}
Duncan Murdoch
Best wishes,
Kamil Stachowski
On Mon, 16 Nov 2020, 00:55 Uwe Ligges, <lig...@statistik.tu-dortmund.de>
wrote:
On 14.11.2020 19:53, Kamil Stachowski wrote:
This is actually what I do. Before you replied, I was told to write to
CRAN
and explain, and they will decide whether the packages will be installed
on
CRAN machines. Thank you for your help nonetheless.
No, I told you about a "third party C++ API" you asked for, not about an
R package. R packages from BioC + CRAN should be availabe on CRAN, in
that case it is a problem in your package.
Best,
Uwe Ligges
Best,
Kamil
On Sat, 14 Nov 2020 at 19:39, Gábor Csárdi <csardi.ga...@gmail.com>
wrote:
You probably import functions from shiny. Don't do that, refer to them
with the `::` operator instead.
Gabor
On Sat, Nov 14, 2020 at 6:12 PM Kamil Stachowski
<kamil.stachow...@gmail.com> wrote:
I wrote a package that contains a graphical interface written with
packages
"shiny" and "shinyjqui". My package can also be used from the CLI, so I
listed both "shiny" and "shinyjqui" as optional dependencies. I ran R
CMD
check --as-cran on my computer in R 3.6.3 and devel, and both passed
without any errors or warnings. However, when I tried uploading the
package
to CRAN, I got this error:
Error in loadNamespace(x) : there is no package called ‘shiny’
Error: unable to load R code in package ‘soundcorrs’
Execution halted
ERROR: lazy loading failed for package ‘soundcorrs’
How can I fix this?
[[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-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel