Source-package repository

The public distribution unit consists of exactly seven R source packages: gbase, gbayes, gcorr, glma, gmap, gscore, and gsea. The root gsuite package, gshare, and the complete gsolve and greml libraries are not part of this repository.

Users install from the conventional R repository:

options(repos = c(
  gsuite = "https://psoerensen.github.io/gtools/gsuite/repository",
  CRAN = "https://cloud.r-project.org"
))

install.packages("gbase")
install.packages(c("gbayes", "gcorr", "glma", "gmap", "gscore", "gsea"))

The repository retains the first 0.1.0 archives and publishes the current package versions in PACKAGES: gbase 0.1.3, gcorr 0.1.9, glma 0.1.2 and the remaining four packages 0.1.1. The publisher verifies the archive names, latest index and SHA-256 checksums before including these seven packages in the public snapshot.

For a gact installation, configure these repositories before running devtools::install_github("psoerensen/gact"). gact imports gbase and provides the explicit gact::install_gsuite() helper for the full analysis installation. Loading gact never installs packages or downloads its database.

What the source packages contain

gbase builds the task-neutral gbits and gmat implementation together with bounded gsolve-core and greml-core source sets. It installs their public headers and one position-independent static archive for the task packages. The cores exclude sparse direct factorization, selected inversion, CHOLMOD, oneMKL, PARDISO, and the pedigree, longitudinal, and full mixed-model surfaces.

gbayes contains its R/Rcpp layer and Bayesian native implementation. In addition to its package DLL, it installs the public headers and a second static archive needed by glma, gmap, gscore, and gsea. Those packages therefore compile only their own native implementation instead of recompiling the large Bayesian source set. gcorr needs only the gbase archive.

Every task package links the installed archives declared by its R package dependencies, so no preinstalled gsuite SDK is needed. Native files in release packages are generated from the canonical sibling repositories. They are not maintained as copied source inside this repository.

The ordinary source-build requirements are:

  • Linux or HPC: R’s configured C++17 compiler;
  • Windows: the Rtools version matching R;
  • macOS: Xcode Command Line Tools or another compiler configured for R;
  • R packages Rcpp and RcppEigen.

OpenMP is used when the R toolchain supplies it and otherwise the same source build remains available without OpenMP.

Build and qualification

From the gsuite checkout, with the canonical native repositories beside it:

Rscript --vanilla tools/build/build_source_repository.R

The command stages generated package sources, extracts source lists from the owners’ CMake declarations, builds and checks packages in dependency order, installs them into an isolated library, and writes the seven archives plus PACKAGES, PACKAGES.gz, PACKAGES.rds, and SHA256SUMS under repository/src/contrib. Release assembly requires the R package openssl to calculate SHA-256 checksums; end users do not need it unless another dependency requires it.

Use --stage-only to inspect generated source, --build-only to assemble the archives without compiling them, and --skip-check for an installation smoke build. --from=<package> resumes an interrupted ordered run. Those modes are partial validation. --only=<package> builds and checks one package using already installed compatible prerequisites in the isolated library; it leaves other release archives unchanged.

Approved contents under repository/ are tracked as release artifacts. All staging, check, object, and installation outputs remain generated and ignored. The build command itself never deploys, pushes, or changes GitHub Pages.

Release gate

Before each publication, review package versions, source-check results on release platforms, licence notices, archive contents and checksums, absence of private source, and the website wording. Running the documented website publisher copies the approved release into site/gsuite/repository in the public gtools checkout. Pushing that reviewed snapshot activates the gtools GitHub Pages deployment workflow.