# 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 |