- Soon(ish): add
minicondaoption for Python setup (insetup.sh/util.sh) - Eventually eliminate dependence on
gradescope-utilspackage; in particular, a (non-exhaustive) wishlist:- Output (
result.json) production is tied to a successful unit test run. E.g., informing users about prep/setup steps, is more complicated than it needs to be (if setup fails and tests never get to even start, we have to manually generateresult.jsonfrom scratch; OTOH, if tests complete, then we have to use an undocumented(?) hook to mangle JSON test-runner output). - More importantly, support for grading schemes is rudimentary (e.g., "negative" schemes don't seem to be supported at all---beyond allowing negative
weightvalues, that is). - Furthermore, the decorator setup is rather cumbersome (e.g., each test case has to be annotated individually). More generally, it seems it would be very difficult and/or messy to extend the
gradescope-utilslibrary for even relatively simple things?
- Output (
- Add proper configuration classes and files (e.g., maybe using
dataclasses+click?); but first, should probably give some thought to "canonical" Gradescope-independent abstractions / organization... - Clean up the
testrunnermodule (if it can be called that); probably while or after re-doing unittest runners? Take a look at everything else when time. - Fix up the CLI...
autograder.zipprep, local unittesting (with or without Docker? -- needs "un-hardcoding" some things, i.e., config see above)... Maybe "steal" some ideas on output / logging APIs (see above) from Click?