A complete, self-contained pyret-autograder
Gradescope assignment, using Gradescope's
manual Docker configuration.
It is an instance of the
assignment template
filled in with the tower example assignment. It builds on the published
pyretautograder/gradescope-{build,run} base images, so everything the
autograder uses is in this repository — no checkout of pyret-autograder
required.
For demonstration purposes this example's image is public:
pyretautograder/example-gradescope-tower-assignment.
A real assignment's image must stay private (see Prerequisites).
$ just runbuilds the image and grades the sample submission in ./submission/; the
graded report lands in ./results/results.json.
- Docker
justandjq- A Docker Hub account (only needed for
just publish). Keep assignment images private so students can't read your wheats/chaffs/tests; Gradescope pulls private images via itsgradescopeecsaccount, 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 |
submission/ |
a sample submission (here, a reference solution) graded by just run |
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/num-rooms/wheat-1.arris referred to asnum-rooms/wheat-1.arr.
just publish builds and pushes the image. In Gradescope, configure the
assignment's autograder as "Manual Docker Configuration" with
pyretautograder/example-gradescope-tower-assignment:latest.
Start from the
assignment template
— this repository minus the tower-specific content — and follow the workflow
in its README.
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.