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