This document is a small guide to help you migrating to a next major version.
- The
irccd.conf
is now using a custom syntax. - There are no longer TCP/IP transports. SSL support for transports has been removed too. Only clear UNIX socket are available, use file permissions instead of a password.
- There is no longer configuration file because it now use a plain UNIX socket
to /tmp/irccd.sock by default (may be changed through the
-s
option). - Aliases have been removed, please use shell scripts or aliases instead.
- The
watch
command no longer produce JSON output but only the original "human" format but may be used for scripts as it is honored through the semantic versioning. - The command
rule-info
has been removed because it is mostly the same asrule-list
. - The command
server-mode
signature has changed because it was mostly unusable before.
Windows support is now completely obsolescent because the code make excessive use of POSIX APIs.
The network protocol no longer uses JSON but a plain text syntax with one line per command.
Example:
SERVER-MESSAGE freenode #staff hello world
SERVER-LIST
- The property
Irccd.version
and their properties have been renamed toCamelCase
for consistency with other constants from other modules.
- The method
File.readline
is no longer marked as slow. - Methods
File.lines
,File.read
,File.readline
andFile.seek
, now throw an exception if the file was closed.
- The
Chrono.elapsed()
method is now a property namedelapsed
. - All methods have been removed except
Chrono.reset
.
- The method
Util.ticks
as been removed. - The method
Util.cut
now throws aRangeError
exception if the number of lines exceedmaxl
argument instead of returning null.
- The property
channels
in the object returned fromServer.info
is now an array of objects which also contain a list of nicknames present in the channel. - The property
channels
in the object for theServer
constructor now takes an array of objects containing two properties each:name
andpassword
which must be string (password is optional). - The property
commandChar
which is provided in both theServer
constructor and theServer.info
returned object has been renamed toprefix
. - The event
onMode
now takes four arguments: server, channel, mode and list of arguments to the mode. The previous signature was mostly unusable. - The method
Server.mode
has a different signature because it was mostly unusable.
logger
- Due to the
onMode
change the templatemode
no longer takeslimit
,user
andmask
but a stringargs
instead.
- Long options have been removed.
- The option
reconnect-tries
has been removed from[server]
section, useauto-reconnect
boolean option instead, - The option
reconnect-timeout
has been renamed toauto-reconnect-delay
. - The section
[identity]
has been removed, instead move those values inside each server in their[server]
section. - The section
[format]
and their respective plugin counterparts are renamed to[templates]
.
- Long options have been removed.
- The functions
server-cnotice
andserver-cmode
have been removed, useserver-notice
andserver-mode
instead, - The option
connect.host
has been renamed toconnect.hostname
, - The output style has been unified,
- Options
-S
in server-connect have been removed, also the port option is now specified with-p
instead of a positional argument. - Connection options are now order dependant and must be set before the command name.
- The keyword
source
has been removed and replaced bychannel
, - The keyword
origin
has been added, - Formats
cnotice
,cmode
,query
have been removed. - The option
path
has been renamed tofile
.
- The requests
server-cnotice
andserver-cmode
have been removed, useserver-notice
andserver-mode
instead, - The request
server-mode
command requires a new argumentchannel
. - The property
host
in requestserver-connect
has been renamed tohostname
, - The request
server-info
sendshostname
property instead ofhost
, - The event
onWhois
sendshostname
property instead ofhost
,
- All options are now starting with
IRCCD_
for better compatibility with external projects, - CMake now use GNUInstallDirs module to specify installation paths, all IRCCD_WITH_ options have been replaced by CMAKE_INSTALL_ equivalents.
- The default plugins path has been changed from share/irccd/plugins to lib(arch)/irccd.
- The events
onChannelMode
andonChannelNotice
have been removed, plugins must useServer.isSelf(target)
to determine a channel/private message, - The event
onNotice
takes a newchannel
argument, - The event
onMode
takes newchannel
,limit
,user
,mask
arguments, - The object information in
onWhois
event now hashostname
property instead ofhost
.
- The module
ElapsedTimer
has been renamed toChrono
, - The method
Chrono.restart
has been renamed toChrono.resume
to reduce ambiguity, - The method
Chrono.reset
has been removed, just useChrono.start
instead when you want to start accumulate time again.
- The property
Directory.count
has been removed.
- The methods
Server.cmode
andServer.cnotice
have been removed, useServer.mode
andServer.notice
instead, - The method
Server.mode
requires a new argumentchannel
, - The object returned in the method
Server.info
now has ahostname
property instead ofhost
. - The property
host
in constructorServer
has been renamed tohostname
, - The property
sslVerify
inServer
constructor has been removed.
The following properties in Irccd.Plugin
has been renamed:
- cachePath renamed to paths.cache,
- configPath renamed to paths.config,
- dataPath renamed to paths.data.
Note: these paths are no more automatically detected and set with the new
[paths]
and [paths.<name>]
sections.
- The property
host
in the functionIrccd.Server
has been renamed tohostname
.
- The function
Irccd.System.name
has now well defined return value.