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