Eli Zaretskii [25/Jun  2:19pm +03] wrote:
> Our experience is that NN.1 always has regressions, so NN.2 is usually
> needed to have a stable, relatively bug-free NN.x release.  A release
> cycle of a major version takes at least 6 to 9 months, whereas a NN.2
> release can be done sooner.  So if we immediately start the release
> cycle of the next major release, users will wait longer to have minor
> bugs fixed.  Moreover, NN.x versions will never become more stable
> than they were at initial release, which for a feature-rich release
> usually mean not stable enough.  By contrast, with the current
> practice we can tell users to upgrade when NN.2 or NN.3 is released,
> and they then have more stable Emacs with fewer regressions.

Okay, let's rule out that first option, then.

>> >> - Continue to install fixes on the emacs-31 branch as though we were
>> >>   still in the later stages of the pre-release freeze.
>> >
>> > That's what we've been doing until now on every release branch after
>> > the NN.1 version was released.
>>
>> It isn't though, and that's my point.  We do that for a while and then
>> gradually do it less and less, with no rhyme or reason for the process.
>
> We basically stop updating the release branch when we are about to
> feature-freeze the master branch in preparation for the next release
> cycle.  Or at least that's the intent; I know that the practice is
> somewhat different (and with Emacs 31 we delayed the release cycle too
> much, but there were reasons for that).  The trigger to stopping the
> updates of the release branch is actually a decision not to have any
> more NN.x releases.

I think you mean: a decision not to have any more NN.x releases
excluding ones for critical fixes (mainly, security fixes).

> That decision is not always explicit, but at least for me, it was
> always the the trigger.  You can see that by watching the branch on
> which I fix the documentation.

I think it's a bit worse than that: different people drift away from it
at different points.  I would like us all to be singing from the same
hymn sheet on these matters.

> "Years" should be an exaggeration.  Look at etc/HISTORY and I think
> you will see that in many/most cases it only took months, not years,
> between the last NN.x and the first NN+1.1.

Fair.

>> > I think the main cost, one you haven't mentioned, will be to delay the
>> > NN+1.1 release (because more important changes are being installed on
>> > the release branch, and more energy is directed towards emacs-NN
>> > branch releases).
>>
>> I agree that this would be a cost, but it doesn't seem to me like it
>> would be the main cost.  Our NN.1 releases always feel like they take
>> longer than we would like, and I don't think this would add a lot.
>
> Can you back up this with numbers, taken from etc/HISTORY?  Because I
> think your impression is wrong.
>
> NN.1 release takes longer because it's a feature release: there are
> usually quite a few new features, and it takes time to polish them
> during the pretest.  If you have ideas for how to shorten that period,
> please tell.

As the proposal here is a new workflow, I'm not sure what numbers you
could mean.

We could say that we stop doing this as soon as the next branch is cut.

> The problem with Emacs (as compared to most other programs) is that it
> is enormously large, has a lot of independent parts that cannot be
> tested unless they are actively used by someone, and it touches a lot
> of very different domains.  It takes time to test all that enough so
> we can be sure the release will not be horribly broken for someone,
> because their particular packages or domains were never used enough
> after the changes on master.
>
>> > Also, our experience is that as time passes, it becomes harder and
>> > harder to keep releasing from emacs-NN without adding new features,
>> > because the world at large doesn't stand still.  For example, when
>> > Unicode releases a new version of the standard, is it reasonable to
>> > put out emacs-NN.x releases that support only the previous version of
>> > Unicode?  IOW, once the release branch is open to anything but
>> > strictly safe bugfixes, and it lives for a long time, it becomes
>> > harder to keep it stable.
>>
>> I think it should still only be strictly safe bug fixes, the difference
>> is that we include strictly safe bug fixes for bugs that are of less
>> critical severity -- how bad the bug is for users and how safely it can
>> be fixed vary indepedently.
>
> I think we already do that, or at least we intend to.  I suggest to
> look at the emacs-31 release branch as a test case and see where we
> can do better.

My point is that we don't do that, in fact.  We just fix stuff on
master.  Otherwise any safe fixes should have been going to emacs-30
right up until the emacs-31 branch cut.  But they were not, they were
going to master.

-- 
Sean Whitton

Reply via email to