Contributing

If you want to help out and make UnrealIRCd a better product, you can contribute in several ways. Chances are high you can find something that suits you below.

Important: in 2022 onwards our focus will be on UnrealIRCd 6. So be sure to target UnrealIRCd 6 and not UnrealIRCd 5 if you are programming, testing or providing translations.

= Reporting bugs and suggestions = You can report bugs at the bugtracker. Report:
 * 1) What you did (if you know)
 * 2) What happened
 * 3) Why you feel this is a bug
 * 4) Any other additional information you think is possibly relevant

Do you have a nice suggestion or feature enhancement in mind? Submit it at the bugtracker as well:
 * 1) Explain the feature itself
 * 2) Explain why you feel it would be useful: give an example or scenario where it would be useful

= Testing = Testing is very important so we really appreciate it when people test UnrealIRCd. Link in a test server or run a test network. Use the latest beta/rc or simply latest git. This helps us catch problems early, before they end up in actual releases, saving a lot of trouble for other users!

= Programming =

Getting started
The Doxygen docs show the UnrealIRCd API. This may be a good place to start if you are looking for something in particular (used as a reference guide).

Most of our docs regarded to programming assume you are writing a 3rd party module, eg:
 * Dev:Module has some good words on how to start, including an howto on writing your first 3rd party mod
 * Dev:Module API contains some of the module API

In general, reading existing UnrealIRCd code may help understanding how things work in UnrealIRCd. It's usually best to read something clear and self-contained, like a module (or a 3rd party module).

Discussing changes
If you have a feature suggestion or plan to do some major cleaning/rewriting existing UnrealIRCd code, then it is usually best to discuss beforehand on the bugtracker. This way the main coders may still suggest to do things in a particular way or indicate that we don't want such a change.

If you only have a small change (eg. less than 1 hour of work) then you can submit a patch immediately, see next.

Submitting patches
You can submit patches either as a Pull Request (PR) on GitHub or by attaching a patch file (diff -u) at a bug item at the bugtracker.

IMPORTANT: Unless your bug is UnrealIRCd 5 specific, we would prefer if you target the patch for branch. UnrealIRCd 5 is bugfixes-only until June 1, 2022 and after that will be security-fixes-only until June 1, 2023. Your patch may still be backported, if necessary.

Coding third party modules
A nice way to interact with the UnrealIRCd source is writing your own 3rd party modules.


 * Dev:Module has some good words on how to start. It is basically an howto on writing your first 3rd party mod.
 * Dev:Module API contains the module API
 * The Doxygen docs are a great reference that you will likely use
 * In practice, you will probably also look at other existing (3rd party) modules

If you end up with something nice, then see also next question on submitting your module.

Submitting third party modules
If you wrote a 3rd party module that you think is useful for others, then you can submit it for inclusion in unrealircd-contrib.

This means your module will be listed at modules.unrealircd.org and users can use

= Documentation = The documentation is just as important as the software itself. We do our best to keep it up to date, but help and translations are always welcome!

What can you do?
 * You can sign up for a wiki account. All requests are manually approved by staff.
 * After approval you can edit pages to make them better: fix things that are wrong, add missing items, and so on. If you plan to do major changes then it's better to contact [mailto:syzop@unrealircd.org Syzop] before you start.
 * Translators are always welcome for the wiki pages, see Translating UnrealIRCd wiki pages on how it works.
 * In practice the UnrealIRCd docs are so big that people translate only 10% at most
 * Best strategy may be to only translate the most important pages. Then, focus on keeping those translations up to date as time passes.
 * Translations for  and   are welcome too.
 * Be sure to pick the latest (English) version as a base. We also require you to keep them up to date the next year(s).
 * See  for more information on the process. In short: simply email [mailto:syzop@unrealircd.org Syzop]

= Support = You can help out others at the forums or on IRC:
 * Hang out at  at irc.unrealircd.org. Then, whenever you feel like it, look at the screen and respond to any questions that users may have
 * Similarly, register at the forums and help users if they have a question

= Donate = You can also donate to the project using PayPal. Please only do so if you can spare the money. Not donating is totally fine!