cs136 / seashell

Seashell is an online environment for editing, running, and submitting C programming assignments.
GNU General Public License v3.0
38 stars 19 forks source link

Marmoset submission - submits entire assignment instead of just the question #818

Closed yc2lee closed 7 years ago

yc2lee commented 7 years ago

Marmoset submission is still broken in the new seashell. When you make a submission, a zip file containing the entire assignment is submitted rather than just the question that you have open. For an example you can see my submissions to A1Q4a on Marmoset. The q4a solution is there, but under a q4a directory instead of at the top level. All of the other questions are also there in separate directories.

e45lee commented 7 years ago

The probably easier fix is to update seashell-cli to take in a question argument and for the test scripts to invoke seashell-cli with a question if that question directory exists ([ -d q4a ] && seashell-cli q4a ....) seashell-cli currently passes in "." as the question: https://github.com/cs136/seashell/blob/master/src/collects/seashell-cli/marmtest.rkt#L73

Harder thing to do is to get marmoset-submit to export to the old submission format. You can see what it used to do here: https://github.com/cs136/seashell/blob/25f791cbe84469b5260e2f32a77b439e88301f6b/src/collects/seashell/backend/project.rkt, and it shouldn't be too awful to export files this way. Just a bit messy.

kpalway commented 7 years ago

Changing the seashell-cli command will break all marmoset tests and make the new seashell incompatible with the old version when it comes to submitting. I don't see how that's a reasonable or easier option.

It's not hard to just submit the current question.

e45lee commented 7 years ago

Well, it'd be an optional argument and you'd only pass it if the question directory existed in the submission, so it wouldn't break backwards compatibility with old submissions. You'd have to update the test scripts, of course, but that's probably easier than updating Seashell.

kpalway commented 7 years ago

No, updating seashell is much easier than updating all the test scripts. A change has to be made either way, and seashell has to be updated some time this term to fix the bugs that were found. Seems like the correct way to fix this is to implement the submit feature the way it was intended instead of just changing the way we run tests based on a mistake someone made.