{
  "_id": "6a49be83fcd1f935c701ca79",
  "Type": "Package",
  "Package": "gradethis",
  "Title": "Automated Feedback for Student Exercises in 'learnr' Tutorials",
  "Version": "0.2.14",
  "Authors@R": "c(\nperson(\"Garrick\", \"Aden-Buie\", , \"garrick@posit.co\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-7111-0077\")),\nperson(\"Daniel\", \"Chen\", , \"daniel.chen@posit.co\", role = \"aut\",\ncomment = c(ORCID = \"0000-0003-3857-1741\")),\nperson(\"Garrett\", \"Grolemund\", , \"garrett@posit.co\", role = c(\"ccp\", \"aut\"),\ncomment = c(ORCID = \"0000-0002-7765-6011\")),\nperson(\"Alexander\", \"Rossell Hayes\", , \"alex.rossellhayes@posit.co\", role = \"aut\",\ncomment = c(ORCID = \"0000-0001-9412-0457\")),\nperson(\"Barret\", \"Schloerke\", , \"barret@posit.co\", role = \"aut\",\ncomment = c(ORCID = \"0000-0001-9986-114X\")),\nperson(, \"Posit, PBC\", role = c(\"cph\", \"fnd\"))\n)",
  "Description": "Pairing with the 'learnr' R package, 'gradethis' provides\nmultiple methods to grade 'learnr' exercises.  To learn more\nabout 'learnr' tutorials, please visit\n<https://rstudio.github.io/learnr/>.",
  "License": "MIT + file LICENSE",
  "URL": "https://pkgs.rstudio.com/gradethis/,\nhttps://rstudio.github.io/learnr/,\nhttps://github.com/rstudio/gradethis",
  "BugReports": "https://github.com/rstudio/gradethis/issues",
  "VignetteBuilder": "knitr",
  "Remotes": [
    "rstudio/ggcheck",
    "rstudio/learnr"
  ],
  "Config/Needs/connect": "rsconnect",
  "Config/Needs/coverage": "covr",
  "Config/Needs/website": "pkgdown, tidyverse/tidytemplate",
  "Config/roxygen2/version": "8.0.0",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "Roxygen": "list(markdown = TRUE)",
  "Config/pak/sysreqs": "cmake make libuv1-dev zlib1g-dev",
  "Repository": "https://inqs909.r-universe.dev",
  "Date/Publication": "2026-06-18 17:19:36 UTC",
  "RemoteUrl": "https://github.com/rstudio/gradethis",
  "RemoteRef": "HEAD",
  "RemoteSha": "48aaf8957cdac09f45f540f841a6bcd55ac5e2f1",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-18 19:30:28 UTC",
    "User": "root"
  },
  "Author": "Garrick Aden-Buie [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-7111-0077>),\nDaniel Chen [aut] (ORCID: <https://orcid.org/0000-0003-3857-1741>),\nGarrett Grolemund [ccp, aut] (ORCID:\n<https://orcid.org/0000-0002-7765-6011>),\nAlexander Rossell Hayes [aut] (ORCID:\n<https://orcid.org/0000-0001-9412-0457>),\nBarret Schloerke [aut] (ORCID: <https://orcid.org/0000-0001-9986-114X>),\nPosit, PBC [cph, fnd]",
  "Maintainer": "Garrick Aden-Buie <garrick@posit.co>",
  "_user": "inqs909",
  "_type": "src",
  "_file": "gradethis_0.2.14.tar.gz",
  "_fileid": "https://r2.ropensci.org/c3d9a53e33af683b0dae6bb7da78be2ca93def2430f9a9c58cd9656cca733ef6",
  "_filesize": 522229,
  "_sha256": "c3d9a53e33af683b0dae6bb7da78be2ca93def2430f9a9c58cd9656cca733ef6",
  "_expires": "2026-10-13T02:16:33.000Z",
  "_created": "2026-06-18T19:30:28.000Z",
  "_published": "2026-07-05T02:16:35.040Z",
  "_jobs": [
    {
      "job": 85185269561,
      "time": 190,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7733814424"
    },
    {
      "job": 85185269530,
      "time": 206,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7733820553"
    },
    {
      "job": 85185269529,
      "time": 128,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7733792658"
    },
    {
      "job": 85185269586,
      "time": 156,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7733802039"
    },
    {
      "job": 85185269319,
      "time": 196,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7733745946"
    },
    {
      "job": 85185269429,
      "time": 143,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7733797472"
    },
    {
      "job": 85185269556,
      "time": 207,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7733820703"
    },
    {
      "job": 85185269593,
      "time": 204,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7733819985"
    },
    {
      "job": 85185269545,
      "time": 279,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7733846375"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/inqs909/actions/runs/27784062128",
  "_status": "success",
  "_upstream": "https://github.com/rstudio/gradethis",
  "_commit": {
    "id": "48aaf8957cdac09f45f540f841a6bcd55ac5e2f1",
    "author": "Garrick Aden-Buie <garrick@adenbuie.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "fix: resolve R CMD check test failures (#370)\n\n* fix: resolve R CMD check test failures (issue #368)\n\nFour root causes addressed:\n\n- `local_mock()` defunct in testthat >= 3.2.0; replace with\n  `local_mocked_bindings()` in test-graded.R\n\n- `expect_true()` error message format changed from \"is not TRUE\" to\n  \"to be TRUE\"; update test-graded.R assertion to match\n\n- `expect_type()` error now formats as multi-line HTML output; update\n  regex in test-code_feedback.R to use `[\\s\\S]` cross-line match\n  with `perl = TRUE`\n\n- ggplot2 4.0 changed `geom_point()` closure environment from the\n  package namespace to a child env; use `topenv(environment(fn))`\n  in `is_ggplot2_function()` so colour/color standardisation works\n\nFixes #368\n\n* test: update graded snapshots for new rlang warning format\n\nrlang now formats warnings as `Condition\\n  Warning in \\`fn()\\`:` rather\nthan `Warning <simpleWarning>`. Accept the new snapshot output.\n\n* Tidy Description (GitHub Actions)\n\n---------\n\nCo-authored-by: gadenbuie <gadenbuie@users.noreply.github.com>",
    "time": 1781803176
  },
  "_maintainer": {
    "name": "Garrick Aden-Buie",
    "email": "garrick@posit.co",
    "login": "gadenbuie",
    "mastodon": "@grrrck@fosstodon.org",
    "bluesky": "@grrrck.xyz",
    "description": "Software engineer for Shiny at @posit-pbc",
    "uuid": 5420529,
    "orcid": "0000-0002-7111-0077"
  },
  "_distro": "noble",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.2.0",
      "role": "Depends"
    },
    {
      "package": "checkmate",
      "role": "Imports"
    },
    {
      "package": "commonmark",
      "role": "Imports"
    },
    {
      "package": "ellipsis",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "htmltools",
      "role": "Imports"
    },
    {
      "package": "learnr",
      "version": ">= 0.10.1.9008",
      "role": "Imports"
    },
    {
      "package": "lifecycle",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "rstudioapi",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "waldo",
      "role": "Imports"
    },
    {
      "package": "withr",
      "role": "Imports"
    },
    {
      "package": "DBI",
      "role": "Suggests"
    },
    {
      "package": "ggcheck",
      "version": ">= 0.0.5",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "rstudio",
  "_selfowned": false,
  "_usedby": 6,
  "_updates": [
    {
      "week": "2026-25",
      "n": 4
    }
  ],
  "_tags": [],
  "_stars": 164,
  "_contributors": [
    {
      "user": "gadenbuie",
      "count": 122,
      "uuid": 5420529
    },
    {
      "user": "garrettgman",
      "count": 114,
      "uuid": 85014
    },
    {
      "user": "rossellhayes",
      "count": 36,
      "uuid": 44556601
    },
    {
      "user": "cpsievert",
      "count": 29,
      "uuid": 1365941
    },
    {
      "user": "chendaniely",
      "count": 29,
      "uuid": 5782147
    },
    {
      "user": "schloerke",
      "count": 12,
      "uuid": 93231
    },
    {
      "user": "vincentguyader",
      "count": 8,
      "uuid": 10470699
    },
    {
      "user": "trestletech",
      "count": 3,
      "uuid": 1593639
    },
    {
      "user": "angela-li",
      "count": 1,
      "uuid": 15808896
    },
    {
      "user": "colinfay",
      "count": 1,
      "uuid": 17936236
    },
    {
      "user": "laura-puckett",
      "count": 1,
      "uuid": 36464703
    },
    {
      "user": "mine-cetinkaya-rundel",
      "count": 1,
      "uuid": 5965649
    },
    {
      "user": "nischalshrestha",
      "count": 1,
      "uuid": 9612286
    }
  ],
  "_userbio": {
    "uuid": 15242562,
    "type": "user",
    "name": "Isaac Quintanilla Salinas",
    "followers": 11,
    "description": "Assistant Professor of Statistics"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/gradethis"
  },
  "_devurl": "https://github.com/rstudio/gradethis",
  "_pkgdown": "https://pkgs.rstudio.com/gradethis/",
  "_searchresults": 1980,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/gradethis.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_exports": [
    ".engine",
    ".envir_prep",
    ".envir_result",
    ".envir_solution",
    ".evaluate_result",
    ".label",
    ".last_value",
    ".result",
    ".solution",
    ".solution_all",
    ".solution_code",
    ".solution_code_all",
    ".stage",
    ".user",
    ".user_code",
    "%>%",
    "code_feedback",
    "condition",
    "debug_this",
    "eval_gradethis",
    "evaluate_condition",
    "fail",
    "fail_if",
    "fail_if_code_feedback",
    "fail_if_equal",
    "fail_if_error",
    "fail_if_not_equal",
    "give_code_feedback",
    "give_encouragement",
    "give_praise",
    "grade_code",
    "grade_conditions",
    "grade_feedback",
    "grade_learnr",
    "grade_result",
    "grade_result_strict",
    "grade_this",
    "grade_this_code",
    "graded",
    "gradethis_demo",
    "gradethis_equal",
    "gradethis_error_checker",
    "gradethis_exercise_checker",
    "gradethis_setup",
    "maybe_code_feedback",
    "mock_this_exercise",
    "pass",
    "pass_if",
    "pass_if_equal",
    "pipe_warning",
    "random_encourage",
    "random_encouragement",
    "random_praise",
    "solution_object_exists",
    "solution_object_get",
    "solution_object_list",
    "user_object_exists",
    "user_object_get",
    "user_object_list",
    "with_exercise"
  ],
  "_help": [
    {
      "page": "code_feedback",
      "title": "Provide automated code feedback",
      "topics": [
        "code_feedback",
        "give_code_feedback",
        "maybe_code_feedback"
      ]
    },
    {
      "page": "debug_this",
      "title": "Debug an exercise submission",
      "topics": [
        "debug_this"
      ]
    },
    {
      "page": "fail_if_code_feedback",
      "title": "Signal a failing grade if mistakes are detected in the submitted code",
      "topics": [
        "fail_if_code_feedback"
      ]
    },
    {
      "page": "fail_if_error",
      "title": "Fail if grading code produces an error",
      "topics": [
        "fail_if_error"
      ]
    },
    {
      "page": "grade_this",
      "title": "Grade a student's submission using custom logic",
      "topics": [
        "grade_this"
      ]
    },
    {
      "page": "grade_this_code",
      "title": "Grade student code against a solution",
      "topics": [
        "grade_this_code"
      ]
    },
    {
      "page": "grade_this-objects",
      "title": "Checking environment objects for use in 'grade_this()'",
      "topics": [
        ".engine",
        ".envir_prep",
        ".envir_result",
        ".envir_solution",
        ".evaluate_result",
        ".label",
        ".last_value",
        ".result",
        ".solution",
        ".solution_all",
        ".solution_code",
        ".solution_code_all",
        ".stage",
        ".user",
        ".user_code",
        "grade_this-objects"
      ]
    },
    {
      "page": "graded",
      "title": "Signal a final grade for a student's submission",
      "topics": [
        "fail",
        "graded",
        "pass"
      ]
    },
    {
      "page": "gradethis_equal",
      "title": "Compare the values of two objects to check whether they are equal",
      "topics": [
        "gradethis_equal",
        "gradethis_equal.default",
        "gradethis_equal.list"
      ]
    },
    {
      "page": "gradethis_error_checker",
      "title": "An error checking function for use with learnr",
      "topics": [
        "gradethis_error_checker"
      ]
    },
    {
      "page": "gradethis_exercise_checker",
      "title": "A checker function to use with 'learnr'",
      "topics": [
        "gradethis_exercise_checker"
      ]
    },
    {
      "page": "gradethis_setup",
      "title": "Setup gradethis for use within learnr",
      "topics": [
        "gradethis_setup"
      ]
    },
    {
      "page": "mock_this_exercise",
      "title": "Mock a user submission to an exercise",
      "topics": [
        "mock_this_exercise"
      ]
    },
    {
      "page": "pass_if",
      "title": "Signal a passing or failing grade if a condition is TRUE",
      "topics": [
        "fail_if",
        "pass_if"
      ]
    },
    {
      "page": "pass_if_equal",
      "title": "Signal a passing or failing grade if two values are equal",
      "topics": [
        "fail_if_equal",
        "fail_if_not_equal",
        "pass_if_equal"
      ]
    },
    {
      "page": "pipe_warning",
      "title": "Inform the user about how gradethis interprets piped code",
      "topics": [
        "pipe_warning"
      ]
    },
    {
      "page": "praise",
      "title": "Random praise and encouragement",
      "topics": [
        "give_encouragement",
        "give_praise",
        "praise",
        "random_encouragement",
        "random_praise"
      ]
    },
    {
      "page": "user_object",
      "title": "Functions for interacting with objects created by student and solution code",
      "topics": [
        "solution_object_exists",
        "solution_object_get",
        "solution_object_list",
        "user_object",
        "user_object_exists",
        "user_object_get",
        "user_object_list"
      ]
    },
    {
      "page": "with_exercise",
      "title": "Run an expression as if it were in an exercise's 'grade_this()' block",
      "topics": [
        "with_exercise"
      ]
    }
  ],
  "_pkglogo": "https://github.com/rstudio/gradethis/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/rstudio/gradethis/raw/HEAD/README.md",
  "_rundeps": [
    "backports",
    "base64enc",
    "bslib",
    "cachem",
    "checkmate",
    "cli",
    "commonmark",
    "crayon",
    "diffobj",
    "digest",
    "ellipsis",
    "evaluate",
    "fastmap",
    "fontawesome",
    "fs",
    "glue",
    "highr",
    "htmltools",
    "htmlwidgets",
    "httpuv",
    "jquerylib",
    "jsonlite",
    "knitr",
    "later",
    "learnr",
    "lifecycle",
    "litedown",
    "magrittr",
    "markdown",
    "memoise",
    "mime",
    "otel",
    "promises",
    "purrr",
    "R6",
    "rappdirs",
    "Rcpp",
    "renv",
    "rlang",
    "rmarkdown",
    "rprojroot",
    "rstudioapi",
    "sass",
    "shiny",
    "sourcetools",
    "tinytex",
    "vctrs",
    "waldo",
    "withr",
    "xfun",
    "xtable",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "gradethis.Rmd",
      "filename": "gradethis.html",
      "title": "gradethis",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Checking Student Code",
        "Custom Grading Logic",
        "Compare with Solution Code",
        "Writing Custom Logic",
        "Exercise Objects",
        "Grading Helper Functions",
        "Feedback Messages"
      ],
      "created": "2021-03-10 18:14:12",
      "modified": "2022-08-29 16:27:45",
      "commits": 4
    },
    {
      "source": "multiple_solutions.Rmd",
      "filename": "multiple_solutions.html",
      "title": "Multiple solutions",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Multiple solutions, same result",
        "Example",
        "Providing different messages for different solutions",
        "Multiple solutions, different results",
        "Example",
        "Working with all solution results"
      ],
      "created": "2022-04-29 19:51:46",
      "modified": "2022-04-29 20:07:34",
      "commits": 2
    }
  ],
  "_score": 9.84596278946016,
  "_indexed": false,
  "_nocasepkg": "gradethis",
  "_universes": [
    "inqs909"
  ],
  "_indexurl": "https://rstudio.r-universe.dev/gradethis",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.14",
      "date": "2026-06-18T19:33:19.000Z",
      "distro": "noble",
      "commit": "48aaf8957cdac09f45f540f841a6bcd55ac5e2f1",
      "fileid": "https://r2.ropensci.org/73c4e630715c556acd4c3ded934ff9297cb1b98eddb4f3a6310299289bb518eb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/inqs909/actions/runs/27784062128"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.2.14",
      "date": "2026-06-18T19:33:30.000Z",
      "distro": "noble",
      "commit": "48aaf8957cdac09f45f540f841a6bcd55ac5e2f1",
      "fileid": "https://r2.ropensci.org/c77e8935c81f17adeabeaa094ab49becf5f348bbd98c4979a41fedbee4ad3e7d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/inqs909/actions/runs/27784062128"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.14",
      "date": "2026-06-18T19:32:29.000Z",
      "commit": "48aaf8957cdac09f45f540f841a6bcd55ac5e2f1",
      "fileid": "https://r2.ropensci.org/627092e9ae3e24eaa7d188dc00aba9d2477c2374dcaf3448251426a03a7c6555",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/inqs909/actions/runs/27784062128"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.2.14",
      "date": "2026-06-18T19:32:49.000Z",
      "commit": "48aaf8957cdac09f45f540f841a6bcd55ac5e2f1",
      "fileid": "https://r2.ropensci.org/50b790219aba116cee0ee4e59cad0998b49cd79cbaa13920782941c095c7cfeb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/inqs909/actions/runs/27784062128"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.14",
      "date": "2026-06-18T19:33:16.000Z",
      "commit": "48aaf8957cdac09f45f540f841a6bcd55ac5e2f1",
      "fileid": "https://r2.ropensci.org/8161205f124b0fc5e2ba79d584ada546ec9bf1ac8b67dfdd1e63e20cd27367a8",
      "status": "success",
      "buildurl": "https://github.com/r-universe/inqs909/actions/runs/27784062128"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.14",
      "date": "2026-06-18T19:32:30.000Z",
      "commit": "48aaf8957cdac09f45f540f841a6bcd55ac5e2f1",
      "fileid": "https://r2.ropensci.org/1e2be56a545bd63f61160f8af75a56e91e022410cb59537505e733a4b211409b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/inqs909/actions/runs/27784062128"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.14",
      "date": "2026-06-18T19:32:31.000Z",
      "commit": "48aaf8957cdac09f45f540f841a6bcd55ac5e2f1",
      "fileid": "https://r2.ropensci.org/bf160a6f884c580dc2059640dbcdba56abc702da6c74e7a3285afe908a0a3ac1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/inqs909/actions/runs/27784062128"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.2.14",
      "date": "2026-06-18T19:33:44.000Z",
      "commit": "48aaf8957cdac09f45f540f841a6bcd55ac5e2f1",
      "fileid": "https://r2.ropensci.org/12aee286a74ea69be9338d488c918991652b7c233e20432aa4f997bd28a6e2c5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/inqs909/actions/runs/27784062128"
    }
  ]
}