{
  "_id": "6a286718732311cd8758665c",
  "Package": "courieR",
  "Type": "Package",
  "Title": "Migrate Installed R Packages Between R Versions",
  "Version": "0.3.0",
  "Authors@R": "person(\"Lennon\", \"Li\", , \"yeli@biostats.ai\", role = c(\"aut\", \"cre\"))",
  "Description": "Detects all R installations on the current machine and\nmigrates installed R packages between them. Provides\nfind_routes() to discover R versions, manifest() to scan\npackage libraries via 'subprocess', inventory() to compare two\nlibraries, and ship() to install packages into a target R\nversion using 'pak'. Includes a Shiny dashboard (open_hub())\nfor interactive source-to-target migration.",
  "License": "MIT + file LICENSE",
  "URL": "https://lennon-li.github.io/courieR/,\nhttps://github.com/lennon-li/courieR",
  "BugReports": "https://github.com/lennon-li/courieR/issues",
  "Language": "en-US",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "8.0.0",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Config/pak/sysreqs": "cmake make libuv1-dev zlib1g-dev",
  "Repository": "https://lennon-li.r-universe.dev",
  "Date/Publication": "2026-06-09 19:08:35 UTC",
  "RemoteUrl": "https://github.com/lennon-li/courier",
  "RemoteRef": "HEAD",
  "RemoteSha": "e5950d099472ca1976d8cd82796b8a0671d6357a",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-09 19:15:50 UTC",
    "User": "root"
  },
  "Author": "Lennon Li [aut, cre]",
  "Maintainer": "Lennon Li <yeli@biostats.ai>",
  "MD5sum": "0ec38b54c8f49af2d820d2edfbb37c15",
  "_user": "lennon-li",
  "_type": "src",
  "_file": "courieR_0.3.0.tar.gz",
  "_fileid": "2702d55e83d1a9ce4bf4028402edc916e0d5cfeaedc0a412f25b974b269b1a55",
  "_filesize": 1166352,
  "_sha256": "2702d55e83d1a9ce4bf4028402edc916e0d5cfeaedc0a412f25b974b269b1a55",
  "_created": "2026-06-09T19:15:50.000Z",
  "_published": "2026-06-09T19:18:48.008Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 80406686384,
      "time": 148,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "7517796312"
    },
    {
      "job": 80406686425,
      "time": 138,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "ERROR",
      "artifact": "7517792635"
    },
    {
      "job": 80406686479,
      "time": 103,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "7517780350"
    },
    {
      "job": 80406686455,
      "time": 104,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "ERROR",
      "artifact": "7517780943"
    },
    {
      "job": 80406140314,
      "time": 170,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7517741425"
    },
    {
      "job": 80406686658,
      "time": 124,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7517787931"
    },
    {
      "job": 80406686443,
      "time": 95,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "7517777505"
    },
    {
      "job": 80406686460,
      "time": 140,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "7517793248"
    },
    {
      "job": 80406686578,
      "time": 91,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "ERROR",
      "artifact": "7517776051"
    }
  ],
  "_buildurl": "https://github.com/r-universe/lennon-li/actions/runs/27229644973",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/lennon-li/courier",
  "_commit": {
    "id": "e5950d099472ca1976d8cd82796b8a0671d6357a",
    "author": "Your Name <you@example.com>",
    "committer": "Your Name <you@example.com>",
    "message": "Add install location to detection; widen and de-clutter control panel\n\nfind_routes() now captures each install's R.home() as a `home` column, so a\ngenuinely distinct installation can be told apart from its library. The\nDispatch sidebar installations panel shows `install:` (R home) above\n`library:` for each detected R — both are the diagnostic for the \"installs\nshare a library\" report. Widened the sidebar to 380px and removed the hr()\ndividers between sections, tightening the inter-section spacing so paths fit.\n\nThe R_LIBS_USER env-strip fix (prior commit) is verified on Linux; this adds\nthe install-location surface needed to diagnose the remaining Windows report.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n",
    "time": 1781032115
  },
  "_maintainer": {
    "name": "Lennon Li",
    "email": "yeli@biostats.ai"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "processx",
      "version": ">= 3.8.0",
      "role": "Imports"
    },
    {
      "package": "callr",
      "version": ">= 3.7.0",
      "role": "Imports"
    },
    {
      "package": "pak",
      "version": ">= 0.7.0",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "version": ">= 1.8.0",
      "role": "Imports"
    },
    {
      "package": "desc",
      "version": ">= 1.4.0",
      "role": "Imports"
    },
    {
      "package": "fs",
      "version": ">= 1.6.0",
      "role": "Imports"
    },
    {
      "package": "cli",
      "version": ">= 3.6.0",
      "role": "Imports"
    },
    {
      "package": "data.table",
      "version": ">= 1.14.0",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "version": ">= 1.8.0",
      "role": "Imports"
    },
    {
      "package": "shinyjs",
      "version": ">= 2.1.0",
      "role": "Imports"
    },
    {
      "package": "bslib",
      "version": ">= 0.7.0",
      "role": "Imports"
    },
    {
      "package": "bsicons",
      "version": ">= 0.1.2",
      "role": "Imports"
    },
    {
      "package": "DT",
      "version": ">= 0.31",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "version": ">= 1.5.0",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "mockery",
      "version": ">= 0.4.4",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "version": ">= 1.45",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "version": ">= 2.26",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "version": ">= 2.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "lennon-li",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-19",
      "n": 7
    },
    {
      "week": "2026-20",
      "n": 1
    },
    {
      "week": "2026-21",
      "n": 3
    },
    {
      "week": "2026-22",
      "n": 1
    },
    {
      "week": "2026-23",
      "n": 25
    },
    {
      "week": "2026-24",
      "n": 20
    }
  ],
  "_tags": [],
  "_stars": 1,
  "_contributors": [
    {
      "user": "lennon-li",
      "count": 24,
      "uuid": 85519713
    }
  ],
  "_userbio": {
    "uuid": 85519713,
    "type": "user",
    "name": "Ye (Lennon) Li"
  },
  "_downloads": {
    "count": 221,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/courieR"
  },
  "_devurl": "https://github.com/lennon-li/courier",
  "_pkgdown": "https://lennon-li.github.io/courieR/",
  "_searchresults": 8,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/courieR.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/lennon-li/courier",
  "_realowner": "lennon-li",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2026-05-30"
    },
    {
      "version": "0.2.2",
      "date": "2026-06-04"
    }
  ],
  "_exports": [
    "dispatch",
    "find_routes",
    "hub",
    "inspect_shipment",
    "inventory",
    "manifest",
    "migrate",
    "open_depot",
    "open_hub",
    "parse_dispatch_log",
    "parse_inspection_log",
    "rate_shipment",
    "rig_available",
    "rig_install",
    "rig_list",
    "ship",
    "take_inventory",
    "wrap"
  ],
  "_help": [
    {
      "page": "dispatch",
      "title": "Run an R command in the background and log output",
      "topics": [
        "dispatch"
      ]
    },
    {
      "page": "find_routes",
      "title": "Detect R installations on the system",
      "topics": [
        "find_routes"
      ]
    },
    {
      "page": "inspect_shipment",
      "title": "Detect project characteristics",
      "topics": [
        "inspect_shipment"
      ]
    },
    {
      "page": "inventory",
      "title": "Compare two package libraries",
      "topics": [
        "inventory"
      ]
    },
    {
      "page": "manifest",
      "title": "List packages installed in a library",
      "topics": [
        "manifest"
      ]
    },
    {
      "page": "migrate",
      "title": "Migrate packages between two R installations in one call",
      "topics": [
        "migrate"
      ]
    },
    {
      "page": "open_depot",
      "title": "Ensure the courier depot directory structure exists",
      "topics": [
        "open_depot"
      ]
    },
    {
      "page": "open_hub",
      "title": "Launch the courieR dashboard",
      "topics": [
        "hub",
        "open_hub"
      ]
    },
    {
      "page": "parse_dispatch_log",
      "title": "Parse test log",
      "topics": [
        "parse_dispatch_log"
      ]
    },
    {
      "page": "parse_inspection_log",
      "title": "Parse R CMD check log",
      "topics": [
        "parse_inspection_log"
      ]
    },
    {
      "page": "rate_shipment",
      "title": "Classify shipment risk based on check and test results",
      "topics": [
        "rate_shipment"
      ]
    },
    {
      "page": "rig_available",
      "title": "Check if rig is available",
      "topics": [
        "rig_available"
      ]
    },
    {
      "page": "rig_install",
      "title": "Install R via rig",
      "topics": [
        "rig_install"
      ]
    },
    {
      "page": "rig_list",
      "title": "List rig installations",
      "topics": [
        "rig_list"
      ]
    },
    {
      "page": "ship",
      "title": "Ship packages between R installations",
      "topics": [
        "ship"
      ]
    },
    {
      "page": "take_inventory",
      "title": "Scan project dependencies",
      "topics": [
        "take_inventory"
      ]
    },
    {
      "page": "wrap",
      "title": "Generate a pak specification for a package",
      "topics": [
        "wrap"
      ]
    }
  ],
  "_readme": "https://github.com/lennon-li/courier/raw/HEAD/README.md",
  "_rundeps": [
    "base64enc",
    "bsicons",
    "bslib",
    "cachem",
    "callr",
    "cli",
    "commonmark",
    "crosstalk",
    "data.table",
    "desc",
    "digest",
    "DT",
    "evaluate",
    "fastmap",
    "fontawesome",
    "fs",
    "glue",
    "highr",
    "htmltools",
    "htmlwidgets",
    "httpuv",
    "jquerylib",
    "jsonlite",
    "knitr",
    "later",
    "lazyeval",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "otel",
    "pak",
    "processx",
    "promises",
    "ps",
    "R6",
    "rappdirs",
    "Rcpp",
    "rlang",
    "rmarkdown",
    "sass",
    "shiny",
    "shinyjs",
    "sourcetools",
    "tinytex",
    "withr",
    "xfun",
    "xtable",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "get-started.Rmd",
      "filename": "get-started.html",
      "title": "Getting Started with courieR",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Installation",
        "Step 1 — Discover Your R Installations",
        "Platform detection",
        "CLI Workflow",
        "Step 2 — Scan a library with manifest()",
        "Step 3 — Compare two libraries with inventory()",
        "Step 4 — Migrate with ship()",
        "Always dry-run first",
        "Include version upgrades",
        "Check results",
        "Migrate GitHub and Bioconductor packages",
        "Transfer modes",
        "Why copy modes need the same R x.y series",
        "Common Recipes",
        "One-way migration (old R → new R)",
        "Mirror two same-version installs",
        "Inspect before migrating",
        "Save a manifest to disk",
        "Dashboard",
        "Tips"
      ],
      "created": "2026-05-08 14:02:20",
      "modified": "2026-06-09 01:33:37",
      "commits": 8
    }
  ],
  "_score": 4.477121254719663,
  "_indexed": true,
  "_nocasepkg": "courier",
  "_universes": [
    "lennon-li"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-06-09T19:18:18.000Z",
      "distro": "noble",
      "commit": "e5950d099472ca1976d8cd82796b8a0671d6357a",
      "fileid": "b7fecefd405747f8a42082a7ebbdbdcf7f28797e81f2e61b2b3693d26203867b",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/27229644973"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-06-09T19:18:08.000Z",
      "distro": "noble",
      "commit": "e5950d099472ca1976d8cd82796b8a0671d6357a",
      "fileid": "769e970c6aa0261e31c54cd16b9d2a8c694a5c7d3eafd15853cbbd2992ebd9e6",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/27229644973"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-06-09T19:17:36.000Z",
      "commit": "e5950d099472ca1976d8cd82796b8a0671d6357a",
      "fileid": "276af57d2103dfddb486d4d9390f01b4ed4127f9658f52d83818f041d1ff4f5c",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/27229644973"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-06-09T19:17:37.000Z",
      "commit": "e5950d099472ca1976d8cd82796b8a0671d6357a",
      "fileid": "267b04a0f6d3f3dfcf1bfc2db3117f600061b0bfd177ba62dcec29a3d9e8434c",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/27229644973"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.0",
      "date": "2026-06-09T19:18:10.000Z",
      "commit": "e5950d099472ca1976d8cd82796b8a0671d6357a",
      "fileid": "c5707ecce1d4a0808b48c7393a92b9548aedce29f0dc6a189cff29e2250348b5",
      "status": "success",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/27229644973"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-06-09T19:17:17.000Z",
      "commit": "e5950d099472ca1976d8cd82796b8a0671d6357a",
      "fileid": "4699d3b1f1f34e059d6ac5f3f9fa3d9c1e1c4b884bb94a787a265609010d6fd1",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/27229644973"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-06-09T19:17:55.000Z",
      "commit": "e5950d099472ca1976d8cd82796b8a0671d6357a",
      "fileid": "0dcc3dede43c136030806b2f730e35bb2be93266c5ac700b349450473956d13a",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/27229644973"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-06-09T19:17:11.000Z",
      "commit": "e5950d099472ca1976d8cd82796b8a0671d6357a",
      "fileid": "8700d42ee85ee9827f6029bbf1e3b360ac7b9a5c5ea2edd6bfc7db157bb98f34",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/lennon-li/actions/runs/27229644973"
    }
  ]
}