Differences between revisions 2 and 5 (spanning 3 versions)
Revision 2 as of 2007-03-18 03:51:20
Size: 1571
Comment:
Revision 5 as of 2009-03-16 03:29:55
Size: 3319
Editor: anonymous
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
 * '''Required skills''':
  *
Not many, to start with at least :-)
 * '''Required skills''': Not many, to start with at least :-)
Line 8: Line 7:
One of the problems we have in Debian CD and DVD production is effectively testing the images. There are a lot of potential problems with the built images and checking for all of them by hand is time-consuming and error-prone. What would be really useful is a tool that can read ISO image files and validate them. One of the problems we have in Debian CD and DVD production is
effectively testing the images. There are a lot of potential problems
with the built images and checking for all of them by hand is
time-consuming and error-prone. What would be really useful is a tool
that can read ISO image files and validate them.
Line 10: Line 13:
I'm looking for somebody to write an application that will analyse a
Debian CD/DVD and will tell me whether or not it's "correct". I'm not
especially bothered about the programming language used, so long as
the code is clear. However, it must be easy to extend the code to add
new checks in the future as more possible problems are found.
Example
issues that we've had in the past are:
I'm looking for somebody to write an entirely new application that
will analyse a Debian CD/DVD and will tell me whether or not it's
"correct". Example issues that we've had in the past are:
Line 17: Line 17:
 * image too big to fit on the selected media type (e.g. DVD more than
  
4.7GB)
 * image too big to fit on the selected media type (e.g. DVD more than 4.7GB)
Line 22: Line 21:
 * files listed in the Packages file but not on the CD (and vice
  
versa)
 * files listed in the Packages file but not on the CD (and vice versa)
Line 30: Line 28:

== Implementation language and interface ==

I'm not especially bothered about the programming language used, so
long as the code is clear. However, you may find that a scripting
language like python or perl will be easier to use than something like
C/C++/Java - this is not a particularly performance-critical
application, and quite a lot of the work needed is going to be parsing
text files and directory structures. For that kind of thing, in my
experience it can be much quicker and easier to develop scripts, plus
I'd expect it'll be easier to extend them with more tests as time goes
on.

I'm thinking this would be best done as a command-line tool; a GUI
might sound nice, but many people (like me!) use debian-cd on remote
machines to do builds and therefore a GUI is much less useful. In
fact, something that can be usefully run out of cron and output logged
would be great.

== Guidance for potential applicants ==

I know the spec is a little open-ended at the moment for this project,
but that's deliberate. One of the things that I '''really''' want to
see in a successful project application is a fair amount of time set
aside for analysis of the problem, i.e. spend at least a couple of
weeks playing with the CD creation process and output to see what
potential bugs you can find, on top of what I've mentioned.

I'm '''not''' necessarily expecting to see tests written that will
find all possible errors, as that could take a very long time. But
consideration of those errors and then a well-designed framework that
allows for addition of more tests later '''will''' be very valuable.

== More information - where to look ==

The best thing for you to look at to get a feel for what we're doing
might the debian-cd package that we use to create the images, and some
of the images that it produces.

  http://cdimage.debian.org/cdimage/etch_di_rc2/

would be a good place to look for the latter.

Debian CD Tester

  • Mentor: SteveMcIntyre

  • Summary: A program to sanity-check Debian CD and DVD images, like lintian/linda do for packages.

  • Required skills: Not many, to start with at least :-)

  • Description:

One of the problems we have in Debian CD and DVD production is effectively testing the images. There are a lot of potential problems with the built images and checking for all of them by hand is time-consuming and error-prone. What would be really useful is a tool that can read ISO image files and validate them.

I'm looking for somebody to write an entirely new application that will analyse a Debian CD/DVD and will tell me whether or not it's "correct". Example issues that we've had in the past are:

  • image too big to fit on the selected media type (e.g. DVD more than 4.7GB)
  • empty Packages/Packages.gz files
  • missing kernel packages needed by the installer
  • files not listed (or listed wrongly) in the md5sum.txt file
  • files listed in the Packages file but not on the CD (and vice versa)
  • missing boot files

That's just off the top of my head. I'm sure that over time we'll think of lots more things to check, and find new problems. The more automated checking we can do on the CD/DVD images, the better we can make them, and we can also reduce the manual labour needed.

Implementation language and interface

I'm not especially bothered about the programming language used, so long as the code is clear. However, you may find that a scripting language like python or perl will be easier to use than something like C/C++/Java - this is not a particularly performance-critical application, and quite a lot of the work needed is going to be parsing text files and directory structures. For that kind of thing, in my experience it can be much quicker and easier to develop scripts, plus I'd expect it'll be easier to extend them with more tests as time goes on.

I'm thinking this would be best done as a command-line tool; a GUI might sound nice, but many people (like me!) use debian-cd on remote machines to do builds and therefore a GUI is much less useful. In fact, something that can be usefully run out of cron and output logged would be great.

Guidance for potential applicants

I know the spec is a little open-ended at the moment for this project, but that's deliberate. One of the things that I really want to see in a successful project application is a fair amount of time set aside for analysis of the problem, i.e. spend at least a couple of weeks playing with the CD creation process and output to see what potential bugs you can find, on top of what I've mentioned.

I'm not necessarily expecting to see tests written that will find all possible errors, as that could take a very long time. But consideration of those errors and then a well-designed framework that allows for addition of more tests later will be very valuable.

More information - where to look

The best thing for you to look at to get a feel for what we're doing might the debian-cd package that we use to create the images, and some of the images that it produces.

would be a good place to look for the latter.