File: ChangeLog

package info (click to toggle)
syncmaildir 1.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 660 kB
  • ctags: 161
  • sloc: sh: 941; ansic: 583; makefile: 168
file content (335 lines) | stat: -rw-r--r-- 14,142 bytes parent folder | download
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
15/06/2010 - minor fix - version 1.0.0
	* smd-applet:
	  - recognize mailto: actions so that a nice label is used
	    istead of the raw command that comprises subject and body
	  - ported to vala 0.9.1, use .connect instead of deprecated +=
	* smd-client, syncmaildir.lua:
	  - generate as suggested action for internal errors:
	    gnome-open "mailto:...."
	* smd-server:
	  - do not es.execute(touch), use io.open instead
	* syncmaildir.lua:
	  - place fifo for mddiff in HOME/.smd/fifo/ if HOME is set, /tmp
	    otherwise
	  - added upperbound to loop generating a fresh name for the fifo
	* sample-hooks/persistent-ssh:
	  - set +e so that if ssh fails smd-pull/push does not fail too and 
	    generates proper tags
	* Makefile:
	  - fixed upload target, used to overwrite the tarball with the
	    changelog
	  - substitute SMDVERSION, MKFIFO and MKDIR when installing scripts
	  - new test/SUITE target to run only one testsuite
	* README:
	  - added notes about the first synchronization
	* DESIGN:
	  - better doc for mddiff
	* tests.d/:
	  - new tests for hooks logging 
	  - new test for fifo creation (syncmaildir.lua function sha_file)
	  - allow disabling valgrind by exporting the VALGRIND variable
	* Makefile, smd-common, syncmaildir.lua:
	  - remove all explicit mentions of my username on sourceforge
	    or my home directory layout

12/04/2010 - minor fix/speedup release - version 0.9.16 aka 1.0~rc5
	* smd-client:
	  - fixed a little bug preventing copybody to work properly
	    if the target directory was not existing
	* syncmaildir.lua, smd-client:
	  - call mddiff passing a pipe, and use the very same instance
	    every time the sha1 of a file needs to be computed. This improves
	    performances considerably when a large number of files needs to
	    be hashed, for example when two very similar mailboxes are
	    synced for the first time (here, 8x speedup)
	  - implement cp in lua to avoid spawning a new process every
	    time a file is copied/moved. The overhead, for small files,
	    is too high and the pure lua implementation of cp is 10 times
	    faster on small files (but could be way slower for big ones).
	* mddiff:
	  - interface change: only a list of directories or a fifo can
	    be passed as arguments
	  - in case the fifo is passed, mddiff reads file names separated
	    by \n and outputs their sha1 sums
	* smd-pull, smd-push:
	  - report an error if a wrong flag is supplied

23/03/2010 - minor fix release - version 0.9.15 aka 1.0~rc4
	* smd-applet:
	  - the icon used to stay set to warning even after a successful
	    synchronization
	* smd-client, smd-server, syncmaildir:
	  - never use the lua error() function, all errors should generate
	    a meaningful tag, only internal errors raise error and thus
	    are tagged as internal-error by the parachute that also prints
	    a backtrace
	  - always use log_tags_and_fail, that calls error but with
	    the exception {text=....} that is recognized by the parachute
	    so that no backtrace is printed
	  - parse mddiff opcodes with a function that is robust in 
	    face of malformed arguments
	* tests.d/:
	  - new test for database mismatch (indirectly testing correct
	    exception handling) and for malformed mddiff opcodes arguments
	* sample-hooks:
	  - persistent-ssh: exploiting ssh connection sharing capability.
	    This allows to save a little amount of time every synchronization.
	    A single secure connection can be established once, at the very
	    beginning, and then reused for evry subsequent synchronization.
	  - documentation for hooks in markdown format generating hooks.html

12/03/2010 - major feature relase - version 0.9.14 aka too many changes to be rc
	* syncmaildir.lua:
	  - mkdir_p creates always a maildir, if the last path component
	    is in { "new", "tmp", "cur" } (used to do that only if it was
	    "tmp".
	* smd-common:
	  - major refactoring, almost all code is inside functions
	  - new function run_hooks
	* smd-pull, smd-push:
	  - adapt to the new smd-common interface: call by hand init
	    functions instead of having them executed by side effect of
	    sourcing smd-common
	* hooks support in smd-push and smd-pull:
	  - executables contained in the .smd/hooks/{pre,post}-{pull,push}.d/
	    directories are executed pre/post the pull/push process.
	  - hooks receive as argument:
	    - when: pre/post
	    - what: push/pull
	    - endpoint: the endpoint name (usually default)
	    - status: the current status, 0 for OK, 1 for error. pre-hooks
	      always receive 0, post hooks receive the value smd-push/pull
	      will return after hooks terminate
	  - thanks to Bart Trojanowsk for the hooks idea
	* sample-hooks/:
	  - new directory with sample hooks, for now just a simple
	    mail-on-failure hook
	* tests.d/:
	  - major redesign of the test framework, allowing multiple
	    test suites
	  - new test suite for smd-pull/push
	  - new test suite for mddiff
	* smd-push/pull smd-client/server mddiff:
	  - support -d --dry-run (i.e. perform no action)
	* manpages for mddiff, smd-client, smd-server, smd-pull, smd-push:
	  - added -d --dry-run doc
	  - mention hooks
	* copyright:
	  - updated years in all files: 2008-2010
	  - added copyright banner where missing
	* git archive:
	  - use git archive for the make dist target
	* README:
	  - mention --dry-run
	  - document hooks

02/03/2010 - major fix release - version 0.9.13
	* smd-server mddiff:
	  - big fat bug solved: the .mtime file was always updated.
	    the .mtime file used to be updated even if the synchronization
	    failed. This could have caused some changes (like in place eader
	    modifications, but not like new messages or renamings/flagging) to
	    be ignored in the following synchronization. Now .mtime works
	    exactly as .db.txt, a .new one is created by mddiff, and is up to
	    smd-server to rename both.
	* mddiff.1.txt:
	  - fixed typo

27/12/2009 - minor fix release - version 0.9.12 aka 1.0rc3
	* DESIGN:
	  - mention the ERROR action that mddiff can now emit
	* smd-client:
	  - understand the ERROR action
	* mddiff.c:
	  - use only EXIT_SUCCESS and EXIT_FAILURE as exit codes
	  - ERROR macro calls exit(EXIT_FAILURE) end emits the
	    ERROR action
	  - new macro WARNING, used for what used to be non
	    fatal errors
	  - improved argument check: stat is done in advance, and
	    we bail out if they are not omogeneous
	* syncmaildir.lua:
	  - handshake function emits 'network' as probable failure
	    cause. Used to emit 'network-error', cheating smd-applet
	* smd-client, smd-server, smd-common:
	  - check for the existence of external helper programs
	    to fail early if it is not the case
	* smd-client, smd-server, syncmaildir.lua:
	  - more comments in the code and better organization
	  - littler refactoring for mkdir_p and tmp_for
	  - added function to check for the existence of an
	    external program using shell type command
	* Makefile:
	  - added abspath/* template to install the software hardcoding
	    absolute paths for helper programs
	* README, DESIGN:
	  - fixed indentation so that markdown displays all
	    blockquotes as such (kudos to Zack).

13/11/2009 - minor fix release - version 0.9.11 aka 1.0rc2 
	* smd-loop:
	  - save pid in lockfile so that lockfile referring
	    to dead instances can be ignored
	  - on receiving SIGTERM, do the cleanup and exit
	  - write log file ~/.smd/log/loop.log
	* smd-push/pull:
	  - save pid in lockfile so that lockfile referring
	    to dead instances can be ignored
	  - print a tagged error message in case an instance is 
	    already running
	* smd-appled:
	  - ported to vala 0.7.8
	  - accept error messages from smd-pushpull (that is used
	    by both smd-push and smd-pull as the tool identifier)
	  - added pause checkbox menu item to pause smd-loop (actually
	    kill and restart)
	  - menu for left and right mouse button differ:
	    - right has preferences, about and quit
	    - left has pause and logs
	  - unrecoverable but non-network related errors are not silently 
	    hidden, a popup shows their possible cause but the application
	    does not enter error handling mode

3/10/2009 - minor fix release - version 0.9.10 
	* smd-loop:
	  - fixed a bug regarding the lock file name, that was clashing
	    with the one of smd-push/pull
	* smd-push/pull:
	  - print the date in the log, not on stdout

27/9/2009 - minor fix release - version 0.9.9 aka 1.0rc1
	* mddiff:
	  - --help and manpage improved
	  - compile with -O2, why not?
	  - add strict compile time dependency over glib >= 2.19.1,
	    that fixes a bug concerning the checksum of data with
	    length < 2
	* smd-push/pull:
	  - when -v is passed also print the date
	* smd-applet:
	  - less noise when a network error occurrs, just notify the user
	    once and change the icon
	  - added manpage
	  - added view log menu item and relative window
	  - made vala 0.7.6 clean
	* smd-loop:
	  - lockfile to not run two instances concurrently
	* Makefile:
	  - sourceforge paths made variable, easier to change and more
	    readable Makefile
	  - added support for @variable@ substitution in installation 
	    phse for SED, SHA1SUM, XDELTA, CPN, SSH, LUA and PREFIX
	  - added template for osx: make osx/FOO will make target FOO
	    with some variables customized for osx
	* README:
	  - added some notes about installation from sources

16/8/2009 - minor fix release
	* mddiff, smd-client:
	  - REPLACE command implemented
	  - tests added
	* smd-applet:
	  - fixed a minor issue with Vala 0.7.5, GLib.Pid is not an int
	    anymore
	  - fixed a major issue with threading, all code regarding gtk is
	    now run by the main thread
	  - fixed a major issue with memory management, from List to
	    Gee.ArrayList, that have non-week references and thus prevent
	    their data from being collected

26/7/2009 - minor bugfix release
	* smd-applet:
	  - when quit was clicked, it was killing every process in
	    its process group, not in the one of its child smd-loop,
	    thus it was killing all other applets started by gnome-applet
	  - configuration window is not pupped up if no config files are
	    found, an error icon and a notification are used instead, and
	    the software wants the configuration files to be available before
	    it actually does something.

26/7/2009 - major feature release
	* smd-applet, eye-candy applet for smd-loop:
	  - attaches to the notification area
	  - stores its configuration using GConf
	  - notifies the user using libnotify
	  - runs smd-loop, interpreting its output
	  - shows the user possible errors and allows him to
	    perform suggested actions by clicking on buttons
	  - complains if smd-loop or smd-push/pull is not configured and
	    forces the user to configure it before starting
	  - automatically run by gnome-session (/etc/xdg/autostart)
	  - shows an item in gnome-control-center
	* smd-loop, cron like push/pull iterator:
	  - use a line based configuration file ~/.smd/loop in the style
	    of cron, calling smd-push/pull with 1 minute granularity
	  - catches some transient errors giving them a second chance;
	    i.e. if the suggested solution is retry, it does so but only 
	    once
	* error report:
	  - smd-client and smd-server output tags describing the 
	    error that caused a sync failure:
	    - context: which part of the software failed, like ssh, 
	      message-deletion, copy-message, ...
	    - probable-cause: something like network, bad file permissions, ...
	    - human-intervention: avoidable or necessary
	    - suggested-actions: run( command ), display-mail, retry, ...
	  - smd-push/smd-pull catch early network errors, so that
	    some tags are output even if smd-client/smd-server is
	    not even run
	* statistics:
	  - smd-client outputs tags describing its last run, comprising
	    the number of added/deleted messages, so that higher level tools
	    can notify the user or collect statistics

28/4/2009 - minor fix and minor feature release
	* support for multiple servers/clients:
	  - config file is now ~/.smd/config.$FOO and smd-push/pull
	    can get an extra argument for FOO, defulat value of FOO is 
	    `default`.
	  - backward-compatibility code added to automatically migrate 
	    the old config file name to the new one
	* cleanup in ~/.smd/:
	  - fifos are now in the fifo/ subdirectory
	  - logs are now in the log/ subdirectory
	* bugfix to mddiff: 
	  - COPYBODY action used to be always followed by an ADD action,
	    that was unnecessary (but not dangerous either).
	* better error reporting:
	  - syncmaildir.lua improved to better report some errors

21/4/2009 - minor fix and minor feature release
	* track only mailmessages (skip other stuff like dovecott indexes):
	  - scans only files in cur/ and new/
	* add COPYBODY command to mddiff:
	  - mails that are moved around and then flagged by MUA
	    are not deteceted anymore as new messages, only the new header
	    is transmitted
	  - smd-client honors the command
	* smd-client better reports network errors:
	  - if no data at all is readable from stdin, it means that
	    the transport (ssh) is not working and this is reported to
	    the user as such

19/4/2009 - major bugfix release
	* major bugfix: 
	  - the db file must be in sync too to grant all changes are detected
	  - the mtime has not to be the same on client and server (thus
	    has to be removed from the db file)
	  - adopt xdelta to calculate a patch for the db file (should be
	    better than diff and can scale to binary, compressed, db file)
	* new client/server protocol: 
	  - allows the server to ABORT
	  - handshake checking protocol version and dbfile hash
	  - at the end transmit and apply the xdelta patch
	* db file format changed:
	  - no more mtime column
	  - added db.txt.mtime auxiliary file to stores a global timestamp 
	    for the whole db
	* minor bugfixes in the code (mostly better error reporting)
	* more documentation

12/4/2009 - first public release
	* end-user tools: smd-pull, smd-push
	* stupid endpoint: smd-server
	* endpoint implementing politics: smd-client
	* low-level tool: mddiff