Switching to a LTS release every 6 months?

Hi devs,

I’d like to brainstorm about switching to LTS releases every 6 months instead of just one per year as currently described at https://dev.xwiki.org/xwiki/bin/view/Community/VersioningAndReleasePractices

The rationale is:

  • It could be long for our production users to wait one year before upgrading and thus benefit from some new features or less important bug fixes that are not backported. In a cloud world where software is deployed automatically several times per days on cloud instances, releasing a LTS once per year is a bit old school. Ok even twice per year will still be old school but it goes in the right direction :wink:
  • Most of the active committers work for the XWiki SAS company and that company is providing 2 LTS per year to its clients (they call it a Recommended version FWIW). The way they do it is by asking their committers to do some extra releases in the xwiki open source project + having @ilie.andriuta and Gabriela perform manual testing to ensure the quality. Thus the validation work is already done twice per year and it wouldn’t cost more for most of the current committers compared to the current situation.

How it could work in practice:

  • We would still have only a single LTS, i.e. we will backport important bugs only in the latest LTS. Once a new LTS is released, it replaces the previous one.
  • When XWiki N.5 is released, that branch becomes a LTS branch
    • 2 bug fix releases are done on that branch in 1 month (one release every 15 days)
  • When XWiki N.5.2 is released it’s automatically named as the new LTS
  • Open question: should we reduce the number of XWiki releases per year by 1 as a consequence or should we do the N.5.1 and N.5.2 releases in parallel to the N.6 release (which could have a lighter roadmap content to accommodate the N.5.x dev work)?

Consequences:

  • More upgrades from our users if they want to follow the LTS releases. They’ll be kind of forced to follow up if they want to get the bugfix releases with security fixes and other fixes.
  • It means contrib extensions could require more XWiki upgrades too since their parent pom version is supposed to be using the last LTS or older (thus contrib extension developers could update the minimal version more often). Note that this is probably a good thing since it means extensions can use faster new features or new APIs.

I think the more frequent LTS upgrade for our users is the biggest potential issue (the pro side is getting new features and fixes faster while still having a production-ready instance).

The only difference is see from now is that we wouldn’t backport bugfixes in the previous (N-1).10.x LTS after N.5.2 is released. We could also decide to continue backporting in the last two LTS. It’s more work but it’s what we’re currently doing. In that case it would mean having 2 LTS available in the download area and we’d need to modify a lot of places where we talk about the LTS in our docs and processes since that wouldn’t be precise enough anymore (we would need to say mid-year LTS vs end-of-year LTS).

WDYT?

PS: I’m not taking position ATM (even though I sent a brainstorming about it) since I’m currently ambivalent about it. I’d like to hear more from others first.

Are you talking about new extensions here ? Because for existing extensions, having more LTS should not have any kind of impact: the XWiki version required by an extension is supposed to be upgraded only if the extension really needs it.

I agree that either there is only one LTS or we have two different names and I don’t think “mid-year LTS” is different enough.

As a XWiki SAS dev I don’t mind continuing supporting 3 branches (i.e. keep 12.10.x). I have the feeling that stopping the support of a something we call LTS after 6 months which is essentially what we are talking about here is a bit harsh.

In summary, I’m +1 to make official what we are already doing on XWiki SAS side with 3 supported branches since it would make my life simpler and -0 to stop supporting what is currently called LTS (even if it would make my life even simpler :slight_smile: ).

The “really needs it” is quite subjective. For ex, I’ve upgraded the parent pom several times for build reasons (to be able to have Docker tests for ex). The only rule that exists is that extensions must work on LTS releases. That’s the only thing we can rely on. Thus if there are more LTS releases, it most likely means more recent parent POM changes and thus needing for users to upgrade more recently their XS version. It may not be a lot but I’ve the feeling it’ll go in this direction.

FTR, I’d really like to avoid introducing a new concept. For me it’s either “stable” or “LTS”. Any other name will be confusing and make things too complex IMO.

In this case, it means this proposal should be dropped and we should continue what we do now IMO. I’m fine with that BTW.

For me if we don’t call it LTS and if each LTS doesn’t replace the previous one (ie we stop supporting the previous one), then I’d drop this proposal and I’d be in favor of continuing as we do now).

Let’s see what others think.

Thanks for your reply Thomas.

Honestly I really doubt your practice is very common, if you look at existing extensions you won’t find many which depend on the current LTS and you will find many which have very old XWiki versions as constraint, even very active extensions.

Thanks for starting this thread, I took time to answer since I’m really mixed. On one hand I’d like that we support less branches and we accelerate bringing new features with shorter LTS, and on the other hand it feels a bit dangerous to have LTS of 6 months on our stability.

An aspect we could check is if it would speed up the testing process: right now there’s manual tests performed by XWiki SAS on the 3 branches, if we have only 2 I guess we might have faster status and maybe a better handling of the stability on the long run?

Now personally as a start, I’d be very much in favor of at least make official on XWiki.org the mid-year version XWiki SAS ask us to maintain. It would be easier for the communication of XWiki.org, when we advise to use a version over another on the forum for example etc. And maybe doing that for a year or two could show us if people are moving fast to the mid-year version or if they prefer to stick to the LTS.

My issue with making the N.5.x LTS is that I don’t think we have enough time to polish the features we introduce in the first part of the year. From past experience I think we need a year for that. So I’m leaning towards continuing what we’re doing now.