News

New documentation process

Added by David Demelier almost 4 years ago

New documentation

The current documentation is on the wiki.

This offers the following benefits:

  • Instant fixes, improvements
  • Easy access and well integration with other redmine stuff

But it also has very awful drawbacks:

  • Changes in the API are painful to mark
  • Offline reading is not possible
  • Adding new functions must be done as quickly as possible

New model

At the very beginning, irccd's documentation was written with AsciiDoc and LDoc. This was nice but also very limited. By the way, it was very difficult to make homogeneous style. AsciiDoc templates and CSS were very hard to edit and LDoc was broken at each update.

I'm currently experimenting the very great tool pandoc, it can converts many formats but the most popular one within pandoc is markdown.

The idea is to document each Lua API function, each irccd event and all books with CMake + pandoc chained.

The major benefits by using pandoc are:

  • Templating very flexible
  • Multiple output formats (HTML, PDF)
  • Markdown editing

So we will be able to publish all irccd documentation to its official page and that will be very well integrated (I hope).

I'm currently porting all API functions and testing it locally. Stay tuned.

Future of irccd

Added by David Demelier almost 4 years ago

The future of irccd

The last two months were a bit forgotten regarding irccd's development. I may say that the current irccd 1.1.4 is already nice but it still lacks some features that are addressed in the next release irccd 1.2. However, I plan several major changes in the far future.

Irccd 2.0

Irccd 2.0 will use ECMAScript for developing plugins. The reason behind this major change is simple. I just do not like the Lua authors decisions in Lua's development. I want irccd to be future proof, to make plugins compatible in a long term way and with Lua, each release may completely break existing plugins.

Of course, one may arg "just stick with one precise version of Lua and never change", it is viable; but it also mean that in the next years, users will not be able to get new features from Lua and even worse, if any possible Lua bug is present in the selected version, there is no chance to get it fixed.

That's why irccd 2.0 will switch to ECMAScript, the current implementation selected is duktape. It is great, very small, very well documented and the author is nice and pleasant. Irccd 2.0 will completely remove Lua support but the API will be as much as possible close to the original Lua API.

Irccd 2.0 is planned for december 2015.

Irccd 1.2

Irccd 1.2, currently planned january 2015 and will be the last version with Lua support enabled. This version will have a long term support which will end in january 2016. The current features that are already implemented:

More are shown in the version 1.2 page

1.1

Added by David Demelier over 4 years ago

We are very glad to announce the availability of the 1.1 release. After more than 5 months of work, it is finally here.
This new version brings a lot of new features that makes irccd even more fun than before.

Lua API

The Lua API is one of the most evolved feature in this release.

New thread API

Irccd has always worked with events. It was not possible to create plugins writing or processing something
by themselves without events. With the new thread API, it is possible to create almost everything you
want without any event.

Unfortunately, there is no standard ways to pass data between multiple Lua states so a related
pipe API has been added.

These new API have been added through:

New filesystem and system API

For a while, irccd.util library was a big library with miscellaneous functions. Now the library has been cleaned up. Some function have
been deprecated and others have been moved through brand new packages:

Socket API

If needed, irccd can now speak low level sockets. This can be used to send raw message to standard protocols
such as SMTP, HTTP and such. It's has been designed on top of the socket source code and it tries to be as close
as possible to the C interface.

The socket API also adds a listener object that is a wrapper of the select(2) system call and socket address
management for convenience.

This API has been added through:

Irccd improvements

Server reconnection

Irccd can now try to reconnect to a server when the connection has been closed. It is enabled by default and retry
to connect every 30 seconds indefinitely. However, irccd may not detect if the server dies and does not try reconnect. For this
issue, an irccdctl command has been added to force a server reconnection.

The new command is irccdctl restart.

On the fly connecting

It is now possible to connect to a new server while irccd is running. The irccdctl utility has a new command called connect
for that feature.

A new Lua function also has been added through irccd.server.connect.

Of course, an irccdctl command has been added to disconnect from a server.

Text formatting

A new function irccd.util.format has been added to format message with colors and optional attributes. This is
added as a convenience, to avoid the heavy usage of escape sequences.

Please notice that not all servers support that.

New plugin Auth

The new plugin Auth can be used to authenticate automatically irccd to services such as
nickserv and Q from quakenet.

New plugin Date

A very light Date plugin has been added to show the current operating system date.

Breaks and deprecations

Irccd 1.1 has deprecated some functions. The major changes are the Server:whois
and Server:names functions

See the migration guide for details.

Miscellaneous changes

  • (Windows only) the irccd home directory is now the parent directory of irccd.exe.
  • Function onMe is finally working.
  • The library libircclient is now part of irccd and no longer a requirement.
  • LuaJIT can be selected as an alternative to Lua 5.2

1.0.1

Added by David Demelier about 5 years ago

Irccd 1.0.1 has been released on September 17, 2013.

Various issues has been fixed:

  • Fixed build without Lua,
  • Improved documentation a lot,
  • Improved NSIS installer,
  • Fixed basename() issue.

1 2 3 (21-26/26)

Also available in: Atom