---
engines:
- path: /opt/quarto/share/extension-subtrees/julia-engine/\_extensions/julia-engine/julia-engine.js
title: "PRISM Documentation: Glossary"
toc-title: Table of contents
---

[Back to Help](../help/)

## 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

**[Packages are the fundamental units of reproducible R code. They
include reusable R functions, the documentation that describes how to
use them, and sample
data.](https://r-pkgs.org/#:~:text=Packages%20are%20the%20fundamental%20units%20of%20reproducible%20R%20code.%20They%20include%20reusable%20R%20functions%2C%20the%20documentation%20that%20describes%20how%20to%20use%20them%2C%20and%20sample%20data.)**

### 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.](https://solutions.posit.co/envs-pkgs/environments/repositories/#:~:text=CRAN%2Dlike%20repositories%20organize%20R%20packages%20in%20a%20specific%20structure%20designed%20to%20work%20with%20R%E2%80%99s%20functions%20for%20accessing%20and%20installing%20packages.)**
A link to CRAN's own documentation on the structure of its repositories
can be found [here on their
website](https://cran.r-project.org/doc/manuals/R-admin.html#Setting-up-a-package-repository-1).

------------------------------------------------------------------------

## 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](https://a2-ai.github.io/gh-pkg-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](https://a2-ai.github.io/gh-pkg-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](https://packagemanager.posit.co/client/#/repos/cran/setup?snapshot=latest:~:text=repositories%3A%20do%20you%20want%20to%20freeze%20package%20versions%20to%20enhance%20reproducibility%3F)
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](https://www.tidyverse.org/#:~:text=The%20tidyverse%20is%20an%20opinionated%20collection%20of%20R%20packages%20designed%20for%20data%20science)
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](https://github.com/A2-ai/reportifyr).

[Back to Help](../help/)
