I think Davids idea makes a lot of sense.
If a bug is detected 2 days before the next release, it makes no sense
to do a .1 release.
If we discover an important bug directly after a release, I don't see
a good reason *not* do a followup .1 release. That doesn't mean we
have to switch back to "as-needed" release schedule for new major
releases.


Regards,
Michael

2015-12-18 16:39 GMT+01:00 David Lang <[email protected]>:
> On Fri, 18 Dec 2015, Rainer Gerhards wrote:
>
>> Date: Fri, 18 Dec 2015 14:46:34 +0100
>> From: Rainer Gerhards <[email protected]>
>> Reply-To: rsyslog-users <[email protected]>
>> To: rsyslog-users <[email protected]>
>> Subject: [rsyslog] release cycle - was: rsyslog 8.15.0 (v8-stable)
>> released
>>
>>
>> 2015-12-17 22:52 GMT+01:00 Michael Biebl <[email protected]>:
>>>
>>> 2015-12-17 16:51 GMT+01:00 Rainer Gerhards <[email protected]>:
>>>>
>>>> 2015-12-17 16:47 GMT+01:00 Thomas D. <[email protected]>:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I agree with Michael.
>>>>>
>>>>> While I understand Rainers concerns in general this is different: For
>>>>> you there are only test files missing. But for distributions there is
>>>>> no
>>>>> working v8.15 release (tests are really important for us).
>>>>
>>>>
>>>> Can't you apply a patch? I remeber well in that long discussion over a
>>>> year ago that you were on of the strong proponents of "it's easy to
>>>> patch if something is a small nit"?
>>>>
>>>> I just want to understand that change of position, if it is one.
>>>
>>>
>>> We run the test-suite as part of the Debian build (that's why I
>>> noticed the failure). So this is a serious issue for the Debian build.
>>> But sure, if it's too much of a hassle, I'll just add the missing
>>> files as a downstream patch.
>>
>>
>> I agree that it would be almost no work for me to do a re-release.
>> It's more a policy argument. Let me explain, especially as I consider
>> changing policy:
>>
>> Up until ~15 month ago, we released when there was need to. Need was
>> defined as
>>
>> - important enough (set of bugfixes)
>> - new functionality
>>
>> This resulted in various releases. We had the stable/devel releases.
>> Stable releases were rare, devel frequent.
>>
>> Now, we have scheduled releases. Actually, a release is triggered when
>> we hit a certain calender date, irrelevant of whether or not there is
>> need to release (there is always one or two minor fixes, so we will
>> probably never exprience a totally blank release). We also have
>> switched to stable releases only, and done so without grief (basically
>> because a) we have improved testing and b) users didn't use devel at
>> all).
>>
>> I just dug into the old discussion. A good entry point is probably
>> this here, where we talk about patches:
>>
>> http://lists.adiscon.net/pipermail/rsyslog/2014-October/038796.html
>>
>> The new system works reasonably well. It has it's quircks, though.
>> Let's look at a concrete example:
>>
>> 8.14.0, to me, was an absolutely horrible release. The worst we have
>> done in the past 2 to 3 years. I worked hard on fixing some real bad
>> race issues with JSON variables. Friday before the release I was ready
>> to release that work, which would be really useful for folks that make
>> heavy use of those variables. Then, over the weekend and Monday, it
>> turned out that we may get unwanted regressions that weren't detected
>> earlier (NO testbench can mimic a heavy-used production system, so
>> let's not get into "we need better tests" blurb). The end result was
>> that I pulled the plug on release day, and what we finally released
>> was 8.13.0 plus a few small things. All problems with variables
>> persisted. If I had have half a week to a week (don't remember
>> exactly) more, we could have done a real release instead of the 8.13
>> re-incarnation. But, hey, we run on a schedule.
>>
>> Now 8.15.0 fixes these problems (except for the json-c induced
>> segfault, which we cannot fix in rsyslog). I also has all other "8.14"
>> enhancements and fixes and so is actually worth 3 month of work. It is
>> a *very heavy* release. Usually, I'd never released such a fat release
>> shortly before the holiday period. Not that I distrust it, and we
>> really got some new testing capabilites (really, really much better),
>> so it is probably the most solid release for a longer time (besides
>> the small quirk with the missing testbench files). But in general I
>> don't like to do releases when I know there is very limited resources
>> available to deal with problems. That's the old datacenter guy in me.
>> But, again, hey, we run on a schedule.
>>
>> There have similiar occasions in the past 14 month. That's the
>> downside. And due to the 6-week cycle things usually do not get really
>> bad.
>>
>> The scheduled model has a lot of good things as well. First of all,
>> everyone (users and contributors) know when the next release will be.
>> This also means you can promise to include something into a specific
>> release. However, usually users know when the release happens, but not
>> what will be part of it, so in a sense it's not much better than
>> before IMO. The new model has advantages for me: less releases mean
>> less work. Also, I do not longer really need to think about when to do
>> a release, which feature is important engouh and so. I just look at
>> the calender and know that, for example, in 2016, November 15th we
>> will have a release, no matter if I am present, no matter what is done
>> code-wise etc (we actually had, for the first time everm a release
>> while I was in vacation and it went really well as I learned later).
>> That really eases my task.
>
>
> the other big change was the change in mindset from "Ok, we made a stable
> release, we can break things now and fix them over time before the next
> stable release" to "master should be kept in a releasable state at all
> times"
>
> The big adantage I see of the schedules release is that it (almost)
> eliminates the pressure to get something that's not quite ready into _this_
> release because if it doesn't make this release, you know that the next one
> isn't far away.
>
> I see 8.14 as an example of the new approach working perfectly. Instead of
> agonizing over things for weeks as we tried to work things out (and it did
> take weeks to finally track things down in this case), you reverted the
> problem (just about everything, since we couldn't identify the problem) made
> a release and we kept going working on the problem.
>
>> All of this bases on the "we release every 6 weeks, interim releases
>> happen only for emergencies and anything else may be pulled as
>> patches" policy. If we now begin to say "this problem is inconvenient
>> to ..{pick somebody}", we need to do a re-release we get into trouble.
>> I wonder which groups of "sombody" are important enough to grant
>> non-emergency releases. Are only distro maintainers important enough?
>> Probably not. So enterprise users? Mmmm.. maybe small enterprises as
>> well? Who judges this? So let's assume every user is as important as
>> every other (an idea I really like). If I then look at my change logs,
>> I think I would need to release more frequent. In essence, I would
>> need to release again when it is needed, which is, surprise, the
>> as-needed schedule).
>>
>> Rsyslog is not a project big enough to do an even more complex release
>> schedule. To keep things managable to me, I need to release either
>>
>> a) as-needed
>> b) on schedule (except for *true* emergencies)
>>
>> And *that all* is the reason for my reluctance to break the release
>> policy because this time distro maintainers experience the bug versus
>> end users.
>>
>> I am currently tempted to switch back to "as-needed" mode, even though
>> this means more work for me.
>
>
> I would not like to see us move back to the "as-needed" mode the way things
> were before, it was WAY too long between releases. Every 6 weeks is great,
> if anything we could probably bump this out a couple weeks if it made a
> noticable difference to your workload.
>
> That said, there are two slight tweaks I think we should consider.
>
> If we are on 8 week schedule, at week 7 we should look at outstanding bug,
> especially on new features, and try agressively reverting changes. most of
> the time this will just be 'remove the new feature', but once in a great
> while it will end up with the 8.14 situation where you revert just about
> everything, keeping only 'obviously correct, trivial bugfixes'. It wouldn't
> hurt to have a standard e-mail go out to the list at the start of week 7
> reminding people that the release is only a week away, test the master
> branch.
>
> If there is a regression (including build problems) reported within the
> first couple days after a new release, and the fix is available within a day
> or two, and the fix is either small (<10 lines), or the fix is reverting
> patches applied during this release cycle , then I think releasing a .1
> within week 9 is reasonable. After about the midpoint of week 9, only
> critical things would trigger a new release. So a .1, .2, etc would only
> come out during week 9 except for a critical bug.
>
> If this makes releases enough more complicated that we need to push out to a
> 8 week, or even 10 week release cycle, I think it would be worth it.
>
> I'd rather do a 'brown paper bag' release every year or so than have a
> release with a fix that is trivial to fix out there. Based on how things
> have gone over the last year, I think such releases would be pretty rare.
>
> I think the releases over the last year have worked out well. The pace of
> releases has drastically increased, the effort of releases has decreased,
> and the reliability of releases and rsyslog overall has increased.
>
> going to a pure 'as needed' release is a problem, a 'small' bugfix that
> isn't worth a release to most people, is very much needed by someone
> tripping over that bug in production. Having a guarantee that the bug will
> be in a release withing a known period is worth a lot.
>
> David Lang
>
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com/professional-services/
> What's up with rsyslog? Follow https://twitter.com/rgerhards
> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of
> sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T
> LIKE THAT.



-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to