changeset 1131:bd56d9793d6a

misc: improve more CHANGES.md
author David Demelier <markand@malikania.fr>
date Thu, 09 Dec 2021 11:27:36 +0100
parents 1b018226963f
children 6f85c4743494
files CHANGES.md
diffstat 1 files changed, 136 insertions(+), 73 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES.md	Thu Dec 09 10:31:54 2021 +0100
+++ b/CHANGES.md	Thu Dec 09 11:27:36 2021 +0100
@@ -6,8 +6,8 @@
 
 This is a major release. See MIGRATING.md file for more information.
 
-The biggest change is the rewrite from C++ to C. The only runtime dependency
-required is OpenSSL (if built with SSL support).
+The key highlight for this release is the rewrite from C++ to C. The only
+runtime dependency required is OpenSSL (if built with SSL support).
 
 irccd
 -----
@@ -53,7 +53,7 @@
 irccd 3.1.1 2021-01-04
 ======================
 
-- Synchronize `ping-timeout` option in `[server]` to 1800 seconds by default,
+- Synchronize `ping-timeout` option in `[server]` to 1800 seconds by default.
 - Enable `auto-reconnect` option in `[server]` by default as specified in the
   manual page.
 
@@ -66,23 +66,23 @@
 irccd 3.0.3 2019-10-06
 ======================
 
-- Fix errors in irccdctl.conf example file,
+- Fix errors in irccdctl.conf example file.
 - Add example of password in irccdctl.conf and irccd.conf.
 
 irccd 3.0.2 2019-09-22
 ======================
 
-- Added *IRCCD_WITH_JS* CMake variable in irccd package,
-- Fixed trailing CTCP escape code,
-- Fixed invalid parameters in topic event,
-- Fixed invalid documentation of Irccd.System.usleep function,
+- Added *IRCCD_WITH_JS* CMake variable in irccd package.
+- Fixed trailing CTCP escape code.
+- Fixed invalid parameters in topic event.
+- Fixed invalid documentation of Irccd.System.usleep function.
 - Fixed invalid system configuration directory.
 
 irccd 3.0.1 2019-09-01
 ======================
 
-- Fixed an invalid template escape sequence,
-- Updated the default configuration files,
+- Fixed an invalid template escape sequence.
+- Updated the default configuration files.
 - Fix RPATH handling for private libraries like Duktape.
 
 irccd 3.0.0 2019-08-15
@@ -94,21 +94,21 @@
 -----
 
 - New sections `[paths]` and `[paths.plugin]` have been added to control
-  standard paths for both irccd and plugins,
-- Irccd no longer supports uid, gid, pid and daemon features,
-- Sections `[identity]` and `[server]` have been merged,
-- Local transports support SSL,
-- The origin in rule is now first class value,
-- New option `ipv4` in `[transport]`,
-- New option `ipv4` in `[server]`,
-- Section `[format]` is renamed to `[templates]`,
+  standard paths for both irccd and plugins.
+- Irccd no longer supports uid, gid, pid and daemon features.
+- Sections `[identity]` and `[server]` have been merged.
+- Local transports support SSL.
+- The origin in rule is now first class value.
+- New option `ipv4` in `[transport]`.
+- New option `ipv4` in `[server]`.
+- Section `[format]` is renamed to `[templates]`.
 - New commands are available as irccd arguments `info` and `version`.
 
 irccdctl
 --------
 
-- New option `ipv4` in `[connect]`,
-- New option `-o` in `rule-add`,
+- New option `ipv4` in `[connect]`.
+- New option `-o` in `rule-add`.
 - New option `-o` and `-O` in `rule-edit`.
 
 irccd-test
@@ -120,7 +120,7 @@
 cmake
 -----
 
-- CMake no longer create a fake installation directory while building,
+- CMake no longer create a fake installation directory while building.
 - All targets are placed into the `bin` directory while building.
 
 network API
@@ -132,57 +132,57 @@
 --------------
 
 - The Irccd.Timer API now runs on top of Boost.Asio and no longer have custom
-  buggy code,
+  buggy code.
 - New Irccd.Server.isSelf function.
 
 internal
 --------
 
-- The code is now based on Boost for many internal parts of the core,
+- The code is now based on Boost for many internal parts of the core.
 - The libircclient has been replaced by a simple homemade library.
 
 misc
 ----
 
-- The documentation is in pure manual pages now,
+- The documentation is in pure manual pages now.
 - All command line options are now in short form only.
 
 plugins
 -------
 
-- Introduce brand new joke plugin,
-- Introduce brand new tictactoe plugin,
+- Introduce brand new joke plugin.
+- Introduce brand new tictactoe plugin.
 - Introduce brand new links plugin.
 
 irccd 2.2.0 2017-09-26
 ======================
 
-- Add new Irccd.Util.cut function,
-- Add new irccdctl commands to edit rules,
-- Plugin plugin: add options max-list-lines, max-list-columns,
-- Import Duktape 2.1.0,
+- Add new Irccd.Util.cut function.
+- Add new irccdctl commands to edit rules.
+- Plugin plugin: add options max-list-lines, max-list-columns.
+- Import Duktape 2.1.0.
 - Fix identity.ctcp-version option.
 
 irccd 2.1.3 2017-07-28
 ======================
 
-- Rules are now case insensitive,
-- Plugin hangman, history and logger are now case insensitive,
+- Rules are now case insensitive.
+- Plugin hangman, history and logger are now case insensitive.
 - Plugin hangman: fix successive word selection.
 
 irccd 2.1.2 2017-06-02
 ======================
 
-- Fix SSL initialization error in libircclient,
-- Fix various SSL warnings,
-- Fix build on Linux with musl,
+- Fix SSL initialization error in libircclient.
+- Fix various SSL warnings.
+- Fix build on Linux with musl.
 - Fix case sensitivity in hangman and roulette.
 
 irccd 2.1.1 2017-03-07
 ======================
 
-- Fix invalid documented option transport.family,
-- Fix error when logs.type is set to console,
+- Fix invalid documented option transport.family.
+- Fix error when logs.type is set to console.
 - Fix invalid IPV6\_V6ONLY option in transports.
 
 irccd 2.1.0 2017-02-01
@@ -191,55 +191,55 @@
 irccd
 -----
 
-- Add SSL support in transports,
-- Add authentication support in transports,
+- Add SSL support in transports.
+- Add authentication support in transports.
 - Fix a warning about daemon on macOS.
 
 javascript API
 --------------
 
-- New Irccd.File.lines function,
+- New Irccd.File.lines function.
 - Various improvements in Irccd.File API.
 
 plugins
 -------
 
-- Add new format section for plugins,
+- Add new format section for plugins.
 - Add unit tests for plugins.
 
 irccdctl
 --------
 
-- Added brand new plugin-config command,
-- Added aliases,
+- Added brand new plugin-config command.
+- Added aliases.
 - Added unit tests for irccdctl commands.
 
 libraries
 ---------
 
-- Replaced jansson with Niels Lohmann's JSON library,
+- Replaced jansson with Niels Lohmann's JSON library.
 - Updated Duktape to 1.5.1.
 
 misc
 ----
 
 - Patterns can now use shell escape sequences,
-- Added .editorconfig file,
-- Split documentation into topics,
+- Added .editorconfig file.
+- Split documentation into topics.
 - The code is now split into several individual libraries.
 
 windows
 -------
 
 - Get rid of QtIFW and uses NSIS, WIX on Windows,
-- Installer have components,
-- Copy DLL files automatically into fakeroot and install,
+- Installer have components.
+- Copy DLL files automatically into fakeroot and install.
 - Added better support for cross-compiling using MinGW.
 
 irccd 2.0.3 2016-11-01
 ======================
 
-- Fix various errors in logger plugin,
+- Fix various errors in logger plugin.
 - Fix quakenet support in auth plugin.
 
 irccd 2.0.2 2016-04-19
@@ -257,12 +257,73 @@
 
 This is a major release. See MIGRATING.md file for more information.
 
+The key highlight for this release is the switch from Lua to Javascript. Lua has
+lots of drawbacks including poor versioning support which leads to too many
+`#ifdef`s in the code base to maintain compatibility over all versions. The
+Javascript engine is powered by [Duktape][] and offers proper semantic
+versioning.
+
+The Mercurial repository has been reset for this release, revisions for earlier
+versions are no longer available.
+
+general
+-------
+
+- Long options removed.
+- All notions of channel notice and channel mode have been deleted.
+- Everywhere applicable, `host` is renamed to `hostname` instead.
+
+irccd
+-----
+
+- Section `[identity]` and `[server]` have been merged.
+- Section `[format]` and plugin variants have been renamed to `[templates]`.
+- New options `uid`, `gid` and `pidfile` in `[general]` section.
+- New `[logs]` section with more features.
+- New rule system to filter events through their plugins.
+
+irccdctl
+--------
+
+- Commands start with a prefix to separate categories (e.g. `plugin-`.
+  `server-`, etc).
+- New command `watch` to get realtime events.
+
+plugins
+-------
+
+- New hangman plugin.
+- New plugin plugin.
+- Deleted antiflood plugin.
+- Deleted date plugin.
+- Deleted badwords plugin.
+
+javascript API
+--------------
+
+- New `Irccd.ElapsedTimer` API.
+- New `Irccd.Timer` API.
+- New `Irccd.Unicode` API.
+- Deleted Socket API.
+- Deleted Thread API.
+
+cmake
+-----
+
+- Option start with `IRCCD_` for better grouping in GUIs.
+- Use of `GNUInstallDirs` instead of our own macros.
+
+network API
+-----------
+
+- Use of JSON message instead of ASCII protocol.
+
 irccd 1.1.5 2015-02-14
 ======================
 
-- Fix Mac OS X build,
-- Fix null constructed strings,
-- Fix general.foreground option not working,
+- Fix Mac OS X build.
+- Fix null constructed strings.
+- Fix general.foreground option not working.
 - Windows: Lua and OpenSSL are built as DLL and copied to installation.
 
 irccd 1.1.4 2014-03-28
@@ -273,39 +334,39 @@
 irccd 1.1.3 2014-03-22
 ======================
 
-- Fix default internet socket address,
+- Fix default internet socket address.
 - Remove listener disconnection errors,
 - Updated Windows C++ 2013 redistributable.
 
 irccd 1.1.2 2014-02-26
 ======================
 
-- Fix the example in roulette documentation,
+- Fix the example in roulette documentation.
 - Fix command parsing for onCommand event.
 
 irccd 1.1.1 2014-02-15
 ======================
 
-- Fix fs.mkdir that didn't return an error,
-- Add missing optional mode parameter in fs.mkdir documentation,
-- Also add `Irccd.VERSION_PATCH`.
+- Fix fs.mkdir that didn't return an error.
+- Add missing optional mode parameter in fs.mkdir documentation.
+- Also add `irccd.VERSION_PATCH`.
 
 irccd 1.1.0 2014-01-30
 ======================
 
-- Added support for UDP sockets,
-- Added a plugin for authentication,
-- Windows irccd's home is now the irccd.exe parent directory,
-- Added new socket API for Lua,
-- Added new thread API for Lua,
-- Added support for server reconnection,
-- Added support for text formatting with colors and attributes,
-- Added support for onMe (CTCP Action) event,
-- Added new way to load plugin by paths,
-- Server:whois and server:names generate a new events instead of callback,
-- Support of connecting and disconnecting at runtime,
-- Plugin has more information, getHome() and getName() are deprecated,
-- Split irccd.util into irccd.fs and irccd.system,
+- Added support for UDP sockets.
+- Added a plugin for authentication.
+- Windows irccd's home is now the irccd.exe parent directory.
+- Added new socket API for Lua.
+- Added new thread API for Lua.
+- Added support for server reconnection.
+- Added support for text formatting with colors and attributes.
+- Added support for onMe (CTCP Action) event.
+- Added new way to load plugin by paths.
+- Server:whois and server:names generate a new events instead of callback.
+- Support of connecting and disconnecting at runtime.
+- Plugin has more information, getHome() and getName() are deprecated.
+- Split irccd.util into irccd.fs and irccd.system.
 - Added support for LuaJIT.
 
 irccd 1.0.2 2013-11-01
@@ -316,12 +377,14 @@
 irccd 1.0.1 2013-09-17
 ======================
 
-- Fixed build without Lua,
-- Improved documentation a lot,
-- Improved NSIS installer,
+- Fixed build without Lua.
+- Improved documentation a lot.
+- Improved NSIS installer.
 - Fixed basename() issue.
 
 irccd 1.0.0 2013-09-13
 ======================
 
 - Initial release.
+
+[Duktape]: http://duktape.org