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.
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.
14 Without further ado, let's start:
16 Version 0.14.0 (Unreleased)
17 ===========================
19 NOTE: Database schema format change, no downgrade possible!
21 * New baseline for minimum build requirements and dependencies: Ubuntu 16.04 "Xenial Xerus"
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
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
52 * Improve documentation and UI help
55 Version 0.13.1 (2019-02-15)
56 ===========================
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
68 Version 0.13.0 (2018-11-17)
69 ===========================
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
76 * Use Qt 5 by default (this will be the last feature release still supporting Qt4)
77 * New branding (application icon)
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
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
159 Version 0.12.5 (2018-04-24)
160 ===========================
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
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
187 * Translation updates
189 Version 0.12.4 (2016-04-24)
190 ===========================
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
199 Version 0.12.3 (2016-02-09)
200 ===========================
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
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
215 Version 0.12.2 (2015-04-23)
216 ===========================
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
221 Version 0.12.1 (2015-04-21)
222 ===========================
224 * Emergency fix for behavior change in Qt5's psql driver regarding timezones
226 Version 0.12.0 (2015-04-15)
227 ===========================
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
242 Version 0.11.0 (2014-09-23)
243 ===========================
245 * New build requirements:
246 - C++11 capable compiler (gcc 4.7+, clang 3.3+, MSVC 2013+)
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
251 Version 0.10.1 (2014-09-23)
252 ===========================
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
262 Version 0.10.0 (2014-03-25)
263 ===========================
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)
281 Version 0.9.3 (2014-03-25)
282 ==========================
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
293 Version 0.9.2 (2013-11-26)
294 ==========================
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
304 Version 0.9.1 (2013-10-11)
305 ==========================
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
317 Version 0.9.0 (2013-04-16)
318 ==========================
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
334 * New and updated translations
335 * Reformatted ALL the source code
337 Version 0.8.0 (2012-03-20)
338 ==========================
340 * Make tab completion key configurable
341 * Syslog support for the core
342 * Make the core more robust against random invalid input
344 * Build system improvements
345 * Many new and updated translations
348 Version 0.7.4 (2012-03-20)
349 --------------------------
351 * Improve keyboard navigation
353 * Conform with icon naming spec
354 * Remove JS support from webpreview
355 * Fix support for Qt 4.8
356 * Several bugfixes and cleanups
358 Version 0.7.3 (2011-09-08)
359 --------------------------
363 Version 0.7.2 (2011-03-24)
364 --------------------------
366 * PostgreSQL improvements
369 Version 0.7.1 (2010-09-21)
370 --------------------------
372 * Critical fixes for CTCP and connection handshake
374 Version 0.7.0 (2010-09-14)
375 ==========================
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
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
394 Version 0.6.1 (2010-04-16)
395 --------------------------
399 Version 0.6.0 (2010-04-14)
400 ==========================
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
434 * Use gettext for translations
436 Version 0.5.2 (2010-01-18)
437 --------------------------
442 Version 0.5.1 (2009-11-21)
443 --------------------------
446 * Updated translations
447 * Fix issues with Qt >= 4.6
449 Version 0.5.0 (2009-10-14)
450 ==========================
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
465 * New topic widget dynamically resizes to show all of the topic
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)
485 Version 0.4.3 (2009-08-26)
486 --------------------------
488 * Bugfixes and translation updates
490 Version 0.4.2 (2009-05-20)
491 --------------------------
493 * Bugfixes and translation updates
495 Version 0.4.1 (2009-03-18)
496 --------------------------
498 * Bugfixes and translation updates
500 Version 0.4.0 (2009-02-17)
501 ==========================
503 * Buffer view font can now be changed
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
525 - KDE icon and color theme support
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
538 Version 0.3.1 (2008-11-20)
539 --------------------------
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)
565 Version 0.3.0 (2008-08-27)
566 ==========================
567 The first widely available release of Quassel IRC.