Server Network Specs News

Updates and Long Time No See!

01 Apr 2018

Hey there, stranger! Long time no see.

So it’s been about four months since any proper releases, and a good half a year since any posts. We haven’t been dead and there’s been a bunch happening in the background, which I’m gonna quickly go through.

Right now we’re working on v0.11.0, probably the biggest release since the initial one, v0.1.0. We’ve already had an alpha for it, and we’re almost certainly gonna have a beta before it gets pushed out proper, because there’s a lot of significant, wide-ranging changes. Here are the most important ones:

Translations

Oragono now supports other languages! That is, the server-sent messages (such as “are supported by this server” and “Account created”) can be in other languages, but regular privmsgs/notices sent by other users are left alone. Currently, we’ve got a Brazilian Portuguese translation thanks to Alexandre Oliveira, a French translation thanks to Joshua, and a Turkish translation thanks to Yaser!

This functionality’s provided by the LANGUAGE command proposed by Sadie. If you’re interested, you can find the spec I’ve been working off and updating here.

To do the actual translations we’ve been using CrowdIn, an absolutely awesome service that provides free resources for open source projects. If you know another language and you’d like to give it a shot, here’s our CrowdIn page:

https://crowdin.com/project/oragono

NickServ / Accounts

You can now use NickServ to register and login to your account! In addition, as a server owner you can force email verification for new accounts. You can also enforce nickname ownership, allowing your users to force it so that only they can use their nick on your server.

All in all, lots of cool changes in NickServ.

Fakelag

Similar to other servers, we now support a feature called ‘fakelag’. Essentially, if someone pastes the collected works of William Shakespere, it’ll restrict them before it starts negatively affecting the server. Thanks to some other backend socket rewrites, it’ll also kick them off the network if they send too much data in one line, matching how other servers do things there.

Fakelag is disabled by default while we work out the kinks, but we should have a beta with it out soon. Feel free to yell or submit issues if there’s any trouble with it!

New Spec Support

We now properly support IRCv3 Labeled Responses. This was a bit of a nightmare to implement, and required rewriting a lot of lines of code, but very worth it. The code’s much cleaner now thanks to this!

Along with the above language proposal, we also support the resume extension (submitted by myself). The resume extension aims to simplify reconnection for users, removing the need to go through the /NS GHOST process after disconnecting and reconnecting.

Backend Rewrites and Improvements

There’s a lot of changes and improvements in the backend: the labeled-responses rewrite forced us to handle command replies in a more sane way; we now format message IDs in a better way; we now support exposing a debug pprof endpoint; and we can now expose a unix listening socket.

Overall, lots of positive changes. Should be more stable, more useful to the IRCv3 WG, and more useful to our regular server owners / users in general.

What’s Next?

Well, next is doing some additional testing on the new features and getting a beta of v0.11.0 out. After that beta’s been tossed around a bit and I’m pretty happy to release a new version… it’s time to cut a new release!

Thanks for sticking with me through these few years, and for everyone new that’s came and said hey, helped out, used the project or simply stopped by the site and github repo. I hope Oragono keeps being useful for whatever you’re using it for – whether it’s public or private :)

If you have any trouble, feel free to talk to us in #ircdocs on Freenode, or email me at daniel@danieloaks.net. Always happy to help out, fix bugs, or better support new use cases!