Branch: refs/heads/XDOCKER-18-automate-docker-images-release Home: https://github.com/xwiki/xwiki-docker Commit: 5a39eb6179bc6a096280e2ff599e676cc1907a38 https://github.com/xwiki/xwiki-docker/commit/5a39eb6179bc6a096280e2ff599e676... Author: Vincent Massol <[email protected]> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M gradle/helpers.gradle Log Message: ----------- XDOCKER-18: Compare the versions without failing on a qualifier * 'compareVersions' parsed every dot-separated component as an int, so a version carrying anything but digits threw a NumberFormatException. Every version it is given is plain numbers today, but it decides whether a driver found in a POM is an upgrade over the pinned one, i.e. it reads values this repository does not control, and aborting a release over the day one of them gains a qualifier is a poor trade. * Compare each component on the number it starts with, falling back to comparing the components as text when those numbers are equal, so that a qualifier orders instead of failing. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Commit: 8d465194c91d00717dfd5d79483458df8a8e736c https://github.com/xwiki/xwiki-docker/commit/8d465194c91d00717dfd5d79483458d... Author: Vincent Massol <[email protected]> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M gradle/update-versions.gradle Log Message: ----------- XDOCKER-18: Look the JDBC driver properties up by their exact name * The regex reading a driver version out of a cycle's POM interpolated the property name as it is, so the '.' of 'mysql.version' was left as the regex metacharacter matching any character. Nothing in the POMs happens to match those patterns loosely today, but a property whose name only resembles the one being read would be picked up. * Quote the property name so that it is matched literally. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Commit: 43a66d3403fd8bd21ac9a31ccc3f701e6a76ca0b https://github.com/xwiki/xwiki-docker/commit/43a66d3403fd8bd21ac9a31ccc3f701... Author: Vincent Massol <[email protected]> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M gradle/update-versions.gradle Log Message: ----------- XDOCKER-18: Leave versions.json alone when LibreOffice has not moved * 'updateLibreOffice' rewrote the whole data file on every run, including when it had just resolved the very version and checksums already pinned, unlike the two other update tasks which only write what they changed. * Write only when the version or one of the two checksums differs, and report a checksum changing under an unchanged version for what it is, since that means the archive it was read from was republished. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Commit: 300d1fe27bb95b4fdabff82daa84f25377f1efc1 https://github.com/xwiki/xwiki-docker/commit/300d1fe27bb95b4fdabff82daa84f25... Author: Vincent Massol <[email protected]> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M gradle/official-image.gradle Log Message: ----------- XDOCKER-18: Never close an official images Pull Request still open * 'submitOfficialImage' names its branch after the stable version and deleted that branch on the fork before recreating it. Running it twice for the same version, which happens whenever something has to be corrected, deleted the ref of the branch the pending Pull Request was opened from, and GitHub closes a Pull Request whose head branch is gone. A submission still being reviewed upstream is not ours to close. * Refuse to run when a Pull Request is still open from that branch, naming it so it can be looked at. * Also fail with an explanation rather than a NullPointerException when no cycle declares the 'stable' role, since that is the version the branch and the commit message are named after. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Commit: 3ac324f7cf4cce404b6fbe2555ca0ede2113f06a https://github.com/xwiki/xwiki-docker/commit/3ac324f7cf4cce404b6fbe2555ca0ed... Author: Vincent Massol <[email protected]> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M build.gradle M gradle/official-image.gradle M gradle/run-instances.gradle M gradle/update-versions.gradle Log Message: ----------- XDOCKER-18: Say what binding the model at configuration time really buys * The comments explaining why the applied scripts bind the model and the helpers into local variables claimed that no task action reaches for the project while it runs, which is not what the code does: 'generate' and 'generateWorkflows' call 'copy', and the tasks booting images resolve their paths with 'file'. A comment promising more than the code delivers is worse than no comment, and this one would have the next reader believe the build is configuration cache compatible when it is not. * State what the binding actually avoids, namely reading the project properties from inside the task actions, and say where the build still stands with the configuration cache. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Compare: https://github.com/xwiki/xwiki-docker/compare/7b2782d22362...3ac324f7cf4c To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-docker/settings/notifications