Todo
====

* Use rsync instead of homegrown tree-copying code ?

* Integrate with an SCM ?

* Why is some state saved in the begin/finish command and other state
  inside Cft::Monitor ?

* If you keep a session running for a while you get false change info
  from various daemons scribbling all over the place (e.g. /etc/printcap
  and /etc/mtab)

* The synchronzation between the demon and the cmdline prog in Session is
  full of races. Instead of whacky gamin stuff, we should use pipes or
  similar. The essential issue though is that there is no telling how long
  after gamin gets a request it will actually report events on them.

* Replace gamin with something else

  Gamin causes weird races since there's no telling when it starts to
  actually monitor a dir. All we really need is some mechanism to tell us
  which files have been modified during the session; the nice thing about
  gamin is that we don't have to stat a huge amount of files, though that
  might turn out to be more robust than Gamin is.

  This would be yet another great use for unionfs; or possibly a logging FUSE.

* Use case: 
  
  Yumrepo config has wrong baseurl; change on a system, map
  back into puppetmaster, respecting overrides etc.

* Add a way to document better what a session is about

  Jim Meyering suggests that users should be able to say sth like
  cft begin postfix "Install postfix and set it up to relay to
  mail.example.com"

* Add more paths to watch at runtime

  While a session is running, user should be able to say 'also, watch
  /var/lib/pgsql'

* Bring some sanity to the storage of the per-session data

* Try to guess some relationships, e.g. have a file require a package if
  the file belongs to the package

Small fixes
===========

* Running 'manifest SESSION' creates an empty session if one doesn't exist - 
  kinda ugly

* Missing types
  cron, sshkey

* File copying gets majorly confused with recursion (e.g. when handling
  horde/kronolith) 

Based on kronolith
==================

* Can't watch /var/lib/pgsql/data/pg_hba.conf

::::::::::::::::
Local Variables:
mode: text
End:
