Clarifying rules for XWiki docker image changes

Hello everyone,

I’m opening this proposal with the hope to clarify our rules related to our docker images and when they are updated. This has been discussed on the chat in the past, but I don’t think we have any documented best practice about that.
To give a bit of context of why I’m doing this now, it’s because I just released XWiki 14.6 and when I created the commit on the docker repository for it I obtained this: XDOCKER-243: Upgrade stable version to 14.6 · xwiki/xwiki-docker@da38c29 · GitHub

So my commit contains changes for all versions (13.x, 14.4.x and 14.x). It contains changes for:

  • the mariaDB connector version
  • the tomcat base image
  • the XWiki release

All that on the same JIRA ticket commit, and I do think it’s wrong. Then I referenced this commit in the PR for updating the official images there: as you can see I updated all images, I also do think it’s wrong.

So there’s 2 subjects here:

  1. When should the image template be updated on our repository
  2. When should the official image PR be done

For me the simpler would be that for any change performed on the repository to always run the gradle build and to always perform a PR on the version impacted.

Now I could accept that we only perform the PR of the official image whenever a release is done and that we update all our images (even if there was no change): I’m -0 for that.
But I’m strongly -1 with the current situation for not performing a gradle build systematically whenever a change is done on the repo: we should not have the kind of commit I did there.

Yes this is our current (non-written) strategy. Someone (possibly me) forgot to run the gradle build after making changes to the template.

Until now, we’ve sometimes done it before an XWiki release and sometimes later on. The docker jira project has a different release time than XWiki so it’s fine to do it sooner if we think the change is sufficiently important four our users to get it immediately (the equivalent of a bug fix release).

I think it’s ok to leave it to the dev to decide, depending on what’s been changed.


I agree with you on this one, it should definitely be done for any change.

For me, there is no reason to force doing that for every change unless the change is about fixing a blocker bug, but any dev is free to do it.