Version 0.26 of flashbake Released

This release is long overdue but the hurdles that held it back, mostly in adequate data for some maintenance and testing, have been cleared well enough that future releases should come more frequently.

From the release notes:

There is now a purge capability that can be manually invoked to remove any files deleted from the repository that are listed via a glob. This is most useful when working with authoring software that adds, changes and removes files behind the scenes. The Scrivener file plugin has been updated to use the purge function automatically, to clean out files Scrivener removes as the result of empty the application’s internal trash or merging parts of a project.

I found another IP location services to replace the one that went away before the last release. As a consequence, the location plugin has been restored and updated to use that replacement service. If you only use official release, you should notice no difference, no interruption in the workings of this plugin. If you are a developer and have been using the in-progress code, then this release officially restores the plugin. Hopefully the service it now uses will last a little longer.

I have incorporated Andrew Heiss’ iTunes plugin alongside the existing Banshee plugin. Use the plugin spec, flashbake.plugins.music.iTunes, in your .flashbake file to activate the new plugin. It has only been tested on OS X and relies on AppleScript being present. The plugin reports on the currently playing file, if there is one.

Another plugin protocol has been added, for extensible notifications. The email plugin has been reworked to use this new protocol. A plugin for Growl has also been added that uses the protocol. The Growl plugin has been tested on OS X and will issue notices of valid commits as well as problems that may need attention.

See the project’s wiki for more information or download from the project’s download page.

Version 0.25 of flashbake released

From the release notes:

This release include a new protocol for file plugins. A file plugin runs before the git automation can can programatically update the hot files list to better deal with types of projects, like OS X bundles, where the file list may be deterministic but unknown ahead of time. Scrivener fits that bill very well and thanks to jpenney, flashbake now can support Scrivener projects with a new set of plugins. See the Plugins page.

The location message plugin is also finally ready to go. It is not perfect in that it does require a network connection and relies on a database that may or may not be entirely accurate. The weather plugin has been updated to use the output from the location plugin if available. Also see the Plugins page for details.

See the project’s wiki for more information or download from the project’s download page.

Version 0.24 of flashbake Released

From the release notes:

Under OS X, there were reports of problems with flashbake not finding git. This problem was most noticeable while running under cron. OS X 10.5 replaced cron with launchd and provides a pretty stripped down cron-like wrapper to run compatible crontabs but it doesn’t setup the execution environment correctly. Even if you add some env vars to the tab, it still was encountering problems.

This version changes the git calls to use Python’s subprocess module which allows for better control of the execution environment. This version also catches problems finding the git executable raising a clear error. You may now also add the git_path: option to .flashbake to tell flashbake explicitly where to find git.

See the project’s wiki for more information or download from the project’s download page.

Help Test the Next Version of flashbake

If you are a Mac user of flashbake and have had some troubles getting it to work correctly, especially but not limited to a cron job, please email me if you are willing to help test some fixes specifically for running the program on a Mac.

As near as I can figure out, the way I was invoking git from Python could run into problems with the execution path environment variable under OS X.  It is most noticeable when setting up a cron job on Leopard as that version of the OS mimics cron with its Mac specific launchd service.  It doesn’t seem to set up a full environment and just adding a PATH entry to the crontab still led to some difficulties in my own testing.

Generally, flashbake assumed git was installed and simply invokable when this may not have been the case.  I have added some code that on startup tries to find git and raises a clear error if it cannot be found.  I also switched the git calls to use Python’s subprocess module which gives me much more control over the execution environment.  In the forthcoming version, there will be a new option in the .flashbake file to provide the path to git if problems occur.

I have tested these fixes as much as I can on my own machines.  I have also sent off the pre-release to a few users who are on Macs and reported these problems.  If you want to help with testing and email me I will also send you a pre-release copy of version 0.24 with instructions for the new configuration option.  I’d like to get some more testing in before releasing this version generally to cut down or eliminate the rapid patches I have had to write for past versions when other users found issues my own testing failed to reveal.

Version 0.23.3 of flashbake Released, Critical Patch

From the release notes:

There was a serious regression in the new glob support that I completely missed. The symptom was that flashbake would consider paths that were valid in 0.22 to be unknown. Some attempted to fix this on their own by changing the hot files in .flashbake to full, absolute paths. While this appeared to work, it interfered with the git commit, so flashbake would fail to commit without giving any sign of a problem.

The fix enhances the sanity checks to catch any hot files that are mistakenly pointing outside of the project directory. So as not to interfere with people’s attempts to fix this problem on their own, flashbake also now should handle both full file paths and paths relative to the project directory correctly.

Thanks to Cory, Ben and a few others whose emails I cannot locate in my email, at the moment.

See the project’s wiki for more information or download from the project’s download page.

Version 0.23 of flashbake Released

From the release notes:

Simple globs are now supported. ? matches any single character in a filename, * matches any number of characters. [] can be used for sets of characters, like [0-9] will match all digits, zero through nine. Glob support will break Python 2.4 compatibility, do not upgrade (yet) if you are using anything older than 2.5. I’ll release a patch for 2.4 and earlier “soon”.

Thanks to Ben Snider, there are now stock plugins for Twitter and Identica in the flashbake.plugins.microblog module. There is also a new plugin specifically for Banshee, the music player, in flashbake.plugins.music. I’ll add other music players as I have time. The Plugins page has been updated.

There is now support for a shared control file, ~/.flashbake/config. This file, if present, will get read first, then the project specific version. There are a few gotchas, however, to this central file. If you name a plugin both in the central file and the project file, it will get run twice. Plugin options will use the project file value if they are duplicated (I think). You can put hot files into the central file but they will be evaulated against the project directory so probably won’t be very useful if you have more than one project. You still must have a project specifiec .flashbake file, anyway.

garthrk also contributed some fixes, in particular for a nasty infinite loop problem on OS X. I have fixed some other some issues too, in particular making debug messages clearer.

See the project’s wiki for more information or download from the project’s download page.

Patch-a-palooza! Version 0.22.2 of flashbake

I got a good amount of feedback this morning. Where the first patch to 0.22 was pretty minor, this patch fixes a more significant gaffe on my part with the installer. Despite the claims to the contrary in the documentation, version 0.22 did not automatically install the Python modules on which flashbake depends. This patch, 0.22.2, does what the Install page claims.

If you see an error about the enum module or the feedparser module, then upgrade to 0.22.2 and it should clear those up.

Please keep the feedback and bug reports coming.

See the project’s wiki for more information or download from the project’s download page.

Version 0.22.1 of flashbake Released

This is just a quick patch fix that doesn’t address an actual breakage but makes an error the plugins option a bit more clear. Thanks to Giles I realized that a typo in a plugin spec (the ‘foo.bar:Baz” value that is a module:class name specification) was causing a very unhelpful message, “Unknown plugin, None”. This patch release replaces the “None” in this case with the problem value. Otherwise, this release is identical to 0.22.

See the project’s wiki for more information or download from the project’s download page.

Version 0.22 of flashbake Released

I just uploaded the released and updated the docs.

From the release notes,

This version completes the move to the setuptools module for installation which should simplify the install, removing the need to install the dependencies by hand. See the Installation page for the latest info.

Plugin support is ready for plugin consumption. Plugins should extend flashbake.plugins.AbstractMessagePlugin, see the Plugins page for more details on the protocol. The names and options for the stock plugins have also changed, see the Plugin page for these details too.

The feed plugin should now work with Atom as well as RSS. It uses the feedparser module so should work on many more feeds than the original code did.

This version adds support for a shared control file, ~.flashbake/config. If present, this file will be read and then the project’s .flashbake file will be read and added to it.

This version fixes an issue with running under Python 2.4.

See the project’s wiki for more information or download from the project’s download page.