logger: Dedup code, fix client Debug Log loglevel
[quassel.git] / ChangeLog
1 ChangeLog for Quassel IRC
2 =========================
3 This is not a full ChangeLog, but rather an end-user FeatureLog that is supposed
4 to provide a list of new features between Quassel versions. As such, it only
5 contains end-user visible, mostly major new features. It does not contain (most)
6 bugfixes, nor is it guaranteed to be complete or up-to-date at all. Also, it does
7 start at 0.3.0 only, since this was the first version widely available.
8
9 Please have a look at <https://bugs.quassel-irc.org/projects/quassel-irc/roadmap> for a
10 list of closed bug/feature reports (which still does not cover bugs we have
11 fixed but which were never reported, of course), and for a full list of
12 changes, the git history at <https://git.quassel-irc.org> is your friend.
13
14 Without further ado, let's start:
15
16 Version 0.13.0 (2018-11-17)
17 ===========================
18
19 NOTE:  Database schema and settings format change, no downgrade possible!
20 NOTEĀ²: Database migration may take a long time (hours for big databases),
21        and temporarily require double the disk space until migration is
22        complete!
23
24 * Use Qt 5 by default (this will be the last release still supporting Qt4)
25 * New branding (application icon)
26 * UI improvements
27   - Improve ChatView color settings
28   - Improve default sender colors, and make configurable by palette in QSS
29   - Fix font weight parsing and other issues in QSS
30   - Settings dialog improvements (tree width, changed state for several pages)
31   - Chat list filter/search
32   - Shortcuts for formatting options
33   - Sender colors by default (and optionally for ACTION messages)
34   - Add context menu option in ChatView for enabling the menubar
35   - Optionally hide brackets around sender/timestamp
36   - Make /list open the channel list dialog, including advanced search for channels
37   - Spell checking via Sonnet if KDE Frameworks integration is enabled
38   - Support $i:ident, $i:identd, and $i:account in aliases
39   - Use system locale for date/time formatting
40   - Many other UI improvements and polish (tooltips, tool bars, menus...)
41 * Completely revamp icon theme support
42   - Fix icon loading on many platforms (requires newer Qt)
43   - Fix tray icons with StatusNotifier
44   - Allow selecting a fallback for incomplete system icon themes
45   - Ship Quassel-specific icons
46   - Add Breeze and Breeze Dark icon themes, use Breeze by default
47 * Notification improvements
48   - New configuration options for tray icon notification
49   - Use Plasma notification sounds by default (rather than KDE4's)
50   - QtMultimedia notification backend (deprecates Phonon support with Qt 5)
51 * IRC-related improvements
52   - Support for many IRCv3 features, improved capability negotiation
53   - Improve handling of user modes
54   - Store sender prefixes (@+v...) in database, and optionally show in UI
55   - Add support for ZNC self-messages
56   - Support twitch.tv's membership capability
57   - Support rendering of extended mIRC colors, hex colors, reverse and strikethrough
58   - Make IRC rate limits configurable
59   - Use UTF-8 server encoding by default (instead of ISO-8859-1, changeable via network settings)
60   - Internal identd (may require port forwarding rules)
61   - Strict ident mode (always sends user name)
62   - Provide CTCP timestamps in ISO 8601 format
63   - AutoWho-related fixes, properly support away-notify (removes workaround for non-compliant servers)
64   - Command line debug options for showing raw IRC messages
65 * Security improvements
66   - Improved SSL certificate handling
67   - Add command line options for SSL certificate/key paths
68   - Use SHA-512 to store the core certificate digest
69   - Persist blowfish keys for encrypted channels
70   - Use CBC by default, like other clients (instead of ECB)
71 * Move functionality core side (useful for mobile clients)
72   - Handle buffer activity, highlights, ignore rules core-side
73   - Improved ignore rule support
74   - Core-side (synced) highlight rules (in addition to local highlight rules)
75 * Core/client connection
76   - Extended core/client feature negotiation, including diagnostic output
77   - System proxy support for the client
78   - Allow disconnecting other clients via "Core Info" dialog (if supported by client)
79   - LDAP authentication backend for core users (--select-authenticator)
80 * Regular expressions
81   - Unify regex handling (may affect old ignore rules, see release announcement for details)
82   - Cache many frequently used regexes to improve performance
83 * Database changes
84   - Use 64 bit timestamps to avoid the Y2038 problem, use millisecond precision
85   - Use 64 bit message IDs to support giant backlogs (requires 0.13+ core and client)
86   - Store real names and avatar URLs in database (for now, only used by Quasseldroid)
87   - Improve database performance
88   - Make database upgrades more robust
89 * Containerization improvements
90   - Store core settings in database
91   - Allow configuring the core via environment variables
92 * Logging improvements
93   - Allow to configure the log level also for (monolithic or not) client
94   - Make debug log window more useful
95   - Catch early log messages
96   - Slightly reformat console output so it's better readable
97 * Settings versioning (allows upgrading from older versions, too)
98 * Multithread the monolithic client, to keep UI responsive even under load
99 * Properly shutdown client and core on exit
100 * Fix POSIX signal handling, support console events on Windows
101 * Build system improvements
102 * Code fixes for issues found in static analysis
103 * Many smaller fixes and quality-of-life improvements
104 * Update inxi script to 3.0.18 (now requires Perl to be installed)
105 * Translation updates
106
107 Version 0.12.5 (2018-04-24)
108 ===========================
109
110 * Make "/ " use the rest of the message as a literal
111 * Use commit date instead of build date to support reproducible builds
112 * Support Qt 5.6 through Qt 5.10
113 * Automated OSX builds (via Travis)
114 * Update deployment and CI settings for OSX and Windows
115 * Better HIDPI support with recent Qt 5 versions
116 * Snapcraft packaging support
117 * Inxi version bump
118 * Prioritization of PING/PONG messages to prevent timeouts
119 * Improved touch screen support (scrolling etc.)
120 * WebEngine support for URL previews (deprecates WebKit support with Qt 5)
121 * Disable WebKit by default due to it being unmaintained and a security risk
122 * Strip format codes when checking for highlights
123 * Properly disconnect from networks when shutting down
124 * Reload SSL certificates on signal SIGHUP
125 * Add AppData metadata for quassel and quasselclient
126 * Allow channel buffer merges
127 * Improve dock and tray handling on OSX
128 * Split user messages on newlines, as per the RFC
129 * Join channels on double-click in platforms other than OSX and Windows
130 * Support Elliptic Curve keys for client<->core connections on Qt 5.5+
131 * Add sanity checks for QDataStream deserialization (e.g. for size)
132 * Prevent clients from trying to login to an unconfigured core, avoiding a crash
133 * Various bugfixes
134 * Some code cleanups
135 * Translation updates
136
137 Version 0.12.4 (2016-04-24)
138 ===========================
139
140 * Handle STATUSMSG messages (recently abused for query spam)
141 * Link previews are enabled again in Windows builds
142 * Fix core crash caused by clients sending invalid handshake data
143 * Fix session management with Qt 5
144 * Fix connection issues with non-compliant ircds
145 * Translation updates
146
147 Version 0.12.3 (2016-02-09)
148 ===========================
149
150 * Fix activity filters when selecting buffers in custom ChatViews
151 * Fix default shortcuts when integrated with KDE Frameworks
152 * Introduce support for Appveyor CI (automated Windows builds)
153 * Support SnoreNotify 0.7
154 * Various cleanups and performance improvements
155 * Various build system fixes
156 * Channel keys are again remembered between syncs
157 * Support for Qt 5.5
158 * Network (re)connection fixes
159 * Fix possible message loss when running multiple core users on a psql database
160 * Command line option for specifying SSL certificates and keys
161 * Many smaller fixes
162
163 Version 0.12.2 (2015-04-23)
164 ===========================
165
166 * Fix PostgreSQL not re-initializing after reconnect (raising CVE-2013-4422 from the dead)
167 * Remove warning on startup due to a change in Kdelibs4ConfigMigrator
168
169 Version 0.12.1 (2015-04-21)
170 ===========================
171
172 * Emergency fix for behavior change in Qt5's psql driver regarding timezones
173
174 Version 0.12.0 (2015-04-15)
175 ===========================
176
177 * Full support for KDE Frameworks
178 * Properly split messages with multi-byte encodings and/or encryption
179 * Improve core password hashing algorithm
180   NOTE: This upgrades the database schema, so no downgrades are possible!
181 * Remote password change
182 * Core connection improvements
183 * Build system improvements
184 * PostgreSQL connection improvements
185 * Improve Qt 5 support
186 * Qt 4.8+ or Qt 5.2+ now required
187 * Several tweaks and fixes
188 * Translation updates
189
190 Version 0.11.0 (2014-09-23)
191 ===========================
192
193 * New build requirements:
194   - C++11 capable compiler (gcc 4.7+, clang 3.3+, MSVC 2013+)
195   - cmake 2.8.9+
196 * Full support for Qt 5.2+ in addition to Qt 4.6+
197 * Completely revamp the build system, making use of "new" CMake features
198
199 Version 0.10.1 (2014-09-23)
200 ===========================
201
202 * Fix buffer hotlist sorting
203 * Split CTCP messages if they're too long
204 * Make database problems more obvious
205 * Fix backlog loading for QuasselDroid
206 * Properly save the toolbar state on Mac OSX
207 * Fix a crash with KDE's network detection
208 * Various other fixes
209
210 Version 0.10.0 (2014-03-25)
211 ===========================
212
213 * Refactor lots of the protocol and connection code
214 * Introduce connection probing for reliably negotiating protocol features
215 * Introduce the new DataStream protocol with streaming compression
216 * Option for forcing the core to only accept SSL connections
217 * Support for the Snore notification backend
218 * Allow searching the web for selected text
219 * Connection-related fixes
220 * Allow for hiding inactive networks
221 * Enable line wrap in the input field
222 * Show backlog messages in the Chat Monitor
223 * Remove SSL protocol selection, always use auto-negotiation for best results
224 * Highlight rules are now case-insensitive by default
225 * New and updated translations
226 * Bump inxi version (for /sysinfo)
227 * Use the raster rendering engine by default on OSX (should improve performance)
228
229 Version 0.9.3 (2014-03-25)
230 ==========================
231
232 * Notification fixes
233 * Improve reliability of SSL connections
234 * Save toolbar state properly on Mac
235 * Prevent user interaction with the web preview
236 * Fix fullscreen mode
237 * Fix spurious crash caused by shaky ircd connections
238 * Fix adding an unneeded colon to custom commands
239 * Avoid Qt's DNS cache to properly handle round-robin DNS records
240
241 Version 0.9.2 (2013-11-26)
242 ==========================
243
244 * Don't crash if /topic contains newlines
245 * Fix SSL-related issues
246 * Fix Phonon notifications not playing sound
247 * Pingout if connection drops during SASL auth phase
248 * Prevent messages from being sent to status buffers
249 * Make sure manipulated/buggy clients cannot access backlog of other core users
250 * Fix context menu issues
251
252 Version 0.9.1 (2013-10-11)
253 ==========================
254
255 * Fix security issue with Qt 4.8.5 and PostgreSQL
256 * Phonon notifications for Mac OS X
257 * Convert tabs in messages into 8 spaces
258 * Silence superfluous QCA warnings
259 * Various key- and encryption-related fixes
260 * Ignore formatting in clickables
261 * Enable warnings when compiling with Clang
262 * Updated translations
263 * Various other small fixes and improvements
264
265 Version 0.9.0 (2013-04-16)
266 ==========================
267
268 * Halfop support
269 * Channel-specific highlights
270 * Support for intermediate CA certificates
271 * Support the DockManager interface
272 * OSX Notification Center support
273 * DH1080 key exchange
274 * SASL EXTERNAL support
275 * Improvements for Retina displays on OSX
276 * Supporting to start minimized to tray
277 * Rudimentary support for Qt5 (obsolete again because upstream changed too much)
278 * Refactor of SignalProxy, network and protocol code
279 * First pieces of the coming protocol abstraction
280 * Build system improvements
281 * Various bugfixes
282 * New and updated translations
283 * Reformatted ALL the source code
284
285 Version 0.8.0 (2012-03-20)
286 ==========================
287
288 * Make tab completion key configurable
289 * Syslog support for the core
290 * Make the core more robust against random invalid input
291 * oidentd support
292 * Build system improvements
293 * Many new and updated translations
294 * Various bugfixes
295
296 Version 0.7.4 (2012-03-20)
297 --------------------------
298
299 * Improve keyboard navigation
300 * Bump Oxygen icons
301 * Conform with icon naming spec
302 * Remove JS support from webpreview
303 * Fix support for Qt 4.8
304 * Several bugfixes and cleanups
305
306 Version 0.7.3 (2011-09-08)
307 --------------------------
308
309 * Fix a core crash
310
311 Version 0.7.2 (2011-03-24)
312 --------------------------
313
314 * PostgreSQL improvements
315 * Various bugfixes
316
317 Version 0.7.1 (2010-09-21)
318 --------------------------
319
320 * Critical fixes for CTCP and connection handshake
321
322 Version 0.7.0 (2010-09-14)
323 ==========================
324
325 * Improved DE integration, support for dbusmenu
326 * Bump Qt dependency: we need Qt 4.6 for client and monolithic now
327 * Fullscreen mode (F11)
328 * CTCP CLIENTINFO support
329 * Shortcuts for navigation between chats (Alt+Left/Right/Up/Down)
330 * Add blowfish encryption (/setkey and /delkey; needs QCA2)
331 * Shortcut editing for all platforms (!KDE)
332 * Improved handling of invites
333 * New tray icon for highlights
334 * Global away
335 * Emacs-style keybindings for the input line
336 * Improved markerline behavior
337   - Allow manual setting (Ctrl+R)
338   - Provide shortcut for jumping to the markerline (Ctrl+K)
339 * New languages: el, gl, ja
340 * Many bugfixes
341
342 Version 0.6.1 (2010-04-16)
343 --------------------------
344
345 * Critical bugfixes
346
347 Version 0.6.0 (2010-04-14)
348 ==========================
349
350 * New languages: en_GB, es, nl, oc, pt, pt_BR, sq, sv, uk, zh_CN
351 * Updated existing languages
352 * Restore last selected buffer on restart
353 * Optional per-chat history
354 * SASL authentication support (e.g. supported by Freenode)
355 * Allow inputting formatted (colored/bold/...) text in the inputline
356 * Support the StatusNotifierItem DBus spec
357   - Replace old-style tray icon where supported (currently KDE >= 4.4)
358   - Integrate freedesktop notifications support (libnotify or knotify)
359 * Systemtray refactoring
360   - Replace animation by blinking icon
361   - Properly handle notifications and mainwindow toggle
362 * Improved URL detection
363 * Sender column is now clickable (double click opens query)
364 * Improved notification handling
365 * ChatView performance improvements
366 * Many buildsystem fixes
367   - Improved handling of icons
368   - Updated cmake macros
369   - Support building with MinGW
370   - Support KDE on non-X11 platforms
371   - Better handling of SSL libraries
372 * Solid network state detection support (with KDE)
373 * Settingspage refactoring
374 * Improved handling of SSL certificates
375 * Completely reworked the client/core connection
376   - New settingspage for managing core accounts
377   - Streamlined login/sync process
378   - Configurable timeout
379   - Automatic reconnect to core
380 * Send unknown commands to server
381 * New stylesheets
382 * Use gettext for translations
383
384 Version 0.5.2 (2010-01-18)
385 --------------------------
386
387 * CTCP ignore
388 * Buildsystem fixes
389
390 Version 0.5.1 (2009-11-21)
391 --------------------------
392
393 * Many Bugfixes
394 * Updated translations
395 * Fix issues with Qt >= 4.6
396
397 Version 0.5.0 (2009-10-14)
398 ==========================
399
400 * Tons of bugfixes
401 * Many translation updates
402 * Use DrKonqi/Apport to provide backtraces in case of a crash
403 * Support for Ayatana's Message Indicator (libindicate; *buntu specific feature for now)
404 * Fix wordwrap issues
405 * Improved notification behavior (highlighted channels can now be cycled)
406 * Improved icon packaging (don't install them if KDE is available and current enough)
407 * Menubar can now be hidden (Ctrl+M to toggle)
408 * Ignore list support
409 * Vast performance improvements in the handling of synced objects
410   - Core startup/shutdown now almost instant
411   - Joining/leaving large channels much more efficient
412 * Netsplit detection
413 * New topic widget dynamically resizes to show all of the topic
414 * Usability tweaks
415   - Reworked configuration dialogs
416   - Renamed "Buffer" to "Chat" throughout in all user-visible strings
417 * Introduce stylesheet-based (QSS) styling for ChatView and the whole application
418 * Allow configuration of ping timeouts and auto-WHO
419 * Make toolbars configurable in KDE
420 * Alt+A shortcut for jumping to cycle through active buffers
421 * Properly remember the mainwindow state on shutdown/restart
422 * Multiline input support
423 * Improved systray notifications
424 * Lazy backlog fetching for hidden buffers
425 * Improved flood control
426 * Spell check support (requires KDE integration)
427 * /exec support for executing external scripts/programs
428 * CLI interface for managing core users with quasselcore rather than a script
429 * Improved ping timeout detection
430 * PostgreSQL database backend support
431 * Smart nickname completion (most recently active)
432
433 Version 0.4.3 (2009-08-26)
434 --------------------------
435
436 * Bugfixes and translation updates
437
438 Version 0.4.2 (2009-05-20)
439 --------------------------
440
441 * Bugfixes and translation updates
442
443 Version 0.4.1 (2009-03-18)
444 --------------------------
445
446 * Bugfixes and translation updates
447
448 Version 0.4.0 (2009-02-17)
449 ==========================
450
451 * Buffer view font can now be changed
452 * Colored nicknames
453 * Wizard for setting up identity and networks on first run
454 * Paste protection warns if you try to paste many lines
455 * Use login name and real name for default identity
456 * Add toolbar to main window
457 * Away log window showing highlighted messages while you're away
458 * Settings dialog streamlining
459 * Animated system tray icon
460 * Shiny new Oxygen icons all over the place, including our new app icon
461 * Build system improvements
462 * Put all config and data files in one location and make that configurable
463 * Allow presetting networks and a list of channels to join on first start
464 * Change and improve CLI argument handling
465 * All buffer views are now customizable
466 * Streamlined monolithic client
467 * Many usability improvements
468 * Method for easily hiding and unhiding buffers in buffer views
469 * Renaming and merging of query buffers
470 * Improved SSL certificate handling
471 * Optional support for KDE4
472   - KNotify support
473   - KDE icon and color theme support
474   - Editable shortcuts
475 * Core now supports a proxy for connections to IRC
476 * Core supports SSL certs and keys for IRC connections
477 * Chat Monitor configuration dialog
478 * Audio notifications
479 * Clickable channel names in ChatView
480 * Context menus in ChatView and BufferViews
481 * Respect the separate clipboards (Ctrl+C / X11 selection) on X11
482 * Improved mouse handling:
483   - Double/triple click selections
484   - Drag'n'Drop
485
486 Version 0.3.1 (2008-11-20)
487 --------------------------
488
489 * Nick changes and day change messages can now be hidden
490 * Web previews and status icons can be disabled
491 * Icons for Online/Away/Offline status of queries
492 * Load Qt's default translations
493 * Add new settings for proper message redirection
494 * Add context menu to links
495 * Automatic backtraces on Windows
496 * Add russian translation
497 * Cut off the sender column on the left in ChatView
498 * Enable away on detach
499 * Backlog amount (initial and dynamic) can now be configured
500 * Shift Up/Down scrolls the ChatView
501 * Page Up/Down scrolls the ChatView
502 * ChatView Zoom with Ctrl + / Ctrl -
503 * Join/Part/Quit... events can now be hidden in ChatView
504 * Monolithic build features zero configuration: Click'n'Run
505 * Monolithic build now uses a proper (socket-less) internal connection
506 * Ctrl+L focuses input line
507 * Improve notification handling, use proper D-Bus notifications
508 * Day change messages in ChatView
509 * Web Preview on hovering over a link (requires QtWebkit)
510 * Allow icons to be installed externally, optionally use system Oxygen theme
511 * Improve URL handling in ChatView (underline, single-click invocation)
512
513 Version 0.3.0 (2008-08-27)
514 ==========================
515 The first widely available release of Quassel IRC.