DOMjudge Programming Contest Judging System Version 8.4.0DEV --------------------------- - Get rid of 'internal' data source mode, always requiring - but auto generating - external ID's for all entities to simplify event logic. Version 8.3.0 - 31 May 2024 --------------------------- - [security] Close metadata file descriptor for the child in runguard. - Document that minimum PHP version is now 8.1.0. - Upgrade Symfony to 6.2 and upgrade other library dependencies. - Show link to problem text on jury problem overview and contest detail pages. - Add label to teams to be in sync with ICPC CCS spec. - Add feedback/teammessage.txt for automated teamfeedback, see: #2016. - Clarifications can now use markdown syntax. - Upgrade Bootstrap to 5.2 and dependent components. - Bug fixed to correctly select current user during configuration of installation. - Properly fix removal of problem/submission data. - Filter away balloons of jury members in balloon runner interface. - Fix upgrade path for executables, see: #1826. - Collect compiler and runner versions before compilation, useful to compare judgehosts. - Various improvements to shadow config used at ICPC World Finals. - Show the historic timelimit which was used when judging the submission. - Fixes to the documentation and import of problems with @EXPECTED_RESULTS@ tags. - Allow filtering on affilition in submission page for jury for multisite contests. - Add preview of the contest problemset to the jury page before contest start. - Add optional Adminer for easy database access. - Fix medal awards when skipping categories. - Add direct button to public page for registering when enabled. - Scale batch size of judge tasks dynamically. - Rename room to location for teams. - Add option to upload contest problemset document. - Improve on the advice for rejuding on config changes, only when relevant advice to start a rejudging, similar for updating the scoreboard cache. - For interactive problems: add explicit statement to when one of sides of the interactions ran closed their output. - Allow importing a (generic) contest warning which is displayed on the scoreboard. - Added option in the dj_setup_database to make dumps, useful before major upgrades and during the contest before problem imports. - Fixed some bugs to become OpenAPI spec compliant again. - Prevent a race condition leading to two submissions receiving the same colour balloon. - Compile executables with `-std=gnu++20` now. - Record the testcase directory for judging runs, this makes investigating easier. - Set default C/C++ standards in configure script, we intend to ship all scripts free of warnings/errors. - Respect basic authentication in the URL for the import-contest when .netrc exists. - Fix CORS header for API to make extending with other tools easier. - Fix eventfeed when SQL commits happen out of order to send all events. - Lazy load the team pictures for the scoreboard, to prevent spamming access log with HTTP404s - Make TLE detection more robust for interactive problems. - Added option for ICPC online scoreboard with no rank displays. Version 8.2.0 - 6 March 2023 ---------------------------- - Various bugfixes & UI improvements. - Add support for Rust as submission language. - Add teamphotos to scoreboard zip. - Add jury option to to download ZIP with all problem samples, attachments and problem statement. - Extend team import with optional room and other API extensions, see the API doc for further details. - Drop support for shadowing a single contest from multiple sources. - Log account logins via API separately. - Add support for PHP v8.2. - Upgraded library dependencies. - Removed output of detected entry point to teams. - Added option to add custom apt repositories to judge chroot. - Added CLI script to configure the domserver with a yaml file. - Changed activation behaviour of contests imported via UI to be directly available. - New option added to reset login status of teams between contests. - Highlight submissions which were judged with compiler flags which since have changed. Useful when you find wrong flags during the contest. - Handle network errors for judgedaemon when domserver is unavailable. - Added super lazy mode useful for ICPC analyst instances. Here nothing is judged unless manually requested. - Split problem import messages in info/warning/danger, to make sure errors are not missed when importing. - Store user login sessions in database. - Contest import CLI script is now rewritten in python. - The example test problems are now imported via the contest package format. Version 8.1.0 - 1 June 2022 --------------------------- - Document that minimum PHP version is now 7.4.0. - Add support for PHP 8.1. - Upgrade Symfony to 5.4 LTS and upgrade other library dependencies. - Replace calls to deprecated `strftime` with `date`. Note: if you have configured a custom `time_format`, you need to update it to the format supported by `date`. - Dropped the presentation-error verdict, databases from before DOMjudge 5.0 will be altered to replace the verdict with wrong-answer. - Changed API import to give admin users a team. - Balloon users can now be created via the API. - Shadow mode will now fix missing data by reading from the primary CCS. - Fixed cgroup naming for docker to prevent sharing the same container. - Removed python2 in the chroot, remove python3 in favor of pypy3 in chroot. - Added support for sentry for logging. - Added default external IDs on all places. - Fixed medals on scoreboard for filtered scoreboards. - Dropped old balloons CLI. - Reimplementation of runpipe for interactive problems. - Individual files can now be removed from executables. - Added mysql socket option, for when port/IP is not used. - Added support for accounts.{yaml,json} for import script. - Added support for judgeremaining for problems. - Add option to delete existing testcases/attachments/other data when importing a problem. - Dropped support for ICPC results HTML export feature. - Balloon runners can now always see the frozen scoreboard. - Custom CSS can now be used for the login page. - Removed option to use multiple timezones in same contest. - Fixed kotlin compile script for modern versions. Version 8.0.0 - 30 January 2022 ------------------------------- - Compilation of submissions now happens inside the chroot. NOTE when upgrading: you need to install compilers and other dependencies for the compile phase inside the DOMjudge chroot. Also you need to remove the '--tmpdir' switch from the mktemp call in the java_javac_detect compile script (when using this). - Python 3 now uses pypy by default and is default enabled on new installations. - Improve performance with large amounts of affiliations. - Judging verifier is now also available to jury users. - Search for @EXPECTED_RESULTS@ marker in all submitted files to validate test submissions. - Allow users to specify their full name in self-registration. - Add metrics API endpoint for use with Prometheus. - Always show banner.png, if present, on the public scoreboard. - Upgrade bundled libraries. - Add problem statistics to team/public problem pages. - Add support for specifying database port. - Update API documentation to OpenAPI 3. - Add support for loading custom CSS and JavaScript. - Speed up loading team pictures and affiliation logos. - Add filter on result to jury submissions page. - Add API actions to create single team, team affiliation, team category and user. - Add problem attachment support. - Judge a single submission on multiple judgedaemons in parallel if the judging queue is empty. - Limit the size of the program output stored by default in the database; with a button in the UI to retrieve the full output. - Add new clarification handler role. - Reduce cost of the hash function to handle large amounts of accounts when generating or storing passwords. - Improve API action to add submission to adhere to the CCS spec. - Add API action to create clarification following CCS spec. - Add support for showing (pending) awards on the scoreboard. Thanks @shuibinlong! - Remove JudgehostRestriction feature due to new Judgehost API. - Replace C++ submit client with (standalone) Python version. - Remove old way to run interactive problems. NOTE when upgrading: if you have an old-style interactive problem, you need to convert it to the new style (see 'boolfind' example) or change it to include the old run_wrapper. - Replace jscolor by coloris. - Created insights page in current work queue - Increase performance by not dynamically loading classes. - Added alternative inplace install mode - Added PHP8.0 support - Add option to default pause new judgedaemons - Added medals to scoreboard - Warn contestants if file has not been modified for some time - Make public/team pages mostly WCAG2A compliant - Add support to import multiple accounts per team and IP addresses for users. Version 7.3.2 - 23 November 2020 -------------------------------- - Be more tolerant of empty lines in restapi.secret. - Fix team manual build failure with recent rst2pdf versions. - Update URL for imports from ICPC CMS. - Fix team count on jury contest overview screen. - Truncate output for sample runs on team pages. - Fix compatibility with MySQL 8.x. Version 7.3.1 - 10 November 2020 -------------------------------- - Fix chroot install on Ubuntu 20.04. - Fix results.hml and results.tsv output. - Fix race condition in scoreboard related to a Doctrine bug. - Fix having fresh data for scheduling repeated rejudgings. - Fix clarification filter buttons when not using queues. - Fix database user creation for MySQL >= 8.0. - Fix warning about DataTables initialization on judgehosts page. - Documentation improvements. Version 7.3.0 - 26 June 2020 ---------------------------- - Move specification of database configuration out of database and into a YAML file. Also show select boxes when appropriate. - Rename team.externalid to team.icpcid, since it is not an external ID in the sense the other ones are. - Add team display name support. - Add support for importing teams, organizations and groups using JSON. - Add script dj_judgehost_cleanup for maintenance on judgehosts. - Team manual source is now RestructeredText. - Log out an active user whose password is changed, and updates to the roles of a logged in user are effective immediately. - Allow to "delete" testcases even with associated judgings. - Fix permissions on webapp/var/* by using group setsid bit. - Allow public and team to view submissions, awards and clarifications using the API. - Allow users with API_READER role to fetch inactive contests - Drop smart renaming for Java public classes. - Show browser notifications also for new balloons to be handed out. - Add option to allow teams to download their own submission. - Change shadow import to read data from a configuration file and store a copy of the feed. - Pin scoreboard header to top when scrolling page. - Add console command to reset the password of any user. - Many code cleanups, improvements and tests. - Upgrade Symfony to 4.4 LTS and upgrade other library dependencies. Version 7.2.1 - 6 May 2020 -------------------------- - Various documentation fixes and improvements. - Fix filtering balloons by affiliation (Thanks Michael Baer). - Fix audit log entries for newly created entities. - Small fix to make API delete events adhere to the specification. - Fix some edge-case bugs in the scoreboard calculation. - Fix arguments to UploadedFile(). - Fix SQL group by leading to errors on newer DB versions (Thanks Michael Baer). - Fix submit help to work when baseurl is invalid. - Various small fixes to the build/install system. - Fix user IP address field to accept IPv6 addresses. - Fix and document static scoreboard contest selection feature. - Fix a sed error message on internal compile error. - Fix link to documentation from the admin index page. - Fix problem text links from scoreboard header. - Fix that country select fields are hidden when show_flags is off. - Fix editing testcase descriptions. - Fix encoding of multiline testcase descriptions in submit graphs. - Fix hardcoded domjudge username in SystemD service file. - Fix compatibilty with PHP 7.4. - Document that minimum PHP version is now 7.2.5. Version 7.2.0 - 4 January 2020 ------------------------------ - Rewrote documentation into a completely new DOMjudge Manual. - Reduce page load times and memory requirements, especially for contests with many problems. - Add DB indices to improve event log updates. - Fix doctrine query that lead to a polluted query cache. - Multiple bug fixes with respect to first to solve. - Fix contest clock update. - Improve submission and judging run display in jury interface. - Always display a flash message for skipped submissions in rejudgings - Restrict displayed balloons to currently selected contest. - Show affiliation logo's on jury affiliation overview page. - Fix AJAX refreshes with multiple active contests. - Add support for testdata subgroups. - Store original input filename of testcases. - API: Add endpoint to get users. - API: Improve awards endpoint. - API: Add endpoint to upload contest.yaml, groups.tsv, teams2.tsv, and accounts.tsv. - Update compiler options in internal build scripts. - Update default configuration values to modern system limits. - Add simple script to import a whole contest from a CLICS compatible ccsconfig directory. - Add a command to merge scoreboards from multiple ICPC Contest API endpoints (#632, thanks Ragnar Groot Koerkamp). Version 7.1.1 - 20 October 2019 ------------------------------- - Update documentation for Fedora (Thanks Marc Furon!). - Fix printing in jury interface. - Fix registration action. - Fix showing user last login info. - Fix balloon page when we do not have award info. - Fix logging events that require higher permissions than the user that triggers the action has. Version 7.1.0 - 25 September 2019 --------------------------------- - Minimum PHP version is now 7.1.3. - Use optimized composer autoloader. - During self-registration team name and affiliation can now be specified. - Judgedaemon will now keep retrying when an endpoint is unavailable. - Store external judgements and runs. - Move external CCS submission detail URL to database configuration. - Add support for showing shadow differences and external judgements. - Reduce dependencies of Judgedaemon. - Also install genrestapicredentials on judgehost. - Submit client will error early and explicitly when API calls fail. - Improve balloons page and make filtering persist when reloading. - Split up contest.public into contest.public and contest.open_to_all_teams, allow public contests with a limited set of teams and private contests with all teams. - Upgrade Symfony and dependencies to version 4.3. - Use Doctrine for migrations and initial data. - Add option (enabled by default) to limit files passed to language compilers by langauge extension list. - Add option to add a whole team category to a contest. - Allow admin to specify print command using configuration setting. - Show metadata for judging runs. - Restrict some API endpoints to jury or API users. - Allow to download statistic graphs as SVG. Version 7.0.3 - 11 July 2019 ---------------------------- - Fix printing: disable debugging code. - Fix import/export SQL query to run with recent MySQL versions. - Make forms more robust against misconfigured application hostname. - Fix balloons page showing random balloon results. - Fix results.tsv export to always use externalId of team. - Fix contest edit form interfering with countdown clock on same page. Version 7.0.2 - 4 June 2019 --------------------------- - Fix first-to-solve indicators after applying a rejudging. - Fix the public interface when there are no active contests. - Fix performance when using the update_judging_seconds option. - Fix performance of applying a rejudging. - Fix judgedaemon error message on missing chroot. - Fix highlighting of own team row in team scoreboard. - Fix some title elements on jury submission page. - Fix type error on jury Analysis page. Version 7.0.1 - 6 May 2019 -------------------------- - Fix affiliation checking in Configration Checker. - Improve feedback on errors when uploading problem zip files. - Fix adding a team to a contest by editing the team. - Fix submitting when sourcefiles_limit is set to 1. Version 7.0.0 - 28 April 2019 ----------------------------- - Initial admin password is now generated on database creation, and written to etc/initial_admin_password.secret. - Rewrite the interface in Symfony and Bootstrap. Add many UI improvements in the process. - Rewrite API in Symfony, expose Swagger docs. - Rewrite jury analysis page. - Make interactive problem support more robust. - Fix first-to-solve check and make it consistent across UI and API. - Change judging directory layout to be hierarchical, i.e. to output/judgings/$judgehost-0/endpoint-default/$cid/$sid/$jid/. - Add explicit config check for max test case size and max_allowed_packet. - Add API endpoint to import problems to an existing contest. - Improve judgedaemon performance. New setting update_judging_seconds that allows to control how often updates are sent back; less often is faster. - Improve IP authentication and add X-headers based auth method. - Improve submit client usability. - Add support for the R programming language (#516 thanks Michał Kaczanowicz). - Add support for the Swift programming language. - Add support for creating a writable tempdirectory for submissions. - Add option to download all sample files of a problem in a single zip. - Upgrade Symfony to 3.4. - Upgrade jQuery to 3.3. - Upgrade Bootstrap to 4.1. - Remove old v3 API. - Remove combined_scoreboard tool. - Removed eventdaemon again and moved its logic to the event feed API action and just before inserting other events. Version 6.0.3 - 15 December 2018 -------------------------------- - Fix a race condition in runguard where in rare cases not all output was read from a pipe, resulting in wrong-answer verdicts. - Document that php-intl is now a requirement and fix results export. - Fix problem name sanitizing in zip upload. - Improve error detection while uploading test cases. - Don't break judgedaemon if in/output are missing for a testcase. - Fix scoreboard summary row when affiliation logos are enabled. - Do not try to set session params, fixes notices in newer PHP versions. - Remove mention of obsolete AUTH_METHOD configuration variable. - Fix problem import from Baylor after API change. - Set MySQL charset to UTF8mb4 for security and Emoji reasons. - Fix for modifying a user when the user has no roles. - Fix that users with balloons-only privileges could view more contest data than was strictly necessary. Version 6.0.2 - 22 October 2018 ------------------------------- - Fix config check for default admin password. - Fix balloon daemon for changed database structure. - Fix flash message on login page used after self-registration. - Fix scoreboard layout issue by preferring Roboto over sans-serif. - Fix a bug when submitting with entry_point containing spaces. - A few more fixes for potential errors. Version 6.0.1 - 23 September 2018 --------------------------------- - Security: disallow login for disabled user accounts. Thanks Henk van der Laan for reporting. - Fix eventlog for problems type. - dj_make_chroot: also install pypy for Ubuntu variant. - Finalise contest: fix all clarifications answered check. Thanks Thomas Verwoerd for reporting. - Clarify label for same-judgehost judgehost restriction. - Allow to import jury submissions without entry points. - Fix change contest dropdown when using Nginx. - API now also returns non-public contests for jury users, and non-public contests for users that are in them. - Fix DOMjudge logo display on Jury home. - Fix styling of navbar for non-started contest. Version 6.0.0 - 4 September 2018 -------------------------------- - Do not show affiliations more than once in pre-contest list. - Fix display of timelimits in team problem overview. - Improve SQL migration script. Version 6.0.0RC1 - 28 July 2018 ------------------------------- - Minimum PHP version is now 7.0. - New layout for team and public web interface including improved scoreboard layout. - Add "entry point" field for submissions to override auto detected main class or file. - Add clarification queues and allow to send canned answers. - Add eventdaemon to create some entries for event-feed API endpoint. - Update API to conform to ICPC Contest API specification. - Allow installing DB default data and examples separately. - Add option to disable starttime (pause countdown). - A contest can now be finalized (results declared final). - Allow to disable affiliation logos if desired. - Reduce memory reserved for JVM overhead and make stack size configurable in Java compile script. - Allow configuration variables to be publicly viewable or not. - Judgedaemon will now report 'internal error' on more failure conditions instead of just bailing out. - Jury edited submissions will be automatically 'claimed' by that user. - Include team location in header of documents printed. - No longer pass ONLINE_JUDGE and DOMJUDGE directives to submissions. - Fix runguard bug when stdout/stderr are not redirected to file. - Add helper script dj_run_chroot to perform chroot operations. - Support integration with ICPC Analytics' iCAT. - Migrate (parts of) the API and webpages to Symfony. - Use d3 charts instead of float for statistics. - Update ACE editor to version 1.3.3. - Removed likely unused Dutch translation of team manual. - Removed static_scoreboard script, use static=1 URL parameter via HTTP. - Many small issues fixed and documentation improvements. Version 5.3.3 - 30 July 2018 ---------------------------- - Executables: allow edits only by admin. - Allow build with PHP >= 7.2. Version 5.3.2 - 29 December 2017 -------------------------------- - Fix runguard crash when deleting cgroups (#311). - Parse team IDs more flexible in accounts.tsv import (#310). - Add documentation on Apache KeepAlive settings. Version 5.3.1 - 2 November 2017 ------------------------------- - Fix runguard reusing cpuacct cgroup potentially giving wrong runtimes. - Increase length of auditlog.action DB column, fixing SQL error when updating some configuration settings (#308). - Fix testcase download filename. - Various small documentation fixes. Version 5.3.0 - 21 October 2017 ------------------------------- - Add support for Kotlin by mounting /bin in chroot environment. - Add options to have second scoreboard resolution and to suppress problem information from the scoreboard. Thanks Marc Furon. - Change judging feedback dir ownership after compare script ran. Fixes a crash when output validators have stderr output. - Fix display of user IP address on jury interface. - Various fixes to compile scripts. - Fix automatic setting of clarification category in jury interface. - Allow jury to view problems before contest start. - Various small fixes to test sources. - Delete team scoreboard cache data when deleting a team. Version 5.2.0 - 3 October 2017 ------------------------------ - [security] bind PHP session cookie to specific web URI to prevent sharing sessions between different websites on the same host. - [security] Add RUNGROUP configure setting to make sure that submissions do not have access to group root files. (#250 thanks Richard Lobb) - Allow team to download testcase data marked as 'sample'. - Add icons to menu bars. - Allow to filter submissions on team, problem, language. - Show when a problem can not be judged on any judgehost. - Add "internal error" messages to deal more graceously with judgehost problems e.g. due to faulty compile or compare scripts. - Detect low disk space on judgehosts and decrease space usage. - Support OpenID Connect as login authentication provider. - Various improvements to the import/export functionality. - Use current contest as default when uploading problem archive. - Allow to add user during team creation in UI. - Make problem texts always downloadable for jury. - Decode HTML entities for proper display of error messages in submit client. - The event feed and REST API now comply with ICPC WF 2016 specs. - Disallow deleting a judgehost that has performed judgings, since the dangling reference from the judging table makes submissions being rejudged again. - Performance: merge jury and public versions of cache database tables into single tables. Please refresh scoreboard cache after upgrade. - Make Linux cgroups a requirement: running Java without it has become too painful with memory overheads, also when compiling. - Add 'output-limit' verdict. - Renamed dj-setup-database to dj_setup_database for consistency with other script names. - Update ACE editor to version 1.2.6, jQuery to version 2.2.4, and JavaScript Cookie to version 2.1.3. - Implement better password hashing (#237 thanks Bert Peters). - Allow float timelimits (#235). - Add filtering to balloons page (#251 thanks Michael Baer). - Changed semantics of dj_file_contents_get() optional size argument. - Make storage and display limits for output/error files configurable. - Changed special case handling of color name/hex conversion functions. - Update make_chroot, merge Debian and Ubuntu versions, and other fixes. - Add option -y to force yes to some make_chroot script questions. - Many smaller bugfixes, improvements and documentation updates. Version 5.1.0 - 7 December 2015 ------------------------------- - Minimum PHP version is now 5.4. - Minimum MySQL/MariaDB version is now 5.5.3. - More pervasive UTF-8 support. Also introduces new DJ_MYSQL_COLLATION configuration setting. - Remove CHROOT_SCRIPT configuration setting: automatically run chroot-startstop.sh if a pre-built chroot tree is found. - Update ACE editor to version 1.2.2, JScolor to version 1.4.5. - Support microsecond resolution contest times and timezones. - Port XML event feed from ICPC-live branch. - Port clarification categories feature from ICPC-live branch. - Merge Debian/Ubuntu chroot scripts and add minor fixes. - Fix float compare script output and relative checking. - Fix various small bugs in problem ZIP import. - Fix ACE editor to resize after tab change (#145). - Fix variance calculation in judging_statistics script. - [security] Disable GCC family automatic language detection to prevent submitting other languages or object/executable code. - Write compare script errors to logfile (#179). - Substitute invalid Unicode characters instead of producing blank output. - Various smaller fixes and improvements to the jury interface. Version 5.0.0 - 11 August 2015 ------------------------------ - Removed support for 'presentation-error' judgement. - Various documentation improvements. - Preserve aspect ratio when creating testcase image thumbnails. - Fixed bug that REST API scoreboard "solved" was always true. Thanks Shuhei Takahashi. - Make REST API return properly typed values. Thanks Shuhei Takahashi. - Synchronise selected contest between jury/team/public interfaces. - By default only refresh caches of the selected contest. - Show differences of a resubmission with the original submission. - Fix length of role DB field. Thanks pinkston3 for pointing out. - Update ACE editor to version 1.2.0. - Update jQuery to version 2.1.4. - Update autoconf M4 macros from upstream. - Miscellaneous smaller fixes. Version 5.0.0 Release Candidate 1 - 7 July 2015 ----------------------------------------------- - Add support for the problemarchive.org problem package format, thereby dropping support for our custom format. In particular, the specification of compare scripts has changed. - Add support for multiple simultaneous contests. - Add support for HTML5 desktop notifications of clarifications, judgings and judgehost status (#133). - Add support for optional user self-registration. - Add support for problem points, allowing one to assign different scoring weights to diffent problems in a contest. - Add selection options for rejudging, and preview rejudging results before applying them. - Add optional per problem memory/output limits (Closes #152). - Apply runguard limits also to compare scripts (#68). - In runguard, kill all remaing processes in the cgroup at the end of the run; preventing leftover processes in corner cases like detaching from itself. - Allow to add restrictions on contests, problems and languages to judgehosts. - Allow judgedaemons to query multiple domservers. - Allow storing optional descriptive image for each test case. - Add support for accounts.tsv import, results.tsv and userdata.tsv export. - Add support for additional per-team penalty time (can be negative). - Move checktestdata to stand-alone repository. - Update dj_make_ubuntu_chroot to Trusty (#139, thanks Ruud Koot). - Fix diff display on team submission output page when showing the result of sample testcases is enabled (#137, thanks Ruud Koot). - In Haskell run script, set maximum stack size to someting small to prevent ghc from running out of memory (#138, thanks Ruud Koot). - Update ACE editor to 1.1.8, JScolor to 1.4.4. - Improve installation on and documentation for Red Hat(like) Linux. - Root is not required anymore for 'make install'. - Raise minimum required PHP version to 5.3.3. Version 4.0.0 - 22 July 2014 ---------------------------- - Fix chroot create script when using an APT proxy. - Fix broken link to problem download for teams and public. - Small tweaks to new judgehost load display. - Display problem/language name instead of ID above submission lists. - Install ACE and flot Javascript library files. - Rename SQL upgrade snippet to release name. - A few miscellaneous minor code improvements. Version 4.0.0 Release Candidate 1 - 8 July 2014 ----------------------------------------------- - checktestdata logical operators are now '&&' and '||'. - Introduce REST API; used by judgedaemon and submit client to communicate with domserver. API is not officially declared 'stable' at this point. - Removed submitdeamon; submit client now always uses the REST API. - Removed xml plugin interface; use the REST API instead. - Move nearly all judgehost configuration to the database, making it controllable centrally from the DOMjudge web interface, including all compile and check scripts. - Problem, team and affiliation now have a numeric auto-incrementing ID. Problem short names now need to be unique per contest, but not globally. - Redesign authentication system: there's a single set of users for all interfaces, which may have different roles, such as team or admin. - Submitclient now also works with user/password authentication. - New authentication scheme 'external' leverages Apache to provide a REMOTE_USER value. - New scoreboard layout: more compact, affil. logos replaced by names. - Store timestamps in database as Unix epoch, independent of time zones with subsecond resolution. - Store recognized language extensions in database and query from submit client through REST API. - Show diff of team and reference output even if run stopped prematurely. - Make timelimit overshoot margin configurable. - Judge too-late submissions without scoring them (Closes #99). - Update jscolor and sorttable javascript to latest upstream versions. - Misc. minor bugs fixed reported by Coverity scan. - Replace flex++ by flexc++, fixes a missing build dep. and code cleanup. - Add support for new languages: Prolog, Ruby, JavaScript. - Replace GeSHi syntax highlighter with Ace javascript code editor. - [security] Compile as unprivileged user to prevent compile-time access to e.g. testdata files. - Added rankcache_* tables to improve scoreboard page for large contests (thanks to the Amrita people), renamed scoreboard_* tables to match. - Added support for publicly visible sample testcases. - Move compile/run/compare scripts to database (Closes #123). - Add option to have compiler-error not add penalty time (Closes #127). - Gather and store metadata from runguard and start work to completely separate program/runguard stderr output (Closes #122). - Add statistics page with a graph of submissions during the contest. - Add ICPC import/export, both via TSV files and via their web service. - Notify admin of judgehosts that are down by indicating this in the menu bar. - Overhauled layout of submission detail page. - Changed Java classname detection to use reflection instead of javap. - Added script misc-tools/judging_statistics to extract various statistics (variations in judging results and runtimes, etc.). Version 3.4.0 - (unreleased) ---------------------------- - Add problem text to database and support viewing in PDF/HTML/ASCII. - Add optional printing support via DOMjudge web interface. Using local system printing remains the preferred way. - Change non-lazy evaluation to also return the result to the team as soon as possible while continuing to judge the remaining test cases. - Display verification comment for previous run. - Check IP address equivalence with inet_pton. - Do not apply framing protection to public interface. - Update GeSHi to upstream 1.0.8.11. - Update JSColor to upstream 1.4.0. - Increase highlighted source limit from 10 kB to 32 kB. - Add mapping to GeSHi highlighting to translate DOMjudge language ID's to their GeSHi counterparts. - Move configuration data to separate SQL file. - Store CPU/wall time limits in double to prevent overflows. - Fix bug: CSS class missing in disabled balloon interfaces rows. - Fix bug: link to CSS colour names reference was broken. - Make Java class name detection compatible with Java 7. - Make Haskell example source compatible with newer GHC versions. - Make default colour for observers grey instead of yellow. - Fix bug: buffer underflow bug in runguard when compiled on Ubuntu 12.04: added check for closed pipe (file descriptor == -1). Thanks Keith Johnson. - Fix bug: change absolute time strings for those times which are specified as relative time when starttime was changed by "start now". - Fix bug: long overflow in runguard / output_exit_time. - Fix bug: add missing $pagename to check_judgings.php. - Fix bug: race condition in runguard where the forked child terminates before the parent could setup a signal handler. - Fix bug: handle gracefully events deleted from the database. - Fix bug: submitclient compile error with g++ (Debian 4.7.1-2) 4.7.1. - Don't let sudo try to read passwords. - Various documentation improvements. - Add cascading delete on submitid to balloons table. - Support stringwise token compare and ignoring whitespace in check_float. - Add option to generate testdata and add ASSERT to checktestdata syntax. - Extend checktestdata syntax: arrays, strings, UNIQUE, INARRAY tests. - Correct mount bind option, see Debian bug #677815. Ported from WISVCH/DOMjudge tree at GitHub. - Add program to "relive" simulate original contest submissions. - Add option to display favourite teams on top of the public scoreboard. - Make format of timestamps in web interfaces configurable. - Use PHP multibyte string functions where applicable. Thanks Vladimir Vassiliev for the bug report. - Use HTML5 for multiple file uploads and form validation, when available. - Fix: close all file descriptors when daemonizing (no PHP solution yet). - Upgrade to PHP's 'mysqli' extension instead of the legacy 'mysql'. - Switch make_chroot to Debian 7.0 'Wheezy' and OpenJDK 7. - Add support for memory control in rungard with Linux cgroups. Patch provided by Keith Johnson. - Prevent network access from runguard when cgroups are enabled. - Pass ONLINE_JUDGE and DOMJUDGE directives to submissions. - Add support for new languages: Python3, Ada, Fortran, Lua, Scala. - Make it explicit that rejudging 'all' does not include CORRECT submissions. - Allow to (de)activate judgehosts on the judgehosts overview page. - Apply the z-index to the clock only, otherwise the refresh button stops being clickable. - Remove unnecessary sleep from submitting test sources. - Run C preprocessor on Fortran source to be able to pass defines. - Also install an Ubuntu chroot creation script. - Support deleting a problem description. - Move the balloon daemon configuration into domserver-config, and install it by default. - Mount lib64 in the chroot if it exists. - Allow multiple judgedaemons to be run on the same host, and use cgroups to bind each to a separate CPU core. - Judgehosts will auto-register with the domserver and do not need to be manually listed beforehand. - Fix bug that teampage_first_visit would be updated on each visit. - Update clock in web interface each second through JavaScript. - Further tighten permissions on files written when judging submissions, to make the case when not using chroot more secure. - Add c++ as a language extension for C++. - Display a total and maximum of all testcase runtimes for a submission, and always print runtimes with two decimals. - Judgehosts update their status after each testcase to prevent warning/critical status with many testcases. Version 3.3.0 - 29 May 2012 --------------------------- - Fix bug: don't show unverified submission details if verification is required. Thanks Keith Johnson. - Add sourcefiles_limit setting, upper bound on the number of source files in one submission. - Improve polishing of multifile submission handling. - Preselect original text in clarification form. - Remove judgehost from submission overview tables. - Calculate team that first solved a problem per sortorder. - Do not show submission form when contest has not yet started. - Add button to submission list to view only unjudged submissions. - Improve performance of checkconfig under large databases. - Change runguard kill process to remove unnecessary sleep()s. - Create chroot once per judging instead of once per testcase to remove overhead of repeated chroot start/stopping. - Make chroot bind mounts read-only for extra security. - Refresh scoreboard cache only after a warning has been acknowledged. - Add advisory locking to calcScoreRow() updating of scoreboard cache, to prevent accidental high database load. - Check for unfinished judgings on judgehost startup and give them back to the queue. - Display problem description in submit confirmation dialog. - Add configure-variables-interpolated sudoers.d-snippet. - Fix JS sorting on id for several tables. - Sort problems from the current contest to the top on the problems overview page. - Add optional judge comment field to judging verification. - Redirect to originating page after verification of submission. - Move checktestdata grammar specification to separate file and publish as public domain. - Add possibility to export a problem to a zip-bundle. - Add specification of DOMjudge problem format zip-bundle. - Add admin button to rejudge all submissions in the current contest. Version 3.3.0 Release Candidate 1 - 30 April 2012 ------------------------------------------------- - [INCOMPATIBLE CHANGE,security] enable cURL SSL host/peer verification in the command line submit client. This requires any self-signed certificates now to be available to libcURL on a team machine. - Add compile script and test source for language 'bash'. - Prioritize to team's last judging (port from ETH tree). - Fix testing for empty output with strlen (port from ETH tree). - Update M4 macro's from upstream, fixing some problems. - Fix configure script to allow subdir customization in FHS mode. - Upgrade included dash shell to version 0.5.7-2. - Use Debian 6.0 Squeeze for building Java chroot. - Fix warning of runguard trying to reset resource limits to infinity. - Fix minor bug in diff output coloring due to line number overflow. - Rename SQL upgrade snippets and add README file for these. - Raise minimum required PHP version to 5.2. - Judges now use individual accounts to access the jury webinterface, which will be used to track claiming, verification, etc. - Add auditlog for all actions changing contest state. - Protect against clickjacking by forbidding framing using the X-Frame-Options HTTP header supported in modern browsers. - Reimplement balloon tracking and notification backend. - Display current contest prominently on contests page and provide button to have the next contest milestone happen now. - Add script to automatically submit solutions and clarifications. - Remove duplicate queries in scoreboard generation. - Add team 'enabled' switch which defaults to true, but when disabled makes a team to immediately disappear from the scoreboard and renders their team interface unusable. - Support 'first for contest/team/problem' comments for balloons. - Change ISO 3166-1 country codes from alpha-2 to alpha-3. - Use CPU time as primary limit (port from ETH tree). - Move checktestdata code to separate library for easier use in stand-alone checkers, and add 'IF() [ELSE] END' syntax. - Add option to display pending submissions on the scoreboard. - Remove 'identify daemon' experimental code. It hasn't been working for years and no-one discovered that. - Remove 'lib.config' experimental library for INI-file configuration. It was unused and we're moving to DB stored config with lib.dbconfig. - Merge all MySQL users into one omnipotent user (previously domjudge_jury). The differences between the levels were getting to a point where the separation provided not enough added benefit anymore. You should remove the users domjudge_{team,public,plugin} from MySQL and dbpasswords.secret. - Add configuration page to admin interface and move various variables from etc/*-config.php to the DB configuration table. - Support inclusion of external libraries under the lib/ext/ path. - Include a copy of the GeSHi syntax highlighter. - Result remapping is now done on each testcase result, in order to avoid surprising interactions with results_prio. A message is logged for each remapping done. - Transparant redirection of stdio through runguard, Closes: #89. - Display first solved in scoreboard (suggested by Andrés Mejía). - Fix source code diff function to work with resubmitting modified source from the jury interface. - Support submissions consisting of multiple source files. - Replace check_judgings script by web page in jury interface ('judging verifier'). - Add toggle link for showing/hiding verdicts of previous submission by same team. Version 3.2.0 - SVN r3594 (unreleased) -------------------------------------- - Add better support for interactive problems, add sample problem. - New, redesigned single page "dashboard" team web interface. - Change execute() function for more flexible I/O redirection. - Add runpipe program for connecting stdin/out of two processes. - Rename compare_program.sh to *_wrapper, allow symlinked usage. - Add FLOAT command and exponentiation to checktestdata program. - Add countdown before contest and timezone to clock. - Add daemon support in C/PHP libraries, use for submit/judgedaemon. - Add category to balloons list and button to view only unsent. - Lots of small changes to C/C++ sources and build system for better POSIX compliance and portability; support LLVM clang compiler. - Replace bash by POSIX shell in compile, testcase_run. (Closes: #1735673) - Create separate execdir subdir for judging. (Closes: #3041492) - Replace setuid root installation of runguard with invocation via sudo. - Fix missing permissions for plugin interface SQL user. - Remove CHROOTDIR (mountpoint prefix) variable to avoid confusion with the directory where the Java chroot was created. - Redirect to submissions overview page after verification. - Fix information leak in clarification problems list. (Closes: #3096018) - In JS problem name detection, probid needs to be casenormalised too. - Fix websubmit when using numeric problem ID's, thanks Vladimir Vassiliev. - Allow specification of contest times relative to starttime. - Add toggle button for autorefresh of jury pages (port from ETH tree). - Add support for team authentication via LDAP server (port from ETH tree). - Pass SYSLOG variable from PHP config to C/C++ programs via environment. - Set MySQL connection encoding explicitly. Introduces a new option: DJ_CHARACTER_SET_MYSQL. - Add 'frozen' flag option to scoreboard plugin interface. - Remove language 'extension' column from SQL database, langid is now used for source file extensions. - Add multiselect filters on scoreboard with javascript hiding. - Add cascaded deletes to DB tables: most data can now be deleted from the admin webinterface. Version 3.1.0 - 14 July 2010 ---------------------------- - Add multiple testcases support. - Add PHP session support as alternative to IP address authentication. Based on patches by Tobias Werth. - Bugfixes and improvements to checktestdata program. - Fix error trapping in subshells, thanks Jan Jergus. (Closes: #2866430) - Fix bug in lib.database.php with array_map "class::method" notation. - Add 'enabled' field to contest to allow for easier editing. - Only show the configured submission methods in the team manual. - Fix install of gendbpasswords and use /dev/urandom. - Add documentation on static_scoreboard. - Add problem subject to clarifications, idea from DomJudge@FAU. - Add WHILE command and tests to checktestdata syntax. - Move PENALTY_TIME variable out of common-config into domserver-config. - Add combined_scoreboard script to view scoreboard of multiple sites. - The judgedaemon now tries to restore a lost db connection (Closes: #2897130) - Fix: check for both htpasswd{,2} binaries in configure. - Fix white problem colour by adding a circle image with black border. - Ports from ETH tree: use pipes with wc and gcc. - Fix bug: typo in presentation-error exitcode, and add safeguard. - Add security: check for stale judging directories (port from ETH tree). - Bugfix: allow zero size testcases (port from ETH tree). - Show config checker runtime (port from ETH tree). - Make syntax highlighting more modular, and add support for the GeSHi syntax highlighter. - Add sample PDF problem texts for inclusion in the database. - Fix bug in handling of libmagic cookie. - Refactor team authentication code to allow for other methods. - Eliminate WEBBASEURI setting. - Add JavaScript colour picker to balloon colour edit box, using jscolor 1.3.1 by Jan Odvárko. - Improve layout and usability of displayed tables. - Add "viewing" to verification status in jury submission list, idea from DomJudge@FAU. - Added AWK, C# and Python language support. - Added upgrade support for the SQL database. - Fix some HTML escaping issues found with skipfish. - In chroot-startstop, cope properly with /lib64 being a symlink to /lib. Thanks Christoph Dittmann. - Enforce the previously implicit notion that probid may only consist of characters in "a-zA-Z0-9_". - Fix SQL syntax error in restore_sources2db script. - Upgrade included dash shell to version 0.5.5.1-6. - Fix swapped error messages in submit client. - Correctly handle empty optional diff file argument. - Include standard C headers in misc/scanner.h. Version 3.0.0 Release Candidate 2 - 3 September 2009 ---------------------------------------------------- - Fix directory install permissions. - Only show languages that are not submitable as 'disabled' and show a separator between contests on the problems page. - Minor updates to team manual. Version 3.0.0 Release Candidate 1 - 16 June 2009 ------------------------------------------------ - Raise required PHP version to 5. - Replace included static bash by dash shell. - Revise team manual. - Add missing link to add testcases to a new problem. - Fix bug causing segfaults of submitdaemon. (Closes: #2046031) - Added script to check results of submitted test-sources. - Added 'checktestdata' script for checking testdata via grammar specification. - Add support for FHS directory structure installation. - Move all configure paths to globally included paths.mk file. - Repair broken documentation build/install system. - MySQL table types are now InnoDB. Define foreign key relations between tables (Closes: #2144325). - Use db values instead of the userinput. (Closes #2144718) - Add a FLUSH PRIVILEGES statement after user grants during installation, as this may be necessary to have MySQL pick up all changes correctly. - Don't use -fstack-protector under Cygwin. (Closes: #2144713) - Distribute prebuilt versions of the admin and judge manuals and remove svn,expdlist downloads for the team manual. - New compactified layout of team manual. - Add note about Java class naming in team manual. (Closes: #2153189) - Add Java compile script that autodetects class name. (Closes: #1964765) - Add binary file check in commandline submit. (Closes: #2046017) - Make HTML tables sortable in the jury view. - Removed "feature" of only allowing alnum chars in filename base for submit client problem parsing. - Show truncated team names instead of logins in submissions overview. - Fix bug of submittime==endtime not showing as too-late, thanks Tobias Werth. - Replace 'hostname --short' option, fixing inconsistent results. - Merge changes in ipv6 branch to trunk, IPv6 comparison not yet functional. - Show unread clafications in the title of the team clarifications page. (Closes: #2148054) - Added test sources for java class name, network and root user. - Only wrap unquoted lines in clarification texts. (Closes: #2244652) - Only build submit client/daemon on request via configure. (Closes: #2046029) - Flush results in config checker for better feedback. - Fixed DB installation support with script 'dj-setup-database'. - Update included dash shell to version 0.5.5.1-2 (Debian upstream). - Replace beep by alert plugin program. (Closes: #1878083) - Add functionality and fix security issue in runguard, thanks Thomas Rast. - Check for safe_mode before diff-ing tempfiles. (Closes: #1808354) - Proper error message when entering a team ip that's already in use. - Remove javascript sorting from table columns where it doesn't make sense. - Commandline submitclient supports only http by default now. - Remove redundant copies of testdata by symlinks. (Closes #2805385) - Java chroot script now uses Sun's OpenJDK-headless, allowing for a leaner chroot and more supported architectures. - Reorder source tree: removed bin dir, move test-sources to tests, cleanup. - Fix DEBUG_JUDGE option for debugging judging backend. - FreeBSD porting fixes, making DOMjudge more POSIX compliant. - Make DOMjudge work when PHP's short_open_tag = Off. - Add support for staged installs (DESTDIR). Version 2.2.0 - 11 August 2008 ------------------------------ - Do not install domjudge straight in $HOME by default. - [security] Add sanity check in jury interface whether basic authentication is enabled, and lock down jury inferface also for non-GET/POST requests - Fix race condition in team password check. - Improved MySQL query performance. - Move .htaccess config to apache config. - Fix 'NONINTERACTIVE' undefined (Closes: #1814594, thanks Maks Verver) - Moved beep system call to separate function in lib.misc.{c,php}. - Switch to UTF-8 for output. (Closes: #1742460) - Represent balloon colours with a symbol rather than filling the background, making the scoreboard less cacophonic. (Closes: #1808561) - Add a web based tool for tracking balloon handouts. - Fix C compiler warnings by using 'const char *'. - Fix noninteractive/logging code in websubmit to restore submitclient error parsing (Closes: #1829621). - Fix variable name in judge/compare_program.sh. - Added make dist target and removed generated figures. - Added cookie for last verifier in jury webinterface (Closes: #1742044). - Added option to only show unverified submissions in jury interface. - Fix bug that jury was not allowed to set clarifications (un)answered. - Fix problem that runguard ignored SIGALRM on some distributions (thanks Tobias Werth). - New required activatetime field for a contest: defines the moment the team/public displays start to display this contest, but no submissions accepted yet. Solves the problem of testsession data still displayed upto the second before a contest starts (Closes: #1825555). - Rename contest.lastscoreupdate to freezetime to be more clear and in line with other table attributes. - Add salt to passwords' md5 hashes. - Move setting resource limit from run script to runguard. - Added signal detection to daemons for graceful shutdown (Closes: #1808478). - Fixed bug in test-stacksize.c due to compiler optimization (Closes: #1788820). - Add some rudimentary tests. - Remove websubmitdaemon, submit directly to database (Closes: #1737229). - Add script to restore submission table from SUBMITDIR files. - Complete implementation of syslog logging (now also for C/C++). - Send jury user back to referrer page after edits (Closes: #1821543). - Remove .php extensions from commandline scripts. - Higher displayed precision in float compare. - Fix submit_copy to use bash. - Make it easier to return custom result codes for a judging. - Added support for "presentation error" results. - Enable GCC security features for compiling DOMjudge helper programs. - Automatically generate apache.conf from global.conf (Closes: #1778059). - Added work-in-progress code for eventdaemon (Working on: #1682761). - Added printer friendly version of jury scoreboard. - Restyle configchecker and also check MySQL version and max_connections. - Explicitly use DBSERVER host with mysql install (Closes: #1955439). - Display time left to end of contest on every page (Closes: #1960940). - Move php files that shouldn't be served to lib/www (Closes: #1957891). - The admin can exclude submissions from a team's score (Closes: #1742043). - Added choice of view types to submissions page, default to 50 most recent submissions (Closes: #1964747). Choice is remembered in a cookie. - More flexible debugging settings with a bitmask (Closes: #1759103). - Store testdata in database and add interface to view/update it. - Add an anchor to the first changed line in the diff (Closes: #1818874). - Added 'domjudge_plugin' mysql user for the plugin webinterface. - Cache hostname in team table to prevent slowdown on hosts without working reverse. - Removed LGPL licence by relicensing 2 files to GPL. - Added ability to download source code for jury. - Allow bash-static to be replaced by any static POSIX shell. - In MySQL privileges table, add 'localhost' entries next to '%' entries to prevent Access Denied when DB is on localhost. Version 2.1.1 - SVN ------------------- - Implement syslog logging (for PHP and shell scripts). - Fix typo in jury/submission.php causing a parse error when using PHP4 (Closes: #1808259, thanks mhil@fmf.nl). - Fix team unread clarification count to work cross-contest. - Update not the public, but the jury scoreboard after freeze. - Fix poblem colour input field to match its size in the database. - The colors of the problems are now shown in the jury problems overview (Closes: #1808308). - Improve contrast of default team category colours. - Some improvements to admin manual including submission diagram. Version 2.1.0 - 5 September 2007 -------------------------------- - Drop tempfile and mkstemps binaries, they are not necessary. - Change runguard licence to GPL 2 or higher. The current code is a different implementation of the original idea from timeout. - Make shell scripts /bin/sh where possible, set them to bash where we rely on bash-specific features. - Fixes to judge/compare.c for better handling of strange newlines and printing first difference summary as first line. - Allow admins to rejudge PENDING/CORRECT submissions (Closes: #1766222). - Fix include test for Text_Highlighter to cope with missing PEAR.php. - Fix password generation for more than one team. - Fix test-logic bug in judge/check_program.sh: reversing judging outcomes. - Make warning and error beeps default to something more noticeable. - Let show_source cope with empty file submissions gracefully. - Abort startup of judgedaemon if processes of RUNUSER still found running. - Added extra default problem 'fltcmp' for testing check_float and special run script code. - Fix make_passwords.sh to cope with htpasswd2 instead of htpasswd. Thanks Tobias Werth for the patch. - Fix 2 generate_config.sh bugs: quoting error and tempfile cleanup. - Print float abs/rel diffs in check_float (Closes: #1777195). - Allow teams to respond to received clarifications (Closes: #1777179). - Check LANG_EXTS array for consistency with languages table in configtest (Closes: #1777182). Version 2.0.0 - SVN ------------------- - Use correct last modified date of team manual (Closes: #1744121). - Allow to set a specific new password for a team (Closes: #1737142). - Split general functions from submitcommon.cc to lib.misc.c and improved makefile structure and build process under Cygwin. - Replaced compare script by C program with better diff display. - Use AJAX instead of iframe to notify team/jury of new clarifications. - Added some security improvements to runguard. - Drop dependency on tempfile during distclean. - Fix compile errors/warnings in beep.c and compare.c (Closes: #1754218). Version 2.0.0 Release Candidate 2 - 25 June 2007 ------------------------------------------------ - A shared file system between judgehosts and jury system is no longer required. The source is now communicated via the database. - Merge judging information into submission page (Closes: #1741620). - Improved portability to non-Linux systems (Closes: #1734046). - Use syntax highlighting in source code viewer when PEAR Text_Highlighter class is available. - Generated passwords only lowercase and length 6 (Closes: #1737142). - Split test-sources in normal and stress tests (Closes: #1737421). - Remove 'NOW()' from SQL update/insert queries to make replication time-independent. - Fixed bug in submit_db: report errors before too-late submission. - Fix bug in diff display when no newline present (Closes: #1741625). - Select recipient explicitly on clarification send (Closes: #1741622). - Use either wget or curl for downloading LaTeX packages. - Add more checking and verification to database input. - Upgrade bash to upstream Debian version 3.1dfsg and removed sources from package to website to reduce package size. - Bring lib.database.php up to date with latest upstream version. - Improved error handling in team file uploads. - Small-time cleanups. Version 2.0.0 Release Candidate 1 - 28 May 2007 ----------------------------------------------- - Minimum MySQL version required is now 4.1: simplify SQL privilege removal. - [INCOMPATIBLE CHANGE] Renamed judger to judgehost everywhere to remove ambiguity between human judges and judge computers. - [INCOMPATIBLE CHANGE] Renamed team to teamid in database tables refencing the 'team' table index 'login'. - Add numbering to scoreboard. - Make all cells in jury scoreboard links that refer to relevant data for that cell (Closes: #1582358). - Add affiliation icons to scoreboard (configurable). (Closes: #1355814). - Adapt and split sql script files to allow for easier upgrading and changing database name. - Fix possible buffer overflow in submitcommon.cc; thanks to Lennert Buytenhek for pointing out [CVE-2007-2977]. - Add option to commandline submit to use websubmit (Closes: #1582376) and use libcurl for that (Closes: #1626222). - Add unfreezetime field to contests which allows to display the final standings to teams and public, and a button to unfreeze right away (Closes: #1582370). - Add problem and team category colours to MySQL DB. - Add team summary to all main team pages. - Add check_float program to compare floating point output. - Parse validator XML output if xsltproc is available (Closes: #1238454). - Add more summary data to tables. - Fix clarification wrapping. - Fix some language typos. - Improve webinterface layout. - Add MySQL transactions; will provide extra safety when the table type supports it (otherwise does nothing). - Rewrote submit daemon/client to use new networking code, which makes transition to IPv6 compatibility easy. (Closes: #1576565). - Change scoreboard sorting to use ACM ICPC (tie-breaker) rules. - Added team information pages for teams and public and included team members field in the SQL 'team' table. - Unify documentation into an administrator's manual, a judgers manual and a team manual. - Balloon notifications can continue after scoreboard freeze, and will list all balloons a team is supposed to have. - Add event table to DB to store major events of the contest (Working on: #1682761). - Only judge submissions that are submitted strictly before the contest end time. - Fix check_float testing for NaN and INF (thanks to Maks Verver). - Fix variable type to work on 64 bit systems in submit.cc (thanks to Maks Verver). - New script: static_scoreboard.php. Outputs a scoreboard suitable as a static HTML page. - Add DOMJUDGE_ADMINS variable in etc/passwords.php. This can be used to differentiate between judges and admins for the web interface: admins will be allowed to change more of the core data. - Bring lib.database.php up to date with latest upstream version. - Add Referential Integrity and HTTP Authentication check to configchecker. - Add option to admin interface to edit and delete most data types. - Improved build process of submit client under Windows/Cygwin. Version 1.3.0 - 6 October 2006 ------------------------------ - Fix balloons notification for new database layout introduced in 1.1.0; thanks Lennert Buytenhek for the patch. - Handle unwritable logfiles more gracefully. - When scoreboard frozen, display since when. - Some very minor tweaks to code and documentation. Version 1.3.0 Release Candidate 2 - 18 September 2006 ----------------------------------------------------- - Large update and improvement of the documentation: more installation information, a quick-install checklist, FAQ is improved, example Apache configuration shipped and bugs fixed (Closes: #1560107). - Default hostname in MySQL privileges to '%' (all hosts), making sure that webinterface, command line and remote judgers can all connect (Closes: #1560108). - Change default memory limit in global.cfg to 512MB, since the Sun JVM consumes 200 MB by itself. - chmod uploaded files so the websubmitdaemon can handle them even if the webserver has a restrictive umask. - Auto-focus the clarification textarea. - Bring lib.database.php up to date with latest upstream version. - Some miscellaneous minor tweaks. Version 1.3.0 Release Candidate 1 - 15 September 2006 ----------------------------------------------------- - Added a separate script for extra setup of the chroot environment and pass memory limit to Sun Java run script for better javac/java support (Closes: #1508663). - Added script to generate Java chroot environment from Debian sources. - Added toggle buttons in jury interface for allowing submission and judging per problem and language. - Added option to enter verifier's name in jury interface. - Changed config option SUBM_VERIFY to VERIFICATION_REQUIRED and disabled "off" choice. - Fixed some more HTML to be fully XHTML 1.0 Strict compliant. - Included sources to comply with licences of included programs. - Multiple other small fixes and enhancements. Version 1.2.0 - 26 June 2006 ---------------------------- - Added websubmit (Closes: #1103084). - Added support for team passwords (generating and validating). - Added team status light to jury teams overview (Closes: #1441783). - Added confirm dialog when sending a clarification (reply). - Added examples and documentation for how to use interpreted languages. - Added support for specialised run and compare scripts. - Timeout submitclient connection to server (Closes: #1477739). - Minimum required PHP version now 4.3.2. - Allow for IPv6 IP-addresses to be used. - Correct parameters to `diff`, since '-2' is obsoleted. - Checked all BASH scripts for 'set -e' (Closes: #1508492). - Tweak HTML to be fully XHTML 1.0 Strict compliant. Version 1.1.0 - 22 December 2005 -------------------------------- - Added 'make check' target which submits test-sources. - Fixed that no compiler output gives compilation error. - When solutions timeout, first try to kill graciously (Closes: #1312848). - Removed LaTeX packages from the sources to remove GPL/LPPL conflicts. - Changed runguard licence to IBM Public Licence. - Added diff to previous submission in source display (Closes: #1310244). - Extra check on submission filenames to prevent theoretical exploits (Closes: #1355816). - Added summary of solved problems to team submissions page (Closes: #1312241). - Automatically quote clarification request when replying (Closes: #1347688). - [INCOMPATIBLE CHANGE] Renamed table category to team_category, team_category.catid to categoryid and team.catid to categoryid, scoreboard_{jury,public}.problem to probid. - Added team_affiliation table which allows for storing the university, institution or company teams belong to. - Added room and comments fields to team table. - Display sort-order in category overview. - A lot of small webinterface enhancements. Version 1.0.0 - 4 October 2005 ------------------------------ - Updates to team manual and other documentation (Closes: #1306335). - Fix case-bug in sql/mysql_privileges.sql example. - Drop checking for existence of testdata in www/jury/checkconfig.php, since the webserver doesn't need to be able to read that data. - Minor enhancements to the jury webinterface display. - Added config option to disable chroot environment for judging. - Improved sample data. - Add sort-order field to category table to enable some categories to be sorted at the bottom automatically (Closes: #1311885). - Some other small bugfixes. Version 1.0.0 Release Candidate 1 - 21 September 2005 ----------------------------------------------------- - Added config option to autoconfigure team IP addresses. - Added config option to (not) show compiler output to teams. - Moved C-code from headers to separate files. - Fixed bugs where submitdaemon couldn't handle spaces in language ext. - Added balloons notification script (Closes: #1238416). - Added feature: jury can do optional or required auditing of judgings (Closes: #1070240). - Accept late submissions, but do not judge them (Closes: #1238421). - Improve efficiency of requesting contest data. - Support the ICPC Validator Interface standard, concerning the parameters of the compare script. The result.xml file is generated but is not yet considered by test_solution (See: #1238454). - Small improvements in Makefile's and install scripts. - Some other small bugfixes. Version 0.3.1 - 16 July 2005 ---------------------------- - Added documentation on MySQL DB layout to INSTALL. - Improved SQL installation/cleaning scripts. - Added make target to automatically generate passwords. - Fixed bug where teams received popups for their own clarifications. (Closes: #1233038) - Fixed missing privilege definition in MySQL table. - Miscellaneous other small fixes. Version 0.3.0 - 5 July 2005 --------------------------- - Added mass rejudging support per team,language,problem,judger. (Closes: #1070241) - Added FAQ in docs/FAQ. - Fix missing column_priv (domjudge_user,problem,cid). - Fix sorting for equal scores to be alphabetical on team name. - Miscellaneous documentation improvements. - Fix some problems with file permissions by setting those explicitly. - Config checker now checks for existence of testdata.{in,out}. (Closes: #1221427) - Web interface copes better with empty database tables. - Fixed that time_factor was inadvertently cast to int for output. - Add tooltips explaining the scoreboard summary row. - Made some enhancements to the Makefiles. - Support MySQL 3/4 privilege tables and sql files installation. Version 0.2.0 - 23 February 2005 -------------------------------- - Fixed faulty EPS-logo, finally. - Add database privileges and move sql-files to own directory. (Closes #1070236) - Improve config.tex dependency. - Make the base URI of the web interface configurable and fix redirects to be compatible with the HTTP-specification. - Fix bug in getSubmissions() that caused a syntax error on the team-overview in the jury interface. - Added some notes on security to the INSTALL docs. - Symbolic links now included (subversion >= 1.1). - Fixed buffer size bug in log/error C-code. - Fix bug in submit_db where the problem name got case-normalised. - Feature: Add caching to the Scoreboard. This vastly improves the responsiveness and scalability of DOMjudge; outputting the scoreboard is now an O(1) operation in queries. (Closes: #1070079) - Some fixes to XHTML1.0 compliance. - In tables, the time is now printed as hh:mm (without seconds). - Complete rewrite of the clarification interface of both teams and jury. Functional changes: added possibility to (un)set a request as "answered". - Remove Dutch text from lib.database.php. (Closes: #1103043) - Add functions for debugging and profiling (timing) the web interface. - Include placeholder config files which output an error when the system is unconfigured. - Fix layout error of differences output. - Only define STDERR when not already defined (differs per PHP version). Version 0.1.1 - 24 November 2004 -------------------------------- - Improve documentation layout. - Improve Makefiles and add global targets. - Move passwords to separate passwords.php file. - Redirect in webroot changed from permanent to temporary. - Recreated EPS logo, now 75% smaller filesize. Version 0.1.0 - 18 November 2004 -------------------------------- - First public release.