pytagsfs 0.7.0 2008-06-03

  • Documentation updates. (Forest Bond)

pytagsfs 0.7.0rc1 2008-05-19

  • Fix setup.py not installing sub-package specialfile. This bug was unreleased. (Forest Bond)
  • Handle conditional expressions in format strings better with respect to renames. Previously, renaming files such that a path component matches the alternate content of a conditional expression resulted in that alternate content being set as a tag value. Now, the tag is removed, instead. For example, with format string '/%?%g%:Unknown Genre%?/%a/%t.%e', moving a file into directory "Unknown Genre" will unset the genre tag for that file, rather than setting the genre to "Unknown Genre". (Forest Bond)
  • Long keys are now supported in format strings. For instance, "%{artist}" is equivalent to "%a". This can also be used to access arbitrary tags that have no short key version (like "%{composer}"). (Forest Bond)
  • Created an experimental implementation of KqueueSourceTreeMonitor with the ultimate goal of achieving full Mac OSX compatibility. More work must be done before such support is complete. (Forest Bond)
  • Fixed Python 2.4 incompatibilities in test/integration.py. (Forest Bond)
  • Fixed broken kqueue support when not run in foreground mode (via -f/-d). (Forest Bond)
  • Fixed breakage in test/integration.py that would prevent test mounts from being un-mounted correctly. (Forest Bond)
  • Fixed bad handling of boolean tag values. (Forest Bond)
  • Fixed incorrect handling of mount options uid, gid. (Forest Bond)
  • Set fstype to source directory path, subtype to "pytagsfs". Previously, fstype was set to "pytagsfs". The new arrangement is more semantically correct. (Forest Bond)
  • Fix kqueue handling of file replacements. (Forest Bond)
  • Fixed MacFUSE caching issues by passing mount option "nolocalcaches". (Forest Bond)
  • Fix renames on mounts with format string key redundancy (mounts that have the same tag appear more than once in the format string). (Forest Bond)
  • Detect platform and inform user about potential mmap problems, if they exist. Require --force-write-support if appropriate. (Forest Bond)
  • Provide -o ro on Linux, -o rdonly on OSX and other BSD's. Provide -r on all systems. (Forest Bond)
  • Correctly handle errors from FUSE main function. Thanks to Y Giridhar Appaji Nag for submitting a patch. (Forest Bond)
  • Correctly handle moves of directories containing (directly or via sub-trees) both empty directories as well as virtual files. (Forest Bond)
  • Try to handle MP4 keys in a useful way by translating from keys to those used more commonly by other formats. The keys seem to mostly have been defined by iTunes, and are not well documented (nor are they very sane). Variations in the field may cause problems here, but the iTunes-created files that I have here appear to be handled correctly. (Forest Bond)
  • Integrate tests into setup.py. Tests can now be run with ./setup.py test. (Forest Bond)
  • Import the locale module from sclapp, rather than importing it directly. This fixes some Unicode issues on Darwin. sclapp version 0.5.2 is now required. (Forest Bond)
  • Provide --tests option to setup.py test sub-command to enable specific tests to be run, rather than always running the entire test suite. (Forest Bond)
  • Implement substitution parameter %{NUMBER}, a synonym for %N. (Forest Bond)

pytagsfs version 0.6.0 2008-04-04

  • Pretty-up log format a bit:

    • Include time stamps.
    • Use prettier description of function for "Entering x" and "Leaving x" messages.

    (Forest Bond)

  • Rewrote command-line option parsing. Options are now handled completely independently from the underlying FUSE library. The following options are no longer supported:

    • -o default_permissions
    • -o fsname
    • -o large_read
    • -o max_read
    • -o hard_remove
    • -o use_ino
    • -o readdir_ino
    • -o direct_io
    • -o kernel_cache
    • -o umask
    • -o entry_timeout
    • -o negative_timeout
    • -o attr_timeout

    In general, the options for which support was removed are now considered implementation details, as they should have been previously. (Forest Bond)

  • Fix incompatibility with python-fuse 0.2 by returning fuse.Stat instances instead of os.stat_result instances from getattr, fgetattr. This issue did not exist with python-fuse 0.2pre3. Previously, users of 0.2 would see EINVAL from stat calls. Reported by Chris Pickel, Jeremy Jones. (Forest Bond)

pytagsfs 0.6.0rc2 2008-03-26

  • Improve performance for readdir by changing post-processing list of entries in PyTypesPathStore.get_entries_for_directory to use new function last_unique instead of unique. Thanks to Chris Pickel. (Forest Bond)
  • Improve performance for readdir when debug logging is turned on by decorating FileSystemMappingToRealFiles.readdir with @logged instead of @verbosely_logged. (Forest Bond)
  • Cache directory entries. This provides a significant performance improvement for readdir calls after the first. (Forest Bond)

pytagsfs 0.6.0rc1 2008-03-24

  • Keep order of directory entries the same across renames, collisions, etc. Implementation happens to improve performance for source tree file updates, as well. (Forest Bond)
  • Support simple renames of files under mount point. Renaming virtual files and directories causes the meta-data of the underlying source files to be updated appropriately. Files can be moved from one directory to another, or files and directories can be renamed. (Forest Bond)
  • Fix bug preventing stat results from actually being cached. This likely had impact on performance of directory listings. (Forest Bond)
  • Fix TypeError from readdir due to poor handling in VirtualLogFile. (Forest Bond)
  • Fix cache not pruned due to rename. (Forest Bond)
  • Directory permissions now taken from source tree root directory (previously arbitrary). (Forest Bond)
  • Fix broken directory mtime, ctime, atime. (Forest Bond)
  • Fix partial stat cache invalidation when full path branch should be invalidated. This would cause directory mtime, ctime, atime to not be updated when it should. (Forest Bond)
  • Fix partial stat cache pruning in response to source file updates. (Forest Bond)
  • Support mkdir, rmdir. (Forest Bond)
  • Fix bad handling of updates to previously unrepresentable source files. (Forest Bond)
  • Fix rmdir not completely removing the target directory. While the directory was no longer returned by readdir on parent, stat still indicated its presence. (Forest Bond)

pytagsfs 0.5.0 2008-03-08

  • pytagsfs is now compatible with Python 2.4. (Forest Bond)

pytagsfs 0.5.0rc2 2008-03-07

  • Initial scanning of files was taking place after filesystem process detached from the user's shell. This causes the initial population delay to be observed when the filesystem is first accessed, leading to confusion as to whether the filesystem had hung. Now, the files are scanned before the process detaches. (Forest Bond)
  • Fixed log spamming after each open of log file (".log"). (Forest Bond)

pytagsfs 0.5.0rc1 2008-03-06

  • Added option -o verbosity=VERBOSITY; VERBOSITY should be one of debug, info, warning, error, critical. -d/-o debug overrides this, and forces verbosity to debug. (Forest Bond)

  • With -d/-o debug, log to both .log and stderr. Otherwise, log to .log only. (Forest Bond)

  • Limit size of in-memory log file (.log) to 1MB. (Forest Bond)

  • Allow size of in-memory log file to be overridden via -o logsize. (Forest Bond)

  • Fixed bug preventing addition of tags to previously untagged mp3 files. (Forest Bond)

  • Improved inotify performance for case where source files are updated numerous times between event processing calls; DeferredInotifySourceTreeMonitor. (Forest Bond)

  • Improved performance by only processing add, remove, and update events for sources files after initialization (post populate) and prior to getattr calls. (Forest Bond)

  • Fix bug causing reads on a recently truncated fd to return the removed content by using direct_io = True for ReadWriteFile's. (Forest Bond)

  • Fix bug (sort of) where getattr calls for a file currently open for writing return the size of the file before being opened. Now, we defer to fgetattr on the open file object. This would cause, for instance, mutagen to badly truncate OGG files. (Forest Bond)

  • Fix broken setup.py that forgets to install sub-packages. (Forest Bond)

  • Fix missing import log_traceback in pytagsfs.sourcetree. (Forest Bond)

  • Fix handling of transient conflicts. Previously, when two or more source files map to the same file name under the mount point, and one of those source files was either removed or modified such that it mapped to a different path, the mount path became a "dead" file, with zero links. Now, that path will become reassociated with the next source file candidate. (Forest Bond)

  • Fix pytags, pytagsfs always exiting with zero status, despite errors. (Forest Bond)

  • Log to stderr when option -f/-o foreground is specified. (Forest Bond)

  • Introduced fallback mechanism for source tree change monitoring backends. Source tree monitors are tried in the following order: pyinotify, gamin, dummy.

    • pyinotify only works on Linux, but is faster than gamin.
    • gamin possibly works on other Unix-like systems (like the BSD's).
    • The dummy backend doesn't actually do anything, so changes to the source tree are not reflected in the mount tree.

    Non-Linux users should report success or failure with the gamin backend.

    (Forest Bond)

pytagsfs 0.3.0 2008-01-17

  • Added BUGS. (Forest Bond)

  • A virtual log file (".log") is created under the moint point. The contents of this file are stored in memory. In the event of a (detected) bug, tracebacks and other critical debugging data will be accessible by reading this file. (Forest Bond)

  • If a file is truncated (directly, without being opened), the effects of this are not immediately visible. Reads will continue to return the file contents prior to truncation. However, if the file is opened in write-only or read-write mode, the truncation will be apparent to the opener. Once the file is closed, reads will return the new content. This makes it possible to successfully re-tag files in such a way that the file path changes. (Forest Bond)

  • Write support is now considered reliable. (Forest Bond)

  • Removed support for the following filesystem functions, which were either incorrect or irrelevant given currently supported features:

    • readlink
    • mknod
    • mkdir
    • unlink
    • symlink
    • rename
    • link

    (Forest Bond)

  • Fixed incorrect stat results due to out of date cache values. This also corrects issue where writes would not show up in mounted tree. (Forest Bond)

  • Drastic performance improvement via stat() result caching. (Forest Bond)

  • Fixed bug in setup.py causing version information to be excluded from generated .egg file. (Forest Bond)

pytagsfs 0.2.0 2007-12-15

  • Added NEWS file; sorry for the previous absence. (Forest Bond)
  • [NEWS file not present]

pytagsfs 0.1.0 2007-12-06

  • [NEWS file not present]

Changelogs/0.7.0 (last edited 2008-07-25 03:30:32 by ForestBond)