cmake: Make symbols hidden by default on GCC/Clang
[quassel.git] / ChangeLog
index 5722986..ee90b15 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,27 +6,485 @@ contains end-user visible, mostly major new features. It does not contain (most)
 bugfixes, nor is it guaranteed to be complete or up-to-date at all. Also, it does
 start at 0.3.0 only, since this was the first version widely available.
 
-Please have a look at <http://bugs.quassel-irc.org/changelog_page.php> for a
+Please have a look at <https://bugs.quassel-irc.org/projects/quassel-irc/roadmap> for a
 list of closed bug/feature reports (which still does not cover bugs we have
 fixed but which were never reported, of course), and for a full list of
-changes, the git history at <http://git.quassel-irc.org> is your friend.
+changes, the git history at <https://git.quassel-irc.org> is your friend.
 
 Without further ado, let's start:
 
-Version 0.3.2 (not yet released)
-================================
+Version 0.13.0 (2018-11-17)
+===========================
 
+NOTE:  Database schema and settings format change, no downgrade possible!
+NOTEĀ²: Database migration may take a long time (hours for big databases),
+       and temporarily require double the disk space until migration is
+       complete!
+
+* Use Qt 5 by default (this will be the last release still supporting Qt4)
+* New branding (application icon)
+* UI improvements
+  - Improve ChatView color settings
+  - Improve default sender colors, and make configurable by palette in QSS
+  - Fix font weight parsing and other issues in QSS
+  - Settings dialog improvements (tree width, changed state for several pages)
+  - Chat list filter/search
+  - Shortcuts for formatting options
+  - Sender colors by default (and optionally for ACTION messages)
+  - Add context menu option in ChatView for enabling the menubar
+  - Optionally hide brackets around sender/timestamp
+  - Make /list open the channel list dialog, including advanced search for channels
+  - Spell checking via Sonnet if KDE Frameworks integration is enabled
+  - Support $i:ident, $i:identd, and $i:account in aliases
+  - Use system locale for date/time formatting
+  - Many other UI improvements and polish (tooltips, tool bars, menus...)
+* Completely revamp icon theme support
+  - Fix icon loading on many platforms (requires newer Qt)
+  - Fix tray icons with StatusNotifier
+  - Allow selecting a fallback for incomplete system icon themes
+  - Ship Quassel-specific icons
+  - Add Breeze and Breeze Dark icon themes, use Breeze by default
+* Notification improvements
+  - New configuration options for tray icon notification
+  - Use Plasma notification sounds by default (rather than KDE4's)
+  - QtMultimedia notification backend (deprecates Phonon support with Qt 5)
+* IRC-related improvements
+  - Support for many IRCv3 features, improved capability negotiation
+  - Improve handling of user modes
+  - Store sender prefixes (@+v...) in database, and optionally show in UI
+  - Add support for ZNC self-messages
+  - Support twitch.tv's membership capability
+  - Support rendering of extended mIRC colors, hex colors, reverse and strikethrough
+  - Make IRC rate limits configurable
+  - Use UTF-8 server encoding by default (instead of ISO-8859-1, changeable via network settings)
+  - Internal identd (may require port forwarding rules)
+  - Strict ident mode (always sends user name)
+  - Provide CTCP timestamps in ISO 8601 format
+  - AutoWho-related fixes, properly support away-notify (removes workaround for non-compliant servers)
+  - Command line debug options for showing raw IRC messages
+* Security improvements
+  - Improved SSL certificate handling
+  - Add command line options for SSL certificate/key paths
+  - Use SHA-512 to store the core certificate digest
+  - Persist blowfish keys for encrypted channels
+  - Use CBC by default, like other clients (instead of ECB)
+* Move functionality core side (useful for mobile clients)
+  - Handle buffer activity, highlights, ignore rules core-side
+  - Improved ignore rule support
+  - Core-side (synced) highlight rules (in addition to local highlight rules)
+* Core/client connection
+  - Extended core/client feature negotiation, including diagnostic output
+  - System proxy support for the client
+  - Allow disconnecting other clients via "Core Info" dialog (if supported by client)
+  - LDAP authentication backend for core users (--select-authenticator)
+* Regular expressions
+  - Unify regex handling (may affect old ignore rules, see release announcement for details)
+  - Cache many frequently used regexes to improve performance
+* Database changes
+  - Use 64 bit timestamps to avoid the Y2038 problem, use millisecond precision
+  - Use 64 bit message IDs to support giant backlogs (requires 0.13+ core and client)
+  - Store real names and avatar URLs in database (for now, only used by Quasseldroid)
+  - Improve database performance
+  - Make database upgrades more robust
+* Containerization improvements
+  - Store core settings in database
+  - Allow configuring the core via environment variables
+* Logging improvements
+  - Allow to configure the log level also for (monolithic or not) client
+  - Make debug log window more useful
+  - Catch early log messages
+  - Slightly reformat console output so it's better readable
+* Settings versioning (allows upgrading from older versions, too)
+* Multithread the monolithic client, to keep UI responsive even under load
+* Properly shutdown client and core on exit
+* Fix POSIX signal handling, support console events on Windows
+* Build system improvements
+* Code fixes for issues found in static analysis
+* Many smaller fixes and quality-of-life improvements
+* Update inxi script to 3.0.18 (now requires Perl to be installed)
+* Translation updates
+
+Version 0.12.5 (2018-04-24)
+===========================
+
+* Make "/ " use the rest of the message as a literal
+* Use commit date instead of build date to support reproducible builds
+* Support Qt 5.6 through Qt 5.10
+* Automated OSX builds (via Travis)
+* Update deployment and CI settings for OSX and Windows
+* Better HIDPI support with recent Qt 5 versions
+* Snapcraft packaging support
+* Inxi version bump
+* Prioritization of PING/PONG messages to prevent timeouts
+* Improved touch screen support (scrolling etc.)
+* WebEngine support for URL previews (deprecates WebKit support with Qt 5)
+* Disable WebKit by default due to it being unmaintained and a security risk
+* Strip format codes when checking for highlights
+* Properly disconnect from networks when shutting down
+* Reload SSL certificates on signal SIGHUP
+* Add AppData metadata for quassel and quasselclient
+* Allow channel buffer merges
+* Improve dock and tray handling on OSX
+* Split user messages on newlines, as per the RFC
+* Join channels on double-click in platforms other than OSX and Windows
+* Support Elliptic Curve keys for client<->core connections on Qt 5.5+
+* Add sanity checks for QDataStream deserialization (e.g. for size)
+* Prevent clients from trying to login to an unconfigured core, avoiding a crash
+* Various bugfixes
+* Some code cleanups
+* Translation updates
+
+Version 0.12.4 (2016-04-24)
+===========================
+
+* Handle STATUSMSG messages (recently abused for query spam)
+* Link previews are enabled again in Windows builds
+* Fix core crash caused by clients sending invalid handshake data
+* Fix session management with Qt 5
+* Fix connection issues with non-compliant ircds
+* Translation updates
+
+Version 0.12.3 (2016-02-09)
+===========================
+
+* Fix activity filters when selecting buffers in custom ChatViews
+* Fix default shortcuts when integrated with KDE Frameworks
+* Introduce support for Appveyor CI (automated Windows builds)
+* Support SnoreNotify 0.7
+* Various cleanups and performance improvements
+* Various build system fixes
+* Channel keys are again remembered between syncs
+* Support for Qt 5.5
+* Network (re)connection fixes
+* Fix possible message loss when running multiple core users on a psql database
+* Command line option for specifying SSL certificates and keys
+* Many smaller fixes
+
+Version 0.12.2 (2015-04-23)
+===========================
+
+* Fix PostgreSQL not re-initializing after reconnect (raising CVE-2013-4422 from the dead)
+* Remove warning on startup due to a change in Kdelibs4ConfigMigrator
+
+Version 0.12.1 (2015-04-21)
+===========================
+
+* Emergency fix for behavior change in Qt5's psql driver regarding timezones
+
+Version 0.12.0 (2015-04-15)
+===========================
+
+* Full support for KDE Frameworks
+* Properly split messages with multi-byte encodings and/or encryption
+* Improve core password hashing algorithm
+  NOTE: This upgrades the database schema, so no downgrades are possible!
+* Remote password change
+* Core connection improvements
+* Build system improvements
+* PostgreSQL connection improvements
+* Improve Qt 5 support
+* Qt 4.8+ or Qt 5.2+ now required
+* Several tweaks and fixes
+* Translation updates
+
+Version 0.11.0 (2014-09-23)
+===========================
+
+* New build requirements:
+  - C++11 capable compiler (gcc 4.7+, clang 3.3+, MSVC 2013+)
+  - cmake 2.8.9+
+* Full support for Qt 5.2+ in addition to Qt 4.6+
+* Completely revamp the build system, making use of "new" CMake features
+
+Version 0.10.1 (2014-09-23)
+===========================
+
+* Fix buffer hotlist sorting
+* Split CTCP messages if they're too long
+* Make database problems more obvious
+* Fix backlog loading for QuasselDroid
+* Properly save the toolbar state on Mac OSX
+* Fix a crash with KDE's network detection
+* Various other fixes
+
+Version 0.10.0 (2014-03-25)
+===========================
+
+* Refactor lots of the protocol and connection code
+* Introduce connection probing for reliably negotiating protocol features
+* Introduce the new DataStream protocol with streaming compression
+* Option for forcing the core to only accept SSL connections
+* Support for the Snore notification backend
+* Allow searching the web for selected text
+* Connection-related fixes
+* Allow for hiding inactive networks
+* Enable line wrap in the input field
+* Show backlog messages in the Chat Monitor
+* Remove SSL protocol selection, always use auto-negotiation for best results
+* Highlight rules are now case-insensitive by default
+* New and updated translations
+* Bump inxi version (for /sysinfo)
+* Use the raster rendering engine by default on OSX (should improve performance)
+
+Version 0.9.3 (2014-03-25)
+==========================
+
+* Notification fixes
+* Improve reliability of SSL connections
+* Save toolbar state properly on Mac
+* Prevent user interaction with the web preview
+* Fix fullscreen mode
+* Fix spurious crash caused by shaky ircd connections
+* Fix adding an unneeded colon to custom commands
+* Avoid Qt's DNS cache to properly handle round-robin DNS records
+
+Version 0.9.2 (2013-11-26)
+==========================
+
+* Don't crash if /topic contains newlines
+* Fix SSL-related issues
+* Fix Phonon notifications not playing sound
+* Pingout if connection drops during SASL auth phase
+* Prevent messages from being sent to status buffers
+* Make sure manipulated/buggy clients cannot access backlog of other core users
+* Fix context menu issues
+
+Version 0.9.1 (2013-10-11)
+==========================
+
+* Fix security issue with Qt 4.8.5 and PostgreSQL
+* Phonon notifications for Mac OS X
+* Convert tabs in messages into 8 spaces
+* Silence superfluous QCA warnings
+* Various key- and encryption-related fixes
+* Ignore formatting in clickables
+* Enable warnings when compiling with Clang
+* Updated translations
+* Various other small fixes and improvements
+
+Version 0.9.0 (2013-04-16)
+==========================
+
+* Halfop support
+* Channel-specific highlights
+* Support for intermediate CA certificates
+* Support the DockManager interface
+* OSX Notification Center support
+* DH1080 key exchange
+* SASL EXTERNAL support
+* Improvements for Retina displays on OSX
+* Supporting to start minimized to tray
+* Rudimentary support for Qt5 (obsolete again because upstream changed too much)
+* Refactor of SignalProxy, network and protocol code
+* First pieces of the coming protocol abstraction
+* Build system improvements
+* Various bugfixes
+* New and updated translations
+* Reformatted ALL the source code
+
+Version 0.8.0 (2012-03-20)
+==========================
+
+* Make tab completion key configurable
+* Syslog support for the core
+* Make the core more robust against random invalid input
+* oidentd support
+* Build system improvements
+* Many new and updated translations
+* Various bugfixes
+
+Version 0.7.4 (2012-03-20)
+--------------------------
+
+* Improve keyboard navigation
+* Bump Oxygen icons
+* Conform with icon naming spec
+* Remove JS support from webpreview
+* Fix support for Qt 4.8
+* Several bugfixes and cleanups
+
+Version 0.7.3 (2011-09-08)
+--------------------------
+
+* Fix a core crash
+
+Version 0.7.2 (2011-03-24)
+--------------------------
+
+* PostgreSQL improvements
+* Various bugfixes
+
+Version 0.7.1 (2010-09-21)
+--------------------------
+
+* Critical fixes for CTCP and connection handshake
+
+Version 0.7.0 (2010-09-14)
+==========================
+
+* Improved DE integration, support for dbusmenu
+* Bump Qt dependency: we need Qt 4.6 for client and monolithic now
+* Fullscreen mode (F11)
+* CTCP CLIENTINFO support
+* Shortcuts for navigation between chats (Alt+Left/Right/Up/Down)
+* Add blowfish encryption (/setkey and /delkey; needs QCA2)
+* Shortcut editing for all platforms (!KDE)
+* Improved handling of invites
+* New tray icon for highlights
+* Global away
+* Emacs-style keybindings for the input line
+* Improved markerline behavior
+  - Allow manual setting (Ctrl+R)
+  - Provide shortcut for jumping to the markerline (Ctrl+K)
+* New languages: el, gl, ja
+* Many bugfixes
+
+Version 0.6.1 (2010-04-16)
+--------------------------
+
+* Critical bugfixes
+
+Version 0.6.0 (2010-04-14)
+==========================
+
+* New languages: en_GB, es, nl, oc, pt, pt_BR, sq, sv, uk, zh_CN
+* Updated existing languages
+* Restore last selected buffer on restart
+* Optional per-chat history
+* SASL authentication support (e.g. supported by Freenode)
+* Allow inputting formatted (colored/bold/...) text in the inputline
+* Support the StatusNotifierItem DBus spec
+  - Replace old-style tray icon where supported (currently KDE >= 4.4)
+  - Integrate freedesktop notifications support (libnotify or knotify)
+* Systemtray refactoring
+  - Replace animation by blinking icon
+  - Properly handle notifications and mainwindow toggle
+* Improved URL detection
+* Sender column is now clickable (double click opens query)
+* Improved notification handling
+* ChatView performance improvements
+* Many buildsystem fixes
+  - Improved handling of icons
+  - Updated cmake macros
+  - Support building with MinGW
+  - Support KDE on non-X11 platforms
+  - Better handling of SSL libraries
+* Solid network state detection support (with KDE)
+* Settingspage refactoring
+* Improved handling of SSL certificates
+* Completely reworked the client/core connection
+  - New settingspage for managing core accounts
+  - Streamlined login/sync process
+  - Configurable timeout
+  - Automatic reconnect to core
+* Send unknown commands to server
+* New stylesheets
+* Use gettext for translations
+
+Version 0.5.2 (2010-01-18)
+--------------------------
+
+* CTCP ignore
+* Buildsystem fixes
+
+Version 0.5.1 (2009-11-21)
+--------------------------
+
+* Many Bugfixes
+* Updated translations
+* Fix issues with Qt >= 4.6
+
+Version 0.5.0 (2009-10-14)
+==========================
+
+* Tons of bugfixes
+* Many translation updates
+* Use DrKonqi/Apport to provide backtraces in case of a crash
+* Support for Ayatana's Message Indicator (libindicate; *buntu specific feature for now)
+* Fix wordwrap issues
+* Improved notification behavior (highlighted channels can now be cycled)
+* Improved icon packaging (don't install them if KDE is available and current enough)
+* Menubar can now be hidden (Ctrl+M to toggle)
+* Ignore list support
+* Vast performance improvements in the handling of synced objects
+  - Core startup/shutdown now almost instant
+  - Joining/leaving large channels much more efficient
+* Netsplit detection
+* New topic widget dynamically resizes to show all of the topic
+* Usability tweaks
+  - Reworked configuration dialogs
+  - Renamed "Buffer" to "Chat" throughout in all user-visible strings
+* Introduce stylesheet-based (QSS) styling for ChatView and the whole application
+* Allow configuration of ping timeouts and auto-WHO
+* Make toolbars configurable in KDE
+* Alt+A shortcut for jumping to cycle through active buffers
+* Properly remember the mainwindow state on shutdown/restart
+* Multiline input support
+* Improved systray notifications
+* Lazy backlog fetching for hidden buffers
+* Improved flood control
+* Spell check support (requires KDE integration)
+* /exec support for executing external scripts/programs
+* CLI interface for managing core users with quasselcore rather than a script
+* Improved ping timeout detection
+* PostgreSQL database backend support
+* Smart nickname completion (most recently active)
+
+Version 0.4.3 (2009-08-26)
+--------------------------
+
+* Bugfixes and translation updates
+
+Version 0.4.2 (2009-05-20)
+--------------------------
+
+* Bugfixes and translation updates
+
+Version 0.4.1 (2009-03-18)
+--------------------------
+
+* Bugfixes and translation updates
+
+Version 0.4.0 (2009-02-17)
+==========================
+
+* Buffer view font can now be changed
+* Colored nicknames
+* Wizard for setting up identity and networks on first run
+* Paste protection warns if you try to paste many lines
+* Use login name and real name for default identity
+* Add toolbar to main window
+* Away log window showing highlighted messages while you're away
+* Settings dialog streamlining
+* Animated system tray icon
+* Shiny new Oxygen icons all over the place, including our new app icon
+* Build system improvements
+* Put all config and data files in one location and make that configurable
+* Allow presetting networks and a list of channels to join on first start
+* Change and improve CLI argument handling
+* All buffer views are now customizable
+* Streamlined monolithic client
+* Many usability improvements
+* Method for easily hiding and unhiding buffers in buffer views
+* Renaming and merging of query buffers
+* Improved SSL certificate handling
+* Optional support for KDE4
+  - KNotify support
+  - KDE icon and color theme support
+  - Editable shortcuts
+* Core now supports a proxy for connections to IRC
+* Core supports SSL certs and keys for IRC connections
 * Chat Monitor configuration dialog
 * Audio notifications
 * Clickable channel names in ChatView
-* Improved context menus in ChatView
+* Context menus in ChatView and BufferViews
 * Respect the separate clipboards (Ctrl+C / X11 selection) on X11
 * Improved mouse handling:
   - Double/triple click selections
   - Drag'n'Drop
 
 Version 0.3.1 (2008-11-20)
-================================
+--------------------------
 
 * Nick changes and day change messages can now be hidden
 * Web previews and status icons can be disabled