To publish a package on CRAN make sure it passes all checks. Simply run
Here is a list of everything that is checked with this command.
I will semi-live-blog my debugging process here.
Here is a step by step of my debugging process
First check. Got a malformed Description file. Apparently the package description must end with a colon
After that got some errors with the examples in the functions.
I had just added a
cran-comments.md file to the repo. Now I need to remove it from the package build.
I’ll just go ahead and copy this
.Rbuildignore from Thomas’ gganimate. Note that I left all the
pkgdown and tests stuff. I will play with the
usethis package once I clean up all errors and warnings here 6b3696a.
Next up… Dependencies.
I don’t know what I am doing here. It has never been clear to me where exactly to declare package dependencies… is it in Depend or Imports?… So let’s google.
Moved all to imports and the warning went away (still need to understand why). The issue with
:: and ::: not being imported fom
rlang got fixed by adding it to Suggests in DESCRIPTION [here 0d9d80]()
usethis::use_package_doc() and it created a dsAppLayout-package.R file with the documentation of the package that I was lacking. Not sure if I need it later or not.
The fun part, fixing code
#' @import htmltools on top of the function
box to fix the warning about the
no visible global function definition for .... It works if I place it on any function documentation. Maybe I should be using
Added documentation for all exported functions, like this:
#' Panel component for shiny panels layout #' #' @param head html for the panel header #' @param body html tag list for panel body contents #' @param show_footer include footer #' @param footer footer contents #' @param color color name as defined in custom css #' @param id panel div id #' @param collapsed panel starts as collapsed #' @param width panel width in pixels #' @param id panel div id #' #' @return None #' #' @examples #' dsAppPanels() #' #' @export
.Rd files from old function that don’t exists anymore.
After fixing a bunch of parameters in the documentation it comes to this final warming
Fixed by adding
Now I will add a proper README file. Added a screenshot of the package directly to the
man/figures folder to show it in the README.
I read that you should test your package in at least 2 platforms. I am running now
devtools::build_win() to run it on windows.
Now ready to [submit to CRAN]()… first try. Wait, I can use
devtools::release() to do this automatically.
A couptle of questions… Ups…
Things I didn’t do before
devtools::check_rhub()checks your package in multiple platforms on http://r-hub.io
After answering the questions and a few minor tweaks I got:
Will update when I hear back from CRAN maintainers.
. . . . .
8 hours later. I got an email stating that I need to comply with the CRAN license template. Apparently it comes to deleting everything in the LICENSE and leaving only:
YEAR: 2019 COPYRIGHT HOLDER: Juan Pablo Marin Diaz
Note that I originally had an Organization field in the license, which does not comply with CRAN requirements. Resubmitted again…
. . .
18 days later after 4 resubmissions for simple things like dates and wrong license formatting my first package is on CRAN.