Contribution

OpenDNSSEC is free and openly available on our website. You can almost do whatever you want with the software because of the BSD-license. But at some point in time you might feel that you want to contribute something back to the project.

The rest of this page will explain how you can contribute to the project and also a list of different items that we currently need help with.

Prerequisites

It is important that you have a good knowledge of what OpenDNSSEC is and how it works. This knowledge can be obtained by reading through the website and the documentation. It is also recommended that you have used OpenDNSSEC for a period of time. Feel free to ask any questions on the user’s list.

Bug reporting

The easiest way of contributing to the project is by running the software and then testing it against your use cases and environment. At some point you might find a case where it does not behave as expected. This means that you probably have found a bug in the software.

You can report the bug by creating a ticket. Please provide as much details as possible, so that we can recreate the problem and thus be able to fix it. E.g. the steps taken, input data, OS, versions, revision, etc.

Sending patches

What would be even more helpful is if you can send in a patch, which fixes the bug that you have found. Just create a ticket in the same way, as you would do for a regular bug report.

A patch is not only for bug fixes; they can also be used for improvements or new features. So do not hesitate to come with new improvements to the code.

Write privileges to the GitHub repository

Only the main developers have write privileges to the GitHub repository. But we may grant you access when we are getting tired of applying all of your patches.

Request features

The project group does not represent all the types of users, so it might be that we are missing some special requirements or features. Make sure that you write a good description of it and post it as a ticket to us. We will then review your suggestion and maybe place it somewhere in our development backlog.

Donations

We welcome donations in hardware (e.g. different types of HSM:s that we can us for testing) and monetary donations.

Unfortunately the formal framework for accepting donations has not yet been built: currently the opendnssec project is a collaboration between various organizations and there is no single organization to donate to. If you have a donation to make please contact rickard.bellgrim@iis.se and we’ll work out how to organize your contribution.

In the mean time we will be working on an OpenDNSSEC organizational umbrella.

Becoming a full member

The current feeling within the project group is that we now have a good set of core developers. But you are welcome to discuss your commitment with us, so that we can see what we can do together in the future.

Todo-list

The list below is a set of tasks that you can help us with. If you want to help us with any of this, then please contact us and we can give you more information.

- Sending DNSKEY/DS to parent zone

We already have an EPP-client that can send keys to the parent using EPP. But it is still considered as experimental.

* We need more testing.
* Adjusting the layout of the configuration to match the other configuration files.
* Add support for SHA256 DS RR and an option for the user to choose what it should send.
* Add an option to only send DNSKEY for the registries that only accept DNSKEY RR and not DS RR.

- External API

We see that OpenDNSSEC is going to be integrated with other system e.g. a registrar system. It is thus important that you can integrate OpenDNSSEC easily. We currently only have command line tools and we need to investigate if this is sufficient or if you need some kind of library that other software can talk to. Or it could be the case the we only need to make our command line tools better.

- Web interface

If we are not integrated with other tools, then it can help the user with a graphical interface. We are thinking of a web interface where you can manage OpenDNSSEC. Once we go in this path, we might also need zone editing, etc. Thus getting closer to an IPAM/registrar solution.

- Testing

There are different types of tests that we perform on the OpenDNSSEC. Unit, system, acceptance, and security testing. Unit testing is done by the developers. System testing is done manually. Acceptance testing is done by SIDN. The security testing involves code analysis, memory tests, and peer reviewing. It is the system testing that needs improvement. We are currently setting up a Hudson automated build and test environment. Someone needs to take this work and evolve it. Set up different build environments and write more tests.

- Documentation

We currently maintain the documentation in our TRAC-system. And when we have a release, then we replicate this to the main website. We feel that we would like a better way of handling the documentation. It should be easy to maintain the documentation using multiple users. Export it to multiple formats. And also keep documentation for older releases. Besides the system, we would also like to reorganize the documentation. Make it more user friendly and logical. Better descriptions.