# Changelog This change log tracks the releases on our [pilot server](https://recodex.mff.cuni.cz/). Since ReCodEx is in fact composed of many components, we also provide a table of component version which work together in stable releases. | Date | [web-app](https://github.com/ReCodEx/web-app/releases) | [core-api](https://github.com/ReCodEx/api/releases) | [worker](https://github.com/ReCodEx/worker/releases) | [broker](https://github.com/ReCodEx/broker/releases) | [fileserver](https://github.com/ReCodEx/fileserver/releases) | [monitor](https://github.com/ReCodEx/monitor/releases) | [cleaner](https://github.com/ReCodEx/cleaner/releases) | | --- |:---:|:---:|:---:|:---:|:---:|:---:|:---:| | 3.2.2021 | v1.25.0 | v1.25.0 | v1.7.2 | v1.3.0 | ------ | v1.0.0 | v1.1.0 | | 7.12.2020 | v1.24.0 | v1.24.0 | v1.7.1 | v1.3.0 | ------ | v1.0.0 | v1.1.0 | | 22.11.2020 | v1.23.0 | v1.23.0 | v1.7.0 | v1.3.0 | ------ | v1.0.0 | v1.1.0 | | 19.9.2020 | v1.22.1 | v1.22.0 | v1.6.5 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | Older versions are at the bottom of this page. ## 3.2.2021 - Upgrading to API Core Nette 3.1 (+ subsequent upgrades of relevant libs) - Switching from kdyby/doctrine to nettrine doctrine integration (requires minor adjustment of existing core-api config files!) - Redesign of SIS Integration page and improvements were made in its API - New Arduino environment support - Various ux improvements, added missing labels and comments - Many bugs fixed (especially a nasty one in SSR) - Two security issues resolved in worker (symlinks exploit and correct application of disk quotas) ## 7.12.2020 * Judge logs are collected separately (stdout, stderr), exercise may switch between merged/split logs, assignment can select visibility of split logs individually. * Signal exit codes are collected presented in solution results. * Re-establishing cleanup scripts after FS overhaul. ## 23.11.2020 * Fixing some bugs (API v1.23.1 released, compatible with previous release). ## 22.11.2020 * Total overhaul of file storage subsytem (file management integrated into core-api, fileserver no longer needed). * Several important bugs fixed in web app frontend. * Seting up RPM packaging for core-api component. * Making bison exec path configurable in pipeline. ## 19.9.2020 * Migrating from Mono to .NET Core 3.1. ## 13.8.2020 * Refactoring score (tests) edit form and implementing AST tree expression editor * Implementing "explain" button for (reference) solution score that shows dialog that explains how solution correctness was computed * Improving error reporting for exercise configuration (entangling error messages with links to forms where the problem should be fixed) * Adding 'detaining' flag of groups, which prevents students from leaving the group on their own * Showing evaluation failures to regular users * Multiple minor ux improvements ## 30.3.2020 * Adding comment threads for assignments (as public discussion). * Solution file limits (count and size) imposed (configurable in assignments, defaults in exercises). * New languages (runtime environments) introduced: Scala, Groovy, Kotlin, and Bash. ## 13.1.2020 * Updating main results table on GroupDetail page to display interactive dialog when clicking on particular points. * New "reviewed" flag added to assignment solutions. * Implement new type of after submit notification concerning the reviewed flag. * Dialog for editing note of a solution. * Improving appearance of solution detail table by adding links to related solutions. * Adding (un)select all/invert selection features to RTE filter of the exercise list. * Code syntax highlighting added to markdown fields. * Many UX improvements (better labels, confirmation dialogs, buttons, shortcuts, missing info, styling...). * Switching from Symfony Yaml parser to PECL Yaml for performance reasons. * Entire API automatically reformatted by PHP Sniffer to PSR-12. ## 30.11.2019 * User settings (notifications) updated, new notification added. * Filters for tags and environments added to exercise lists. * Exercise tags implemented. * Bug fixes, English labels updated. ## 26.10.2019 * Updates in SIS module -- supervisors may unbind a groups, students no longer see organizational groups. * Fixing bugs in error messages and their translations. * Group relocation feature added for superadmin. ## 5.10.2019 * Better handling of unauthorized requests. * Improving user switching controls (superadmin stuff). * Adding interface for localized API error codes in UI. * Correction in can-submit condition check (correctly restricts number of allowed submits now). ## 22.9.2019 * Adding Go and Rust programming languages. * Superadmin may change any user password without verifying old password. * Updating email templates to support localized email subjects. * Major redesign of web application core to make it compatible with new versions or React and React Router. * Improving user's badge, adding ability to change effective role (for superadmin only). ## 23.5.2019 * Implementing first version of system messages (and corresponding admin page). * Switch to 24h format for all Datetime form fields (all locales). * Assignment results page redesigned. * New admin's dialog for creating users (manually). * Improving performance of assignment best solution identification and related DB schema issues. * Fixing bugs, improving ux. ## 15.4.2019 * Haskell support added. * Several bugs fixed, including bug in judge of float numbers. ## 24.3.2019 * Prolog support added, exercise simple config form slightly refactored. * Bug fixes and minor ux improvements. ## 8.3.2019 * Bug killing spree. * SIS isolation, showing external identifiers for users. * Allowing the user to select default page (after login). * When security token expires or anonymous user attempts to access page that requires authentication, the page is remembered and user is redirected there after login. * Keeping date of users last authentication, so we can delete students that have been inactive for a long time. ## 17.2.2019 * New broker features (reading stats, freeze/unfreeze) implemented (including controls in UI). * Updating appearance of registration forms. * Multiple webapp instances may now run on the same domain (and DEMO recodex was installed on the MFF domain). * Adding a better endpoint for getting and setting exercise limits (**old limits endpoints were deprecated**). * Adding tags to exercises (API only). * Adding configuration and implicit groups to internal registration. * Migration of the entire database (and ORM model) to UTF8mb4 (finally, we can use emoji 😉). * Many bug fixes and minor UX improvements. ## 28.1.2019 * New exercise assignments page (where a list of all assignments of given exercise is presented). * Multi-assign form moved to exercise assignments page and merged with assignment edit form. * Adding "visible from" option to assignments which can postpone the publication of assignment to students. * Adding "show judge logs" option to assignments. If enabled, the students may see judge logs. * Adding "debug" flag to (re)submissions, so they can be distinguished in the submission history table. * Updating notification email templates and their localizations. * New notification created -- students may be notified when the awarded points for their solution is changed. * Judge logs are now available also for data-only exercises. * Pipeline detail page improved. ## 2.1.2019 * Shadow assignments finally completed. * Multiple bugs fixed. # Older Versions * [[Changelog 2018]] # Compatibility Table | Date | [web-app](https://github.com/ReCodEx/web-app/releases) | [api](https://github.com/ReCodEx/api/releases) | [worker](https://github.com/ReCodEx/worker/releases) | [broker](https://github.com/ReCodEx/broker/releases) | [fileserver](https://github.com/ReCodEx/fileserver/releases) | [monitor](https://github.com/ReCodEx/monitor/releases) | [cleaner](https://github.com/ReCodEx/cleaner/releases) | | --- |:---:|:---:|:---:|:---:|:---:|:---:|:---:| | 13.8.2020 | v1.22.0 | v1.22.0 | v1.6.4 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 30.3.2020 | v1.21.0 | v1.21.0 | v1.6.4 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 13.1.2020 | v1.20.0 | v1.20.0 | v1.6.4 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 30.11.2019 | v1.19.0 | v1.19.0 | v1.6.4 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 26.10.2019 | v1.18.3 | v1.18.2 | v1.6.3 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 5.10.2019 | v1.18.2 | v1.18.1 | v1.6.3 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 22.9.2019 | v1.18.1 | v1.18.0 | v1.6.3 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 23.5.2019 | v1.17.0 | v1.17.0 | v1.6.2 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 15.4.2019 | v1.16.1 | v1.16.0 | v1.6.2 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 24.3.2019 | v1.15.2 | v1.15.2 | v1.6.1 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 8.3.2019 | v1.15.1 | v1.15.1 | v1.6.1 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 17.2.2019 | v1.15.0 | v1.15.0 | v1.6.1 | v1.3.0 | v1.2.1 | v1.0.0 | v1.1.0 | | 28.1.2019 | v1.14.0 | v1.14.0 | v1.6.1 | v1.2.2 | v1.2.1 | v1.0.0 | v1.1.0 | | 2.1.2019 | v1.13.0 | v1.13.3 | v1.6.0 | v1.2.2 | v1.2.1 | v1.0.0 | v1.1.0 |