Merged pull request from jpenney to improve Scrivener plugin. Merged pull request from omaciel to contribute a simple plugin for LastFM. Changed directory layout to make packaging a bit easier. Added metadata for package submission to pypi.
Applied a patch to address compatibility issue with Python 2.4.
Addressed some omissions in license coverage and docs to better meet package requirements for inclusion in Debian.
Fix a breakage under Lucid Lynx where the upgrade to git was causing flashbake to miss new files it should otherwise be adding and committing. Also fixed packaging so iTunes script was correctly included.
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.
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.
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.
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.
3/9/2009 – bug fixes, mostly to get UpTime plugin running again
3/5/2009 – compatibility fix for Python 2.4, added last played to Banshee plugin
3/5/2009 – glob support, new plugins, bug fixes
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.
2/27/2009 – Bug fix
Clearer error when the user has not run “git init” in the project directory. Also fixed a gaffe in setup.py so that setuptools now installs the dependencies.
2/27/2009 – Bug fix
Fixed the unknown plugin error so it correctly tells you the value with which it had trouble.
2/26/2009 – Plugins
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.
2/23/2009 – Re-license
See the License page for the reasoning. The only thing that is different in this version is the license. This is to help make it clearer which perpetual license applies to which versions.
2/21/2009 – Many fixes.
This version now has a dependency on the Python enum package, see the Installation page.
I have not started on Windows compatibility, yet, though I have several volunteers to help me test.
I am still working on the protocol for third party plugins, that should come soon.
I am also thinking about how to better detect the status of the network, though the offline message has been clarified in this release.
2/12/2009 – First public version, available as an installable Python project. This version has been tested on Linux and OS X with Python 2.5.2. Certain parts of it will not work on Windows. If anyone is interested in a Windows compatible version, let me know and I’ll see what I can do. This version has no external dependencies other than git. It does not use the git-python package though I am looking into that for a future release.
Once installed, you can run “flashbake —help” for information on how to run it. The project directory mentioned in the help must be a git repository and must have an additional .control file. It should give clear feedback on errors when you are running it.
The next big feature for flashbake is support for plugins. The four bits of information that make up the commit message (time zone, weather, uptime and rss items) are currently set up as stock plugins. I am working on the validation logic for vetting third party plugins and deciding on how to locate them. This would allow anyone who is comfortable hacking in Python to build their own plugins and to mix and match to generate their own customized, automated commit message.
Last edited by commandline,