$Id: CHANGES,v 1.8 2005/04/26 07:27:51 hackworth Exp $

0.30 (April 25, 2005)

    - ``Ping'' constraint was introduced. The constraint sends
      a single ICMP ping to a given address and is considered
      met if an ICMP packet is successfully received. ``Ping''
      can be used to ascertain that network connection is
      available and functional for tasks that depend on one.

    - ``Concurrent'' constraint was introduced. The constraint
      keeps a tab on the number of concurrent processes of a
      specified application. The constraint is considered met
      iff the number of processes running is less than the
      concurrency level. [Feature Request #1011911]

    - Reintroduced a ``safe_sleep'' time at the end of the
      scheduler's while() loop. This stops the scheduler to go
      into a tight loop, every time there is a few microseconds
      of latency between task_wait and Freq constraint.


0.25 (August 18, 2004)

    - emerge-later, an application that adds packages to be
      emerged (using Gentoo's package manager - emerge) to
      system chrontab as only_once tasks, was added to the
      distribution.

    - Syslog support was introduced. When invoked in the
      background mode (which is the default), chronicd will log
      to Syslog's daemon facility with 'debug' and 'info'
      priorities. The logging format was also changed to improve
      clarity. [Feature Request #947137]

    - SIGHUP handling was augmented to defer signals during task
      execution since tasks can't be safely interrupted. HUP is
      turned off before execution and replayed once the task is
      finished running.

    - The scheduling algorithm was modified such that scheduler
      sleeps are completely controlled by ``wait'' times
      returned by constraints; the scheduler does not sleep for
      a ``timestep'' like it used to. The scheduler can also
      function when there are no tasks in the chrontab; it will
      simply sleep till a task arrives.


0.20 (June 30, 2004)

    - SIGHUP handling was introduced in chronicd. On receipt of
      a HUP signal, chronicd will drop the existing schedule,
      re-read config files and start over again.

    - Capability to run certain tasks "only once" was added
      to the Scheduler. When ``only_once'' is set to 1 in
      the config file, chronicd will run the task once.
      chronicd will purge these tasks from the chrontab once
      they've been run.

    - Notification functionality augmented to inform the user of
      failures. If return value of the program is not 0, a
      failure is assumed.


0.15 (June 04, 2004) 

    - Introduced the "InXs" constraint that combines the
      Inactivity constraint and the Xscreensaver constraint
      using an OR relationship.

    - Scheduler wait doesn't exceed 10 minutes. This is because
      a machine can hibernate (or chronicd backgrounded) in
      middle of a long sleep, causing scheduler_wait to exceed
      the intended sleep time. An upper limit ensure that
      chronicd will "self-correct" its timers every 10 minutes.

    - Added support for email notifications. notify =
      email@address as a task field will send notifications to
      email@address. Time values in the email notification are
      in human readable format. eg. 35 seconds, 4.52 days, etc. 
      [Feature Request #946816]

    - Fixed a bug in chrontab re-writing logic. We were missing
      the final ";" which could've caused a corrupted chrontab
      in certain cases.

    - Added a template constraint module under the docs
      directory. The template will act as a starting point for
      writing new constraints.


0.10 (May 15, 2004)

    - Introduced a Xscreensaver constraint that is met when
      Xscreensaver is locked for a specified amount of time.
      chronicd manpage updated with Xscreensaver documentation.
      [Feature Request #952966]

    - Added a basic use test to satisfy CPAN's automated
      testing. A more comprehensive test suite will be
      provided someday.


0.02 (May 11, 2004)

    - First public release.