2010-08-04: Zeitgeist 0.5.0 "Atomic Flounder" --------------------------------------------- Engine: - FindEvent*: Event subjects are now joined by a logical AND instead of OR (LP: #592599). - Extensions found in the extensions directory are now automatically loaded. - Install a .pc file so out of tree extensions can figure out the install path. - Load extensions found in ~/.local/share/zeitgeist/extensions. - Let the GtkRecentlyUsed data-source ignore any exceptions while trying to parse .desktop files (LP: #523761). - Fix return value of the SetDataSourceEnabled D-Bus method. - Extensions: Hooks have been renamed and most of them now have pre and post variants (LP: #592599, #604747). - Add new ResultTypes for sorting by subject origin - Change the hooks API for the Extension class to use pre_* and post* hooks to make it clearer when they are run. This change also brings in a few new hooks. Python API: - ZeitgeistDBusInterface.get_extension is no longer a classmethod (in fact, it never really was). - ZeitgeistDBusInterface.get_extension now has a third optional parameter to change the bus name. Overall: - Build system fixes (LP: #595577). - Manpage updates. - Translation updates. 2010-06-10: Zeitgeist 0.4.0 "Wumbo" ----------------------------------- Engine: - Compile the shared-desktop-ontolgies (aka Nepomuk (aka OSCAF)) into Python code at build time, and use them for out subject classification system - You can now negate the fields uri, interpretation, manifestation, origin, and mimetype, in event templates by prepending the field value with an exclamation mark '!'. - You can truncate (aka wildcard) the subject fields uri, origin, and mimetype in event templates by appending an asterisk '*' to the string. - Event templates now match on all child types of the specified interpretations and manifestations. Ie. Interpretation.IMAGE also matches RASTER_IMAGE and VECTOR_IMAGE. - The core database schema is now versioned, meaning that we can migrate data if the DB ever needs to change in layout. It also brings slightly faster startup of the daemon when we detect that the schema version is what we expect - Two new environment variables ZEITGEIST_DEFAULT_EXTENSIONS and ZEITGEIST_EXTRA_EXTENSIONS controlling which extensions are loaded - Man pages updated with --no-datahub and environment variables to control the data paths and loaded extensions - Auto upgrades of schemas - Some Nepomuk type URIs where wrong and will be fixed automatically in the schema upgrade of the DB - Fix DeleteEvents to work with arbitrarily huge amounts of IDs. - Set event.id before passing events to the extension hooks so extensions can make use of the event ids Python API: - TimeRange sprouted a few new useful methods. Ontology: - Removed {Interpretation,Manifestation}.UNKNOWN. If you really really (like really!) can not come up with a good interpretation or manifestation don't log it - or insert an empty string instead. - What was subject's Manifestation.WEB_HISTORY is now represented by a combination of Interpretation.WEBSITE and Manifestation.REMOTE_DATA_OBJECT. - Manifestation.FILE has been renamed to Manifestation.FILE_DATA_OBJECT. - Event interpretations OPEN_EVENT and VISIT_EVENT has been coalesced into a new interpretation type called ACCESS_EVENT. - Event interpretation SAVE_EVENT has been coalesced into MODIFY_EVENT. - The following interpretations has been removed because we need a suitable alternative defined in the Nepomuk/OSCAF scope: BROADCAST_MESSAGE, FEED_MESSAGE, SYSTEM_RESOURCE, NOTE. - Interpretation.MUSIC is now Interpretation.AUDIO. - The following event interpretations has been removed because they had unclear meanings or limited general usefulness: FOCUS_EVENT, WARN_EVENT, ERROR_EVENT. Overall: - Other fixes and code enhancements. - Manpage updates. - Translation updates. 2010-04-22: Zeitgeist 0.3.3.1 ----------------------------- Engine: - Added a LastSeen property to data-sources. - Fixed a bug in the DataSourceRegistry extension where it failed to handle the disconnection signal from data-sources with several running instances. Overall: - This fixes a bug where zeitgeist-datahub would fail to start. 2010-04-20: Zeitgeist 0.3.3 --------------------------- Engine: - Added MostPopularActor, LeastPopularActor, MostRecentActor and LeastRecentActor as possible ReturnTypes for FindEvents and FindEventsId (LP: #493903). - Let {Find,Get,Insert}* hooks know the bus name of the caller, when executed over D-Bus. - Add an extension implementing a data-source registry (allowing to disable data-sources from a centralized place and see their description). - Overhauled FindRelatedUris for better results and improved performance. - Changed FindEvents, FindEventIds and FindRelatedUris to not treat zeros in the given TimeRange specially; "(0, 0)" can no longer be used (LP: #490242). - Fixed a crash in the GtkRecentlyUsed data-source parsing malfored .desktop files (LP: #526357), and added support for more file mimetypes (LP: #510761). - Fixed a crash in the GtkRecentlyUsed data-source trying to read broken symlinks disguised as .desktop files (LP: #523761). - Fixed a crash in the GtkRecentlyUsed data-source which happened when there was no display friendly version of a URI (LP: #531793). - Renamed --no-passive-loggers option to --no-datahub. Output printed by zeitgeist-datahub is no longer visible in zeitgeist-daemon's output. - Added --log-level option to change the output verbosity. - DeleteEvents now correctly removes any unreferenced values (URIs, actors, etc.) and not only the events themselves (LP: #491646). - Fixed insertion of events with a payload (LP: #557708). - Fixed an exception in DeleteEvents. - Fixed event deletions not always getting committed (LP: #566184). - Ignore deletion requests for non-existant events. Python API: - Made the Interpretation and Manifestation classes iterable. - Added symbol lookup by URI, in the form of dictionary access. - Fixed the display name for Interpretation.SOURCECODE. - Fixed find_events_for_values and find_event_ids_for_values (LP: #510804). - Added a get_extension() method to ZeitgeistDBusInterface, to get convenient access to D-Bus interfaces provided by engine extensions. Overall: - More fixes and code enhancements. - Manpage updates. - Translation updates. 2010-01-19: Zeitgeist 0.3.2 --------------------------- This release brings some nice little stuff and is used to power the first release of the GNOME Activity Journal. Engine: - Added FindEvents, optimized shorthand for GetEvents(FindEventIds(...)). - Fixed DeleteEvents and made it ignore bad requests. - Fixed GetEvents not to raise an exception when called with an empty list. Python API: - ZeitgeistClient.get_version() now returns a Python list. Overall: - Some code refactoring, documentation changes and other little fixes. 2010-01-10: Zeitgeist 0.3.1 --------------------------- Second development release leading up to the stable 0.4 series. Engine: - Added a FindRelatedUris() method, to find URIs that often occur in relation to a given set of events. [Experimental] - Added a Blacklist API for block events from entering the log. - Added a fine-grained monitoring system for listening for updates to the log. - InsertEvents() now return an event id of 0 for events that are blocked or otherwise fail insertion. - Extensions can now provide hooks to block or change events before they are inserted into the log. - Removed support for more than one backend. What was known as the "Resonance backend" is now just "the engine". - Removed the GetLastTimestampForActor method. - Bugfix: You may now request more than 999 events in one go from GetEvents() - Bugfix: In find_eventids where using more than one event template resulted in all but the first one ignoring the timestamp restriction Python API: - Bugfix: Fix URL of Interpretation.APPLICATION to correct Nepomuk URI. Overall: - Added many new unit tests. - Overhauled and restructured the Sphinx-based API-documentation system. Now enumerations and the Manifestation and Interpreation classes are documented automatically. - Added bash-completion for zeitgeist-daemon. - More bugfixes and code style cleanups. 2009-12-01: Zeitgeist 0.3.0 ------------------------------ First development release leading up to the stable 0.4 series. This release is a complete rework of Zeitgeist and applications written for 0.2 won't work without changes. Engine: - Completely reworked the engine and DBus API. - Removed the Storm backend (obsoleted in 0.2.1) and the Querymancer backend. - Added support for extensions written in Python, with direct access to the database. Python API: - Added a public Python client API split into two modules, zeitgeist.datamodel and zeitgeist.client. - Changed ontologies from XESAM to Nepomuk. There are a few DISCLAIMERS that needs to be attached to this: - The event notifications/signals are not yet ready in the new DBus API. We expect to have that ready for 0.3.1. - We plan to support querying only for available items (eg. filtering out deleted files, not listing files on detached USB storage, etc.). However this feature is not fully supported yet, even though it is exposed in the API. - While we are pretty satisfied with the database layout, there may still be changes in the ontologies or concrete data extraction methods. This might require that users delete their log databases in order to rebuild them with the new definitions. Of course this will no longer happen when we go stable. - Much related to the point above our event ontologies are not yet set in stone, and minor changes are expected. - We have only one data-source enabled for now. Namely the one monitoring your recent files. In coming releases, application specific plugins will provide enhaced logging. - And finally, please note that this is a *development release*. We can not guarantee stability of services nor APIs, although we strive hard to keep things stable. Version 0.2.1 ------------------------------ This version's D-Bus API and database is completely backwards-compatible with version 0.2, and it focuses on compatibility and performance enhancements. - Added compatibility with Python version 2.5. - Removed the Storm dependency, obtaining general performance improvements. - Removed the need for a patched PyGTK. - Made the GtkRecentlyUser data-source more robust (fixes an infinit loop on some systems). - Improved performance of DeleteItems and UpdateItems. - Fixed a problem with the contents of the EventsChanged signal. - Fixed InsertEvents to enforce "mimetype" as a required value. - Fixed a bug where the sorting_asc=True in FindEvents would be ignored if used together with mode="mostused" (LP: #404947). - Highly improved caching. - Added a "--quit" option to zeitgeist-daemon to stop any running daemon. - General code improvements, new test cases and other minor fixes. Version 0.2 ------------------------------ Initial release, because we are that cool :).