The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
@export
tag but not
@return
tag# Create fake package ----
pkg_path <- tempfile(pattern = "pkg.")
dir.create(pkg_path)
# Create fake package
usethis::create_package(pkg_path, open = FALSE)
#> ✔ Setting active project to '/tmp/RtmpOmxnjd/pkg.e0fa160b8054'
#> ✔ Creating 'R/'
#> ✔ Writing 'DESCRIPTION'
#> ✔ Writing 'NAMESPACE'
#> ✔ Writing 'pkg.e0fa160b8054.Rproj'
#> ✔ Adding '^pkg\\.e0fa160b8054\\.Rproj$' to '.Rbuildignore'
#> ✔ Adding '.Rproj.user' to '.gitignore'
#> ✔ Adding '^\\.Rproj\\.user$' to '.Rbuildignore'
#> ✔ Setting active project to '/mnt/Data/github/ThinkR-open/checkhelper'
# Create function no visible global variables and missing documented functions
cat("
#' Function
#' @importFrom dplyr filter
#' @export
my_fun <- function() {
data %>%
filter(col == 3) %>%
mutate(new_col = 1) %>%
ggplot() +
aes(x, y, colour = new_col) +
geom_point()
}
", file = file.path(pkg_path, "R", "function.R"))
attachment::att_amend_desc(path = pkg_path)
#> Saving attachment parameters to yaml config file
#> Updating pkg.e0fa160b8054 documentation
#> ℹ Loading pkg.e0fa160b8054Writing ']8;;file:///tmp/RtmpOmxnjd/pkg.e0fa160b8054/NAMESPACENAMESPACE]8;;'Writing ']8;;file:///tmp/RtmpOmxnjd/pkg.e0fa160b8054/NAMESPACENAMESPACE]8;;'Writing ']8;;ide:run:pkgload::dev_help('my_fun')my_fun.Rd]8;;'ℹ Loading pkg.e0fa160b8054[+] 1 package(s) added: dplyr.
CRAN does not like when exported functions do not have returned
value. Using find_missing_tags()
, you can detect exported
functions with missing or empty @return
tag
#> ℹ Loading pkg.e0fa160b8054
#> Missing or empty return value for exported functions: my_fun
#>
#>
#>
#> ℹ Loading pkg.e0fa160b8054
#> $package_doc
#> # A tibble: 0 × 0
#>
#> $data
#> # A tibble: 0 × 0
#>
#> $functions
#> # A tibble: 1 × 11
#> id filename topic has_e…¹ has_r…² retur…³ has_n…⁴ rdnam…⁵
#> <int> <chr> <chr> <lgl> <lgl> <chr> <lgl> <chr>
#> 1 1 function.R my_fun TRUE FALSE "" FALSE my_fun
#> # … with 3 more variables: not_empty_return_value <lgl>,
#> # test_has_export_and_return <chr>,
#> # test_has_export_or_has_nord <chr>, and abbreviated variable
#> # names ¹has_export, ²has_return, ³return_value, ⁴has_nord,
#> # ⁵rdname_value
get_no_visible()
runs the checks and extract no visible
global variables and missing documented functionsprint_globals()
proposes a template to add missing
global variables in a globals.R
file. Note that you can
also transform all these variables with
.data[[variable]]
#> $globalVariables
#> # A tibble: 4 × 7
#> notes filep…¹ fun is_fu…² is_gl…³ varia…⁴ propo…⁵
#> <chr> <chr> <chr> <lgl> <lgl> <chr> <chr>
#> 1 my_fun: no visib… - my_f… FALSE TRUE data " impo…
#> 2 my_fun: no visib… - my_f… FALSE TRUE x <NA>
#> 3 my_fun: no visib… - my_f… FALSE TRUE y <NA>
#> 4 my_fun: no visib… - my_f… FALSE TRUE new_col <NA>
#> # … with abbreviated variable names ¹filepath, ²is_function,
#> # ³is_global_variable, ⁴variable, ⁵proposed
#>
#> $functions
#> # A tibble: 5 × 7
#> notes filep…¹ fun is_fu…² is_gl…³ varia…⁴ propo…⁵
#> <chr> <chr> <chr> <lgl> <lgl> <chr> <chr>
#> 1 my_fun: no visib… - my_f… TRUE FALSE %>% <NA>
#> 2 my_fun: no visib… - my_f… TRUE FALSE mutate <NA>
#> 3 my_fun: no visib… - my_f… TRUE FALSE ggplot <NA>
#> 4 my_fun: no visib… - my_f… TRUE FALSE aes <NA>
#> 5 my_fun: no visib… - my_f… TRUE FALSE geom_p… <NA>
#> # … with abbreviated variable names ¹filepath, ²is_function,
#> # ³is_global_variable, ⁴variable, ⁵proposed
#> --- Functions to add in NAMESPACE (with @importFrom ?) ---
#>
#> my_fun: %>%, aes, geom_point, ggplot, mutate
#>
#> --- Potential GlobalVariables ---
#> -- code to copy to your R/globals.R file --
#>
#> globalVariables(unique(c(
#> # my_fun:
#> "data", "new_col", "x", "y"
#> )))
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.