Which version should be promoted first between LTS or stable?

Hi everyone,

as part of the release of XWiki 12.0 I just noticed that in Docker we were mostly “promoting” our LTS version, where apparently for Debian we are more promoting our Stable version.

Let me bit a bit more specific: we use different tags for our docker images, from the most specific such as “11.10.1-postgres-tomcat” to the least one such as “latest”. “latest” points on latest stable which is normal. But we also have “postgres-tomcat” (and “mysql-tomcat”) and both point to the LTS. So anyone trying to use docker pull xwiki/mysql-tomcat will get an LTS.

Now for Debian, it is not that obvious IMO, but the command specified in the documentation to get XWiki advise to use sudo wget "https://maven.xwiki.org/stable/xwiki-stable.list" -P /etc/apt/sources.list.d/, so not xwiki-lts.

I think it would be good to be consistent on which version we want to promote first between LTS or stable, and to always make that version the easiest to access in our doc or our tags.

I personally don’t have a strong opinion on that, just raising the problem.

+1 for stable, that’s the one we want people to test

This is a bug. It’s always been supposed to point to stable. LTS versions are either supposed to have the version or have the lts keyword in the tag.

Let me check the history and fix this. Thx

Actually I’m wrong. It’s not a bug. We’ve always had LTS = latest (https://github.com/docker-library/official-images/blob/a7dfee2298ed9fb129258ecb585b53111c54822c/library/xwiki ) for the reason that we wanted to promote the LTS (so that users get the most stable version by default).

The reason that 11.x is LTS = stable = latest is because there was no 12.x version during 1 month. Now that 12.0 is out we need to remove latest from 11.x and move it to 12.0.

So we need to decide if we prefer to move users to latest or keep them on stable == LTS. Personally I think I prefer LTS since this is what we should promote for XWiki which is an enterprise software and we want users to be as stable as possible. Another argument of course is to use the community to test the latest features. I’m not it’s a good idea to change it though since that will make users suddenly switch magically from stable to latest just by doing a docker pull.


Actually that’s not true, so it’s even more confusing :slight_smile: Look at https://github.com/surli/official-images/blob/35a2157b8333073ac16ab4cf437cc3812f051572/library/xwiki for example, you’ll see that LTS != latest, but LTS == mysql-tomcat.

So I kept on my latest PR this scheme: latest == stable, and LTS == mysql/postgresql-tomcat.

But this proves that it already changed at a point.

Well I guess we should first clarify the situation and document it somewhere. Not sure we need to change something on the tags.

Indeed it changed in https://github.com/surli/official-images/commit/c754f397f84366ec67e9e4d80aef48699ac75088

I don’t remember why I changed it but it seems that at this point I considered that LTS == latest was not correct. It’s possible I just went with latest == last released version.

So, sinced we changed the definition of latest at least once we do need to decide what we want. So what do we want our users to get when they don’t specify anything? Stable or lts?

Both have pros:

  • latest == stable is logical from a semantic pov since it corresponds to the last released version in general. It also pushes users to test the last release version of xwiki (at the expense of stability).
  • latest == lts is the « safe » option. Users get the most stable version by default.

After more thinking I think I agree that latest == stable makes the most sense. If users are in prod then they’ll be careful about the version they use anyway and will pick lts as the tag IMO.

Si +1 from le for latest == stable.



Well question actually: do you link stable and mysql/postgres-tomcat, since it was the root cause of this thread :slight_smile: i.e. should we put mysql-tomcat == stable or not?

It’s the same thing for me, ie if there’s no lts keyword then it’s stable and thus latest.


Well it definitely makes more sense to me than the current situation.
So +1 for latest = mysql-tomcat = latest and 12-postgres = postgres-tomcat.

I probably thought that it was not normal that latest wasn’t the latest and I changed it in https://github.com/surli/official-images/commit/c754f397f84366ec67e9e4d80aef48699ac75088 but I didn’t think about mysql-tomcat and the like at that time.

Anyway let’s fix this now!

So the 3 of us are ok it seems. Let’s fix it!

PR sent at https://github.com/docker-library/official-images/pull/7376

Thanks Simon for raising this.