# 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) | [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) | | --- |:---:|:---:|:---:|:---:|:---:|:---:|:---:| | 14.10.2018 | v1.12.2 | v1.12.2 | v1.5.3 | v1.2.2 | v1.2.1 | v1.0.0 | v1.1.0 | | 10.10.2018 | v1.12.1 | v1.12.1 | v1.5.2 | v1.2.2 | v1.2.1 | v1.0.0 | v1.1.0 | | 1.10.2018 | v1.12.0 | v1.12.0 | v1.5.2 | v1.2.2 | v1.2.1 | v1.0.0 | v1.1.0 | | 16.9.2018 | v1.11.0 | v1.11.0 | v1.5.2 | v1.2.2 | v1.2.1 | v1.0.0 | v1.1.0 | Older versions are at the bottom of this page. ## 14.10.2018 * Change Python execution command to `/usr/bin/env python3` (coinciding with Python upgrade on workers). * Better way to detect student and staff roles from CAS attributes. * Filter input files of gcc/g++ compilation command, so that only sources and not headers are included. * Making API more robust when some part of the localized text is not provided in parameters. * Multiple bug-fixes and improvements on exercise config page. * Improving behavior of exercise multi-assign form. * Minor adjustments of GroupInfo page appearance. * Fixing bugs and improving SIS integration (supervisor's part). * Multiple reloading issues (exercises, submission evaluation) fixed. ## 10.10.2018 * Pipeline modifications and extensions required to accommodate bison and flex compiler tools (required by advanced exercises). * Bug fixes. ## 1.10.2018 * Big load of bug fixes. * Grand cleanup of endpoints returning groups and corresponding webapp modifications. * Separating SIS-related stuff from Dashboard to SIS integration page (aiming for maximal SIS-ReCodEx separation, since SIS features should be an extension). * Updating SIS extension to new SIS API (now returning also non-scheduled courses). * New webpack deployment configuration (preparation for rpm deployment). ## 16.9.2018 * New exercise configuration page (visible to empowered supervisors and superadmins only, at the moment), which allows switching to advanced configuration and handle it. Advance exercise configuration offers pipeline selection, custom environment variables settings and manually set all the variables of the pipelines. * Group archiving and new page with archived groups added * Form that allows superadmin edit user's role on the user's settings page. * Internal performance optimizations, stopping pending AJAX requests when page changes * Various minor ux improvements. * Preparation for shadow assignments. ## 19.8.2018 * Many bug fixes in web application, API, and Token Judge. * Adding a toggle button for superadmin to allow/disallow user accounts. * Remove java-jars hack and add jar files -- files that can be added to Java compilation like extra files. ## 10.8.2018 * Exercise, User, and Pipeline lists on Exercises, Users, Pipelines, and Group Detail pages are now displayed paginated with improved loading and optional filters. * Exercise - Group relations can be modified on Exercise page. * Solution evaluations can be deleted. * Applying permission hints on multiple places to correctly display/hide controls based on privileges. * Replaced markdown renderer to support inline KaTeX, adding Markdown Math. * Download group results as CSV file. * Improving appearance of solutions and ref. solutions tables. * Improving appearance of date-time values and deadlines. * Restricting deadlines, how far in future they can be. * Fixing erratic behavior of submission progress bars. Adding refresh buttons to solution and ref. solution page, so the user may reload relevant data (if the progress bar was closed prematurely). * Python exit codes translated to error messages. * User may be in multiple instances (UI selects the instance automatically at the moment). * Shadow assignments (similar to global bonus points in old CodEx) implemented in API. * New roles supervisor-student (those who both teach and study) and empowered-supervisor (more powerful teacher who would be able to create custom exercise configurations with private pipelines). * Users may have one local login at most. Improving checks and security regarding credentials creation. * New token judge employed to produce better logs for failed tests. ## 11.6.2018 * New UI for reference solutions which is more similar to UI for regular solutions. * Points assigned to a submission evaluation by ReCodEx may be overwritten by supervisor. * Short description of the exercise restricted, so it is not visible to students. * Text with a hint for students (not synchronized with exercises) added to assignments. * Exercises (and assignments) may provide external link instead of text in MD. If the external link leads to a page containing plain text or markdown (and it can be fetched by CORS request), a preview is displayed directly in ReCodEx. * MultiAssign form is more user friendly. * When assignment is published, an optional switch can prevent from sending notification e-mails. * SIS codes added to group info. * JWT tokens (for API scripting) can be generated at User Settings page. * Compilation logs are carboncopied into files (with much more benevolent size constraints) when solution is re-evaluated in debug mode. * Affiliation is not mandatory for registration and login using CAS (may improve login via CAS experience for users with strange affiliations). * Email addresses added to user names in UI. New mailing endpoints were added in API, so they can be used in web app in the future. * API added and updated several important endpoints which will optimize fetching data in future versions of web app. * Cleaner released for the first time. * New token judge added in worker (will be employed soon after due testing). ## 1.5.2018 * Button for downloading best solutions in a ZIP archive added to Group Detail page. * Fixing multiple bugs. * Improving appearance and user experience. ## 29.4.2018 * Introducing data-only exercises (the user submits only data which are validated by custom judge). * Improving Smart-Fill feature in test configuration form. * Gravatar optimizations — user may disable/enable own gravatar and configure whether gravatars are visible to hir in general * Results table in Group Detail page is sortable by name and by total points now. * User may delete own submission comments. * Performance optimization of various SQL queries, functions, and visualization. * Displaying judge logs to supervisors. * Do not allow to create exercises without assigned group. * Additional API preparations (to be implemented in UI yet) - Introduce mass list endpoints for users and exercises. - Add endpoint for downloading best solutions archive of an assignment. ## 20.4.2018 * Various bugfixes and optimizations in REST API ## 17.4.2018 * Switching to Font Awesome 5 icons * Bug fixes, forgotten UI issues ## 14.4.2018 * Implementing support for organizational groups (organizational groups are meant for creating hierarchy, they cannot hold students nor assignments). * Adding language/environments list to assignments and exercises. * Exercise marked as broken on creation and if appropriate on forking * Create a submission failure when the submission will not even compile * Add revocation mechanism to authentication tokens and invalidation endpoint for all issued tokens of user (API only) * Implement issuing of restricted read-only tokens for usage in applications or scripts (API only) * Deadline of created assignments is further in the future and not now * Implement endpoint for deletion of comments (API only) * Refactoring, optimizations, bug fixes ## 28.3.2018 * Group page redesign — splitted into two pages (info and detail), cleaner design and much better performance * Assignments can restrict the set of runtime environments (as a subset of the RTEs of the exercise) * Pre-submit files validation with automated environment selection and entry point (bootstrap file) selection * Entry point selection also added to extra files in the exercise config form * Completed Czech translations * Bug fixes and performance optimizations ## 4.3.2018 * Form for assigning exercise in multiple groups at once was debugged and enabled. * External accounts (accounts mapped to SIS accounts) are prevented from changing their names. * Supervisors may delete solutions submitted by the students. ## 26.2.2018 * Fixing bugs. ## 25.2.2018 * Test limits were redesigned - Move to a separate page in the UI - Changed internally in the API (simple limits endpoints were removed) * Hardware group selection was added to the limits page - Second hardware group for long-running exercises added - Limits constraints are now bound to selected hardware group * Students can see stats table when enabled in group settings * Many bugs were fixed; number of submitted solutions reflects correct state (#153) ## 15.2.2018 * CPU/wall time selection in limits form (called "precise time measurement" in UI) * Extra (additional) files for exercise compilation can be provided by exercise author * Solution source codes and exercise test files can be downloaded as single ZIP package * New page for managing SIS interaction (for admins) * Students who also teach now can see both courses (which they study and which they teach) in SIS mappings * Exercise configuration is tested when edited and possible errors are reported * Group tree view improved and filtered, so only groups visible to logged user are shown * Bug fixes and performance optimizations ## 16.1.2018 * Users registered externally are now able to create local account * Several modifications in API and default pipelines, which are not apparent from webapp yet: - All compilation pipelines supports extra source files given by exercise author (so custom frameworks or boilerplates may be used in exercises) - Added cpu-time alongside wall-time in exercise limits and submission evaluation * Multiple bugs fixed and minor improvements implemented in the web application frontend * Refactoring and consolidation of some parts of the frontend in preparation for the modifications of the API ## 3.1.2018 * Added comment statistics to assignment solution list view * **Pascal** solutions will now accept multiple files * Added new file/folder existance check after compilation of user solutions (useful for cases when a compiler like **FPC** does not output proper binary file even if told to) * New loading screen to make sure the javascript bundle is loaded before anything else happens * Allow proper caching of bundle and static content in browser, which should bring better performance * Updated **CAS** login process, which should help especially on Android and (possibly desktop) Firefox to handle both authentication phases correctly * Display point stats in students assignment overview component * Multirow comment texts at solutions * Added custom messages for **Pascal** exit codes ## 19.12.2017 * Proper synchronization of assignments which copies all needed items * Various UX impromevents # Older Versions | 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) | | --- |:---:|:---:|:---:|:---:|:---:|:---:|:---:| | 19.8.2018 | v1.10.1 | v1.10.1 | v1.5.2 | v1.2.2 | v1.2.1 | v1.0.0 | v1.1.0 | | 10.8.2018 | v1.10.0 | v1.10.0 | v1.5.2 | v1.2.2 | v1.2.1 | v1.0.0 | v1.1.0 | | 11.6.2018 | v1.9.0 | v1.9.0 | v1.5.0 | v1.2.2 | v1.2.1 | v1.0.0 | v1.1.0 | | 1.5.2018 | v1.8.1 | v1.8.3 | v1.4.1 | v1.2.1 | v1.2.1 | v1.0.0 | --- | | 29.4.2018 | v1.8.0 | v1.8.2 | v1.4.1 | v1.2.1 | v1.2.1 | v1.0.0 | --- | | 20.4.2018 | v1.7.2 | v1.8.1 | v1.4.0 | v1.2.1 | v1.2.1 | v1.0.0 | --- | | 17.4.2018 | v1.7.2 | v1.8.0 | v1.4.0 | v1.2.1 | v1.2.1 | v1.0.0 | --- | | 14.4.2018 | v1.7.1 | v1.8.0 | v1.4.0 | v1.2.0 | v1.2.1 | v1.0.0 | --- | | 28.3.2018 | v1.7.0 | v1.7.0 | v1.3.0 | v1.2.0 | v1.2.1 | v1.0.0 | --- | | 4.3.2018 | v1.6.2 | v1.6.2 | v1.3.0 | v1.2.0 | v1.2.1 | v1.0.0 | --- | | 26.2.2018 | v1.6.1 | v1.6.1 | v1.3.0 | v1.2.0 | v1.2.1 | v1.0.0 | --- | | 25.2.2018 | v1.6.0 | v1.6.0 | v1.3.0 | v1.2.0 | v1.2.1 | v1.0.0 | --- | | 15.2.2018 | v1.5.0 | v1.5.0 | v1.3.0 | v1.2.0 | v1.2.1 | v1.0.0 | --- | | 16.1.2018 | v1.4.4 | v1.4.4 | v1.2.1 | v1.2.0 | v1.2.1 | v1.0.0 | --- | | 3.1.2018 | v1.4.3 | v1.4.3 | v1.2.1 | v1.2.0 | v1.2.1 | v1.0.0 | --- | | 19.12.2017 | v1.4.1 | v1.4.1 | v1.2.0 | v1.2.0 | v1.2.0 | v1.0.0 | --- |