[IRCServices] Version 5's features

Andrew Church achurch at achurch.org
Thu Sep 27 16:42:01 PDT 2001


>ok, so we have all been sitting around awaiting the arrivial of Services 
>Version 5, but exactly what new features will it have? we have heard you 
>concider loads of new features, but which have you decided?
>I bet i'm not the only one asking this question Andrew, and i know u do a 
>good job.. but...?

     Well, to be honest I'd hoped to get a beta version ready in the near
future and surprise everyone with all the new stuff, but as usual things
aren't moving as quickly as I'd hoped, so for the time being, here's the
tentative (as in everything I've done so far) What's New section for 5.0.
Note that this isn't complete by any means; there's still plenty left in
the TODO file, and I'm deciding whether to add them or not on an item by
item basis, so the list below will probably grow, but this should be good
for starters.  Note: PLEASE do not spam me with "please add feature X"
where X has already been requested before (check the TODO file).  Doing so
won't make it any more likely that I'll add it, and I may even decide not
to add it just to spite you.

     If this doesn't seem like a very long list, well, it's not (yet).
That's mainly because module support has required restructuring and/or
rewriting a large part of the Services code, which already stands at over
30,000 lines of code--not even including language files--and that takes a
lot of time, particularly trying to figure out the best way to restructure
it (and I'm not even convinced I've done that yet, but if not, I guess
there's always version 6.0).  As always, patience, please.

  --Andrew Church
    achurch at achurch.org
    http://achurch.org/

------------
Version 5.0:
------------
The single biggest addition to this version of Services is module support.
This allows the various functions of Services to be added to and modified
without having to touch the main source code itself.  Modules also provide
much more flexibility in configuring Services; IRC server support and
database file format can be selected by simply loading the appropriate
module, and you can even choose which of the pseudoclients (NickServ,
ChanServ, etc.) you want available.  See the example configuration files
in the "data" subdirectory and the "README.modules" file for more
information.

Services is now capable of sending mail.  Currently, this functionality is
used by the new "authorization" feature of NickServ (in the
"nickserv/mail-auth" module), which sends a message to a user upon nick
registration or E-mail address change and requires the user to "authorize"
their nickname with a random numeric code included in the message before it
is recognized as a valid registered nick by Services.  In the future,
forwarding of memos to an E-mail address is also planned to be added.

Also, nickname links have been redesigned for simplicity and robustness.
In the new linking system, nicks are organized into "groups" which share
settings the way linked nicks did in previous versions.  The LINK command
has changed as well: instead of creating a link from the current (unlinked
but registered) nick to a registered master nick, the link is made from the
current registered nick to a new (unregistered) nick, to simplify
registration of multiple links at once and to offer slightly better
protection against "rogue links" created by guessing nick passwords (though
as always, the best defense is to use good passwords).  The old behavior of
the LINK command is still available through the "nickserv/oldlink" module.

Please see README-5.0 for important information if you are upgrading from
version 4.x or earlier.

Other changes:
  + Services now records the last time an autokill was triggered.
  * The configuration file has been changed to accommodate modules;
	services.conf now contains only options related to core Services
	functionality, while module-related options (including NickServ,
	ChanServ, etc. settings) are in a new file called "modules.conf".
	Many options have been removed or changed; see the example
	configuration files for details.
  * Channel autokicks specified by nickname will now work for that nick
	only, not for any nicks linked to it.
  * Newly-registered nicks will now always use the default language set in
	config.h, even if that language is changed after registration.
  * The deprecated CheckClones functionality has been removed in favor of
	session limiting.
  * The configuration script "configure" now asks fewer questions, and can
	be completely automated if the "-prefix" option is used.
  * "configure" now understands GNU-style long options, e.g.: --prefix=/usr