Yesterday we(Me, Vasil Kolev and Peter Pentchev) were examining the last students from the NetSec course and while we were waiting for the last student to come we started talking about the need of courses explaining software packaging in general.
We discussed that one can find really good documentation on RPM and DEB packaging systems, even you can find quite decent information for *BSD and Gentoo. However these are system build to address specific distribution problems and does not teach their user the basic ideas of package maintainership.
So, the issue is that at some point in time a developer is tasked with the job of creating a package, deciding what release cycles to have and how to approach the upgrades and maintenance of the packages he creates.
So what happens is that in most cases a really simple problems such as backward/forward compatibility are not addressed because the developer believes that this is the job of the package maintainer and the software that is packaged has nothing to do with that.
This started me thinking about next year.. Maybe it will be a good idea to start working on a course which will cover the general packaging problems and the possible ways that one can take to address them. Such a course should not be focused on a particular packaging system but instead teach the students what they should consider when they are tasked with the maintaining of packages.