PRISM Documentation: Glossary
Getting Started
This document outlines the terminology as it pertains to PRISM software and provides definitions to reference throughout both the software and its corresponding documentation.
Core Concepts
package
CRAN-like Repository
A collection of packages stored in a predefined structure. CRAN-like repositories organize R packages in a specific structure designed to work with R’s functions for accessing and installing packages. A link to CRAN’s own documentation on the structure of its repositories can be found here on their website.
System Components
registry
A portfolio of editions that share the same classification. Registries exclusively contain editions of a single type (repositories, collections, or individual package editions), and as such are typed to represent the specific edition class they contain. Registries are namespaced to provide a consistent interface for accessing and managing the related software components tailored to a particular audience or purpose.
package server
A platform that hosts all registries and their corresponding editions. A2-Ai’s GitHub package mirror can be considered a package server. Appropriately, the PRISM Package server can also be considered a package server in this context.
platform
A platform specifies the hardware and software environment parameters for which source code for a particular package is compiled into executable binaries. Factors such as operating system, processor architecture, and R version are taken into account when defining a platform.
Examples:
- An R package built for R 4.3 on Linux 22.04.5 LTS (Jammy Jellyfish)
- An R package built for R 4.4 on macOS using Apple silicon (ARM processor)
Editions
edition
A particular set of packages contained within the PRISM ecosystem. Each edition is its own CRAN-like repository. Consider each particular snapshot within A2-Ai’s GitHub package mirror as its own edition. Editions are categorized into three different types: repositories, collections, and individual packages, for which the contents of the edition reflect the definition of these types.
mutable
An edition is mutable if it’s possible that packages will be added, removed, or changed within it. An edition is not mutable if no changes will be made to the contents of the edition now or in the future.
repository edition
An edition that contains a set of packages preserved at a particular instance in history. Each edition is self-contained, allowing all included packages to be installed exclusively from that collection. Newer repositories include updated package versions when available and may incorporate additional packages that emerged since previous repositories, creating a chronological progression of preserved software states. In the broader R landscape, the functionality that Posit Package Manager has to freeze package versions to a specific date can be considered a repository edition.
collection edition
An edition that has specific packages and versions curtailed to a particular audience, purpose, or organization. Collections may contain deliberately chosen packages and versions that fulfill particular functions or requirements. A collection may or may not be self-contained. In the broader R landscape, we can consider the Tidyverse to be similar to a collection edition.
individual package edition
An edition which is responsible for encapsulating one particular package at a specific version. An individual package may or may not include its package’s dependencies. An individual package edition is relevant to nascent packages which may have new versions frequently, such as A2-Ai’s reportifyr.