-*- mode: text; mode: auto-fill -*-
$Id: TODO 3238 2006-08-28 12:37:11Z cher $

Major bugs/showstoppers
=======================

None known.

Minor bugs
==========

None known.

Minor enhancements
==================

o Support SIGHUP signal in userlist-server, compile, job-server,
  super-serve. 
o Do not show buttons in master/judge, which are not applicable
  to the current contest, or if the user has no enough
  permissions.
o Enhanced creation of new contests from an existing contest.
  During creation it should be possible to specify whether users
  should be copied, whether problems should be copied, and allow
  possibility to specify substitutions in the new configuration
  files.
o Passing of the run packets via the super-serve proxy, if the contest
  works in managed mode. This means, that if the `serve' program
  started by the `super-serve', it could be reasonable to pass the
  run packet to the `super-serve' program, and it will route them
  to the appropriate instance of the `run' program, starting it,
  if necessary. This will reduce the number of directories watched
  by the `super-serve' program to a single directory instead of
  one directory for each managed contest.
  Difficulty: medium. It may require changing of the run packet format.
o Daemonized mode for `super-serve' and `compile' programs.
  Difficulty: medium. It may require changing of the log format of
  the utilities.
o Log analyzing utilities for the log files of the abovementioned
  tools.
o Implement full support for conditional compilation.
o Remove limitation on 127 tests in the runlog database.
  Difficulty: medium. May require changing of the runlog data format.
  Compatibility problems may appear.

Major enhancements
==================

o Database backend. Support for storing the various data in the
  database (MySQL, Postgress).
  Difficulty: difficult. The data access layer (runlog,
  userlist-server, clarlog) should be rewritten.
o Port to the Win32 platform. The `run' and `compile' utilities
  should be ported first to enable mixed judging environment.
o Personal tester to allow preparing problems and simulating
  their execution under ejudge.
o Split the `run' program into `run-program' and `run-checker'
  to separate program invocation and the result testing.
  Basically, all infrastructure are in place (XML testing
  protocol, full output archive).
