Plus one. This is a good direction to move towards. The frequency of releases would probably depend on how long it takes to certify the release.
> On Aug 13, 2016, at 10:18 AM, Jay Kreps <j...@confluent.io> wrote: > > I'm +1. > > I've seen this both ways and I really do think that time-based releases > tend to scale better with more developers doing parallel work (I think the > probability of at least one feature slipping as you have more and more > developers gets very high, and if that means the release slips then the > release will frequently slip quite a lot). I think between the clients, the > server, streams, connect, etc there is enough parallelism that this will be > important. > > I think this also gives a lot more predictability to people who contribute > code or want to use a feature they see on trunk as to when it will be > available in a release (to date our answer has been "eventually", which is > a bit unsatisfying). > > -Jay > >> On Tue, Aug 9, 2016 at 4:49 PM, Gwen Shapira <g...@confluent.io> wrote: >> >> Dear Kafka Developers and Users, >> >> In the past, our releases have been quite unpredictable. We'll notice >> that a large number of nice features made it in (or are close), >> someone would suggest a release and we'd do it. This is fun, but makes >> planning really hard - we saw it during the last release which we >> decided to delay by a few weeks to allow more features to "land". >> >> Many other communities have adopted time-based releases successfully >> (Cassandra, GCC, LLVM, Fedora, Gnome, Ubuntu, etc.). And I thought it >> will make sense for the Apache Kafka community to try doing the same. >> >> The benefits of this approach are: >> >> 1. A quicker feedback cycle and users can benefit from features >> quicker (assuming for reasonably short time between releases - I was >> thinking 4 months) >> >> 2. Predictability for contributors and users: >> * Developers and reviewers can decide in advance what release they are >> aiming for with specific features. >> * If a feature misses a release we have a good idea of when it will show >> up. >> * Users know when to expect their features >> >> 3. Transparency - There will be a published cut-off date (AKA feature >> freeze) for the release and people will know about it in advance. >> Hopefully this will remove the contention around which features make >> it. >> >> 4. Quality - we've seen issues pop up in release candidates due to >> last-minute features that didn't have proper time to bake in. More >> time between feature freeze and release will let us test more, >> document more and resolve more issues. >> >> Since nothing is ever perfect, there will be some downsides: >> >> 1. Most notably, features that miss the feature-freeze date for a >> release will have to wait few month for the next release. Features >> will reach users faster overall as per benefit #1, but individual >> features that just miss the cut will lose out >> >> 2. More releases a year mean that being a committer is more work - >> release management is still some headache and we'll have more of >> those. Hopefully we'll get better at it. Also, the committer list is >> growing and hopefully it will be less than once-a-year effort for each >> committer. >> >> 3. For users, figuring out which release to use and having frequent >> new releases to upgrade to may be a bit confusing. >> >> 4. Frequent releases mean we need to do bugfix releases for older >> branches. Right now we only do bugfix releases to latest release. >> >> I think the benefits outweigh the drawbacks. Or at least suggest that >> its worth trying - we can have another discussion in few releases to >> see if we want to keep it that way or try something else. >> >> My suggestion for the process: >> >> 1. We decide on a reasonable release cadence >> 2. We decide on release dates (even rough estimate such as "end of >> February" or something) and work back feature freeze dates. >> 3. Committers volunteer to be "release managers" for specific >> releases. We can coordinate on the list or on a wiki. If no committer >> volunteers, we assume the community doesn't need a release and skip >> it. >> 4. At the "feature freeze" date, the release manager announces the >> contents of the release (which KIPs made it in on time), creates the >> release branch and starts the release process as usual. From this >> point onwards, only bug fixes should be double-committed to the >> release branch while trunk can start collecting features for the >> subsequent release. >> >> Comments and improvements are appreciated. >> >> Gwen Shapira >> Former-release-manager >>