[contestms] Announcing task versioning (and calling for review)

  • From: Luca Wehrstedt <luca.wehrstedt@xxxxxxxxx>
  • To: contestms@xxxxxxxxxxxxx
  • Date: Mon, 6 May 2013 19:08:38 +0200

Hi,

in the past months we've been working on a long awaited feature: task
versioning!

This feature basically splits out many fields from the tasks to put them
into so-called "datasets". Nothing great here, except that a task can have
many datasets simultaneously! (This forced us to split out compilation,
execution and scoring related data from submissions and create so-called
"results", one for each (submission, dataset) pair, and the same for
usertests too).

Only one dataset per task will be "live" at any moment (and the data shown
on CWS and RWS will be taken from it), but the others can be (optionally)
evaluated too, in "background".

The main advantage is that, in case of misconfigurations or bugs in
managers and testcase, admins can clone a dataset, fix the error, recompile
and/or reevaluate submissions, verify that the error has been correctly
fixed, consider the impact that the change will have on the scores and,
only at this point (!), activate the dataset to make the users aware of all
this. This means that the users will experience no downtime at all during
the admin's work and during the reevaluation process.

The *code* for this can be found on: *
https://github.com/lerks/cms/commits/master*<https://github.com/lerks/cms/commits/master>
(it's
based on the current cms-dev/master).

The diff is quite large since the changes affect almost every
service/server/utility/etc. I tried to split them into "code areas", in
order of importance (DB, grading, ES, SS, CWS, AWS, etc.). The commit
titles describe this order but are otherwise not very descriptive. We may
want to change that (and perhaps squash some commits) before pushing to
cms-dev/master: I did this only to ease the review of the code.

So, please, *could someone review the code?* I and Bernard already did it,
but it'd great if (at least) a third developer could do that too.

I'm not very satisfied with the RWS-related commit, but I still need to
think if (and how) we can make it better. We're also missing some changes
(namely to the documentation and to cmsMake) but they're not essential so
don't wait for them to start your review!

Thanks for reading this long email,

Luca

Other related posts: