Package {rqualify}


Type: Package
Title: Qualification of R Software Installations
Version: 1.2.0
Description: Qualify R software installations using R Markdown as the foundation for the Installation Qualification (IQ) and Operational Qualification (OQ) when used in environments (such as regulated clinical trials) where such processes may be required.
License: GPL-2
URL: https://github.com/Medtronic-Biostatistics/rqualify, https://medtronic-biostatistics.github.io/rqualify/
BugReports: https://github.com/Medtronic-Biostatistics/rqualify/issues
Depends: R (≥ 4.4.0)
Imports: pandoc, quarto, rmarkdown, tinytex
Suggests: knitr, testthat (≥ 3.1.7), withr
Encoding: UTF-8
VignetteBuilder: knitr
Config/testthat/edition: 3
Config/roxygen2/version: 8.0.0
RoxygenNote: 7.3.3
NeedsCompilation: no
Packaged: 2026-10-09 20:34:28 UTC; musgrd1
Author: Donnie Musgrove ORCID iD [aut, cre], Graeme L. Hickey ORCID iD [aut], Marc Schwartz [aut] (For initial validation code.), Alan Haynes [ctb], Bryan Martin ORCID iD [ctb], Medtronic Inc. [cph]
Maintainer: Donnie Musgrove <donniemusgrove@gmail.com>
Repository: CRAN
Date/Publication: 2026-10-09 20:50:17 UTC

Run IQ-OQ on an installation of R software

Description

Run IQ-OQ on an installation of R software

Usage

rqualify(
  path_save,
  setup_tinytex = TRUE,
  setup_pandoc = TRUE,
  render_latex = TRUE,
  engine = "latex",
  verbose = TRUE,
  details = FALSE
)

Arguments

path_save

Character. Existing, writable directory in which to create the R-validation folder. That folder must not already exist.

setup_tinytex

Logical. Allow installation of TinyTeX and the grfext package when PDF compilation requires LaTeX and no existing installation is available. Existing LaTeX installations are reused. Ignored for Quarto.

setup_pandoc

Logical. Allow installation of Pandoc when none is available for R Markdown. Existing system, IDE, or managed installations are reused. Ignored for Quarto, which includes Pandoc.

render_latex

Logical. Compile the LaTeX report to PDF when engine = "latex". If FALSE, generate only the LaTeX file. Ignored for Quarto, which always generates a PDF through Typst.

engine

Character. Either "latex" or "quarto".

verbose

Logical. Print progress messages.

details

Logical. Return structured qualification results instead of just the output directory. Defaults to FALSE for compatibility.

Details

Arguments, the destination, and engine-specific prerequisites are checked before output directories are created. Quarto uses its bundled Pandoc and Typst and does not require TinyTeX or a separate Pandoc install. The selected R installation must include its installed tests.

Both report formats use the same subprocess runner. Passing a suite requires a zero exit status and exactly one explicit PASS completion result. Crashes and incomplete results cannot pass. The core system tests use tools::testInstalledBasic(scope = "basic"); development and internet test scopes are not run. Base and recommended package examples, vignettes, and tests are checked separately.

The output includes the report source, subprocess scripts and logs, IQ-OQ-TestOutput/test_summary.csv, and validation_result.rds. Failed qualification, missing summaries, and invalid summaries produce warnings. Inspect the returned details or saved results to distinguish these outcomes. Rendering errors stop execution and leave diagnostic files in the output directory. Temporary environment changes are restored.

Value

By default, the path to the R-validation folder. With details = TRUE, a rqualify_result list containing status ("ok", "fail", "missing", or "invalid"), the per-suite summary, output_dir, artifact paths in files, engine, core_test_scope, R and tool versions, and start and finish times. This list is also saved as validation_result.rds for either return mode.

Examples

## Not run: 
# Reuse installed LaTeX and Pandoc.
rqualify(path_save = tempdir(), setup_tinytex = FALSE, setup_pandoc = FALSE)

# Quarto uses its bundled tools; choose a fresh output location.
destination <- tempfile()
dir.create(destination)
result <- rqualify(destination, engine = "quarto", details = TRUE)
result$status
result$summary

## End(Not run)