Log in | Back to darenet.org

Development Team

(Helpers)
m (ircd-darenet)
 
(168 intermediate revisions not shown)
Line 1: Line 1:
-
{{notice | text= This document mostly pertains to the IRCd & Services sub-teams of the Development team.}}
+
__NOTOC__DareNET's development team is dedicated to actively maintaining and developing the software that's running the network. The team can be reached via email at dev@darenet.org or in [https://webchat.darenet.org/?channels=dev #dev].
 +
== Development Projects ==
-
This document gives a brief breakdown on how DareNET's development team, in regards to IRCd & Services, should work. It shall be the reference set of rules used by the team.
+
DareNET currently develops the following projects:
-
== Tasks ==
+
=== ircd-darenet ===
-
The DareNET Development Team (hereafter called dev-team or simply 'the team') is in charge of maintaining, debugging, upgrading and improving the code of ircd-darenet, including protocol used for server<>server communication and for client<>server communication, the code related to additional services linked as different daemons (such as services-darenet) where it is considered desirable by the Executive Board, and the documentation of all the above.
+
Latest release: 2.0.6
-
It is formally accepted that code produced by the team is to be considered closed source, and is not to be distributed outside of DareNET's Operations Department.
+
ircd-darenet 2.x is a fork of the Undernet Universal IRC daemon (u2.10.12 branch), also known as [http://coder-com.undernet.org ircu], and contains various code from Quakenet's [http://dev.quakenet.org snircd] patchset. Some of DareNET's patches include SSL encryption (both server<>server and server<>client), configuration includes, persistent channels, partial IRCv3 support, fakehosts and remote server and user management.
-
Similarly, it must be clear that the main scope of the team is to develop the code for DareNET, so only those changes, features or services used by DareNET are part of the work of the team.
+
=== evo ===
-
== Goals ==
+
Latest release: 1.0.0
-
The major goals of the team are (in descending order of priority):
+
Evo is our account and channel management services running on DareNET, which was forked from GameSurge's [http://www.srvx.net srvx] services. Some of DareNET's patches include channel quotes, title management (HostServ), stronger password hashing, additional channel and user management options, web integration and more.
-
* Diagnosing and removing bugs in the current code.
+
=== lua-mafia ===
-
* Improving the performance of the server code used for DareNET.
+
-
* Making the codebase more stable, more consistent, and likewise, more maintainable.
+
-
* Documenting both existing and newly written code.
+
-
* Adding services and features while keeping backwards compatibility with existing servers, clients and formal or informal standards.
+
-
* Developing new features for client use in cooperation with the developers of the major IRC clients.
+
-
== Members ==
+
DareNET's implementation of the widely popular Mafia party game (also known as Werewolf). You can play in [https://webchat.darenet.org?channels=#mafia #Mafia]. You'll need a registered account, which you can get [https://www.darenet.org/signup here] (don't worry, it's free!).
-
The team has different kinds of members with different roles: a manager, a small group of senior coders, and a group of helpers (hopefully ;p ).
+
== FAQ ==
-
=== Development Manager ===
+
=== Where can I download projects? ===
-
The Development Manager shall oversee the Development Team and its three (3) sub-teams: IRCd, Services and Web. For the purpose of this document, we are only concerned with IRCd and Services.
+
Most of our patches to [http://www.qwebirc.org qwebirc] have been incorporated upstream.
-
The manager is the one responsible for keeping the integrity of the codebase. He or she (hereafter labeled "he" for brevity, not sexism) must be a experienced coder and know the internals of the server in detail.
+
Our other projects, including those listed on this page, are highly customized to our network and so publishing them would not make much sense. While we may eventually release ircd-darenet, your patience is required until it happens. In the mean time, we recommend taking at look at the following projects (in no particular order), for IRC daemons and services with comparable feature sets:
-
The manager is the only one who has direct shell access to SVN (minus Executive Board members) and is responsible for maintaining and administering the repository. It is one of his major duties to keep things sync'd and verify that any change doesn't break the code or protocol. The manager, of course, may attempt to reduce his workload by distributing what can be delegated to others.
+
* [http://www.atheme.org/project/charybdis Charybdis]
 +
* [http://dev.quakenet.org snircd]
 +
* [http://evilnet.sf.net Nefarious ircu]
 +
* [http://srvx.net srvx]
 +
* [http://www.atheme.net/download-atheme.php Atheme IRC Services]
 +
* [http://evilnet.sf.net X3]
 +
* [https://hg.quakenet.org/newserv newserv]
-
The manager's decisions about actual coding matters take place with a "silent agreement" procedure.
+
=== I found a bug, where can I report it? ===
-
=== Senior Coders ===
+
Please send any bug reports to dev@darenet.org. We can also be reached in [https://webchat.darenet.org/?channels=dev #dev] on the network.
-
Senior coders are the most experienced and trusted coders that put the biggest effort into ircd-darenet and services-darenet development. They are the only other members of the team that have commit access to the svn repository. The manager is implicitly a senior coder.
+
=== How do I get involved with DareNET Development? ===
-
=== Helpers ===
+
If you're interested in contributing to one of DareNET's projects, whether it be with actual development or improving documentation, drop us a line at dev@darenet.org. If you have a GitHub, Bitbucket, Sourceforge, etc. profile, feel free to include links to those as well.
-
 
+
-
Everyone willing to contribute to the work of the team can be a helper simply by creating a dev.* account, and pariticipating on the forums.
+
-
 
+
-
Helpers do not have commit access to the svn repository, and they can't submit patches directly to the manager (if their are other senior coders on the team). Instead, they must follow the specific procedure described below to do it, in order to save some of the manager's time when checking in patches.
+
-
 
+
-
Tasks of the helpers include:
+
-
 
+
-
* Trying to help those who have trouble running or compiling the daemon and answering the easier questions asked on the forums.
+
-
* Replying to those who make fuzzy feature-requests on the forums and eventually trying to interpret such requests and find out if/how they can become realistic proposals for code changes.
+
-
* Working on the documentation of the code.
+
-
 
+
-
== Procedures ==
+
-
 
+
-
Procedures for the tasks of the team should be kept as simple and informal as possible, however, a minimum number of organizational details and formalities are needed to keep control.
+
-
 
+
-
Any decision taken by the team follows one of these three paths: silent agreement, informal voting, or formal voting. The idea is that if there are not severe objections for something, it can be decided with silent agreement (that is, agreement is not reached if there are any objections). If some objection arises, an informal voting is asked by the manager on the closed dev@ list, and only as a last resort and/or for really major decisions the manager may issue a formal cfv.
+
-
 
+
-
Moreover, most common actions of the team should follow a defined procedural path, thought to simplify things and improve the stability of the code produced, its consistency, and the cooperation within the group.
+
-
 
+
-
=== Approval of Patches ===
+
-
 
+
-
Patches can be submitted by anybody, but the path they follow before being approved changes based on who proposes them.
+
-
 
+
-
Patches are those code submissions that don't severely alter the "behavior" of the server but only how it internally works; major changes follow a different procedure described later.
+
-
 
+
-
A patch must be submitted with a separate description section that includes standard header fields, and the actual patch should be in "diff-rc3" format. The manager can ask that the description of the patch and other information are provided in a standard form that can be somehow automatically processed and archived, if he so chooses.
+
-
 
+
-
When a patch is prepared by one of the senior coders or from one of the trusted helpers, he can send it directly to the manager or, preferrably, send it to the dev@ list (and it is advisable that he let the dev@ list know what he is up to before writing the patch). The manager should quickly verify it and then follow one of the following three steps. If the patch seems ok to him, the senior coder puts it in the repository. Otherwise, the manager could have found some problem with the patch, in which case he can either discuss privately the issue with the author until they find an agreement or ask for an informal vote on the list while keeping the patch suspended.
+
-
 
+
-
Finally, when a patch is submitted by a helper he has to contact first one of the senior coders, who will act as a "sponsor" for the patch and has the duty of verifying its behavior, personally testing it, checking for interference with other parts of the code, and fixing problems. If he finds the patch working and helpful, he posts it as "written by x, verified by me." This is to save the manager from the work of checking patches that are broken, unacceptable, or that break the protocol of the choices made by dev-team.
+

Current revision as of 21:48, 25 June 2014

DareNET's development team is dedicated to actively maintaining and developing the software that's running the network. The team can be reached via email at dev@darenet.org or in #dev.

Development Projects

DareNET currently develops the following projects:

ircd-darenet

Latest release: 2.0.6

ircd-darenet 2.x is a fork of the Undernet Universal IRC daemon (u2.10.12 branch), also known as ircu, and contains various code from Quakenet's snircd patchset. Some of DareNET's patches include SSL encryption (both server<>server and server<>client), configuration includes, persistent channels, partial IRCv3 support, fakehosts and remote server and user management.

evo

Latest release: 1.0.0

Evo is our account and channel management services running on DareNET, which was forked from GameSurge's srvx services. Some of DareNET's patches include channel quotes, title management (HostServ), stronger password hashing, additional channel and user management options, web integration and more.

lua-mafia

DareNET's implementation of the widely popular Mafia party game (also known as Werewolf). You can play in #Mafia. You'll need a registered account, which you can get here (don't worry, it's free!).

FAQ

Where can I download projects?

Most of our patches to qwebirc have been incorporated upstream.

Our other projects, including those listed on this page, are highly customized to our network and so publishing them would not make much sense. While we may eventually release ircd-darenet, your patience is required until it happens. In the mean time, we recommend taking at look at the following projects (in no particular order), for IRC daemons and services with comparable feature sets:

I found a bug, where can I report it?

Please send any bug reports to dev@darenet.org. We can also be reached in #dev on the network.

How do I get involved with DareNET Development?

If you're interested in contributing to one of DareNET's projects, whether it be with actual development or improving documentation, drop us a line at dev@darenet.org. If you have a GitHub, Bitbucket, Sourceforge, etc. profile, feel free to include links to those as well.