We had a discussion over dinner concerning the Wicket release schedule for 1.1. Apparently there are several ways to get at a final release and we were discussing the various stages of delivering development code until the final release.

I'm a rather big fan of a well laid out plan, such as the Eclipse project does on their roadmap. Eclipse uses milestones to demarkate several stages of development, where somewhere around the 5th or 6th milestone the API gets frozen and only bugs and performance issues are resolved. The end game (from the release candidates on) is also pretty clear. Each milestone has a date attached to it, and the best part is that they meet the deadlines!

My collegue however thinks that setting and sticking to a well laid out plan is not why he is on board of the project. He wants to play and program on a feature whenever he wants. Personally I think that working on stuff you like just for fun is not in the best interest of the project as a whole, or at least for the community. However, I do recognize that he does a lot of stuff in his own, free time and doesn't get a single dime for working on the project, and as such 'giving' him this freedom (i.e. not discussing it anymore ;-), is in the best interest of the project and community, as otherwise he won't be on board.

So we agreed on trying to make the 1.1 feature list stable and manageable, and create some releasing schedule that works for everyone. I also think we agreed to disagree, as we often do :-).

If someone is reading this stuff, what is your take on open source release scheduling? Do you prefer the Eclipse way of release scheduling (minus the deadline ;-), a more free form alpha/beta cycle, or any other release mechanism (for example 'none')? Am I the only one that found it strange that Hibernate 3 was marked production, but was still a release candidate?