Template for a pyret-autograder Gradescope assignment, using Gradescope's manual Docker configuration.
- Docker
justandjq- A Docker Hub account. Keep assignment images
private so students can't read your wheats/chaffs/tests; Gradescope pulls
private images via its
gradescopeecsaccount, which you must add as a collaborator on the repository — this requires a paid Docker Hub plan.
| path | purpose |
|---|---|
spec.arr |
the grading specification: a list of graders |
grading/ |
support files the spec references — reference implementations, wheats, chaffs |
Dockerfile |
two-stage build on the pyretautograder/gradescope-{build,run} base images |
justfile |
build / local-run / publish recipes (just --list) |
The autograder runs from /autograder, and every path in spec.arr is
relative to it:
- the student's submission is unpacked into
submission/, so refer to their file as e.g.submission/assignment.arr; - the contents of
grading/are copied into/autograder, sograding/wheat-1.arris referred to as justwheat-1.arr.
- Write
spec.arr, placing any files it references ingrading/. See the grader reference for the available graders. - Set
imageto your Docker Hub repository (and optionallytag) in thejustfile. - Test locally: place a sample submission in
./submission/and runjust run. The graded report lands in./results/results.json. just publish.- In Gradescope, configure the assignment's autograder as "Manual Docker
Configuration" with your
username/repository:tag.
ARG TAG in the Dockerfile pins the base images; gradescope-build and
gradescope-run must use the same tag, which the single ARG ensures. The
base images are linux/amd64 only; on Apple Silicon, Docker builds them under
emulation.