{
  "_id": "6ac9900ffe5cc25786e8241e",
  "Package": "containr",
  "Title": "Containerize Your 'R' Project",
  "Version": "0.2.0.9000",
  "Authors@R": "person(\"Erwin\", \"Lares\",\nemail = \"erwin.lares@wisc.edu\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-3284-828X\"))",
  "Description": "Provides tools for containerizing 'R' projects. Reads an\n'renv' lock file, generates a ready-to-use 'Dockerfile', builds\nthe container image, and pushes it to a registry. Generated\n'COPY' instructions preserve the local directory structure\ninside the container. Cross-platform builds are supported via\n'Docker' buildx for targeting 'linux/amd64' from ARM hosts.\nDesigned to help researchers build portable, reproducible\nworkflows that can be reliably shared, archived, and rerun\nacross systems. See R Core Team (2025)\n<https://www.R-project.org/>, Ushey et al. (2025)\n<https://CRAN.R-project.org/package=renv>, and Docker Inc.\n(2025) <https://www.docker.com/>.",
  "License": "Apache License (>= 2)",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "Roxygen": "list(markdown = TRUE)",
  "URL": "https://github.com/erwinlares/containr,\nhttps://erwinlares.github.io/containr/",
  "BugReports": "https://github.com/erwinlares/containr/issues",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.0.0",
  "VignetteBuilder": "knitr",
  "Repository": "https://erwinlares.r-universe.dev",
  "Date/Publication": "2026-10-10 00:17:49 UTC",
  "RemoteUrl": "https://github.com/erwinlares/containr",
  "RemoteRef": "HEAD",
  "RemoteSha": "63a2b06295e698bd087f1e2e1a97aebf6a0a658c",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-10 01:04:59 UTC",
    "User": "root"
  },
  "Author": "Erwin Lares [aut, cre] (ORCID: <https://orcid.org/0000-0002-3284-828X>)",
  "Maintainer": "Erwin Lares <erwin.lares@wisc.edu>",
  "_user": "erwinlares",
  "_type": "src",
  "_file": "containr_0.2.0.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/610b85520dab626334981cc84f1506ef75064432f32c05eee4e4af0c34488c7e",
  "_filesize": 5566600,
  "_sha256": "610b85520dab626334981cc84f1506ef75064432f32c05eee4e4af0c34488c7e",
  "_expires": "2027-01-18T01:08:29.000Z",
  "_created": "2026-10-10T01:04:59.000Z",
  "_published": "2026-10-10T01:08:31.768Z",
  "_buildurl": "https://github.com/r-universe/erwinlares/actions/runs/38011548321",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 114093195321,
      "time": 159,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11654386208"
    },
    {
      "job": 114093195211,
      "time": 166,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11654125657"
    },
    {
      "job": 114093195146,
      "time": 104,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11653268087"
    },
    {
      "job": 114093195178,
      "time": 123,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11653626733"
    },
    {
      "job": 114092541231,
      "time": 178,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11653670750"
    },
    {
      "job": 114093195212,
      "time": 92,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11654026317"
    },
    {
      "job": 114093195249,
      "time": 111,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11654010600"
    },
    {
      "job": 114093195200,
      "time": 79,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11653422070"
    },
    {
      "job": 114093195162,
      "time": 131,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11653946445"
    }
  ],
  "_upstream": "https://github.com/erwinlares/containr",
  "_commit": {
    "id": "63a2b06295e698bd087f1e2e1a97aebf6a0a658c",
    "author": "Erwin Lares <erwin.lares@wisc.edu>",
    "committer": "Erwin Lares <erwin.lares@wisc.edu>",
    "message": "part 2\n\nFall back smartly on a rejected Ubuntu release; restore from binaries\n\nremotes::system_requirements() validates the Ubuntu release with\nmatch.arg() against a fixed internal list that stops at \"22.04\"\n(remotes 2.5.0). .resolve_os_version() correctly maps R >= 4.4.2 to\n\"24.04\", so the lookup was rejected before it started, and\n.fetch_sysreqs() turned the error into a warning and an empty result:\nan apt-get block with only curl.\n\n.fetch_sysreqs() now reads the accepted releases out of the error\nmessage, retries the newest one that is not newer than the request,\nand reports the release it used. Nothing about the accepted releases\nis hardcoded here. A failure that is not a rejected release is not\nretried. Large lockfiles are sent in groups of at most 50 packages.\n\ngenerate_dockerfile() gains binary_packages (default TRUE) and\nppm_snapshot (default \"latest\"). The restore step then installs from\nPosit Package Manager's precompiled Linux binaries, which skips\ncompilation. The binaries are still linked against system libraries,\nso the apt-get block is still needed; a version with no binary falls\nback to a source install. The codename comes from the Ubuntu release\nbehind the FROM line, not from an os_version override, since a binary\nbuilt for one release is not guaranteed to load on another. A release\nwith no known codename keeps the source restore and warns.\n\nWith verbose = TRUE the function reports where the system libraries\ncame from (baseline, detected, install_syslibs) and traces each\nlibrary to the packages that reported it, using one lookup per\npackage. The trace never changes the apt-get block.\n\nBreaking: the default restore step changed. Pass\nbinary_packages = FALSE for the previous output. Tests that assert the\nold default restore lines need that argument.\n",
    "time": 1791591469
  },
  "_maintainer": {
    "name": "Erwin Lares",
    "email": "erwin.lares@wisc.edu",
    "orcid": "0000-0002-3284-828X"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "fs",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "httr2",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "readr",
      "role": "Imports"
    },
    {
      "package": "remotes",
      "role": "Imports"
    },
    {
      "package": "renv",
      "role": "Imports"
    },
    {
      "package": "yaml",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "erwinlares",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-15",
      "n": 2
    },
    {
      "week": "2026-17",
      "n": 10
    },
    {
      "week": "2026-18",
      "n": 1
    },
    {
      "week": "2026-19",
      "n": 8
    },
    {
      "week": "2026-20",
      "n": 6
    },
    {
      "week": "2026-21",
      "n": 1
    },
    {
      "week": "2026-32",
      "n": 2
    },
    {
      "week": "2026-35",
      "n": 3
    },
    {
      "week": "2026-38",
      "n": 12
    },
    {
      "week": "2026-39",
      "n": 1
    },
    {
      "week": "2026-40",
      "n": 2
    },
    {
      "week": "2026-41",
      "n": 2
    }
  ],
  "_tags": [
    {
      "name": "v0.1.3",
      "date": "2026-04-26"
    }
  ],
  "_stars": 4,
  "_contributors": [
    {
      "user": "erwinlares",
      "count": 1,
      "uuid": 80365372
    }
  ],
  "_userbio": {
    "uuid": 80365372,
    "type": "user",
    "name": "Erwin Lares",
    "followers": 7,
    "description": "Linguist, data science enthusiast, dog dad, humanist, coffee fan, aikidoist and hobby potter.\r\n"
  },
  "_downloads": {
    "count": 410,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/containr"
  },
  "_devurl": "https://github.com/erwinlares/containr",
  "_pkgdown": "https://erwinlares.github.io/containr/",
  "_searchresults": 10,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/containr.html",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_homeurl": "https://github.com/erwinlares/containr",
  "_realowner": "erwinlares",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2025-09-24"
    },
    {
      "version": "0.1.2",
      "date": "2026-04-07"
    },
    {
      "version": "0.1.3",
      "date": "2026-04-26"
    }
  ],
  "_exports": [
    "build_image",
    "generate_dockerfile",
    "list_images",
    "push_image"
  ],
  "_help": [
    {
      "page": "build_image",
      "title": "Build a container image from a Dockerfile",
      "topics": [
        "build_image"
      ]
    },
    {
      "page": "generate_dockerfile",
      "title": "Generate a reproducible Dockerfile for an R project",
      "topics": [
        "generate_dockerfile"
      ]
    },
    {
      "page": "list_images",
      "title": "List locally available container images",
      "topics": [
        "list_images"
      ]
    },
    {
      "page": "push_image",
      "title": "Tag and push a container image to a registry",
      "topics": [
        "push_image"
      ]
    }
  ],
  "_pkglogo": "https://github.com/erwinlares/containr/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/erwinlares/containr/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "bit",
    "bit64",
    "cli",
    "clipr",
    "cpp11",
    "crayon",
    "curl",
    "fs",
    "glue",
    "hms",
    "httr2",
    "jsonlite",
    "lifecycle",
    "magrittr",
    "openssl",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "progress",
    "purrr",
    "R6",
    "readr",
    "remotes",
    "renv",
    "rlang",
    "sys",
    "tibble",
    "tidyselect",
    "tzdb",
    "utf8",
    "vctrs",
    "vroom",
    "withr",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "containr-workflow.Rmd",
      "filename": "containr-workflow.html",
      "title": "A first containerization workflow with containr",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Before you start",
        "Step 1: Generate a Dockerfile",
        "Step 2: Build the image",
        "Step 3: Inspect local images",
        "Step 4: Push the image to the registry",
        "Putting it together",
        "Troubleshooting"
      ],
      "created": "2026-05-12 19:07:58",
      "modified": "2026-09-30 21:18:59",
      "commits": 8
    },
    {
      "source": "why-containers.Rmd",
      "filename": "why-containers.html",
      "title": "From renv to containers: why recording your R packages may not be enough",
      "engine": "knitr::rmarkdown",
      "headings": [
        "You already care about reproducibility",
        "What renv does -- and does not do",
        "What a container adds",
        "The Dockerfile as a reproducibility artifact",
        "Where containr fits",
        "What comes next"
      ],
      "created": "2026-05-12 19:07:58",
      "modified": "2026-09-30 21:18:59",
      "commits": 2
    }
  ],
  "_score": 5.681241237375588,
  "_indexed": true,
  "_nocasepkg": "containr",
  "_universes": [
    "erwinlares"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0.9000",
      "date": "2026-10-10T01:07:38.000Z",
      "distro": "resolute",
      "commit": "63a2b06295e698bd087f1e2e1a97aebf6a0a658c",
      "fileid": "https://r2.ropensci.org/c7f27cd0beb8e11363510c8bfc92fa8a7b78028e08f1357754ebd189e1bf6c17",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/erwinlares/actions/runs/38011548321"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.0.9000",
      "date": "2026-10-10T01:07:41.000Z",
      "distro": "resolute",
      "commit": "63a2b06295e698bd087f1e2e1a97aebf6a0a658c",
      "fileid": "https://r2.ropensci.org/8b448d64431723850403f2e1572985cb19596e53d232673c4fb2456ffc3621c6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/erwinlares/actions/runs/38011548321"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.0.9000",
      "date": "2026-10-10T01:06:49.000Z",
      "commit": "63a2b06295e698bd087f1e2e1a97aebf6a0a658c",
      "fileid": "https://r2.ropensci.org/3d44934364c95d5530f6e11df53c45896ae63f2cd9d71e336c5fedd21700863b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/erwinlares/actions/runs/38011548321"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.2.0.9000",
      "date": "2026-10-10T01:07:03.000Z",
      "commit": "63a2b06295e698bd087f1e2e1a97aebf6a0a658c",
      "fileid": "https://r2.ropensci.org/865a0b4f4cab1ab257a93910c0b0b354886c7465da9208bd1044a96324e81ada",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/erwinlares/actions/runs/38011548321"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0.9000",
      "date": "2026-10-10T01:06:54.000Z",
      "commit": "63a2b06295e698bd087f1e2e1a97aebf6a0a658c",
      "fileid": "https://r2.ropensci.org/701e74837ed51e3fe3e41dd4b38907c549063b3e18942195e8ae06dd7c84be66",
      "status": "success",
      "buildurl": "https://github.com/r-universe/erwinlares/actions/runs/38011548321"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.0.9000",
      "date": "2026-10-10T01:06:34.000Z",
      "commit": "63a2b06295e698bd087f1e2e1a97aebf6a0a658c",
      "fileid": "https://r2.ropensci.org/8e19e665d98dcb82a0de015993b7fc2d0ebf77984dc764e0d2d0feb9865a2a99",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/erwinlares/actions/runs/38011548321"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.0.9000",
      "date": "2026-10-10T01:06:15.000Z",
      "commit": "63a2b06295e698bd087f1e2e1a97aebf6a0a658c",
      "fileid": "https://r2.ropensci.org/c97285d5387d4c3176fa3497924e9e1e8c5800f297b2ad0a3b27aabe6d11d11e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/erwinlares/actions/runs/38011548321"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.0.9000",
      "date": "2026-10-10T01:07:03.000Z",
      "commit": "63a2b06295e698bd087f1e2e1a97aebf6a0a658c",
      "fileid": "https://r2.ropensci.org/5bbad5da8e5735fb87040187248f00d62ffcb391ff207ed6705430f7a1fda9d9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/erwinlares/actions/runs/38011548321"
    }
  ]
}