Skip to content

About

📦 Containers used for executing Dodona exercises

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Latest commit

 

History

1,065 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-images

The docker images used by dodona

dodona-python

  • based on the python image
  • includes ruff
  • shared by judge-pythia and judge-turtle: each judge's packages are in dodona-python/<judge>.txt, exercise packages in exercises.txt, and every pull request that changes the image runs both judges' suites against the candidate

dodona-r

  • based on the r-base image
  • dodona-r/DESCRIPTION lists the R packages the image provides, dodona-r/renv.lock pins them and their dependencies, and the build restores exactly that lock with renv
  • the lock takes every CRAN package from one dated Posit Package Manager snapshot, the date in its repository URL
  • judge-r and its test suite need base64enc, dplyr, ggplot2, jsonlite, knitr, processx, purrr, R6, rlang, testthat, tibble and withr; the other packages are for exercises
  • R's recommended packages (MASS, Matrix, lattice, survival, ...) come from r-base: the lock holds them at r-base's versions
  • coxed, polite, rtweet and vader are pinned (== in DESCRIPTION) at their last release because CRAN archived them; they and UserNetR (a GitHub commit in Remotes) keep their lock record when the lock is regenerated
  • bindrcpp, covr, maps, spelling, vcr and webshot stay listed because coxed's and rtweet's old dependencies = TRUE installs pulled them in

Dependabot's r-base bump fails the build's lock check, because the new R ships other recommended packages: run the command below with that day's date on its branch. Between R releases, run it by hand to add, remove or bump packages, after editing dodona-r/DESCRIPTION if needed. It regenerates the lock from the snapshot of <date> (YYYY-MM-DD) without installing anything:

docker run --rm -v "$PWD/dodona-r:/requirements" -w /requirements \
  "$(docker build -q --target renv -f dodona-r.dockerfile .)" \
  Rscript update-lock.R <date>

A new date bumps every package to its version on that day. If CRAN archived a package since the last date, the script stops: pin it at the version the lock holds.

About

📦 Containers used for executing Dodona exercises

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Packages

Used by

Contributors

Languages