[dev] Horde release cycle
Chuck Hagenbuch
chuck at horde.org
Fri Mar 18 21:24:34 UTC 2011
Quoting Jan Schneider <jan at horde.org>:
> Zitat von Gunnar Wrobel <wrobel at horde.org>:
>
>>
>> Zitat von Jan Schneider <jan at horde.org>:
>>
>>> Zitat von Gunnar Wrobel <wrobel at horde.org>:
>>>
>>>>
>>>> Zitat von Jan Schneider <jan at horde.org>:
>>>>
>>>> [snip]
>>>>
>>>>>>>
>>>>>>> I don't see the need for a minimum wait time for breaking BC.
>>>>>>> Breaking BC isn't something to be done without a lot of
>>>>>>> thougt. If BC needs to be broken, there is a good reason for
>>>>>>> it (or we shouldn't be breaking it). So, if there is a good
>>>>>>> enough reason for us to break it, we shouldn't be hampered by
>>>>>>> an arbitrary wait time.
>>>>>>>
>>>>>>>
>>>>
>>>> [snip]
>>>>
>>>>>>
>>>>>> 04/11 10/11 04/12 10/12 04/13 10/13
>>>>>>
>>>>>> FRAMEWORK_4_0 --bug---sec-|
>>>>>> |
>>>>>> FRAMEWORK_4_1 | --bug---sec-|
>>>>>> | |
>>>>>> FRAMEWORK_5 | | --bug---sec-|
>>>>>> | | |
>>>>>> FRAMEWORK_6 | | | --bug---sec-|
>>>>>> | | | |
>>>>>> master ---dev---dev---dev---dev---dev----------------------
>>>>>>
>>>>>>
>>>>>> As far as I understood our discussion above we all agree on
>>>>>> having a six month release cycle. Every six months there will
>>>>>> be a release of a new major or minor version. As far as I can
>>>>>> see - and I depicted my current understanding in the small
>>>>>> graphic above - this would mean that each release would have a
>>>>>> support window of one year.
>>>>>>
>>>>>> I don't see that as a problem as long as we are talking about
>>>>>> minor versions. Assuming the picture above would not list
>>>>>> "FRAMEWORK_5" and "FRAMEWORK_6" but "FRAMEWORK_4_2" and
>>>>>> "FRAMEWORK_4_3" instead: Then the "Horde4" branch is suddenly
>>>>>> supported over two and a half years. Maybe more in case the
>>>>>> major version doesn't change.
>>>>>>
>>>>>> But what if we break BC frequently? There are people out there
>>>>>> that code Horde based application - in fact this is what we
>>>>>> target. If those applications would only get a guarantee of 1
>>>>>> year before major work might be necessary that feels like it is
>>>>>> not enough.
>>>>>>
>>>>>> Following this reasoning I would say we should really avoid
>>>>>> breaking BC ... in fact ... wasn't Horde3 a good model? ;)
>>>>>>
>>>>>> Joking aside: I feel this is the critical point that we need to
>>>>>> solve. Is there a model that allows us to provide both the
>>>>>> users as well as the developers - custom app devs and us alike
>>>>>> - to have a reliable scheme that suits the specific needs of
>>>>>> our project?
>>>>>
>>>>> With our limited resources, I don't think so. We could not break
>>>>> BC, sure, but we all agreed we don't want this limitation anymore.
>>>>>
>>>>> The only solution I see is to add LTS releases to that equation.
>>>>> I like the more formal approach of Ubuntu better than the
>>>>> randomly-picked-stable-version of Kernel development, which is
>>>>> harder to follow.
>>>>> But I don't see us having the man power for that at the moment.
>>>>> Let's he how the release plan works that we're discussing here,
>>>>> and what the feedback is. I have no idea how often we are going
>>>>> to break BC in reality, how big those BC breaks are to pose a
>>>>> problem for 3rd-party developers, and if developers are going to
>>>>> ask for longer version support.
>>>>>
>>>>
>>>> I do agree and I don't see much of a problem concerning LTS as
>>>> long as we don't break BC every half year. But looking at our
>>>> discussion this is not what any of us really wants.
>>>>
>>>> But I feel I did not express my worries concerning the other side
>>>> of the coin well enough.
>>>>
>>>> You already mentioned above:
>>>>
>>>>>>> Breaking BC isn't something to be done without a lot of
>>>>>>> thought. If BC needs to be broken, there is a good reason for
>>>>>>> it (or we shouldn't be breaking it).
>>>>
>>>> This is what I consider to be the core of the Horde3 problem.
>>>>
>>>> Let's assume I wouldn't be able to squeeze all the Kolab library
>>>> rewrites into Horde4 that I feel are necessary at the moment. Not
>>>> that unlikely actually :)
>>>>
>>>> So in half a year I raise my lonely voice: "Hey, what about
>>>> breaking BC? Wouldn't that be fun to do?". And of course I get a:
>>>> "Nope! Not a chance!". Reasonable. What about April 2012? Same
>>>> thing? 2013?
>>>>
>>>> I'm not saying that such things shouldn't happen without
>>>> discussion. And often there will be ways around actually breaking
>>>> BC which such discussion might identify. But what I'd like to
>>>> have is some kind of way to be able to get a reliable time line
>>>> for such things. Maybe if we have another "BC-breaks" wiki page
>>>> that gets updated once a new issue which threatens BC comes up.
>>>> Once the first item appears on that page we require ourselves to
>>>> deal with the issue. Identify if it can be dealt with in a
>>>> non-BC-breaking way. If not we decide when the next BC break will
>>>> occur right then. Any BC-issues added to the page at a later
>>>> point in time could only move that BC-break to a nearer release.
>>>> Would something like that work?
>>>
>>> I'm not sure if we need a formal wiki page for that,
>>
>> True, might be too much. We have other pages to keep track of our
>> roadmap once we decided where to place the break.
>>
>>> though it wouldn't hurt either. But that's generally the process I
>>> had in mind when and how to decide whether to break BC.
>>> Someone identifies a possible BC break necessity. We start a
>>> dicussion about how to avoid it. If that's not possible, we target
>>> a release for the break, most probably the next release. The
>>> decision will probably influenced by the importance of the break
>>> and the rate or BC breaking releases in the past.
>>
>> Oh, then I'm simply happy :) Thanks for the feedback!
>
> There is something in this thread that hasn't been clearly decided
> yet. I'm quoting only part of it, please look up the archives for
> the complete thread.
>
> How long do we support major versions with security fixes?
>
> This is tightly connected to the question of how many branches we
> want to maintain. Two approaches have been brought up in this thread:
>
> 1) Provide security fixes for at least 18 months.
> or
> 2) Provide security fixes for the most recent two major versions.
>
> Assuming two extreme scenarios, these would be the consequences:
>
> We break BC 3 times in a row and thus released 3 major versions in a row:
> 1) We are going to maintain up to 4 branches.
> or
> 2) We are going to provide security fixes for no longer than 12 months.
>
> We don't break BC 3 times in a row and thus released 3 minor
> versions in a row:
> 1) We are going to maintain only 2 branches.
> or
> 2) We are going to provide security fixes for eternity.
>
> We could probably do a combination of both approaches, but I doubt
> this will make things clearer. I'm in favor of approach 2 because
> this is the only thing we really can promise with the limited
> developer resources we currently have IMO.
I agree with Jan (security fixes for the most recent 2 major versions).
-chuck
More information about the dev
mailing list