|
@@ -26,12 +26,14 @@ Before you start working on a patch or a new feature, it is a good
|
|
|
idea to discuss it first with Kea developers. You can post your
|
|
|
questions to the \c kea-dev mailing list
|
|
|
(https://lists.isc.org/mailman/listinfo/kea-dev) or kea-users
|
|
|
-(https://lists.isc.org/mailman/listinfo/kea-users). Kea-users list
|
|
|
-is intended for users who are not interested in the internal working
|
|
|
-or development details. It is ok to ask for feedback regarding new
|
|
|
+(https://lists.isc.org/mailman/listinfo/kea-users). The kea-users list
|
|
|
+is intended for users who are not interested in the internal workings
|
|
|
+or development details of Kea: it is OK to ask for feedback regarding new
|
|
|
design or the best proposed solution to a certain problem, but all
|
|
|
-the internal details should be limited to kea-dev and not posted
|
|
|
-on kea-users. If you prefer to get
|
|
|
+the internal details should be discussed on kea-dev and not posted
|
|
|
+to kea-users.
|
|
|
+
|
|
|
+If you prefer to get
|
|
|
faster feedback, most Kea developers hang out in the \c dhcp
|
|
|
jabber room (xmpp:dhcp@conference.jabber.isc.org). Feel free to join this
|
|
|
room and talk to us. It is possible that someone else is working on your
|
|
@@ -39,17 +41,17 @@ specific issue or perhaps the solution you plan to implement is not
|
|
|
the best one. Often having a 10 minute talk could save many hours of
|
|
|
engineering work.
|
|
|
|
|
|
-First step would be to get the source code from our Git repository. The
|
|
|
-procedure is very easy and is explained here:
|
|
|
-http://kea.isc.org/wiki/GitGuidelines. While it is possible to
|
|
|
-provide a patch against the latest stable release, it makes the review
|
|
|
-process much easier if it is for latest code from the Git \c master
|
|
|
-branch.
|
|
|
+The first step in writing the patch or new feature should be to get
|
|
|
+the source code from our Git repository. The procedure is very easy and
|
|
|
+is explained here: http://kea.isc.org/wiki/GitGuidelines. While it is
|
|
|
+possible to provide a patch against the latest stable release, it makes
|
|
|
+the review process much easier if it is for latest code from the Git \c
|
|
|
+master branch.
|
|
|
|
|
|
-Ok, so you have written a patch? Great! Before you submit it, make sure
|
|
|
+OK, so you have written a patch? Great! Before you submit it, make sure
|
|
|
that your code compiles. This may seem obvious, but there's more to
|
|
|
it. You have surely checked that it compiles on your system, but Kea
|
|
|
-is a portable software. Besides Linux, it is compiled and used on
|
|
|
+is portable software. Besides Linux, it is compiled and used on
|
|
|
relatively uncommon systems like OpenBSD and Solaris 11. Will your code
|
|
|
compile and work there? What about endianess? It is likely that you used
|
|
|
a regular x86 architecture machine to write your patch, but the software
|
|
@@ -59,8 +61,8 @@ For a complete list of systems we build on, you may take a look at the
|
|
|
following build farm report: http://git.kea.isc.org/~tester/builder/KEA-builder-new.html .
|
|
|
|
|
|
Does your patch conform to Kea coding guidelines
|
|
|
-(http://kea.isc.org/wiki/CodingGuidelines)? You still can submit a
|
|
|
-patch that does not adhere to it, but that will decrease its chances of
|
|
|
+(http://kea.isc.org/wiki/CodingGuidelines)? You can submit a
|
|
|
+patch that does not adhere to them, but that will reduce its chances of
|
|
|
being accepted. If the deviations are minor, the Kea engineer who
|
|
|
does the review will likely fix the issues. However, if there are lots
|
|
|
of issues, the reviewer may simply reject the patch and ask you to fix
|
|
@@ -71,8 +73,8 @@ it before re-submitting.
|
|
|
One of the ground rules in Kea development is that every piece of
|
|
|
code has to be tested. We now have an extensive set of unit-tests for
|
|
|
almost every line of code. Even if you are fixing something small,
|
|
|
-like a single line fix, it is encouraged to write unit-tests for that
|
|
|
-change. That is even more true for new code. If you write a new
|
|
|
+like a single line fix, you are encouraged to write unit-tests for that
|
|
|
+change. That is even more true for new code: if you write a new
|
|
|
function, method or a class, you definitely should write unit-tests
|
|
|
for it.
|
|
|
|
|
@@ -118,11 +120,11 @@ checks on logger parameters. Use \c --enable-debug to enable various
|
|
|
additional consistency checks that reduce performance but help during
|
|
|
development. If you happen to modify anything in the
|
|
|
documentation, use \c --enable-generate-docs. If you are modifying DHCP
|
|
|
-code, you are likely to be interested in enabling the MySQL backend for
|
|
|
-DHCP. Note that if the backend is not enabled, MySQL specific unit-tests
|
|
|
-are skipped. From that perspective, it is useful to use
|
|
|
-\c --with-dhcp-mysql. For PostgreSQL, use \c --with-dhcp-pgsql. For a
|
|
|
-complete list of all switches, use:
|
|
|
+code, you are likely to be interested in enabling a database backend for
|
|
|
+DHCP. Note that if the backend is not enabled, the database-specific unit-tests
|
|
|
+are skipped. To enable the MySQL backend, use the switch
|
|
|
+\c --with-dhcp-mysql; for PostgreSQL, use \c --with-dhcp-pgsql.
|
|
|
+A complete list of all switches can be obtained with the command:
|
|
|
|
|
|
@code
|
|
|
./configure --help
|
|
@@ -130,7 +132,7 @@ complete list of all switches, use:
|
|
|
|
|
|
@section contributorGuideReview Going through a review
|
|
|
|
|
|
-Once all those are checked and working, feel free to create a ticket for
|
|
|
+Once everything is checked and working, feel free to create a ticket for
|
|
|
your patch at http://kea.isc.org/ or attach your patch to an existing
|
|
|
ticket if you have fixed it. It would be nice if you also join the
|
|
|
\c dhcp chatroom saying that you have submitted a patch. Alternatively,
|
|
@@ -143,12 +145,12 @@ take a while sometimes. Having said that, we value external
|
|
|
contributions very much and will do whatever we can to review patches in
|
|
|
a timely manner. Don't get discouraged if your patch is not accepted
|
|
|
after first review. To keep the code quality high, we use the same
|
|
|
-review processes for internal code and for external patches. It may take
|
|
|
+review processes for external patches as we do for internal code. It may take
|
|
|
some cycles of review/updated patch submissions before the code is
|
|
|
finally accepted. The nature of the review process is that it emphasizes
|
|
|
areas that need improvement. If you are not used to the review process,
|
|
|
-you may get the impression that the feedback is negative. It is not. We
|
|
|
-seldom see reviews that say "all ok, please merge".
|
|
|
+you may get the impression that the feedback is negative. It is not: even
|
|
|
+the Kea developers seldom see reviews that say "All OK please merge".
|
|
|
|
|
|
Once the process is almost complete, the developer will likely ask you
|
|
|
how you would like to be credited. The typical answers are by first and
|
|
@@ -163,7 +165,7 @@ If you are interested in knowing the results of more in-depth testing,
|
|
|
you are welcome to visit the Kea build farm:
|
|
|
http://git.kea.isc.org/~tester/builder/KEA-builder-new.html. This is a
|
|
|
live result page with all tests being run on various systems. Besides
|
|
|
-basic unit-tests, we also have reports from Valgrind (memory debugger),
|
|
|
+basic unit-tests, we also have reports from valgrind (memory debugger),
|
|
|
cppcheck and clang-analyzer (static code analyzers), Lettuce system
|
|
|
tests and more. Although it is not possible for non ISC employees to run
|
|
|
tests on that farm, it is possible that your contributed patch will end
|