Skip to content

Releases: TIOJ-INFOR-Online-Judge/tioj

TIOJ 2.3.1

04 Apr 13:45
b5e3565
Compare
Choose a tag to compare

This is a bug-fix release.

  • Fix crash when reordering contest tasks (#28)
  • Fix contest announcement redirection error

TIOJ 2.3.0

07 Mar 10:22
447a007
Compare
Choose a tag to compare

This version includes some new features and bug fixes.

Upgrade Notes

  • Username validation is broken in previous versions, which allowed users to create accounts with Unicode usernames or usernames that can cause issues or even crashes. It is thus strongly recommended to run the command rails user:check_invalid_username to identify any accounts with issue-causing usernames. The validation is fixed in this version. As a result, the system will now only allow alphanumeric usernames by default. Unicode usernames can still be enabled as an optional feature. This policy change only applies to new users; previously registered users are not affected.
  • If there are old submissions from pre-2.0.0 version, add old_submission_view: true in config/settings.yml to enable viewing old submission results.
  • If upgrade directly from pre-2.0.0 versions to this version, old submissions won't be rejudged. To rejudge old submissions, upgrade to 2.2.1 first and then upgrade to 2.3.0 after the rejudge is finished.

New Features

  • Set different contest description before the start of the contest
  • Add per-contest announcements (viewable only in contest pages)
  • Configurable per-problem code length limit
  • Optionally disable registration & enable Unicode username in config/settings.yml
  • Add pages for viewing pre-2.0.0 submission results and ranklists
    • Disabled by default, can be enabled in config/settings.yml

Enhancements & Other Changes

  • Pin & highlight upcoming and currently-running contests on homepage
  • Remove old submission rejudging

Bug Fixes

  • Fix crash when config/settings.yml is empty
  • Fix broken username validation
  • Always use username in URL

TIOJ 2.2.1

26 Feb 11:59
9280027
Compare
Choose a tag to compare

This version includes some new features and changes. The judge client should be updated to v1.2.0 before using this version.

For existing Nginx + Passenger setups (the one used by the install script), it is strongly recommended to add the following block to nginx.conf to mitigate a previous bug where the server might freeze when too many ActionCable connections (judge clients & submission page requests) exist:

location /cable {
    passenger_app_group_name cable;
    passenger_force_max_concurrent_requests_per_process 0;
    passenger_env_var PASSENGER_CABLE 1;
}

New Features

  • Support testdata compression (#19, #27)
    • Run rails td:compress_all to compress existing testdata files
  • Allow old-style special judge to override score & verdict
  • Add an option in problems / contests to skip testdata once any of the testdata in the group got non-AC (#26)

Enhancements

  • Add a progress bar when uploading testdata
  • Add an option to decide whether to display score in ranklist
  • Add version verification to avoid using incompatible judge clients

Bug Fixes

  • Fix occasional freeze & incorrect judge online status when restarting web server
  • Fix web server freeze when too many ActionCable connections exist

TIOJ 2.1.1

16 Feb 10:38
ec2dda4
Compare
Choose a tag to compare

This is a bug-fix release.

TIOJ 2.1.0

11 Oct 05:13
89cba64
Compare
Choose a tag to compare

This version includes some new features and changes.

New Features

  • Support multiple sample testdata in a problem by @leo900807 in #16
  • Use the last used compiler by default when creating a new submission

Enhancements

  • Show ER message
  • Install Passenger at the same time of other gems in install script

Deprecations

  • Move all settings from Rails credentials system to config/settings.yml. Settings in credentials are deprecated.

Bug Fixes

  • Fix judge docker execution error because of tmpfs set to noexec

TIOJ 2.0.1

13 Sep 10:46
a5aee4d
Compare
Choose a tag to compare

This is a bug-fix release.

  • Retry testdata result transaction on locking failure
  • Use utf8mb4 in database.yml
  • Fix some crashes and Sentry sampling rate configuration

TIOJ 2.0.0

09 Sep 07:15
a233b34
Compare
Choose a tag to compare

This version introduced various changes, features & improvements:

Judge System

  • Judge Client: Replaced isolate-based miku with cjail-based tioj-judge. Notable features:
    • Limit & report memory in both VSS & RSS
    • More verdicts: SIG, OLE, MLE, CLE
    • Priority judging
    • New powerful special judge mode that can access lots of information, set arbitrary score and override results
    • Multistage problems (similar to CMS's TwoStep mode)
    • Support some basic judging modes (such as floating-point compare, strict compare and white-diff compare) without the need of user-provided special judge program
    • Allow interactive library implementation file
  • Use WebSocket to communicate with judge client for faster submission fetching
  • Allow ignoring some testdata in overall result calculation

Website

  • Auto-update submission judging progress without refreshing
  • Add problem discussion page
  • Allow banning compilers for a problem
  • Allow admins to download testdata
  • Better announcement managing
  • Provide description pages of verdict & memory statistics description
  • Testdata batch management: TL/ML/OL editing, reordering & deletion
  • User whitelist & ability to hide contest for contests

Bug fix

  • Broken password recovery feature
  • Incorrect submission viewing permission
  • CSRF on rejudge / submission deletion endpoints
  • Scoreboard freezing in GCJ/IOI style contests

Deployment

  • Add Dockerfile & docker-compose
  • Provide automatic install script

Others

  • Optimize performance of problem loading and top coder calculation
  • Upgrade to latest version of Ruby, Rails & various gems
  • Allow Sentry monitoring