Skip to contents

The product installer requires the development checkout containing install/. The maintenance scripts described here are part of the package source under inst/ and run from the package root, the checkout’s lib/ directory.

The source repository is private. Obtain an authorized clone before running these commands; the maintenance scripts do not clone repositories or configure credentials. The R package source is the clone’s lib/ directory.

Install a recorded package

The public entry is install/install.sh on macOS/Linux and install/install.ps1 on Windows. One operation installs the R package and the zot command together; supply a selected tarball with its adjacent .rds record to install that artifact instead of building lib/:

bash install/install.sh --library "/absolute/path/to/R/library" --prefix "/absolute/path/to/prefix" --tarball "/absolute/path/to/zot_<version>.tar.gz"
powershell -NoProfile -ExecutionPolicy Bypass -File install/install.ps1 -Library "C:\path to\R library" -Prefix "C:\path to\prefix" -Tarball "C:\path to\zot_<version>.tar.gz"

These entries install the selected R package, its missing runtime dependencies and the command. The prefix defaults to /usr/local, which is why the usual invocation is sudo bash install/install.sh; choose a writable prefix to install without privileges. There are no partial component modes. Keep the selected library visible to subsequent R sessions. The operations below prepare and check an artifact when starting from package source.

Prepare and install from source

Install R and make Rscript available. Source builds may require compiler tools and system libraries; building the manual requires LaTeX. These system prerequisites are separate from R package dependencies.

Choose a writable R library and a new build directory outside lib/. Replace every example path below with your chosen absolute path. Use the same R library throughout: R_LIBS_USER makes it visible to each new R process.

In an R session started from lib/ with the chosen library in R_LIBS_USER:

source("inst/install.R")
installLibrary(path = ".", library = "/absolute/path/to/R/library",
               build = "/absolute/path/to/new-build-directory")

installLibrary() installs pkgbuild, digest and the package’s Depends, Imports and LinkingTo requirements into the selected library, builds the package into the build directory and installs that tarball. The build writes zot_<version>.tar.gz and an adjacent .tar.gz.rds record with its SHA-256; keep the two together. To install an existing recorded tarball instead, pass its path as tarball in place of build; its SHA-256 must match the record.

Installation verifies the installed version. It does not run release checks, generate the website, or submit to CRAN.

After installation, R can load the package from any working directory. Keep the chosen library in R_LIBS_USER, or add it in the R session:

.libPaths(c("/absolute/path/to/R/library", .libPaths()))
library(zot)

Documentation and checks are separate

For source maintenance, inst/package.R defines installRequirements(), which prepares the tools and the package’s development dependencies, including Suggests, and documentPackage(), which regenerates the roxygen-owned package documentation and checks spelling:

source("inst/package.R")
installRequirements(path = ".", library = "/absolute/path/to/R/library",
                    packages = c("roxygen2", "spelling", "pkgbuild", "rcmdcheck", "digest"),
                    dependencies = TRUE)
documentPackage(path = ".", roxygen = TRUE)

Run documentPackage() before building when documentation changes are intended, then review its source diff.

Rscript inst/build.R OUTPUT_DIR, from lib/, builds a recorded tarball without installing it. inst/cran-check.R takes a recorded tarball, such as the one installLibrary() built, and a new check directory. It runs the local CRAN-style check and retains its logs and result in the artifact record. Run it separately from installation:

cd "/absolute/path/to/zot/lib"
R_LIBS_USER="/absolute/path/to/R/library" Rscript inst/cran-check.R "/absolute/path/to/new-build-directory/zot_<version>.tar.gz" "/absolute/path/to/new-check-directory"

Errors and warnings fail the check; NOTEs require review. A successful local check is neither a CRAN submission nor certification on other platforms. source("inst/cran-submit.R"), from lib/, calls devtools::submit_cran(), which builds its own tarball for the submission.

Installed contents

install/ contains the product installer; it is outside the package and is not installed with zot. lib/inst/ holds package runtime resources and the maintenance scripts described above. The installed R package does not depend on the sibling checkout directories.

The CLI is implemented. install/install.sh installs the zot command under the prefix, alongside the R package: the command is a generated launcher in PREFIX/bin/ that resolves the system’s current R and runs the payload in PREFIX/libexec/zot/. The zot command line vignette documents its verbs.

The documentation website is built separately with pkgdown from lib/: articles come from lib/vignettes/ and the R reference from lib/man/. Installing the R package does not publish GitHub Pages.