Zeitgeist Changelog

What's new in Zeitgeist 0.9.16

Jul 9, 2015
  • Overall:
  • Don't hardcode python path
  • Fix build with vala-0.24+
  • Require glib 2.35.4 and adjust target-glib accordingly
  • Libzeitgeist:
  • Add -fPIC to libzeitgeist-internal.la and libzeitgeist_datamodel-2.0.la
  • Log: Need to quit the loop also on error, otherwise we leave a stray main loop around.

New in Zeitgeist 0.9.14 (Feb 11, 2014)

  • Fix managing and tracking registered Monitors

New in Zeitgeist 0.9.12 (Apr 15, 2013)

  • Fix find_related_uris to only print out the ranking if
  • EXPLAIN_QUERIES is enabled
  • Fixed find_related_uris to take RelevantResultType as an
  • argument instead of ResultType
  • Pass copy of templates to search and search_with_relevancies

New in Zeitgeist 0.9.5 (Aug 27, 2012)

  • Engine:
  • Needs vala 0.16 to build.
  • Optimization of subject interpretation.
  • Set Pragma setting synchronous to NORMAL.
  • Added a which sets up a bus in a fake X server (Xvfb) and launches a Zeitgeist instance (without datahub or FTS) into it.
  • Events are inserted in sequential order.
  • Autoconf:
  • Don't check for Xapian if FTS++ is disabled.
  • Print "SQL debugging" option.
  • Check for gmodule.

New in Zeitgeist 0.8.99 Beta 1 (Mar 20, 2012)

  • Engine:
  • Fixed crash when events had NULL fields (LP: #941530).
  • Made sure no aborted SQLite transactions are left open (LP: #937991).
  • Enhanced logging and added --log-file option.
  • Fixed bug Storage Monitor corrupting storage IDs in DB (LP: #950983).
  • Fixed bug inserting previously non-existant values when searching for them (LP: #953041).
  • FTS:
  • Filter indexing of unrecognized values (eg. non-standard URIs).
  • Enhanced grouping by URI and origin (LP: #947835).
  • Use current_uri instead of URI; index MOVE_EVENTs (LP: #948794).
  • Added SearchWithRelevancies D-Bus function.

New in Zeitgeist 0.8.99 Alpha 2 (Jan 27, 2012)

  • Engine:
  • Enhanced error handling and reporting (LP: #848710, #760111, #903667).
  • Automatic recovery after database corruption (LP: #743857).
  • Added a new prefix operator ("+") to query for exact matches (LP: #884193).
  • The database file is now only readable by the user (LP: #910273).
  • GVFS usage in StorageMonitor has been disabled for now (LP: #905898).
  • Fixed a problem where the FTS extension could block the DB (LP: #919111).
  • Fixed a bug in FTS's automatic re-indexing.
  • Events with duplicate subjects are now cleanly rejected (LP: #909708).
  • Debug messages are no longer displayed by default (LP: #906451).
  • Guess interpretation and manifestation when empty (LP: #899602).
  • Implemented network status monitoring in StorageMonitor.
  • Fixed histogram extension to handle timezones.
  • Various memory usage and query speed improvements (LP: #910190).
  • Added an environment variable for disabling extensions.
  • Overall:
  • Updated to shared-desktop-ontologies version 0.8.1. This introduces WebDataObject and makes MusicPiece a child of Audio.

New in Zeitgeist 0.8.2 (Sep 22, 2011)

  • Engine:
  • Storage Monitor: Add support for Network Manager 0.9.
  • The text field in subject templates is now allowed to end with an asterisk (*) character (which is treated as plain text).
  • Correctly handle current_uri in subject templates from old clients (instead of forcing it to the same value as the subject's uri).
  • Substantially increase the amount of events that can be deleted in a single DeleteEvents call.
  • Python API:
  • Correctly specify the D-Bus interface when using introspection.
  • Fix possible exception when the available method list hasn't been loaded.
  • The Event constructor now supports creating independent copies of events.

New in Zeitgeist 0.8.1.1 (Jul 25, 2011)

  • Engine:
  • Load extensions after the internal database lookup/cache tables have been initialized.
  • Fix problem when replacing an existing Zeitgeist instance (LP: #809569).
  • Fix possible crash when zeitgeist-datahub isn't available (LP: #791392).
  • Python API:
  • Fix regression that broke properties (get_version and get_extensions).

New in Zeitgeist 0.8.1 (Jul 8, 2011)

  • Engine:
  • Added a GetDataSourceFromId D-Bus method to the data-source registry extension (LP: #691690).
  • A backup of the database is created before attempting schema upgrades. If something goes wrong, the backup is automatically restored (LP: #660307).
  • Fixed the "extensions" D-Bus property when it's an empty list (LP: #787691).
  • Add PID to the output being logged in ~/.cache/ (LP: #806030).
  • Ensure the engine doesn't attempt to close twice in a row (LP: #793714).
  • Minor memory usage improvements.
  • Python API:
  • Changed _DBusInterface to update introspected data after reconnections.
  • Added support for registering custom Event and Subject subclasses with ZeitgeistClient (LP: #799199).
  • Fixed reconnection after a Zeitgeist restart so that the method call trig-gering the reconnection also works -and not only later calls- (LP: #736176).
  • Added signal reconnection on engine restart for extensions (LP: #806967).
  • Added an "iteritems()" method to all enumerations (RelevantResultType, StorageState and ResultType).
  • Added a "from_timestamp(timestamp)" method to TimeRange.

New in Zeitgeist 0.8.0 (May 9, 2011)

  • Engine:
  • Fixed secondary sorting by timestamp for most ResultTypes (LP: #772041).
  • Enabled filtering by availability in FindEvents.
  • Added an origin property to events, matching that for subjects (LP: #425258).
  • Added a current_uri property to subjects, which unlike all other properties is mutable.
  • Add new sorting types for origin and current_uri.
  • Added support for "move" events, which automatically update the current_uri property where appropriate (LP: #602211).
  • Fixed inconsistencies caused by the internal cache not being updated when events were deleted (LP: #598666).
  • Added a Storage Monitor extension which tracks network connectivity and removable devices (LP: #489194).
  • Fixed datahub launching to avoid zombie processes (LP: #739780).
  • Replaced the Blacklist extension giving it a more capable API (LP: #612344).
  • Do not print a traceback when Zeitgeist fails to start because another instance is already running, just show a plain error message (LP: #744818).
  • Simplified log output format when printing to stderr.
  • Python API:
  • Fix bug in the connection (to Zeitgeist) recovery code (LP: #771970).
  • Added new ResultTypes: {Most,Least}{Recent,Popular}{CurrentUri,EventOrigin}.
  • Created *SubjectOrigin alias for all {Most,Least}{Recent,Popular}Origin ResultTypes.
  • Minor documentation improvements (fixed typos, etc).

New in Zeitgeist 0.7.1 (Mar 21, 2011)

  • Engine:
  • Expose property information in the D-Bus introspection output.
  • Mention column names explicitly when inserting events, for compatibility with the upcoming 0.8 release.
  • Python API:
  • Expose DataSourceRegistry's enabled status in a callback.
  • Automatically reconnect to Zeitgeist if the connection is lost when using methods asynchronously (so far this only happened for synchronous calls).
  • Reinstall all active monitors upon reconnection (LP: #673008, #727226).
  • Fix a (harmless) race condition requesting the bus name (LP: #732015).
  • Overall:
  • Added new event interpretation types: AcceptEvent, DenyEvent and ExpireEvent.
  • Include NCO in the generated ontologies.
  • Better ./configure check for python-rdflib.
  • Update the manpage to document exit codes.

New in Zeitgeist 0.7 (Jan 18, 2011)

  • Engine:
  • Added some new mimetype mappings
  • Speed up the GetEvents method by caching events (LP: #686732)
  • Allow extension without public method (LP: #691660)
  • Added a read-only DBus property "extensions" to org.gnome.zeitgeist.Log (LP: #693861)
  • Added helper function to get an extension's name
  • Fixed bug in RemoteInterface.Quit(): make sure to close connection to the used bus if this method gets called, this is needed if RemoteInterface does not know anything about the loop it is running in.
  • Fix sending payload from engine to client (LP: #692645)
  • Improve performance of DataSourceRegistry (LP: #695311)
  • Improve performance of find_event queries with timerange other than TimeRange.always() (LP: #672965)
  • Add an auto-filter for broken database entries (LP: #598666 workaround)
  • Introduce new DB schema (version 3) that bundles a few performance related fixes (LP: #673452, #673394)
  • Python API:
  • Fix find_event_for_template to stop ignoring the template (LP: #690377)
  • Add get_extensions method to ZeitgeistClient
  • Overall:
  • Using logging output for debugging purposes (LP: #660440)
  • Stop building man page for zeitgeist-datahub (LP: #680360)
  • Allow easy building for KDE (LP: #683280)
  • Logging output now displays how many events were actually inserted from the batch of requested inserts (LP: #660440)
  • Changed License to LGPL 2.1+

New in Zeitgeist 0.6 (Nov 2, 2010)

  • Engine:
  • Added 'zeitgeist-integrity-checker.py' tool to check the integrity of an activity log.
  • optimization of ZeitgeistEngine.find_related_uris() by using a different algorithm.
  • Improved database updates (LP: #643303, #665607) The updates scripts can now handle versions jumps (e.g from core_n to core_n+4). Database downgrades are also possible if schema version are backward-compatible.
  • If FindEvents-queries are run over the complete TimeRange intervall don't add timestamp conditions to the SQL statement (LP: #650930)
  • Improved speed of prefix-search queries by always using the index (LP: #641198)
  • Python API:
  • Added a bunch of new result types: MostPopularSubjectInterpretation, MostRecentSubjectInterpretation, LeastPopularSubjectInterpretation, LeastRecentSubjectInterpretation, MostPopularMimetype, LeastPopularMimetype, MostRecentMimetype and LeastRecentMimetype. Please see the API documentation for further details (LP: #655164)
  • Daemon:
  • Code-Improvements to zeitgeist-daemon (LP: #660415).
  • fixed `--log-level` option of zeitgeist-daemon, library code does not set the log level anymore, the application using the python library has to take care of it.
  • Overall:
  • 'zeitgeist-datahub' is not part of the zeitgeist project anymore, please use the new datahub implementation written my Michal Hruby as a replacement [0] (LP: #630593).
  • Updates to the test suite.
  • Translation updates (added Asturian and Slovenian, various updates).
  • Added `make run` target to the rootlevel Makefile (LP: #660423)

New in Zeitgeist 0.5.2 (Sep 27, 2010)

  • Engine:
  • Extensions and the database connection are now shutdown gracefully when the Zeitgeist daemon is asked to stop over D-Bus.
  • Receiving a SIGHUP indicates a request for a clean shutdown; this can be used to signal a system-wide restart request after an update.
  • Fixed a bug in TableLookup because of which the internal cache wasn't being used.
  • Added a new option, activated by the ZEITGEIST_DEBUG_QUERY_PLANS, which prints detailed information about each query being executed.
  • Removed superfluous database commits; now they are called after all InsertEvent actions have been completed, not once for every event.
  • Speed up the initial query retrieving the last event ID by fixing it to make use of the database's indexes.
  • Catch any exceptions trying to notify a monitor of changes and redirect them to the error log.
  • Fixed LeastRecentActor sorting not working in combination with event template filtering (LP: #641968).
  • Renamed the LeastRecentActor sorting type to OldestActor and implemented a new LeastRecentActor which does what it was supposed to do (LP: #646124).
  • Datahub:
  • Added a workaround so that events concerning OpenOffice.org are logged correctly (LP: #646724).
  • Overall:
  • Fix an error in the ontology; it's "rdf:Property", not "rdfs:Property".
  • Improved documentation; particularly, the ontology is now presented in a separate section with a more readable format.
  • Translation updates (Brazilian Portuguese, Catalan and Indonesian).

New in Zeitgeist 0.5.1 (Sep 10, 2010)

  • 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.

New in Zeitgeist 0.5.0 (Aug 5, 2010)

  • 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.

New in Zeitgeist 0.4.0 (Jun 11, 2010)

  • This new release is packed with new features so we are pretty hyped about it. We are very well on our way to becoming "feature complete" in the sense of reaching all the goals we laid out in the Bolzano hackfest 2009.
  • This release also heralds the imminent release of related projects like, gnome-activity-journal, zeitgeist-dataproviders, zeitgeist-extensions, and libzeitgeist.

New in Zeitgeist 0.3.3 (Apr 20, 2010)

  • 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.

New in Zeitgeist 0.3.2 (Jan 21, 2010)

  • Added FindEvents, optimized shorthand for GetEvents(FindEventIds(…)).
  • Fixed DeleteEvents and make it ignore bad requests.
  • Fixed GetEvents not to raise an exception when called with an empty list.
  • ZeitgeistClient.get_version() now returns a Python list.
  • Some code refactoring, documentation changes and other little fixes.

New in Zeitgeist 0.3.1 (Jan 11, 2010)

  • Add a FindRelatedUris() method to the core DBus API (also to the Python client lib). This can be used to find URIs that occur in relation to a set of events, sorted by relevancy. Please note that FindRelatedUris() is still marked as experimental and we can not guarantee stability yet
  • The Zeitgeist engine now exposes a Blacklist API over DBus which can be used to block events from entering the log
  • The engine now also exposes a fine grained monitoring system that can be used to listen 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
  • Remove support for more than one backend. What was known as the "Resonance backend" is now just "the engine"
  • Removed method from DBus API GetLastTimestampForActor
  • Lots more unit tests added
  • The engine will now load a default set of extensions on startup
  • Overhaul and restructure our Sphinx-based API-documentation system. This has facilitated automagic documentation of our enumerations and Manifestation and Interpretation classes
  • API documentation is more or less at 100% both for the DBus API and the Python client library
  • Bash completion for zeitgeist-daemon
  • Code style cleanups
  • 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
  • Bugfix: Fix URL of Interpretation.APPLICATION to correct Nepomuk URI
  • More bugfixes

New in Zeitgeist 0.3.0 (Dec 1, 2009)

  • On behalf of the Zeitgeist team I am proud to announce our first development release, Zeitgeist 0.3.0, leading up to what will be our stable series which will be 0.4. It is our intent to aim for a 1.0 release as soon as we feel good about the stable series, but that is still a bit in the future. Now that we've crossed the initial hurdle in the rewrite we expect the release cycle to be much shorter than this one, although we have not settled on something strict yet.
  • As many of you know the bulk work on this release was done in the Zeitgeist hackfest in Bolzano. Since we came back we been busy little bees polishing it up and fixing bugs - trying not to flame eachothers too much when discussing the designs :-) Working face to face in Bolzano gave us a unique chance to really discuss things through and get to the bottom of the details. This will also affect other develops a bit since...
  • We were bad boys and decided to change both our internal database structures as well as our public DBus API. Sorry - but after long discussions we all agreed that this was for the best. The new design is leaps and bounds better than the old one. This means that you both have to give up on your old log database, and accept that there are no GUI written for the new API just yet. This is being worked on as you read this though!
  • Something that might come as a shock to some other developers is that we decided not to store annotations and bookmarks within Zeitgeist. This should be done in Tracker or some other semantic metadata storage[1]. Zeitgeist answers only when and how data was accessed, but stores no information about the current state of the metadata. We will be working very closely with Tracker from now on since 0.7 is a blessed dependency for GNOME 2.30. Congrats to the Tracker Devs.

New in Zeitgeist 0.2.1 (Aug 17, 2009)

  • 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 logger 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.

New in Zeitgeist 0.2.0 (Jul 16, 2009)

  • SQLite backend for central information storage.
  • D-Bus API with support for storing and retrieving the data (with lots of filtering options!).
  • Support for logging items and events from GtkRecentManager, Firefox, Tomboy, Evolution and Twitter. Plus plugins for Epiphany and Bazaar!