From db00554335a8d5135b4ea05532eaa9bc724ddd6a Mon Sep 17 00:00:00 2001 From: IndrajeetPatil Date: Sun, 15 Oct 2023 00:51:44 +0000 Subject: [PATCH] Apply automatic changes --- index.html | 42 +++++++++++++++++++++--------------------- slides.html | 42 +++++++++++++++++++++--------------------- slides/slides.pdf | Bin 2963431 -> 2963433 bytes 3 files changed, 42 insertions(+), 42 deletions(-) diff --git a/index.html b/index.html index cea1d98..eabf399 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@ - + slides @@ -958,7 +958,7 @@

Maintaining example code coverage

Use {covr} to compute example code coverage (i.e. proportion of the source code that is executed when running examples in help pages and vignettes), and to ensure that it is above a certain threshold.

-
package_coverage(type = c("examples", "vignettes"), commentDonttest = FALSE, commentDontrun = FALSE)
+
package_coverage(type = c("examples", "vignettes"), commentDonttest = FALSE, commentDontrun = FALSE)
@@ -1063,7 +1063,7 @@

Detecting broken README examples

Use {rmarkdown} to dynamically generate README.md from README.Rmd. If there is broken code in README, it will fail to render.

-
rmarkdown::render("README.Rmd", output_format = rmarkdown::github_document())
+
rmarkdown::render("README.Rmd", output_format = rmarkdown::github_document())
@@ -1207,7 +1207,7 @@

Checking all examples

Use {devtools} to run all examples, and catch and fix the broken ones.

-
devtools::run_examples(run_dontrun = TRUE, run_donttest = TRUE)
+
devtools::run_examples(run_dontrun = TRUE, run_donttest = TRUE)
@@ -1325,7 +1325,7 @@

Building all vignettes

Although excluded vignettes may not be checked by R CMD check, they are still built by {pkgdown} to generate a static website. Thus, building a website would detect any broken examples in excluded vignettes.

-
pkgdown::build_site()
+
pkgdown::build_site()
@@ -1426,7 +1426,7 @@

Detecting link rot

You can use {urlchecker} to detect dead web references and their locations in the documentation. Fixing these links is then straightforward.

-
urlchecker::url_check()
+
urlchecker::url_check()
@@ -1571,7 +1571,7 @@

Detecting spelling mistakes

Use {spelling} to detect misspelt words and their location in the docs.

-
spelling::spell_check_package()
+
spelling::spell_check_package()
@@ -1674,7 +1674,7 @@

Detecting invalid HTML

CRAN uses HTML tidy to detect markup errors in HTML. But, if you use {roxygen2}, it will ensure against producing any invalid HTML.

-
roxygen2::roxygenise()
+
roxygen2::roxygenise()
@@ -1871,7 +1871,7 @@

A needle in the haystack

Intrinsic warnings are warnings produced by functions in your package.

E.g. a warning from a function to winsorize data.

-
winsorize(x, threshold = 2)
+
winsorize(x, threshold = 2)
 #> Warning message:
 #> `threshold` for winsorization must be a scalar between 0 and 0.5.
@@ -1879,7 +1879,7 @@

A needle in the haystack

Extrinsic warnings are warnings stemming from your package dependencies.

E.g. a possible warning if your package relies on {ggside}.

-
ggplot(mpg, aes(hwy, class)) + geom_xsidedensity()
+
ggplot(mpg, aes(hwy, class)) + geom_xsidedensity()
 #> Warning: Using the `size` aesthetic in this geom was deprecated in ggplot2 3.4.0.
 #> ℹ Please use `linewidth` in the `default_aes` field and elsewhere instead.
@@ -1945,7 +1945,7 @@

Detecting warnings

Convert warnings into errors during checks to detect warnings.

-
options(warn = 2L)
+
options(warn = 2L)
@@ -1979,7 +1979,7 @@

Detecting warnings

-
#' @examplesIf getOption("warn") < 2L
+
#' @examplesIf getOption("warn") < 2L
 #' function_showing_warning()
@@ -2128,7 +2128,7 @@

Checking across multiple settings

Use {rcmdcheck} to run R CMD check from R.

-
rcmdcheck::rcmdcheck()
+
rcmdcheck::rcmdcheck()

All the options you can set to further customize this check is beyond the scope of the current presentation.

@@ -2306,7 +2306,7 @@

Following style guide

Use {styler} to enforce the tidyverse style guide throughout the package (including source code, test files, vignettes, etc.).

-
styler::style_pkg()
+
styler::style_pkg()
@@ -2363,7 +2363,7 @@

Code quality assessment

-
# code with a lint
+
# code with a lint
 lint(text = "x = 1")
::warning file=<text>,line=1,col=3::file=<text>,line=1,col=3,[assignment_linter] Use <-, not =, for assignment.
@@ -2373,7 +2373,7 @@

Code quality assessment

-
# code without a lint
+
# code without a lint
 lint(text = "x <- 1")
@@ -2424,7 +2424,7 @@

Detecting lints

Use {lintr} to carry out static code analysis to detect code quality issues.

-
lintr::lint_package()
+
lintr::lint_package()
@@ -3283,7 +3283,7 @@

Session information

collate C.UTF-8 ctype C.UTF-8 tz UTC - date 2023-10-09 + date 2023-10-15 pandoc 3.1.8 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -3299,12 +3299,12 @@

Session information

desc 1.4.2 2022-09-08 [1] RSPM digest 0.6.33 2023-07-07 [1] RSPM evaluate 0.22 2023-09-29 [1] RSPM - fansi 1.0.4 2023-01-22 [1] RSPM + fansi 1.0.5 2023-10-08 [1] RSPM fastmap 1.1.1 2023-02-24 [1] RSPM glue 1.6.2 2022-02-24 [1] RSPM graphics * 4.3.1 2023-10-03 [3] local grDevices * 4.3.1 2023-10-03 [3] local - htmltools 0.5.6 2023-08-10 [1] RSPM + htmltools 0.5.6.1 2023-10-06 [1] RSPM jsonlite 1.8.7 2023-06-29 [1] RSPM knitr 1.44 2023-09-11 [1] RSPM lazyeval 0.2.2 2019-03-15 [1] RSPM @@ -3330,7 +3330,7 @@

Session information

tools 4.3.1 2023-10-03 [3] local utf8 1.2.3 2023-01-31 [1] RSPM utils * 4.3.1 2023-10-03 [3] local - vctrs 0.6.3 2023-06-14 [1] RSPM + vctrs 0.6.4 2023-10-12 [1] RSPM withr 2.5.1 2023-09-26 [1] RSPM xfun 0.40 2023-08-09 [1] RSPM xml2 1.3.5 2023-07-06 [1] RSPM diff --git a/slides.html b/slides.html index cea1d98..eabf399 100644 --- a/slides.html +++ b/slides.html @@ -10,7 +10,7 @@ - + slides @@ -958,7 +958,7 @@

Maintaining example code coverage

Use {covr} to compute example code coverage (i.e. proportion of the source code that is executed when running examples in help pages and vignettes), and to ensure that it is above a certain threshold.

-
package_coverage(type = c("examples", "vignettes"), commentDonttest = FALSE, commentDontrun = FALSE)
+
package_coverage(type = c("examples", "vignettes"), commentDonttest = FALSE, commentDontrun = FALSE)
@@ -1063,7 +1063,7 @@

Detecting broken README examples

Use {rmarkdown} to dynamically generate README.md from README.Rmd. If there is broken code in README, it will fail to render.

-
rmarkdown::render("README.Rmd", output_format = rmarkdown::github_document())
+
rmarkdown::render("README.Rmd", output_format = rmarkdown::github_document())
@@ -1207,7 +1207,7 @@

Checking all examples

Use {devtools} to run all examples, and catch and fix the broken ones.

-
devtools::run_examples(run_dontrun = TRUE, run_donttest = TRUE)
+
devtools::run_examples(run_dontrun = TRUE, run_donttest = TRUE)
@@ -1325,7 +1325,7 @@

Building all vignettes

Although excluded vignettes may not be checked by R CMD check, they are still built by {pkgdown} to generate a static website. Thus, building a website would detect any broken examples in excluded vignettes.

-
pkgdown::build_site()
+
pkgdown::build_site()
@@ -1426,7 +1426,7 @@

Detecting link rot

You can use {urlchecker} to detect dead web references and their locations in the documentation. Fixing these links is then straightforward.

-
urlchecker::url_check()
+
urlchecker::url_check()
@@ -1571,7 +1571,7 @@

Detecting spelling mistakes

Use {spelling} to detect misspelt words and their location in the docs.

-
spelling::spell_check_package()
+
spelling::spell_check_package()
@@ -1674,7 +1674,7 @@

Detecting invalid HTML

CRAN uses HTML tidy to detect markup errors in HTML. But, if you use {roxygen2}, it will ensure against producing any invalid HTML.

-
roxygen2::roxygenise()
+
roxygen2::roxygenise()
@@ -1871,7 +1871,7 @@

A needle in the haystack

Intrinsic warnings are warnings produced by functions in your package.

E.g. a warning from a function to winsorize data.

-
winsorize(x, threshold = 2)
+
winsorize(x, threshold = 2)
 #> Warning message:
 #> `threshold` for winsorization must be a scalar between 0 and 0.5.
@@ -1879,7 +1879,7 @@

A needle in the haystack

Extrinsic warnings are warnings stemming from your package dependencies.

E.g. a possible warning if your package relies on {ggside}.

-
ggplot(mpg, aes(hwy, class)) + geom_xsidedensity()
+
ggplot(mpg, aes(hwy, class)) + geom_xsidedensity()
 #> Warning: Using the `size` aesthetic in this geom was deprecated in ggplot2 3.4.0.
 #> ℹ Please use `linewidth` in the `default_aes` field and elsewhere instead.
@@ -1945,7 +1945,7 @@

Detecting warnings

Convert warnings into errors during checks to detect warnings.

-
options(warn = 2L)
+
options(warn = 2L)
@@ -1979,7 +1979,7 @@

Detecting warnings

-
#' @examplesIf getOption("warn") < 2L
+
#' @examplesIf getOption("warn") < 2L
 #' function_showing_warning()
@@ -2128,7 +2128,7 @@

Checking across multiple settings

Use {rcmdcheck} to run R CMD check from R.

-
rcmdcheck::rcmdcheck()
+
rcmdcheck::rcmdcheck()

All the options you can set to further customize this check is beyond the scope of the current presentation.

@@ -2306,7 +2306,7 @@

Following style guide

Use {styler} to enforce the tidyverse style guide throughout the package (including source code, test files, vignettes, etc.).

-
styler::style_pkg()
+
styler::style_pkg()
@@ -2363,7 +2363,7 @@

Code quality assessment

-
# code with a lint
+
# code with a lint
 lint(text = "x = 1")
::warning file=<text>,line=1,col=3::file=<text>,line=1,col=3,[assignment_linter] Use <-, not =, for assignment.
@@ -2373,7 +2373,7 @@

Code quality assessment

-
# code without a lint
+
# code without a lint
 lint(text = "x <- 1")
@@ -2424,7 +2424,7 @@

Detecting lints

Use {lintr} to carry out static code analysis to detect code quality issues.

-
lintr::lint_package()
+
lintr::lint_package()
@@ -3283,7 +3283,7 @@

Session information

collate C.UTF-8 ctype C.UTF-8 tz UTC - date 2023-10-09 + date 2023-10-15 pandoc 3.1.8 @ /usr/bin/ (via rmarkdown) ─ Packages ─────────────────────────────────────────────────────────────────── @@ -3299,12 +3299,12 @@

Session information

desc 1.4.2 2022-09-08 [1] RSPM digest 0.6.33 2023-07-07 [1] RSPM evaluate 0.22 2023-09-29 [1] RSPM - fansi 1.0.4 2023-01-22 [1] RSPM + fansi 1.0.5 2023-10-08 [1] RSPM fastmap 1.1.1 2023-02-24 [1] RSPM glue 1.6.2 2022-02-24 [1] RSPM graphics * 4.3.1 2023-10-03 [3] local grDevices * 4.3.1 2023-10-03 [3] local - htmltools 0.5.6 2023-08-10 [1] RSPM + htmltools 0.5.6.1 2023-10-06 [1] RSPM jsonlite 1.8.7 2023-06-29 [1] RSPM knitr 1.44 2023-09-11 [1] RSPM lazyeval 0.2.2 2019-03-15 [1] RSPM @@ -3330,7 +3330,7 @@

Session information

tools 4.3.1 2023-10-03 [3] local utf8 1.2.3 2023-01-31 [1] RSPM utils * 4.3.1 2023-10-03 [3] local - vctrs 0.6.3 2023-06-14 [1] RSPM + vctrs 0.6.4 2023-10-12 [1] RSPM withr 2.5.1 2023-09-26 [1] RSPM xfun 0.40 2023-08-09 [1] RSPM xml2 1.3.5 2023-07-06 [1] RSPM diff --git a/slides/slides.pdf b/slides/slides.pdf index 094576d9950299597146f03f6902dfb23c05073b..58fdb99e2981adb7cbe4cf29b7537b4680dcf933 100644 GIT binary patch delta 4253 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