Skip to content

v1.1.0: Version 1.1.0

Compare
Choose a tag to compare
@lw lw released this 07 Aug 16:05

CMS 1.1 is the product of 15 months of work, during which CMS ran an International Olympiad, two major regional contests and many other national and local competitions.

In addition to the brief summary below, you can find a more in-depth discussion on the new release in a paper by CMS core developers:

Stefano Maggiolo, Giovanni Mascellani, Luca Wehrstedt. CMS: a Growing Grading System. Olympiad in Informatics, vol. 8 (2014), pp. 123-132 (http://www.mii.lt/olympiads_in_informatics/files/volume8.pdf).

What's new

New features.

  • Task versioning: useful for changing wrong task data behind the scenes and easily test it during the contest, minimizing disturbance to the contestants.
  • Split the communication of the scoring to RWS from the scoring itself, creating ProxyService to handle the former.
  • Notable performance improvements in ScoringService.
  • Refactor the importers code to make it easier to write new importer.
  • Support for contests in Java (through gcj), Python and PHP.

Behind the scenes.

  • New sandbox, isolate, from Bernard Blackham and Martin Mareš.
  • New event loop library, based on modern Python technology, and new RPC system based upon that.
  • Improve testing and testing infrastructure (http://cms.di.unipi.it/jenkins).

Translations.

  • Apart from English, the contestant interface of CMS is available in other 8 languages: Bosnian, Dutch, French, Italian, Japanese,
    Lithuanian, Russian and Traditional Chinese.

Incompatible updates.

  • Both the database schema and the format of ContestExporter have changed. To update a dump, use cmscontrib/DumpUpdater.py . To update the schema, first dump the content with cmscontrib/ContestExporter.py and then drop and reinit the database with cmsDropDB and cmsInitDB.