I'd like to start a discussion not so much about git and branches and
stuff, but more about what our release pattern will be and how that will
be managed. It's inspired in part by some worries Pavel expressed:

> i have been thinking about the proposed changes last couple of days
> and from many small things the main issue occuring to me again and
> again is that the new model of each 6 months release is going to be
> harmful for the overall stability of the stable lyx releases in general.
>
> 6 months mean 2 corrective releases (in current counting) and i think
> that if we end with 2.0.2/3 there is not enough time to even catch
> problematic bugs so the final 2.0.x release will be steep drop in
> quality compared to the previous releases.
>
> to my taste such price for pushing new features out quickly is inadequate.
>
Speaking as branch maintainer, and also as a LyX user, I too worry about
this. It's important that we have a culture that promotes LyX's stability.

So what I'd like to suggest is that we NOT change our release schedule.
We should plan to release 2.1 in about 18 months. However, if we move to
the "features in branch model" that Vincent and Abdel have been
proposing, then I think that would make it MUCH easier to merge new
features into branch when we thought they were really ready and didn't
touch too much other code. (This means that bug-fixing of such features
ideally ought still to be done in that same branch, but that is more a
workflow issue, and I'm trying not to talk so much about that.)

Part of my reason for this proposal is that I don't think having
intermediate "feature" releases would actually make very much
difference. Some of the big 2.0 features could have been integrated into
1.6, had they been deemed sufficiently complete and tested, e.g.,
comparison and advanced F&R. And if you look at the list of new 2.0
features, you'll see that most of them involved format changes, either
to the LyX file (XeTeX, Refstyle, Indices, etc), to layout files
(XHTML), or to preferences (continuous spell-check), if not to more than
one of these (required arguments).

So I would propose to maintain two versions of BRANCH_2_0_X, much as the
release maintainer, under the Vincent-Abdel proposal (as I understand
it) would maintain two versions of trunk (the experimental one and one
that is more stable). These would be: branch-20x/stable, which would be
essentially the existing branch; and branch-20x/experimental, which
would be where the new features went first, when they were deemed ready
for branch. When they had received sufficient testing there---I at least
would use that branch for daily work and would suggest others do the
same---then they could be moved to stable and included in the next release.

This would allow some new features, more than now, to be included in the
2.0.x series, without, it seems to me, reducing the stabilization period
our current release cycle allows. And, as I said, I doubt that it would
actually lead to fewer new features being included than would be
included if we went with defined feature releases every six months.

Comments?

Richard

Reply via email to