[Mageia-dev] Release cycles proposals, and discussion

andre999 andr55 at laposte.net
Mon Jun 20 02:56:04 CEST 2011


Michael Scherer a écrit :
>
> Le samedi 18 juin 2011 à 23:49 -0400, andre999 a écrit :
>> Michael Scherer a écrit :
>>>
>>> Le samedi 18 juin 2011 à 03:38 -0400, andre999 a écrit :
>>>> Michael Scherer a écrit :
>
>>> If people work the same amount of time, with work divided on 2 products,
>>> they must share their time, and usually work less than if they focused
>>> only on one product, unless there is twice the ressources. But I doubt
>>> this will happen for us, so let's assume that ressources are fixed.
>>
>> That was my assumption : resources fixed in terms of time spent.
>> And why would that divide a contributor's focus more than now ?
>>   They would just have a choice.
>
> So before, the choice is between :
> - not doing anything
> - bugfixing
- or doing something elsewhere.
>
> After your proposal, there is :
> - not doing anything
> - bugfixing
> - uploading new stuff to cauldron
>
> And you fail to see how it divert focus ?

We have to remember that packager time is not an ubiquitous resource.  If a packager cannot use 
their time efficiently during freeze, they have incentive to contribute their time elsewhere.  It 
is just human nature.  Admittedly this is more likely to affect packagers with less broad-based 
skills, but such packagers do not make insignificant contributions.
As far as diverting focus, does the existance of many distros, providing much more choice, divert 
focus ?  Likely to some extent, but not many packagers contribute to 4 to 6 distros and support in 
the order of 1000 packages.  That's more the exception, for packagers with exceptional skills.

>> Now during the freeze, someone that wants to contribute to cauldron, but can't or chooses not to
>> contribute to pre-release bugfix, is not contributing.
>> So in practice, we risk to have more time contributed during the freeze.
>
> My own experience tell the contrary, but maybe you should ask to Anne
> her opinion if you do not believe me, or to others people who did
> distribution releases ( and not software releases, which is slightly
> different, mainly because there is less  ).

Until we try it, we don't know how much effect it will have.  To the best of my knowledge 
Mandrake/Mandriva and certainly Mageia has not tried this approach.  We are both working on 
conjectures, and we can't know until we (or some other distro with similar resources) tries it.
I find it difficult to believe that it will have a negative effect.  And I think it would be useful 
to try it early in the development of Mageia.
Even experienced programmers, who have to support different versions of the same software, run into 
cases where it is very convient -- and more efficient -- to do parallel updates for example.  I run 
into that often enough myself.

>>> Now, of course, we can say "what if people do not divide their work in
>>> 2 ?"
>>>
>>> So let's call :
>>> - F the time spent on bugfix during the freeze
>>> - C the time spent on cauldron during the freeze
>>>
>>> We can assume that :
>>> C + F = Y
>>>
>>> So the equation become :
>>> C + ( X - Y ) + F
>>> = C + F - Y + X
>>> = X
>>>
>>> So no matter how you divide the time, you still have the same amount of
>>> time spent overall.
>>
>> As I assumed :)
>
> No.
> "the cauldron cycle is extented by the time of the pre-release freeze.
> e.g. In a release cycle of 6 months and a pre-release freeze of 1 month,
> the cauldron cycle would be 7 months."

Agreed.  I've already said that.

> The cauldron cycle would be 7 months just on the calendar, but 6 months
> worth of work, as demonstrated.
>
> "A 1-month pre-release freeze would add 1 month to cauldron development time."
>
> That's the same, you do not add real months, just months on the calendar.

As I said, my basic assumption that the same number of packager hours are contributed.  Certain 
factors suggest that one could expect somewhat more time contributed, and a number of others that 
the time would be used more efficiently.  Nothing suggests that less time would be available.

>>> Now, the real important question is "can we really exchange work done as
>>> part of C for work done as part of F".
>>>
>>> And so "if I do regular packages updates on cauldron at the begining of
>>> the cycle, does it count as bugfixing for the release in the end of the
>>> cycle" ?
>>>
>>> To me, the answer is clearly no. If it was somethig we could exchange,
>>> we would not have to make a freeze in the first place to make sure that
>>> only bugfixes are uploaded in cauldron.
>>>
>>> So the only way to maximize the time spent on bugfixes is to have F = Y,
>>> and so C = 0. Ie, do like we do now.
>>
>> I really don't follow this line of reasoning.
>> The focus on bug fixes starts with the freeze.  So a longer freeze would give more time to focus on
>> bug fixes.
>
> The focus on bugfixing start with version freeze, since what introduce
> problem is various changes, and new versions of softwares usually bring
> new changes. Then we block all uploads except bug fixes, and then all
> uploads unless very serious bug fixes ( ie, release blocker ). So the
> focus start much before the last freeze, and you are quite unclear.

It terms of freeze, I'm referring to the first freeze for the release.  The different stages will 
happen (more or less) as they do now.

>>> And unless you show that letting people work on cauldron will bring more
>>> ressources , and more than the one we will lose du to people who do not
>>> want to work on bugfixes and the release, I doubt this will change.
>>
>> Ok.  Obviously I need to clarify my point of view.
>> Firstly, my assumption was that at least as much time would be spent on bug fixing during the
>> longer freeze, but being less rushed, would tend to produce better quality results.  (And less
>> aggravation for ennael)  (That is certainly how it works in the non-libre world.)
>
> You do not say much how you extend the freeze to be longer, nor even
> that the freeze appear sooner, reread your mail. Nor what kind of freeze
> would it be.

If this scheme were adopted, such details would probably be best decided by those most experienced 
with the process, above all ennael, and packagers such as yourself.  Offhand, maybe 2 weeks longer 
would be adequate, to give less rush and compensate for contributions to non-freeze cauldron.
(See also above.)

> The only mention of the duration of the freeze is :
> "A 1-month pre-release freeze would add 1 month to cauldron development
> time."
>
> The version freeze started on 20 april
> ( https://mageia.org/pipermail/mageia-dev/20110419/004066.html ), which
> is more than 1 month. The release freeze was on 14 may, which is 2
> weeks.
>
> Given that the version freeze is when we start to ask to people to focus
> on bugfixes and when we prevent packagers from uploading newer versions
> of packages, the proposed 1 month pre-release freeze is unclear and
> unexplained.

One month was an arbitrary figure, just to demonstrate the principle.  Obviously from what you say, 
it would be longer.  (It did seem much much longer.)
My idea was to have a somewhat (but not excessively) longer freeze period.

>> I don't see how having the choice between contributing to pre-release or cauldron during the freeze
>> will lead to us loosing _any_ contributors.
>
> We do not lose contributors, we lose the work of people that prefer to
> work on cauldron by uploading new versions rather than bug fixing, and
> from people that will prefer to test and use cauldron rather than the
> future stable release, because that's easier, there is no deadline, nor
> any obligation, and there is newer stuff.

So you fear a lack of commitment by packagers.  That is a different question.
I think that packagers can be motivated to help.  But maybe those demotivated by their inability to 
contribute efficiently to pre-release will contribute to cauldron during the freeze ?  That's not a 
loss.

>> If during freeze, a packager has a choice between attempting to help with a bugfix in pre-release
>> for a package with which s/he is not familiar, or contributing to cauldron for something with which
>> s/he is familiar, it would be evidently more efficient to contribute to cauldron.
>
> You are placing a wrong dichotomy. The choice is not between "fixing
> something efficiently on cauldron vs fixing un-efficiently on
> pre-release", but between "fixing un-efficiently" vs "not fixing".

In my world, those unable to contribute efficiently are much less motivated to contribute.  So this 
change could have the effect to more motivate less experienced packagers.  Which could be a big 
plus in the longer term.
So although your dichotomy would apply to many packagers, particularly those more skilled, 
definitely not all.

>> Similarly, if a packager contributes a bug fix to pre-release, and a newer package already exists
>> in cauldron for which the same bug fix must be applied, it is more efficient to apply the same
>> patch right away, than to wait until freeze is over.  (Personnally I've encountered this sort of
>> situation with similar but different software many times.  Any experienced programmer should
>> understand this point.)
>
> With the current process, the fix is already applied for next cauldron
> cycle, since the package is the same, there is no branching.

Suppose that during freeze a packager discovers an important bug fix patch along with a newer 
version.  The patch must be applied to both the current and newer version, the latter being blocked 
from going into the freeze.  So the fix must be applied to both.  So why can't the packager put the 
newer version into cauldron and apply the patch, if they have time ?  It would be a more efficient 
use of time.

>> So there are a lot of (admittedly small) synergies which should lead to packager time being more
>> efficiently used.
>> Not counting the likelyhood that some packagers would contribute somewhat more time, being able to
>> contribute to cauldron during freeze.
>> The major benefit in my mind is the longer freeze period.
>
> Which mean that we will have more outdated software if we freeze sooner.

But not as outdated (on average during the cycle) as it would be if we go from a 6-month to 9-month 
release cycle.  I'm suggesting a difference probably in the order of weeks.

> Assuming that the pre-release freeze you are speaking about is what the
> packagers know as "release freeze", this means the version freeze will
> be sooner too. Assuming that what you call "pre-release freeze" is the
> version freeze, then the freeze period would just be shorter.

I was thinking of the first freeze, when there starts to be a lot of focus on bug fixes.  This 
would allow immediate unfreeze of cauldron.  But maybe it would be better for the second stage.  A 
lot of packages (if not most) will have a different version for the subsequent release, so bug 
fixes -- even if the same patch -- would have to be applied separately for the subsequent release, 
anyway.
Any packages patched for pre-release could be simply copied back to cauldron, as well.  The process 
could be even automated.

> Also, your point seems to forget to take in account that people can
> focus on bugfixs without any freeze of the distribution, yet, they do
> not seems to do so.

Basically I assumed that.

> People rushing packages in the last minute as it always happen is the
> prime example of why people prefer cauldron rather than bugfix.

But doesn't blocking cauldron during freeze reinforce this behavior ?

>> In any case, it seems to me that the bigger liability would be being out of sync with the 6-month
>> release cycle of kde, gnome, as well as many other distros.
>
> s/many others distros/ubuntu and fedora/.

OK.  Mostly just the 2 biggest distros.

> Opensuse has a cycle of 8 months, Debian is not really time based ( and
> is around 1 and 2 years ), Mandriva is gone on 1 year cycle, Arch,
> Pclinuxos or others popular distributions from distrowatch do not seems
> on a regular cycle. And as someone said, Mint is more released "when
> ready after seeing fix on Ubuntu" than being a 6 months cycle ( even if
> that's very similar ).

I still see short_cauldron_freeze + copy_to_pre-release + unfreeze_cauldron as a better approach.
Even if we do go for a 9-month release cycle.

It is not as though we would be adopting the parallel development scheme of Mozilla, having a 
number of parallel branches in development at the same time.  That would require much more work.
It would only be for the freeze period.

Having cauldron blocked for 6 weeks seems excessive.  Many packagers are left with little to 
contribute.  And in certain cases, even those focused and efficient on bug fixes, will find it 
advantageous to be able to make updates to cauldron which are currently blocked.

another 2 cents :)

-- 
André


More information about the Mageia-dev mailing list