Releases: TIOJ-INFOR-Online-Judge/tioj
Releases · TIOJ-INFOR-Online-Judge/tioj
TIOJ 2.3.1
This is a bug-fix release.
- Fix crash when reordering contest tasks (#28)
- Fix contest announcement redirection error
TIOJ 2.3.0
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
inconfig/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
- Disabled by default, can be enabled in
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
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
- Run
- 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
This is a bug-fix release.
- Fix avatar generation (#20 by @oToToT)
- Fix admin user page routing error (#23 by @OmeletWithoutEgg)
- Add Chinese version of the verdict page (#24 by @OmeletWithoutEgg)
- Fix crash when contest/problem form validation failed
- Fix comment UI & routing
TIOJ 2.1.0
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
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
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