summaryrefslogtreecommitdiff
path: root/NEWS
blob: daf6a939d203ce08664013ab8754279892a8c6ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
2022-01-12: Zeitgeist 1.0.4 "Iron"
---------------------------------------------------------------

Overall:
 - Fix compile error with new vala
 - Move systemd services to session slice
 - Add PartOf=graphical-session.target to all systemd units

Libzeitgeist:
 - Ensure releated data is removed when deleting events
 - Fix search_with_relevancies to call proxy with correct arguments


2020-10-15: Zeitgeist 1.0.3 "Ruby"
---------------------------------------------------------------

Overall:
 - Fix compile error with new vala
 - Port to python3 and update tests
 - Drop support for python2


2019-01-31: Zeitgeist 1.0.2 "Phoenix"
---------------------------------------------------------------

Overall:
 - Fix compile errors and warnings with new vala
 - fts: Correctly implement the org.gnome.zeitgeist.Index DBus interface
 - test-log: Use correct free function for ZeitgeistResultSet
 - Do not require rapper as it is not used anymore
 - Make ontology2code work with python3
 - Properly fallback with the Zeitgeist version
 - rdflib directly to parse the trig files
 - Update Ontology2code to ba able to specify the output path

Libzeitgeist:
 - Asynchronous out-parameters are only allowed at the end of argument lists
   *** THIS IS AN UNAVOIDABLE VALA API BREAK ***


2018-02-14: Zeitgeist 1.0.1 "Sunset"
---------------------------------------------------------------

Overall:
 - Fix placeholder in systemd service template

Libzeitgeist:
 - Fix some vala compile warnings


2017-02-18: Zeitgeist 1.0 "Epiphany"
---------------------------------------------------------------

Overall:
 - Drop dependency on gnome-common and intltool
 - Use GNU gettext only
 - Fix some valac warnings
 - Use $PYTHON to check for rdflib
 - Install zeitgeist-fts to pkglibexecdir rather than
   libexecdir
 - Use correct names for D-Bus service files
 - Add systemd user service for each D-Bus session service
 - Fix bash auto-completions script
 - Add --vacuum option to Daemon to perform VACUUM SQLite
   database

Libzeitgeist:
 - Ensure the log mainloop uses the current thread's context
   when waiting


2015-07-08: Zeitgeist 0.9.16 (1.0 Beta 8) "Experience"
---------------------------------------------------------------

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.


2014-01-15: Zeitgeist 0.9.15 (1.0 Beta 7) "Bazooka"
---------------------------------------------------------------

Libzeitgeist:
 - Fix converting variants to event lists

Datahub:
 - change some warnings to debugs


2013-06-30: Zeitgeist 0.9.14 (1.0 Beta 6) "Diamond"
---------------------------------------------------------------

Libzeitgeist:
 - Fix managing and tracking registered Monitors


2013-05-29: Zeitgeist 0.9.13 (1.0 Beta 5) "Silence is Gold"
---------------------------------------------------------------

Engine:
 - Adjust resetting of statement to proper sequence
 - Add custom memory PRAGMA to improve memory consumption

Libzeitgeist:
 - Add default memory PRAGMA to be used by clients

FTS:
 - Improve FTS memory consumption

Overall:
 - Fix compilation breaks for --enable-datahub --disable-downloads-monitor

This release is the fifth beta which will lead to zeitgeist 1.0

2013-04-12: Zeitgeist 0.9.12 (1.0 Beta 4) "Happy Go Lucky"
---------------------------------------------------------------

Libzeitgeist:
 - 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

Overall:
 - Fix documentation

This release is the fourth beta which will lead to zeitgeist 1.0

2013-04-09: Zeitgeist 0.9.11 (1.0 Beta 3) "H2O"
---------------------------------------------------------------

Libzeitgeist:
 - Fix the log's insert_events_no_reply and insert_event_no_reply
   API to not require an async callback
 - Pass copy of templates to threads in get_events, find_events,
   find_event_ids and find_related_uris
 - Pass copy of templates to search and search_with_relevancies
 - Expose RemoteLog's extensions and datapath properties via Log
   class

Overall:
 - Fix documentation title to Zeitgeist Reference Manual

This release is the third beta which will lead to zeitgeist 1.0

2013-03-19: Zeitgeist 0.9.10 (1.0 Beta 2) "Isis"
---------------------------------------------------------------

This version includes zeitgeist datahub in the release source 
instead of a separate project which was called zeitgeist-datahub

You can explicitly disable datahub by passing --enable-datahub=no 
and if you just want the telepathy datasource to be disabled you 
can just pass --disable-telepathy along with --enable-datahub

For datahub, json-glib 0.14.0 or greater is needed and for 
telepathy telepathy-glib 0.18.0 or greater is needed

Libzeitgeist:
 - Add new zg#ApplicationAction subject interpretation
 - Fix sql explanation bug

This release is the second beta which will lead to zeitgeist 1.0

2013-03-12: Zeitgeist 0.9.9 (1.0 Beta 1) "Pinch Me"
---------------------------------------------------

This version introduces libzeitgeist2, a Vala port of the previously
independent libzeitgeist library. Now everything you need to work with
Zeitgeist, be it with C, Vala or Python, is included in this tarball.

Please note that starting from this release Vala 0.18 is required to
build Zeitgeist.

Engine:
 - Fixed insertion of large event sets.
 - Fixed database migration to WebDataObject (from some RemoteDataObjects).
 - Events missing required meta-data are now rejected.

FTS:
 - Fixed to respect ZEITGEIST_DATA_PATH.

Python API:
 - RelevantResultType is now included in "from datamodel import *".

If you were using the external libzeitgeist, you need to be aware that
libzeitgeist2 has some API differences:
 - For Vala developers: getters/setters replaced with properties, etc.
 - For C developers: the use of floating references has been removed.
 - Redesigned ResultSet (removed peek() and seek(); introduced reset();
   renamed next() to next_value()).
 - Changed the return type of zeitgeist_log_get_events to GPtrArray;
   now it works correctly when requesting non-existant events.
 - Added an actor parameter to the event_new_full constructor.
 - Added a zeitgeist_subject_new_move_event constructor.
 - Added a GError parameter to several functions involving variants.
 - Renamed insert_events_from_ptrarray* to insert_events*.
 - Renamed timestamp_for_now to timestamp_now.
 - Renamed data_source_is_enabled to data_source_get_enabled.
 - Renamed the "connected" property to "is-connected".
 - Introduced the missing ZeitgeistRelevantResultType enum.
 - Introduced get_data_source_from_id.
 - Introduced zeitgeist_{event,subject}_matches_template.
 - Introduced zeitgeist_event_take_subject.
 - Introduced zeitgeist_time_range_intersect.
 - Introduced insert_event and insert_event_no_reply.
 - Removed insert_events (variadic version) and insert_events_valist.
 - Removed event_new_full_valist and events_from_valist.
 - Removed time_range_get_{start,end}_iso8601.

Special Thanks to the hard work of Rico Tzschichholz and Paolo Borelli 
for their contribution in this major release

2012-08-26: Zeitgeist 0.9.5 "Sun Devil"
---------------------------------------

Engine:
 - Improved query time, optimizing the usage of SQL indices.
 - Relaxed SQLite's sync to disk requirement (synchronous=NORMAL).

Overall:
 - Bumped Vala dependency to 0.16.
 - Fixed build system to not check for Xapian if FTS++ is disabled.

2012-05-22: Zeitgeist 0.9.0.1 "Rumpelstiltskin"
-----------------------------------------------

Engine:
 - Fixed FindRelatedEvents.
 - Added support for upgrading from schema version 3.

FTS:
 - Fixed double string unescaping (LP: #954171).
 - Fixed segmentation fault caused by bug in URI handling.
 - Make sure Xapian is closed before releasing the bus name.

2012-04-10: Zeitgeist 0.9 "Bluebird"
------------------------------------

Engine:
 - Updated the list of recognized MIME-types.
 - Set a size limit (4MiB) on the results returned by individual FindEvents and
   GetEvents calls. Too big queries will result in an exception.
 - Improved handling of FTS not being present (Beta 1 would leak memory).
 - Enhanced database corruption detection and recovery.
 - DataSourceRegistry: don't ignore bus addresses that registered more than
   one data-source if one of them is disabled.

FTS:
 - Added a build-time option to disable FTS.
 - The index is now automatically re-build if it gets corrupted.
 - The index is now automatically re-build if the Zeitgeist DB is re-created.
 - Split the reindex query into several smaller ones, for enhanced performance.
 - Quit when Zeitgeist leaves the bus.
 - Ignore events from Ubuntu One.

Python API:
 - Updated the list of recognized MIME-types.

2012-03-20: Zeitgeist Bluebird Beta 1
-------------------------------------

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.

2012-02-14: Zeitgeist Bluebird Alpha 3
--------------------------------------

Engine:
 - Revert use of EXCLUSIVE locking mode, it breaks FTS.
 - Notifications are queued until the target monitor objects are ready.
 - The FTS module in Python has been replaced with a C/C++ implementation.
 - Pre-process events *before* they are send to extensions (LP: #628804).
 - Introduced new DB schema (version 6); cached tables may no longer
   re-use row IDs.
 - Minor fixes.

Python API:
 - Fixed signal/monitor reconnection to avoid duplicated notifications.
 - Updated the list of recognized MIME-types and schemas.

2012-01-27: Zeitgeist Bluebird Alpha 2
--------------------------------------

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.

2011-11-03: Zeitgeist Bluebird Alpha 1
--------------------------------------

This version is a complete rewrite of the engine using Vala. External
changes with regards to the 0.8.3 Python implementation are:

Engine:

 - Changed the language for extensions from Python to Vala.
 - The post_get_events hook is no longer supported.
 - The FTS and Histogram extensions are now shipped together with Zeitgeist.
 - Introduced new DB schema (version 5).

---------------------------------------------------------------------
---------------------------------------------------------------------

2011-XX-XX: Zeitgeist 0.8.3 (Never released)
--------------------------------------------

Engine:

 - DataSourceRegistry: Make sure changes to the data-source enabled
   property (presumably by the user) are always saved.

Overall:

 - Update the manual page (the description of Zeitgeist wasn't correct).

2011-09-21: Zeitgeist 0.8.2 "Not Quite Blue"
--------------------------------------------

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.

2011-07-22: Zeitgeist 0.8.1.1 "Grass Frog"
------------------------------------------

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:

 - Fixed a regression that broke properties (get_version and get_extensions).

2011-07-07: Zeitgeist 0.8.1 "The Snake and the Holy Grail"
---------------------------------------------------------

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.

2011-04-07: Zeitgeist 0.8.0 "I only got a donkey"
-------------------------------------------------

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.
 - Introduce new DB schema (version 4), adding storage, current_uri and event
   origin.

Python API:

 - Fixed a 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).

2011-03-20: Zeitgeist 0.7.1 "Made in Aarhus"
-----------------------------------------------

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.


2011-01-18: Zeitgeist 0.7.0 "All I have is this woodchuck."
-----------------------------------------------------------

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).
 - Added a (LRU-type) event cache to speed up similar requests.

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

2010-11-01: Zeitgeist 0.6 "Buzzer Beater"
-----------------------------------------

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)
 
[0] https://launchpad.net/zeitgeist-datahub

2010-09-26: Zeitgeist 0.5.2 "Snowball Effect"
---------------------------------------------

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

2010-09-09: Zeitgeist 0.5.1 "Spongebob is not funny"
----------------------------------------------------

Engine:

 - Don't use the return value of Extension.post_insert_event() when
   dispatching the post insert hooks. The post_insert_event() method
   has no return value.
 - Initialize ZeitgeistEngine after RemoteInterface, so that --replace
   does its job before the main engine and extensions start (LP: #614315).
 - Added support for queries on the Subject.Storage field of an Event
   (LP: #580364).
 - Some optimizations in the find_events() method. Also the profiling
   data is much more useful.

Python API:

 - Check arguments of Event.new_for_values() and Subject.new_for_values()
   (LP: #580372).
 - Redefined the result of TimeRange.always(), UNIX timestamp "0" is now
   the left corner of the interval (LP: #614295).
 - Added a new helper module called zeitgeist.mimetypes which basically
   provides two functions (LP: #586524):
    * get_interpretation_for_mimetype(), which tries to get a suitable
      interpretation for a given mime-type.
    * get_manifestation_for_uri(), which tries to lookup a manifestation
      for the given URI.
 - The DataSource model now provides easy access to the information it
   holds through properties.

Overall:

 - The tool to build our ontology now supports rdflib2 and rdflib3
   (LP: #626224).
 - Added "make check" and "make doc" commands to the rootlevel Makefile
   (LP: #628661)
 - Translation updates.
 - Updated test suite.
 - Documentation updates.


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

Datahub:

 - Let the GtkRecentlyUsed data-source ignore any exceptions while trying to
   parse .desktop files (LP: #523761).

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.
 - attributes of zeitgeist.datamodel.DataSource are now directly accessible
   as properties (LP: #513295)

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

Datahub:

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

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 "Shadowy Rumble"
--------------------------------------------

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 "Mystical Tremor"
---------------------------------------------

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 "Voodoo Resonance"
----------------------------------------------

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.

2009-08-17: Version 0.2.1 "Hangover"
------------------------------------

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.

2009-07-15: Version 0.2 "Okidoki"
---------------------------------

Initial release, because we are that cool :).