You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recodex-wiki/Major-Release:-ReCodEx-2.0.md

2.7 KiB

Major version change denotes a larger leap forward and marks a milestone in development. However, we are not strictly bound with semantic versioning here. Furthermore, the development does not stop here, we still have long road ahead...

Administrator's Guide To Migration

  • Do not forget to perform database migration after recodex-core update.
/opt/recodex-core/bin/console migrations:migrate
  • Core module has now service that handles async operations. The service just needs to be started (no special configuration is necessary):
$> systemctl enable recodex-core.service
$> systemctl start recodex-core.service
  • Add async jobs upkeep maintenance to cron. The upkeep deletes old jobs from the database and makes sure no jobs linger too long (in case the async worker crushes or gets overwhelmed with jobs). If the async worker gets stuck, an email is sent to ReCodEx admin. Recommended upkeep period is 30 minutes, so you need to add the following line into /etc/crontab (adjust the paths/user if need be):
*/30 * * * *    recodex    /opt/recodex-core/bin/console asyncJobs:upkeep
  • In the web app configuration file env.json, the "SKIN" value needs to be updated according to readme. The skin- prefix should be removed (e.g., skin-green needs to be replaced with green).

Features

  • Completely new look caused by migration to Bootstrap 4 and AdminLTE 3.
  • Unified page navigation, group selection moved to the top panel, home page redesigned, dashboard simplified, and many more improvements in UI controls were realized.
  • Implementing asynchronous operations (jobs) executed in background worker. Resubmit-all operation was changed to asynchronous job.
  • File uploads are now managed by client and performed in small chunks, so they will not timeout even in case of large files and slow network connection.
  • Linear interpolation of assignment maximal points between two deadlines was added along with appropriate visualization in web app.
  • Group membership relation refactored and unified (both in core module and in group info page), new membership type "observer" added.
  • A separate page that displays solutions of one student from all assignments in a group added.
  • Files table in solution detail page redesigned. Furthermore, solutions where a single ZIP archive was submitted were optimized (in storage) and direct access to individual compressed entries (for download and preview) is now possible (preparation for more complex solutions like Maven projects).
  • Interpreted languages now duly visualize entry point (main execution script) of solutions.
  • Significant refactoring, performance optimizations, and updates of dependencies.