I have recently passed a lot of time on the MondoRescue project and have some thoughts to share about it.
First I tried hard to publish version 2.2.9, before my vacation end of July. But a resistant bug didn’t allow that. And since I’m back mid August, I’ve been unable to finalize a version for which no bug is immediately reported by one user or another (in fact around 10 different reports through various means) ! On one hand it is a sign that the software is used, tested, in multiple very different configurations, and thus is helpful. On the other hand, the code base also shows it age, and it’s difficult to cover an test in an efficient way the multiple combinations of context + the rapid evolution of distro/kernel and related tools. Of course automatic testing is planned, but hey days only have 36 hours and I need at least 6 hours of sleep 😉
Anyway it seems that I finaly suceed in stabilizing something useful, and I’ll probably publish it this week end. And it’s necessary, because lots of small (or big) annoyances have been reported and now fixed, and they harm users. So it’s more than time. Which made me think to a second aspect.
There is a need to publish versions more regularly. Now that I have project-builder.org to help me make easily packages it’s quite easy, so why not doing it more often. Well lazyness, is probably the bad answer I could give. So it’s time to be less lazy and propose a new approach, hopefully beneficial for all users.
And I don’t want to invent something new, so I’ll reuse a model which seems to be beneficial for its community, which is (again) the one of the Linux kernel. I’ll publish this week end (promised !) 2.2.9. If anything justifies it (bug, driver support, …) I’ll then publish 18.104.22.168 based on it, and so on… I will not create new SVN branches for that, as I don’t want to go backward on that path. But this is the insurance to have more regular releases, bringing essentially bug fixes.
As a side note, I’m not too found of Mark Shuttleworth abour fixed time release for small projects such as the one I manage. Of course, when you have a large team of developers, testers, translators, documentalists, it’s probably a sane approach. But in my case, for major realeases at least it’s not convenient, as I really can’t planify the evolution in advance, and I’m the one which makes the project progress. So you have to deal with my feelings !!
Then the development path of MondoRescue (which has already started) will be done in another SVN branch. And some backports will occur. Not too much to allow me to work most of my time on the devel one, but sufficiently to have people doing support around MondoRescue happier (some friends at HP as well as some partners), distribution integration easier, and more stable versions for enterprise usage (I know for sure they have that concern).
For the moment, the devel branch is called 2.2.10. But I will change that. First because of changes in interfaces, also because all the memory management system has been touched, so will initially create instabilities in the mondo part. So I’ll create a new devel branch to support it, copy of the current 2.2.10 for that. And I’ll derive a future 3.0.0 version from it when time of publishing it arrives. At last we will have a SVN setup meaning something 🙂
And of course, the more I look at the code, the more I think of rewriting it, keeping the good ideas, but refactoring the code again, taking benefit of my perl modules written for pb, and that language would provide much more adapted code, due to its clever caracteristics to treat all the character strings mindi and mondo are doing. mindi has already been changed and simplified in its current shell form, but now that I have a much more fine grained view on it, it’s time to rewrite. mondo will be done later on (I invested too much in the C improvement to throw it away so quickly 😉
Looking at the differences between 2.2.9 and current 2.2.10 I already have more than 30000 lines ! But I already have a similar number for 2.2.9 vs 2.2.8. So time to stop writing and to publish !
Ok last point: if you really want to try delaying again 2.2.9, then test the beta available at ftp://ftp.mondorescue.org/test and report bugs at http://trac.mondorescue.org. But It’ll now be difficult to make me change my mind on the new process 😉