* 27/Feb/2006: version 0.2.5 Release notes:

- New option: do not automatically resize columns in headerlist (and remember columns' sizes)
- New option: Do not automatically sort by subject (and remember the selected sort column)
- New option: remember order of columns in headerlists
- NEW: Show progress for decoding
- FIX: Don't crash while canceling articles during decoding (and really cancel the article)
- FIX: Cancel of update items while updating dbs now works
- new action: move to bottom of the queue
- FIX: correctly remember "maximized" status for main Window.
- NEW: Sort by number of articles in available groups list (i.e.: when subscribing to newsgroups)
- New shortcuts in headerLists: clear filter (Ctrl + C) and jump to the filter entry box (Ctrl + F)
- New option: don't show statusbar at startup
- NEW: French translation
- NEW: Progress dialog for db migrations
- FIX: Header dates now works for localized distributions as well
- NEW: During db migration/compact, articles are checked for consistency and discarded (KLibido should not crash anymore if there are bogus articles into dbs). A log of the discarded articles is created in the db dir (default: ~/klibido/db)
- Various bugfixes (see Changelog)


* 13/Sep/2005: version 0.2.4.1 Release notes:

- FIX: Newzbin download caused an "out-of-space" error
- FIX: Server speed after pausing/resuming the queue now works
- Smal compile fixes

* 07/Sep/2005: version 0.2.4 Release notes:

- NEW: Partial loading of headers during loading, to speed up the opening of
the headerlists
- New option: delete articles older than "n" days
- New action: context menu to manually delete headers from the group databases command-line option to automatically load (--reload-queue, -r) or discard (--discard queue, -d) the download queue
- Aggregate server speed
- New widgets in the statusbar to show the total speed of the servers
- New option: Filter headers by regular expression
- Incorporate patch #1275361 by Gonéri le Bouder (thanks!) that allows cancel of configuration and makes some additional checks on the dir/dbs when starting
- NEW: added a "window" menu to switch between windows, close the active window and "close with options", overriding default options (i.e.: close a group without marking as read, close a view tab without deleting the file...)
- NEW: Added context menu on tabs.
- NEW: Added article numbers in groups in the "Available groups" list. To load them, reload the list with server->"get list of groups..."
- NEW: Moved saving/updating of queued items into a separate thread (this has greatly improved GUI responsiveness while downloading)
- FIX: Incorporated the "please subscribe me!" patch
- FIX: It's now possible to cancel paused items
- FIX: Fixed huge memory leak while downloading (sorry guys)
- FIX: Fixed a crash with very long (>100,000 items) headerlists (thanks to Randy Pearson)
- FIX: Fix requeue/multiple servers bug (#1275365)
- 


* 10/May/2005: version 0.2.3 Release notes:

This release adds support for Berkeley Db 4.3, and speed improvements for db updates.
- NEW: Berkeley Db 4.3 support
- NEW: Cache for Db updates
- NEW: Preload of headers during expiring
- FIX: UULib sometimes saved only the first part of the posts
- FIX: Internal decoder didn't decode non-multipart articles
- FIX: some articles weren't correctly expired.
- FIX: Item in the queue could be dropped to children items (and this crashed KLibido BAD)
- FIX: KLibido shouldn't crash anymore when the resume queue is corrupted

PLEASE NOTE: if you don't specify --disable debug as a configure parameters, the last entry in the "newsgroup" menu will be "validate newsgroup". THIS IS A DEBUG FUNCTION that must be used with care (or not at all), when the program is COMPLETELY idle. It ouputs some statistical information about the selected newsgroups on the console.

* 18/Mar/2005: version 0.2.2.2 Release notes:

Bugfix release:
- FIX: on fresh installs, KLibido crashed after configuration dialog (thanks to Gonéri le Bouder who found this bug)

* 16/Mar/2005: version 0.2.2.1 Release notes:


Bugfix release:
- FIX: wrong version in klibidoui.rc
- FIX: memory leak in NzbForm()
- Removed debian/ dir

* 13/Mar/2005: version 0.2.2 Release notes:

This release adds the long-awaited (really? :) NewzBin (.nzb) files support, a new decoder, and other. Please read on.

What's new/changed:
- Single-tab view: Articles can be viewed in single, always-opened tab, to avoid cluttering.
- New option: delete/don't delete viewed file (without asking) when closing a view tab.
- New option: mark/don't mark articles as read (without asking) when closing an article list.
- New action: "update selected with options..." allow to download only the last "n" headers of a group
- New behavior: during group updates, if the download timeouts, the downloaded headers are inserted in the group, and the update is automatically requeued (from where it stopped). This should solve the problems some users were having downloading very large groups on some servers.
- New action: file->download .nzb. The parsing code was stolen (with permission :) from David Pye's Knzb. 
- New action: "Update current group" updates the group in the currently active tab. This is now the big blue down arrow in the toolbar. "Update selected newsgroups" is still available from the context menu of the group list.
- Renamed a couple of files to allow compiling on osX (see the howto on the webPage).
- New decoder: I stole the yy/uu decoding code from David Pye's Knzb, made some modifications/enhancements and included it in this release of KLibido.

	Pros:
	- About 8 times faster than UUlib
	- Will eventually let me drop dependency on UULib
	- Decoding options now really works.
	
	Cons:
	- Not well tested as UULib.
	- Does not (for now) decode posts with lines longer than 1024 Bytes
	- Supports only UUencoded and yyencoded posts.

Which decoder to use? It's up to you. I used the "new" decoder for about a week, and found it to be reliable and fast. However, you can still force KLibido to use the UUlib decoder: in the decoding options you can choose between the two (note that, for now, the default is still to use UULib)

BugFixes:
- Misc bugfixes.

A note about error model: KLibido divides errors in two branches, fatal (i.e.: article not found) and not fatal (i.e.: timeout). Fatal errors cause the download of the item to fail, while non-fatal errors trigger a retry.

In the server options, there are three values that control the connection timeout/errors: 
1. Server timeout: this is the value of timeout for the server (in seconds), i.e.: if no response/data come from the server in "timeout" seconds, a timeout error is triggered (and the item is generally retried)
2. Retries: this value only applies to post downloads (i.e.: not to headers updates) and represents the number of times a download is retried in the event of a *fatal* error. Example: KLibido tries to download an article. The server answers "article not found". The download is retried "Retries" times (default: 3). Why, you may ask? Because some servers are lame/overloaded/whatever, and when you try to download an article you get "article not found" the first time, but if you retry in a few seconds, the download succeeds. If your servers don't show this behavior, put "retries" to 1.
3. Thread timeout: this is the timeout (in minutes) for the connection thread. When a thread fails to successfully connect/login to a server for "thread_timeout" minutes, the thread is paused and must be restarted manually (via the context menu). This is considered a communication error, so it doesn't cause any item in the queue to fail. 
More in depth: when a thread gets a login error, it is paused for n seconds. "n" depends on the number of *consecutive* fails: first time 1 seconds, second 5 seconds, third 10 seconds, then 30, then one minute. After that, the thread is always paused for one minute. After "thread_timeout" minutes, the thread is put in paused state, and doesn't try to connect anymore until the user restarts it manually.
Why? Because a login error can have to much causes:
- network is down
- wrong login/password
- thread limit exceeded
- download limit exceeded
- etc...
Servers often return custom error codes, so in the event of a failed login there is no easy/automated way to know if the login failed because of a wrong password, exceeded daily download limit, too many connected threads, or whatever. So the best thing to do (IMHO) is to pause the thread and retry later.




* 01/Mar/2005: version 0.2.1.1 Release notes:

Quick bugfix: I let some debug code slip in, and some temporary files weren't deleted.

BugFixes:
 - KLibido didn't delete temporary files for newsgroup updates
 - Couldn't compile with KDE 3.2
 - removed some debug messages

 
* 22/Feb/2005: version 0.2.1 Release notes:

This is a maintenance release. It has some (small) new features, but is mostly a bugfix release.
Please note that the format of the group Db has changed, and the format is not backward compatible.

What's new/Changed:
 - New option: always double click to view article (overrides the global KDE setting).
 - New option: remember filter settings for headerLists.
 - New options: enable/disable subject expansion and colums in headerlists.
 - Try to avoid jumping around the headerlist when marking articles as read and filtering 
   them out of the list.
 - New action: compact databases
 - Minor cosmetic changes
 
 
BugFixes:
 - Workaround for servers with groups starting with dot
 - Resuming of the download queue now really works (or, at least, I hope :)
 - KLibido crashed if there was not enough temporary space for decoding
 - Infinite loop when downloading articles with lines longer than 100,000 chars 
   (thanks to Randy Pearson who kindly provided the patch for this)
 - Subscribed groups weren't properly saved in the "Available groups" database.
 - Misc bugFixes (see Changelog)


* 16/Nov/2004: version 0.2.0 Release notes:

This is a "major" release, with more than 1,000 lines of new code plus a lot
of changes, especially in the download threads. There is a new format for a 
couple of Dbs , so the first time the program is run, the Dbs are migrated. 
This operation can be lengthy, so please be patient. If you can, backup the 
"klibido/db/" dir before starting the program. 

What's new/changed:
 - "Persistent" download queue: KLibido now saves the progress of download 
   and, in the event of a crash/restart/whatever, asks you to resume it.
 - Added the shortcut manager and some default shortcuts (note that CTRL-W
   closes the active tab)
 - Double clicking on a header views it
 - Added group categories and group aliases. This is only a matter of how
   groups are displayed in the grouplist, but should help people with a lot
   of subscribed groups. Use the "group properties" menu to add categories. 
 - Queue balancing: if you have more than one server subscribed, KLibido tries
   to balance the load across the servers, BUT ONLY IF THEY HAVE THE SAME PRIORITY.
   This should accomodate the needs of people with bandwidth-limited servers as
   well as the needs of people with bytes-limited servers.
   NOTE: this works only with articles whose headers are downloaded after the 
   Db update
 - KLibido should now gracefully handle write errors, including out-of-space 
   errors: newsgroup updates fail with an "I/O error", while post downloads 
   are kept in the queue AND the queue is paused. This seems a reasonable
   behavior to me, but I'm accepting comments :).
 - Lots of minor changes and bugfixes (see ChangeLog)

