On Mon, Apr 25, 2022 at 10:05:58PM +0200, Daniel Sahlberg wrote:
> Hi,
> 
> According to the Roadmap, How we plan releases[1], 1.10.0 is a LTS release
> that will receive support for 4 years. According to the News archive[2],
> 1.10.0 was released 2018-04-13.
> 
> 1.10.0 was released approximately two months before the transition to the
> LTS support policy and I have not been able to dig out what was promised
> previously.

Before LTS releases, the 2 most recent lines of releases were supported.
The most recent one would receive all types of bug fixes, the second one
would receive security or data-corruption fixes only.

I think it would make sense to go back to our old release policy.

As far as I understand, the goal of the LTS policy was to publish 
releases more quickly to get features tested earlier by users and
gather feedback before such features would be set in stone as part
of an LTS release. This policy was invented at the same time as the
shelving feature. I don't know for sure but I believe this feature and
the involvement of a particular sponsor with some time-to-market constraints
are part of the reason why a release policy change was suggested in the first
place. The shelving feature was developed in multiple iterations and was
shipped in several drafts, as planned. But it never made it beyond an
experimental status, and given there has not been further development effort
on this feature for quite some time I don't believe this will change.
No other feature I am aware of has since adopted the development and
release model which was introduced along with the shelving feature.

The old release policy had its own share of problems. Essentially,
every release was an LTS release, but the support time window for a
release was not announced in advance. In practice, due to relatively slow
pace of development, it worked out well (just look at the pacing of past
release in the CHANGES file, it was not unreasonable).
The most significant drawback of the old policy at the time was that the
incentive to ship a release with features in early stages of development
was very low. It was difficult to decide when the code on trunk was ready
to be released. Every released feature had to be supported with full
backwards compatibility going forward.
This caused some friction, again with sponsors who had time-to-market
constraints. The most prominent case occurred in the 1.5 cycle during
which merge-tracking was developed (see here for an essay about this:
http://www.hyrumwright.org/papers/floss2009.pdf). Ultimately, merge-tracking
was shipped in a de-facto "experimental" state, and users were not all happy
about this. Later releases had to correct several design-level problems and
implementation bugs. Had the current LTS/non-LTS release split existed at
that time, some of these issues might have been avoided before appearing
as part of an LTS release and be supported forever.

In any case, our current policy only works when it is actually implemented
as intended, and this is not happening. In my opinion, our old release policy
is more suited for the current state of things. Feature development does not
need to be rushed, we don't have sponsors anymore who promise features to
their clients and then come back to the project to ask about our progress
on the next release. And our userbase seems to be more interested in a
stable long-term support platform than in trying out experimental features.

Going back to the old policy would mean that 1.10 would be supported
until 1.15 comes out. At which point only 1.15 and 1.14 would be supported.

Cheers,
Stefan

Reply via email to