Version 2.8.1	04 Sep 2006

	* Changes to fix, update and properly build Cedar Backup manual
	  - Change DocBook XSL configuration to use "current" stylesheet
	  - Tweak manual-generation rules to work around XSL toolchain issues
	  - Document where to find grepmail utility in Appendix B
	  - Create missing documentation for mbox exclusions configuration
	  - Bumped copyright dates to show "(c) 2005-2006" where needed
	  - Made minor changes to some sections based on proofreading

Version 2.8.0	24 Jun 2006
	
	* Remove outdated comment in xmlutil.py about dependency on PyXML.
	* Tweak wording in doc/docbook.txt to make it clearer.
	* Consistently rework "project description" everywhere.
	* Fix some simple typos in various comments and documentation.
	* Added recursive flag (default True) to FilesystemList.addDirContents().
	* Added flat flag (default False) to BackupFileList.generateTarfile().
	* Created mbox extension in CedarBackup2.extend.mbox (closes: #31).
	  - Updated user manual to document the new extension and restore process.
	* Added PostgreSQL extension in CedarBackup2.extend.postgresql (closes: #32).
	  - This code was contributed by user Antoine Beaupre ("The Anarcat").
	  - I tweaked it slightly, added configuration tests, and updated the manual.
	  - I have no PostgreSQL databases on which to test the functionality.
	* Made most unit tests run properly on Windows platform, just for fun.
	* Re-implement Pipe class (under executeCommand) for Python 2.4+
	  - After Python 2.4, cross-platform subprocess.Popen class is available
	  - Added some new regression tests for executeCommand to stress new Pipe
	* Switch to newer version of Docbook XSL stylesheet (1.68.1)
	  - The old stylesheet isn't easily available any more (gone from sf.net)
	  - Unfortunately, the PDF output changed somewhat with the new version
	* Add support for collecting individual files (closes: #30).
	  - Create new config.CollectFile class for use by other classes
	  - Update config.CollectConfig class to contain a list of collect files
	  - Update config.Config class to parse and emit collect file data
	  - Modified collect process in action.py to handle collect files
	  - Updated user manual to discuss new <file> configuraton 

Version 2.7.2	22 Dec 2005

	* Remove some bogus writer tests that depended on an arbitrary SCSI device.

Version 2.7.1	13 Dec 2005

	* Tweak the CREDITS file to fix a few typos.
	* Remove completed tasks in TODO file and reorganize it slightly.
	* Get rid of sys.exit() calls in util/test.py in favor of simple returns.
	* Fix implementation of BackupFileList.removeUnchanged(captureDigest=True).
	  - Since version 2.7.0, digest only included backed-up (unchanged) files
	  - This release fixes code so digest is captured for all files in the list
	  - Fixed captureDigest test cases, which were testing for wrong results
	* Make some more updates to the user manual based on further proof-reading.
	  - Rework description of "midnight boundary" warning slightly in basic.xml
	  - Change "Which Linux Distribution?" to "Which Platform?" in config.xml
	  - Fix a few typos and misspellings in basic.xml

Version 2.7.0	30 Oct 2005

	* Cleanup some maintainer-only (non-distributed) Makefile rules.
	* Make changes to standardize file headers with other Cedar Solutions code.
	* Add debug statements to filesystem code (huge increase in debug log size).
	* Standardize some config variable names ("parentNode" instead of "parent").
	* Fix util/test.py to return proper (non-zero) return status upon failure.
	* No longer attempt to change ownership of files when not running as root.
	* Remove regression test for bug #25 (testAddFile_036) 'cause it's not portable.
	* Modify use of user/password in MySQL extension (suggested by Matthias Urlichs).
	  - Make user and password values optional in Cedar Backup configuration
	  - Add a few regression tests to make sure configuration changes work
	  - Add warning when user or password value(s) are visible in process listing
	  - Document use of /root/.my.cnf or ~/.my.cnf in source code and user manual
	  - Rework discussion of command line, file permissions, etc. in user manual
	* Optimize incremental backup, and hopefully speed it up a bit (closes: #29).
	  - Change BackupFileList.removeUnchanged() to accept a captureDigest flag
	  - This avoids need to call both generateDigestMap() and removeUnchanged()
	  - Note that interface to removeUnchanged was modified, but not broken
	* Add support for pre- and post-action command hooks (closes: #27).
	  - Added <pre_action_hook> and <post_action_hook> sections within <options>
	  - Updated user manual documentation for options configuration section
	  - Create new config.PreActionHook and PostActionHook classes to hold hooks
	  - Added new hooks list field on config.OptionsConfig class
	  - Update ActionSet and ActionItem in cli to handle and execute hooks
	* Rework and abstract XML functionality, plus remove dependency on PyXML.
	  - Refactor general XML utility code out of config.py into xmlutil.py
	  - Create new isElement() function to eliminate need for Node references
	  - Create new createInputDom(), createOutputDom() and serializeDom() functions
	  - Use minidom XML parser rather than PyExpat.reader (much faster)
	  - Hack together xmlutil.Serializer based on xml.dom.ext.PrettyPrint
	  - Remove references to PyXML in manual's depends.xml and install.xml files
	  - Add notes about PyXML code sourced from Fourthought, Inc. in CREDITS
	  - Rework mysql and subversion unit tests in terms of new functions

Version 2.6.1	27 Sep 2005

	* Fix broken call to node.hasChildNodes (no parens) in config.py.
	* Make "pre-existing collect indicator" error more obvious (closes: #26).
	* Avoid failures for UTF-8 filenames on certain filesystems (closes: #25).
	* Fix FilesystemList to encode excludeList items, preventing UTF-8 failures.

Version 2.6.0	12 Sep 2005

	* Remove bogus check for remote collect directory on master (closes: #18).
	* Fix testEncodePath_009 test failure on UTF-8 filesystems (closes: #19).
	* Fixed several unit tests related to the CollectConfig class (all typos).
	* Fix filesystem and action code to properly handle path "/" (closes: #24).
	* Add extension configuration to cback.conf.sample, to clarify things.
	* Place starting and ending revision numbers into Subversion dump filenames.
	* Implement resolver mechanism to support paths to commands (closes: #22).
	  - Added <override> section within <options> configuration
	  - Create new config.CommandOverride class to hold overrides
	  - Added new overrides field on config.OptionsConfig class
	  - Create util.PathResolverSingleton class to encapsulate mappings	
	  - Create util.resolveCommand convenience function for code to call
	  - Create and call new _setupPathResolver() function in cli code
	  - Change all _CMD constants to _COMMAND, for consistency
	* Change Subversion extension to support "fsfs" repositories (closes: #20).
	  - Accept "FSFS" repository <type> in <subversion> configuration section
	  - Create new FSFSRepository class to represent an FSFS repository
	  - Refactor internal code common to both BDB and FSFS repositories
	  - Add and rework test cases to provide coverage of FSFSRepository
	* Port to Darwin (Mac OS X) and ensure that all regression tests pass.
	  - Don't run testAddDirContents_072() for Darwin (tarball's invalid there)
	  - Write new ISO mount testing methods in terms of Apple's "hdiutil" utility
	  - Accept Darwin-style SCSI writer devices, i.e. "IOCompactDiscServices"
	  - Tweak existing SCSI id pattern to allow spaces in a few other places
	  - Add new regression tests for validateScsiId() utility function
	  - Add code warnings and documentation in manual and in doc/osx 
	* Update, clean up and extend Cedar Backup User Manual (closes: #21).
	  - Work through document and copy-edit it now that it's matured
	  - Add documentation for new options and subversion config items
	  - Exorcise references to Linux which assumed it was "the" platform
	  - Add platform-specific notes for non-Linux platforms (darwin, BSDs)
	  - Clarify purpose of the 'collect' action on the master
	  - Clarify how actions (i.e. 'store') are optional
	  - Clarify that 'all' does not execute extensions
	  - Add an appendix on restoring backups

Version 2.5.0	12 Jul 2005

	* Update docs to modify use of "secure" (suggested by Lars Wirzenius).
	* Removed "Not an Official Debian Package" section in software manual.
	* Reworked Debian install procedure in manual to reference official packages.
	* Fix manual's build process to create files with mode 664 rather than 755.
	* Deal better with date boundaries on the store operation (closes: #17).
	  - Add <warn_midnite> value in <store> configuration
	  - Add warnMidnite field to the StoreConfig object
	  - Add warning in store process for crossing midnite boundary
	  - Change store --full to have more consistent behavior
	  - Update manual to document changes related to this bug

Version 2.4.2	23 Apr 2005

	* Fix boundaries log message again, properly this time.
	* Fix a few other log messages that used "," rather than "%".

Version 2.4.1	22 Apr 2005

	* Fix minor typos in user manual and source code documentation.
	* Properly annotate code implemented based on Python 2.3 source.
	* Add info within CREDITS about Python 2.3 and Docbook XSL licenses.
	* Fix logging for boundaries values (can't print None[0], duh).

Version 2.4.0	02 Apr 2005

	* Re-license manual under "GPL with clarifications" to satisfy DFSG.
	* Rework our unmount solution again to try and fix observed problems.
	  - Sometimes, unmount seems to "work" but leaves things mounted.
	  - This might be because some file is not yet completely closed.
	  - We try to work around this by making repeated unmount attempts.
	  - This logic is now encapsulated in util.mount() and util.unmount().
	  - This solution should also be more portable to non-Linux systems.

Version 2.3.1	23 Mar 2005

	* Attempt to deal more gracefully with corrupted media.
	* Unmount media using -l ("lazy unmount") in consistency check.
	* Be more verbose about media errors during consistency check.

Version 2.3.0	10 Mar 2005

	* Make 'extend' package public by listing it in CedarBackup2/__init__.py.
	* Reimplement digest generation to use incremental method (now ~3x faster).
	* Tweak manifest to be a little more selective about what's distributed.

Version 2.2.0	09 Mar 2005

	* Fix bug related to execution of commands with huge output.
	* Create custom class util.Pipe, inheriting from popen2.Popen4.
	* Re-implement util.executeCommand() in terms of util.Pipe.
	* Change ownership of sysinfo files to backup user/group after write.

Version 2.1.3	08 Mar 2005

	* In sysinfo extension, explicitly path to /sbin/fdisk command.
	* Modify behavior and logging when optional sysinfo commands are not found.
	* Add extra logging around boundaries and capacity calculations in writer.py.
	* In executeCommand, log command using output logger as well as debug level.
	* Docs now suggest --output in cron command line to aid problem diagnosis.
	* Fix bug in capacity calculation, this time for media with a single session.
	* Validate all capacity code against v1.0 code, making changes as needed.
	* Re-evaluate all capacity-related regression tests against v1.0 code.
	* Add new regression tests for capacity bugs which weren't already detected.

Version 2.1.2	07 Mar 2005

	* Fix a few extension error messages with incorrect (missing) arguments.
	* In sysinfo extension, do not log ls and dpkg output to the debug log.
	* Fix CdWriter, which reported negative capacity when disc was almost full.
	* Make displayBytes deal properly with negative values via math.fabs().
	* Change displayBytes to default to 2 digits after the decimal point.

Version 2.1.1	06 Mar 2005

	* Fix bug in setup.py (need to install extensions properly).

Version 2.1.0	06 Mar 2005

	* Fixed doc/cback.1 .TH line to give proper manpage section.
	* Updated README to more completely describe what Cedar Backup is.
	* Fix a few logging statements for the collect action, to be clearer.
	* Fix regression tests that failed in a Debian pbuilder environment.
	* Add simple main routine to cli.py, so executing it is the same as cback.
	* Added optional outputFile and doNotLog parameters to util.executeCommand().
	* Display byte quantities in sensible units (i.e. bytes, kB, MB) when logged.
	* Refactored private code into public in action.py and config.py.
	* Created MySQL extension in CedarBackup2.extend.mysql.
	* Created sysinfo extension in CedarBackup2.extend.sysinfo.
	* Created Subversion extension in CedarBackup2.extend.subversion.
	* Added regression tests as needed for new extension functionality.
	* Added Chapter 5, Official Extensions in the user manual.

Version 2.0.0	26 Feb 2005

	* Complete ground-up rewrite for 2.0.0 release.
	* See doc/release.txt for more details about changes.

Version 1.13   25 Jan 2005

	* Fix boundaries calculation when using kernel >= 2.6.8 (closes: #16).
	* Look for a matching boundaries pattern among all lines, not just the first.

Version 1.12   16 Jan 2005

	* Add support for ATAPI devices, just like ATA (closes: #15).
	* SCSI id can now be in the form '[ATA:|ATAPI:]scsibus,target,lun'.

Version 1.11	17 Oct 2004

	* Add experimental support for new Linux 2.6 ATA CD devices.
	* SCSI id can now be in the form '[ATA:]scsibus,target,lun'.
	* Internally, the SCSI id is now stored as a string, not a list.
	* Cleaned up 'cdrecord' calls in cdr.py to make them consistent.
	* Fixed a pile of warnings noticed by the latest pychecker.

Version 1.10	01 Dec 2003

	* Removed extraneous error parameter from cback's version() function.
	* Changed copyright statement and year; added COPYRIGHT in release.py.
	* Reworked all file headers to match new Cedar Solutions standard.
	* Removed __version__ and __date__ values with switch to Subversion.
	* Convert to tabs in Changelog to make the Vim syntax file happy.
	* Be more stringent in validating contents of SCSI triplet values.
	* Fixed bug when using modulo 1 (% 1) in a few places.
	* Fixed shell-interpolation bug discovered by Rick Low (security hole).
	* Replace all os.popen() calls with new execute_command() call for safety.

Version 1.9    09 Nov 2002

	* Packaging changes to allow Debian version to be "normal", not Debian-native.
	* Added CedarBackup/release.py to contain "upstream" release number.
	* Added -V,--version option to cback script.
	* Rewrote parts of Makefile to remove most Debian-specific rules.
	* Changed Makefile and setup.py to get version info from release.py.
	* The setup.py script now references /usr/bin/env python, not python2.2.
	* Debian-related changes will now reside exclusively in debian/changelog.

Version 1.8    14 Oct 2002 

	* Fix bug with the way the default mode is displayed in the help screen.

Version 1.7    14 Oct 2002

	* Bug fix.  Upgrade to Python 2.2.2b1 exposed a flaw in my version-check code.

Version 1.6    06 Oct 2002

	* Debian packaging cleanup (should have been a Debian-only release 1.5-2).

Version 1.5    19 Sep 2002

	* Changed cback script to more closely control ownership of logfile.

Version 1.4    10 Sep 2002

	* Various packaging cleanups.
	* Fixed code that reported negative capacity on a full disc.
	* Now blank disc ahead of time if it needs to be blanked.
	* Moved to Python2.2 for cleaner packaging (True, False, etc.)

Version 1.3    20 Aug 2002

	* Initial "public" release.

-----------------------------------------------------------------------------
vim: set ft=changelog noexpandtab:
