This is a short message to note recent changes in the development process. We've managed to get the server to build with *zero* compile-time warnings. This is the culmination of a nearly 15 year-dream. We're now working on getting it to build with zero issues noted by clang analyzer and Coverity. Most of the issues left can be fixed by adding asserts. i.e. telling the analyzer that "no, this pointer can't be NULL. So it's OK to de-reference it". We now have unit tests in src/tests/. These are tests for: - attribute encoding / decoding - functionality for "unlang" keywords - basic authentication methods Each commit that is pushed to github gets built via travis (https://travis-ci.org/FreeRADIUS/freeradius-server/) The three maintained branches are all built. v3.0.x and "master" have 4 builds each. Two builds are with clang / gcc. The other two builds are clang / gcc, but without threads, OpenSSL, and some other functionality. A "cron" job submits every nightly build of the "master" branch to Coverity. Any new issues are flagged immediately via email, and fixed. This is all good news. However, it's not enough. Ten years ago (!!!) Release 1.0.0 had 50K LoC. Today, Release 3.0.1 has 89K LoC. (Which is smaller than Release 2.2.3, but has more functionality.) All of that new code adds new code paths, and new functionality to test. There are *large* portions of the server which are only tested in the field, by users. That's bad. We'd like to have more automated tests, but that requires time and effort which is not available right now. Still, we've come a long ways. The server continues to be used *everywhere*. If you see a RADIUS solution from a smaller switch or AP vendor, odds are that it's FreeRADIUS. It's used in more places than any other RADIUS server on the planet. Our goals for the future are as follows. Version 2.2.x is the "long term stable" release. The goal is to make as few changes as possible, to ensure that users have a server which is as stable as possible. Version 3.0.x is the "new features" release. It may be more unstable than 2.2.x, simple because it's being actively developed. Most of the new features here *cannot* be back-ported to 2.2.x. Also, most of the minor Coverity / clang complaints *will not* be addressed in 2.2.x. We've checked them, and they're not a problem, so we'll leave them alone. In contrast, a goal for v3 is to have a clean code base. So any and all fixes will be applied. I'd like to finish by saying "Thanks" to everyone for the least 15 years. FreeRADIUS could not have been done without your continued involvement, testing, and support. Well done, everyone. Alan DeKok.
I am very pleased and impressed with the new continuous integration and test strategy. I think it will be a tremendous asset. Thank you! I also want to thank everyone who has contributed to FreeRADIUS, it's the community that makes open source work, thanks for being part of such a great community. -- John
On 22/01/14 00:23, Alan DeKok wrote:
I'd like to finish by saying "Thanks" to everyone for the least 15 years. FreeRADIUS could not have been done without your continued involvement, testing, and support. Well done, everyone.
On the contrary: thank you (and Arran, and everyone else). It's difficult to imagine doing what we do without FreeRADIUS.
participants (3)
-
Alan DeKok -
John Dennis -
Phil Mayers