cmake: avoid de-duplication of user's CXXFLAGS
[quassel.git] / ChangeLog
index 51c474f..cb8adf2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,48 +13,154 @@ changes, the git history at <https://git.quassel-irc.org> is your friend.
 
 Without further ado, let's start:
 
-Version 0.13.0 (TBR)
-====================
-
-NOTE: Database schema and settings format change, no downgrade possible!
-
-* Use Qt 5 by default
-* Add Breeze/Breeze Dark icon themes, allow selection of icon theme
-* Use Breeze icon theme by default
-* Introduce new quassel-specific icons
-* Use Plasma notification sounds by default (rather than KDE4's)
-* Make IRC rate limits configurable
-* Sender colors by default (and optionally for ACTION messages)
-* Improve ChatView color settings
-* Improve default sender colors, and make configurable by palette in QSS
-* Optionally hide brackets around sender/timestamp
-* Improved SSL certificate handling
-* Add cmdline options for SSL certificate/key paths
-* Use SHA-512 to store the core certificate digest
-* Chat list filter/search
-* QtMultimedia notification backend (deprecates Phonon support with Qt 5)
-* Various UI improvements (tooltips, tool bars, menus...)
-* Spell checking via Sonnet if KDE Frameworks integration is enabled
-* Support for many IRCv3 features, improved capability negotiation
-* Improve handling of user modes
-* Store sender prefixes (@+v...) in database, and optionally show in UI
-* Buffer filter/search
-* Add context menu option in ChatView for enabling the menubar
-* Add support for ZNC self-messages
-* Support twitch.tv's membership capability
+Version 0.14.0 (2022-01-01)
+===========================
+
+NOTE:  Database schema format change, no downgrade possible!
+
+* New baseline for minimum build requirements and dependencies: Ubuntu 16.04 "Xenial Xerus"
+  - GCC 5 or Clang 3.4
+  - CMake 3.5
+  - Qt 5.5.0
+* New dependencies:
+  - Boost (v1.54 or later, build-time only)
+  - zlib (bundled miniz has been removed)
+* Support building against Qt 5.15 (and all prior versions down to and including Qt 5.5)
+* Remove support for building against Qt4/KDE4
+* Require SSL support in Qt
+* Don't silently fall back to unencrypted client/core communication if certificate cannot be loaded
+* Properly escape LDAP usernames to prevent injection or bypassing authentication
+* Strip format codes in ignore list rules (this might affect pre-existing rules)
+* Support many more features of IRCv3
+* Improve window handling under Wayland
+* Support the HAProxy protocol
+* Provide a daemon providing Prometheus metrics
+* Deprecate local highlight settings (prefer synced ones instead)
+* Improve configuration of SASL PLAIN and EXTERNAL
+* Add button for strike-through format
+* Allow choosing the account to connect to via command-line option
+* Make database schema migration more robust
+* Make backlog fetch more efficient, allow for fetch-on-demand
+* Make syncing and other aspects of the core/client protocol more efficient
+* Make RPC implementation more efficient
+* Improve log output
+* Clean up and modernize large parts of the code base
+  - Replace the Qt 4 string-based connect syntax by function pointers
+  - Fix many clang-tidy findings
+  - Reformat ALL the code using clang-format instead of Uncrustify, with some style changes
+* Modernize build system
+* Support building shared libraries via the ENABLE_SHARED CMake option (defaults to on)
+* Introduce support for (and a small selection of) unit tests via the BUILD_TESTING CMake option
+* Use Github Actions as CI system, replacing Travis and Appveyor
+* Revamp bundle/DMG creation on macOS
+* Many smaller fixes
+* Improve documentation and UI help
+* Update translations
+* Update bundled iconsets and application icons
+* Update default network and documentation to point to our new home Libera IRC (since Freenode killed itself)
+
+Version 0.13.1 (2019-02-15)
+===========================
+
+* Fix backlog message fetching that was broken when using Qt4
+* Improve output to syslog
+* Make upgrading the database schema more robust in case of interruption
+* Fix alignment of buttons in the input widget
+* Fix bug where the nicklist would be hidden on first start
+* Allow configuring the listen addresses for the built-in identd (--ident-listen)
+* Honor core options even if it was just configured via environment variables
+* Fix syncing of auto reconnect retries in network settings
+* Update translations
+
+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 feature 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)
-* LDAP authentication backend for core users (--select-authenticator)
-* Handle buffer activity core-side
-* Core-side (synced) highlight rules (in addition to local highlight rules)
-* Allow disconnecting other clients via "Core Info" dialog (if supported by client)
-* System proxy support for the client
-* Support rendering of extended mIRC colors, hex colors, reverse and strikethrough
-* Make /list open the channel list dialog
-* Support $i:ident and $i:account in aliases
-* Extended core/client feature negotiation, including diagnostic output
-* Improve database performance
+* 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
-* Many smaller fixes and 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)