Obnam NEWS ========== This file summarizes changes between releases of Obnam. Version 0.9.2, released 2008-04-29; a DEVELOPMENT release NOTE: This is a development release, for the purpose of testing. It is not meant for production use. Do not rely on this version for any backups that are important. However, if you are willing to take a risk, any testing experiences would be most welcome. IMPORTANT CHANGES: * Data that has been backed up is now re-used instead of backed up again. Obviously this is what should be done, but the previous release was pushed out anyway, without this feature. Now that this works again, running obnam on a data set that has not changed only creates a new generation object, a new host block, and a new map block, no other data is uploaded. Version 0.9.1, released 2008-03-24; a DEVELOPMENT release NOTE: This is a development release, for the purpose of testing. It is not meant for production use. Do not rely on this version for any backups that are important. However, if you are willing to take a risk, any testing experiences would be most welcome. IMPORTANT CHANGES: * This release changes the way how file meta data (names, permissions, etc) are store. The new way should be much more efficient than the old way, and all old backups can still be restored with the new version. New backups made with the new version cannot be handled by the old version, however. This version has not been extensively tested yet. That is the purpose of develpoment releases. Be very careful when using this version: there may be bugs that make you lose data. * A particular problem with this development version of Obnam is that it currently does not re-use old data. Every file is backed up every time, even if it existed in the backup store in a previous generation. This will make your store size explode. That probably means you don't want to use this except to play with it to see if anything at all works. (This is also why we won't publish a .deb.) CHANGES TO INTERNALS: * Most of the code has been touched, to simplify things and to introduce new internal abstractions. As a result, the code base should be quite a bit cleaner now. Version 0.9.0, released 2007-12-09; a DEVELOPMENT release NOTE: This is a development release, for the purpose of testing. It is not meant for production use. Do not rely on this version for any backups that are important. However, if you are willing to take a risk, any testing experiences would be most welcome. BUG FIXES: * Manual pages formatting now works under Ubuntu, under version 0.8.8-4 of docbook2x, by specifying the input file encoding explicitly. USER VISIBLE CHANGES: * --use-psyco option removed. It didn't improve run times: most of the time is spent doing other kinds of things. * Errors when running GnuPG or rsync should now result in clearer messages to the user, and not hide them in the log file. CHANGES TO INTERNALS: * A lot of re-factoring to make internal interfaces clearer, in preparation for future new features and improvements. * A new unit test runner that checks for full statement coverage using coverage.py. * More and improved unit tests, with fuller coverage, though not yet complete coverage. * Unit tests now complete in less than five seconds on my laptop. This makes it not be annoying to run them tens of times per day. Version 0.8.3, released 2007-10-23; a STABLE release IMPROVEMENTS: * Progress bar is updates every 64 kilobytes, instead of every block, to make waiting less worrying on slow lines. Also, when blocks are uploaded or downloaded, this is reported instead of the current filename. Version 0.8.2, released 2007-08-14; a DEVELOPMENT release NOTE: This is a development release, for the purpose of testing. It is not meant for production use. Do not rely on this version for any backups that are important. However, if you are willing to take a risk, any testing experiences would be most welcome. BUG FIXES: * The "forget" feature that was sped up in 0.8 had some bugs (wrong function name in one place), which was fixed. * In some cases, forgetting generations led to a corrupted host block. Specifically, if the new host block was shorter than the old one, there was corruption. Fixed now. * Also, sometimes forgetting leads to dangling block references in map blocks, and obnam would crash on them during the next forget run. Fixed now. NEW FEATURES: * Uploaded blocks of data are now put into the cache, so that the next backup run doesn't need to download them again. This only happens for meta data, such as file lists for generations, not actual file data. Version 0.8.1, released 2007-08-07; a DEVELOPMENT release NOTE: This is a development release, for the purpose of testing. It is not meant for production use. Do not rely on this version for any backups that are important. However, if you are willing to take a risk, any testing experiences would be most welcome. BUG FIXES THAT CONCERN USERS: * The sftp transport now doesn't fail when uploading. It used to try to adjust the permissions of files before they had been uploaded, resulting in sub-optimal completion of backup task (read: a crash). * Version is now reported correctly by --version. Version 0.8, released 2007-08-07; a DEVELOPMENT release NOTE: This is a development release, for the purpose of testing. It is not meant for production use. Do not rely on this version for any backups that are important. However, if you are willing to take a risk, any testing experiences would be most welcome. BUG FIXES THAT CONCERN USERS: * The Obnam manual page typo fix ("burdened" was misspelt). * In some cases, when reporting a problem backing up a file, the name of the file was not reported. Now it is. Thanks to Teemu Ikonen for reporting the problem. OTHER CHANGES THAT CONCERN USERS: * Speedups in some operations, in some cases very large speedups. * Stopping obnam with Control-C now gives a warning message that makes sense to those who aren't Python programmers. * The Obnam manual page clarifies what "host-id" is, and has an explanation and examples of sftp addresses. * The Obnam manual page now documents that --generation-times timestamps are in the UTC time zone. Thanks to Michael Greb. * Errors in command line usage now result in proper error messages, rather than Python stack traces. * Clarified the Obnam manual page to say that the "forget" operation keeps deltas from forgotten generations if they're still needed for the remaining generations. * The manual page now clarifies that backups are incremental, but that this is kept invisible to the user. * Uploaded block files now have a permission setting of 0600 instead of 0666 modified by umask. Thanks to Tollef Fog Heen. * The inode number, device number, block size, and block counts are now ignored when deciding whether a file needs backing up. Also, the manual page now explains the rules for when a file does get backed up. Thanks to Tollef Fog Heen. STUFF THAT MATTERS TO DEVELOPERS: * "make clean" removes obnamfs.1. * "make check" checks that every file under version conrol has a copyright statement and refers to the GPL, or is mentioned in check-license-exceptions. * Various places have more logging.debug statements, for easier debugging. Some places have less, when they were deemed unnecessary and slowed things down. * manifest.py now (again) recurses into directories and is faster and uses less memory. Version 0.7, released 2007-04-01 * This is not an April Fool's joke. * "obnam restore" can now restore individual files or directories (and all files and directories within those directories). * Log files are now opened so they're readable only by the owner. This is better for security. * obnamfs now has a manual page. The main obnam manual page now includes examples of usage. Version 0.6, released 2007-03-06 * Manual page updates. * odirect_read now works under Linux kernel 2.4. * --progress reports final numbers at the end of the backup, and doesn't mess up the output under screen(1). * Log file time stamps are now absolute, instead of being relative to the beginning of the program. * There is a preliminary FUSE filesystem for browsing and reading backups made with Obnam. * A problem with caching combined with encryption was fixed. Version 0.5, released 2007-02-15 * Debian packaging much improved. Version 0.4, released 2007-02-15 * odirect_read now works over Samba and other network filesystems. It does not use O_DIRECT in those cases, since that won't work, but backups can be made, at the expense of some disk cache flushing. Version 0.3, released 2007-02-13 * Now uses the rsync algorithm for handling changed files. * sftp transport. * Encryption of backups. * Reads files by bypassing the operating system disk cache, so that doing a backup doesn't fill the cache with useless stuff. * Support for configuration files. * Possibility to exclude files using regular expressions on pathnames. * Many speed improvements. * Optional progress indication. * Numerous other small improvements. Version 0.1, released 2006-11-12 * First alpha release. The code is completely rewritten from earlier prototypes. Data formats have changed and old formats are not supported.