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é