[libvirt] Upcoming 0.6.2 release

I would like to make a new release mid or end of next week, considering the number of fixes accumulated in CVS compared to 0.6.1, I guess 0.6.2 makes sense. I think we should look at integrating the new SCSI pool patch, hopefully there is no big issues. If there are mails or patchs which are pending and we forgot to review or ACK, please raise them again so that we can try to get them in time for next release, thanks, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

On Fri, Mar 27, 2009 at 10:11:23AM +0100, Daniel Veillard wrote:
I would like to make a new release mid or end of next week, considering the number of fixes accumulated in CVS compared to 0.6.1, I guess 0.6.2 makes sense. I think we should look at integrating the new SCSI pool patch, hopefully there is no big issues. If there are mails or patchs which are pending and we forgot to review or ACK, please raise them again so that we can try to get them in time for next release,
Our release schedule has become a little too variable in timeframe and quality in recent times. We've tended to get into a situation where we've had some very large new features going in very late before release with little time for actually testing them between commit & release. It is unrealistic to expect pre-commit reviews to catch all problems, so I think it might be worth us setting out a very slightly more formal rule for commit/release schedule. I'd like to suggest: - Monthly releases aiming for 1st of the month (plus/minus 3 days to take into account weekends/holidays) - Any non-trivial new feature for release must be reviewed, approved and committed at least 1 week before the release. eg by 24th of each month This will give people using libvirt CVS some time to sanity check new features aren't causing serious regressions / crashes before we release. In parallel I'm also working on an integration test suite, which will enable us to run automated tests against individual hypervisor drivers. This will help us detect regressions in hypervisor drivers, and more importantly let us ensure that all drivers are implementing consistent semantics for their APIs. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

On Fri, Mar 27, 2009 at 7:05 AM, Daniel P. Berrange <berrange@redhat.com>wrote:
Our release schedule has become a little too variable in timeframe and quality in recent times. We've tended to get into a situation where we've had some very large new features going in very late before release with little time for actually testing them between commit & release. It is unrealistic to expect pre-commit reviews to catch all problems, so I think it might be worth us setting out a very slightly more formal rule for commit/release schedule.
I'd like to suggest:
- Monthly releases aiming for 1st of the month (plus/minus 3 days to take into account weekends/holidays)
- Any non-trivial new feature for release must be reviewed, approved and committed at least 1 week before the release. eg by 24th of each month
This will give people using libvirt CVS some time to sanity check new features aren't causing serious regressions / crashes before we release.
<<snip>>
Daniel
+1 on release schedule. This still gives the project speed and flexibility, while reducing the risks of new features or big changes breaking the release. Just my $0.03. (US Inflation, y'know) -Richard Balint

On Fri, Mar 27, 2009 at 10:52:44AM -0400, Sir Woody Hackswell wrote:
On Fri, Mar 27, 2009 at 7:05 AM, Daniel P. Berrange <berrange@redhat.com>wrote:
Our release schedule has become a little too variable in timeframe and quality in recent times. We've tended to get into a situation where we've had some very large new features going in very late before release with little time for actually testing them between commit & release. It is unrealistic to expect pre-commit reviews to catch all problems, so I think it might be worth us setting out a very slightly more formal rule for commit/release schedule.
I tend to agree on the approximate rule of one release every months but I would like to keep this flexible. I agree that more announcement is needed, which is why I sent that mail to try to get things in line. In that case I expected only bug fixes, and not much else.
+1 on release schedule.
This still gives the project speed and flexibility, while reducing the risks of new features or big changes breaking the release.
This is in general good as we experienced in the GNOME project, yes, but the time line was quite longuer than a month. I still think that for a rate of one release per month trying to sync on an arbitrary date just won't work very well because this will fluctuate too fast to be realistic. I would suggest the following: - I post every week, say at the end of the week when I think the next releases will be likely to occur, trying to refine as we get closer - We try to not make any release if there isn't a 2 week advance warning - we try to get everything commited one week before the release as to get some kind of feature freeze one week in advance for testing as Dan requested and yes this really make sense I think if we already try to apply those rules then things should go smoother. This mean we already break the rules for 0.6.2 but my current view is: 0.6.2: - commit feature freeze: Tuesday 31 Mar - expected release date: Friday 3 Apr 0.6.3: - commit feature freeze: Friday 17 Apr - expected release date: Friday 24 Apr I would like a new release after 0.6.2 in 4 weeks, which I expect again to be mostly bug fixes Anybody disagree ? Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

On Fri, 2009-03-27 at 18:49 +0100, Daniel Veillard wrote:
I would suggest the following: - I post every week, say at the end of the week when I think the next releases will be likely to occur, trying to refine as we get closer - We try to not make any release if there isn't a 2 week advance warning - we try to get everything commited one week before the release as to get some kind of feature freeze one week in advance for testing as Dan requested and yes this really make sense
I think this is a great improvement - it makes things much more predictable, it means not getting a feature into a given release isn't a big deal because the next one isn't far away and it gives some chance for features to settle down before a release. Monthly releases is very aggressive for a big project. I worry that since each release may have significant new features which have had only one week of testing, people will never be able to have a lot of confidence in any libvirt release. e.g. I can imagine a situation in Fedora where libvirt-0.9.0 is released and we decide we want to push that as an update to Fedora 14. After a few weeks of people testing, we'd probably have found a bunch of bugs and backported the fixes from upstream. Then, just as things start to settle down, 0.9.1 is released with a bunch of new features and fixes, but we find that also has a bunch of bugs that takes a few weeks to iron out. And, then again for 0.9.2. With monthly releases containing new features, I think it's worthwhile also doing "bugfix only" releases. Maybe 2-3 weeks after a release, cherry-pick fixes from HEAD into a stable branch and do a release of that. I took a quick stab at creating a 0.6.1.y branch with bugfixes from HEAD, to take a look: $> git clone http://markmc.fedorapeople.org/git/libvirt-0.6.1.y.git/ $> cd libvirt-0.6.1.y.git $> git log LIBVIRT_0_6_1.. There's nothing shocking here. Since 0.6.1 it's been mostly bug fixes, so all I've left out is: - qemu ballooning - SASL auth support - more flexibility about qemu emulators - posix_fallocate() - lxc CPU usage - compiler warnings, syntax-check improvement - test driver fix Still, though, that makes a big difference to the diffstat. On CVS HEAD since 0.6.1 we've had: 52 files changed, 994 insertions(+), 288 deletions(-) this bugfix branch only has: 20 files changed, 169 insertions(+), 118 deletions(-) Compare that to our backported fixes for 0.6.1 in Fedora rawhide: 14 files changed, 142 insertions(+), 109 deletions(-) I'm waffling a bit, but in summary: - Good plan, but monthly releases with a one week feature freeze will inevitably mean some significant bugs in each release - Not everyone wants to be on the bleeding edge - some people do want some stability - A pure bugfix is very easy to prepare by cherry-picking from HEAD onto a branch (it took me ~30 minutes) - Distros already backport fixes - this helps them out - Stable releases are fairly standard practice for most projects Cheers, Mark.
participants (4)
-
Daniel P. Berrange
-
Daniel Veillard
-
Mark McLoughlin
-
Sir Woody Hackswell