Contest Management System
This is the second release candidate for version 1.4 of CMS, which improves on the previous one by fixing some bugs and updating some translations. It is considered stable and is recommended over the old 1.3 for anybody new to CMS. If you are currently using CMS 1.3, we will continue backporting security fixes until the 1.4.0 release, but you should start thinking now about migrating.
With this second RC we are further approaching the release of version 1.4.0. This will happen when, after greater adoption, we will become confident that the release will work smoothly for everyone. In the meantime we will continue to iron out any bug that gets reported and we encourage the community to submit updated translations of the contest interface; see https://cms.readthedocs.io/en/v1.4/Localization.html#for-translators for instructions.
Continuing with the process started in the 1.3 branch, we release today a candidate for CMS version 1.4. CMS 1.4.rc0 is a stable version, so we recommended it over the old 1.3 for anybody new to CMS. If you are currently using CMS 1.3, we will continue backporting security fixes until the 1.4.0 release, but you should start thinking now about migrating.
Having a release candidate allows us to include in 1.4.0 not only bugfixes but also contained improvements; in particular, we encourage updating the translations of the contest interface and sending them to us; see https://cms.readthedocs.io/en/v1.4/Localization.html#for-translators for instructions.
Finally, before the changelog, a thank you to all the people that helped shape CMS 1.4, with code contributions but also with bug reports, testing, discussions, ... If you want to participate, join the gitter chat at https://gitter.im/cms-dev/cms.
Web Servers
Grading
Scoring
Languages
Updates
Scripts
Internals
CMS 1.3.2 is a small bugfix release. Due to a security vulnerability in ContestWebServer, we strongly suggest to update from previous versions.
CMS 1.3.1 is a small bugfix release. Due to a potentially exploitable bug in the isolate configuration, we strongly suggest to update from previous versions.
As announced, 1.3.0 is a small release after 1.3.rc0 containing small fixes, but also a few improvements.
With CMS 1.2 we wanted to start a new process with smaller and more frequent releases. Looking at the 2 year gap between 1.2 and 1.3, it is clear that did not happen, but we are glad to be finally back!
Given the long time since 1.2, we decided to do things a bit differently, releasing first a CMS 1.3.rc0, with CMS 1.3.0 to follow up soon. In 1.3.0, we will not only include security bugs (similarly to a X.Y.1 release), but also small bug fixes if necessary.
CMS continues to be used all over the world. Since 1.2, it was used in IOI 2015, and will be used again in IOI 2017. We are also happy to mention that CMS has been used in APIO 2016 and CEOI 2015. As always, please continue to send feedback and testimonials. The full list is at http://cms-dev.github.io/testimonials.html .
We would like to thank the many people that worked on CMS 1.3! Also, we would like to apologize as the developer experience was often not optimal, especially in terms of latency of reviews and inclusion of pull requests.
A lot! To make things more organized, here are the major changes grouped by topic.
Features to ease long running contests and CMS-based training platforms.
Installation and configuration
keep_sandboxes
is unset.Tasks types, score types and programming languages
Performances
AdminWebServer
ContestWebServer
Command line tools
Tests
cmscontrib/DumpUpdater.py \<name of dump\>
.cmscontrib/DumpExporter.py
, then drop and reinit the database with cmsDropDB
and cmsInitDB
, update the dump as before and import it with cmscontrib/DumpImporter.py
cmscontrib/updaters
, but the process is still manual.CMS 1.2 starts a new process of smaller, bi-annual releases that we hope to continue in the future. For news on the project, make sure to follow @contestms at https://twitter.com/contestms.
Since the previous release in July, CMS has been used by the IOI 2014, and confirmed by IOI 2015. We continue to have many users all around the world, and to ask you to send us feedback and testimonials, especially through the online forms at http://cms-dev.github.io/index.html#help-us-help-you .
Even more important, we would love to see more developers interested in improving CMS. There are several starter projects listed at http://cms-dev.github.io/contribute.html for you to get accustomed with the project. Many thanks to the people that already are contributing!
New features.
Behind the scenes.
Incompatible updates.
cmscontrib/DumpUpdater.py \<name of dump\>
. To update the schema, first dump the content with cmscontrib/ContestExporter.py
and then drop and reinit the database with cmsDropDB
and cmsInitDB
.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).
New features.
Behind the scenes.
Translations.
Incompatible updates.
Bug-fix release.
This CMS release updates the RPC protocol used between CMS services, fixing a bug in message termination that could lead to loosing messages of a specific length. In practice this specific length was greater than any message actually used in CMS, so the bug was never actually observed. Yet, this update eliminates the source of risk.
Moreover, this release also fixes a couple of little bugs in task types OutputOnly and Communication.
CMS 1.0 is an evolutionary release that introduces some new features over CMS 0.9, but is mainly focused on improvements to our documentation and interface for contest admins and on bugfixing.
New features.
General improvements.
Major bugfixes.
Incompatible updates.