Wednesday, March 19, 2008

Google Summer of Code 2008 and NetBSD

Google has launched the Summer of Code program once again this year, and NetBSD is a mentoring organization for the fourth time as announced in a netbsd-announce post. Unless things go very wrong in the following days, I will not take part this year as a student because I will be intering at Google SRE during the Summer!

However, I will try to become a mentor for the "Convert all remaining regression tests to ATF" project. If you are looking for some interesting idea to apply for, this is a good one! Why?
  • It will let you get into NetBSD internals in almost all areas of the system: you'll need to understand how the source tree is organized, how to add new components to it (because tests are almost in all aspects regular programs), how the current pieces of the system interact with each other...
  • You will need to gain knowledge in some areas (such as the kernel or the libraries) to be able to port tests from the old framework (if it deserves that name ;-) to the new one and, if you are really up to it, even add new tests for functionality that is currently uncovered by the test suite. But adding new tests is something you will not be required to do, because the sole task of migrating the existing ones is a huge task already.
  • Get involved in ATF's development because, as you study the existing test cases and their requirements, you will most likely find that it lacks some important functionality to make things really straightforward.
  • And, of course, make a unvaluable contribution to the NetBSD operating system. Having a public test suite with high coverage means that the system will gain quality. Yes, you will most likely uncover bugs in many areas of the system and give them enough exposure so that someone else may fix them.
Note that this project is really a Summer of Code project. It does not have a long design phase on its own so, once you have got used to the system and ATF, you'll just code and immediately make useful contributions. In the past, projects that had a heavy design phase involved were not good because, in the end, the student did not finish the code on time.

So... don't hesitate to apply! I'm looking forward to see your applications for this project :-)

3 comments:

John said...

This sounds like it would be fun... I've always wanted to get down into the NetBSD internals, but have never had the free time to do so.

Will this require much experience with the NetBSD internals, or would it be something that a fairly knowledgeable person could pick up?

Julio M. Merino Vidal said...

I don't think you will need a lot of knowledge of NetBSD internals. First of all, you'll have to get used to the build infrastructure and the organization of the source tree, so that you can add new tests to the system and can decide where to put them. That's no difficult per se.

Then, it will be a matter of going test by test... and some of them may require you to know what they are doing either to restructure them in a way that makes more sense or to write a short description for them. What I mean is that, due to the lack of documentation/comments, it is hard to know what some tests are currently doing, and cleaning this up will be part of the conversion work.

I'd suggest you to look at the code here:

http://cvsweb.netbsd.org/bsdweb.cgi/src/regress/

And attempt to understand parts of it.

John said...

Great! I think I could handle all of that.

Thanks for the advice.