Skip to content

Repository files navigation

Execution Environments

The officially supported execution environments (exec-envs) for ricochet.

The exec-envs are carefully crafted container images that are used to run apps and tasks using the kubernetes or container backend engines or in ricochet cloud.

Releases

Exec-envs are rebuilt and released monthly. Runtime dependency updates are prepared on the fifteenth, and the resulting versions are released automatically on the first of the following month.

Release Retained through Environments CI
2026-09 2029-10-01 15 Passed
2026-08 2029-09-01 15 Passed

Ricochet catalogue

Each archived month also renders releases/<month>/catalogue.toml, the [image.<id>] blocks Ricochet reads as its execution environment configuration, with Docker Hub image references and the declared runtime paths. The latest one is mirrored to catalogue.toml, and releases/index.json lists every archived month with its catalogue path. Ricochet reads the index and the monthly catalogues to offer vendored environments from any retained release in its execution environments page.

DockerHub

Release policy

Each environment is defined by a Containerfile under <language>/<operating-system>/, and its build matrix in release/environments/ names that path. Release images are built by the monthly release pipeline for amd64 and arm64, except for Julia on Alpine, which is available for amd64 only. Pull requests that change R images or dependency tooling also validate all configured R targets on native AMD64 and ARM64 workers without publishing images.

Monthly releases pin every supported environment to a multi-platform digest and retain its registry tags for at least three years.
Each monthly directory contains the generated operating system, R, Python, Julia, Quarto, Pandoc, and Typst inventory for all environments in that release. Only calendar-versioned tags are published, and release cutoffs remove deprecated variants from newer monthly archives without changing retained historical releases.

Each R image bundles R 4.4, 4.5, and 4.6, with R 4.6 selected by the unversioned R and Rscript commands. R images include generated Linux system dependencies and retain the distro Python executables needed by dependency tools. Each Python image bundles Python 3.12, 3.13, and 3.14, with Python 3.14 selected by python3. Every image provides quarto, pandoc, and typst commands. Ubuntu and AlmaLinux expose the Pandoc and Typst versions bundled with Quarto; Alpine uses native packages for musl compatibility. Each Julia image bundles Julia 1.10 and 1.12, with Julia 1.12 selected by julia. Environment tags identify the operating system release, such as julia-ubuntu:2026-08-resolute, rather than repeating bundled language versions.

Alpine monthly releases contain the newest two OS minor versions, and older minors leave the build matrix as soon as their final monthly archive is complete.

Each archived month also gets a GitHub release tagged YYYY-MM whose notes list the environments added, removed, and updated since the previous month.

An archived month can be rebuilt so its images pick up operating system security fixes. A rebuild moves the existing calendar tag onto the new digest, so nothing has to change for anyone already pulling that tag. It is refused when the rebuilt image reports a different R, Python, Julia, Quarto, Pandoc, or Typst version, which keeps a month's recorded software fixed while its base layers move.

Releasing on Crow

The monthly release Crow cron rebuilds and archives every supported environment on the first day of each month. Its month is prepared on the fifteenth of the preceding month, which gives scheduled dependency updates time to build and merge before release day. The same preparation cron opens an R system-dependency update PR when the upstream catalog has changed.

The same release can be started manually when a scheduled run needs recovery:

crow pipeline create \
  --branch main \
  --var RELEASE_MONTH=2026-09 \
  ricochet-rs/exec-envs

RELEASE_MONTH defaults to the prepared month in release/next-month, and an explicit value overrides it for manual recovery.

About

Execution environments for ricochet.rs

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages