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