lists.xwiki.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

notifications

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
notifications@xwiki.org

  • 58304 discussions
[xwiki/xwiki-platform] 518b25: XWIKI-24710: Add script APIs to count distinct act...
by XWiki Notifications 25 Aug '26

25 Aug '26
Branch: refs/heads/XWIKI-24710 Home: https://github.com/xwiki/xwiki-platform Commit: 518b25d24e6e3efbd52d5f1331c35b3ed57832f9 https://github.com/xwiki/xwiki-platform/commit/518b25d24e6e3efbd52d5f1331c3… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/ActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/DataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/TooManyExtensionsException.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultDataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/data/DatePingDataProvider.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/data/DistributionPingDataProvider.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/data/ExtensionPingDataProvider.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptService.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/it/org/xwiki/activeinstalls2/internal/PingSenderIT.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/DataManagerTest.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfigurationTest.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptServiceTest.java M xwiki-platform-tools/xwiki-platform-tool-configuration-resources/src/main/resources/xwiki.properties.vm Log Message: ----------- XWIKI-24710: Add script APIs to count distinct active installs globally and per extension * Detect that a per-extension count would report only some of the extensions by asking the terms aggregation for one extension more than the configured maximum, and refusing the count when that extra one comes back, rather than by reading sum_other_doc_count. The former is exact whatever the number of shards of the index, while the latter also holds the buckets that a shard didn't report because they fell below its shard_size, and would thus refuse a count whose extensions all fit on a multi-shard index. * Assemble the queried field paths from the mapping property names declared by the ping data providers, instead of re-declaring them and keeping them in sync by hand. DatePingDataProvider now uses the shared instance id path too, rather than assembling its own. * Bring a configured maximum extension count back into the range a query can use, so that a value below 1 or at Integer.MAX_VALUE doesn't turn into an Elasticsearch error mentioning neither. * Pass the name of the configuration property to raise to TooManyExtensionsException, and expose it, rather than having the exception name a property that belongs to the ActiveInstallsConfiguration implementation in use. * Document that a query on the extensions doesn't restrict the extensions being counted, since a nested query selects the pings holding a matching extension and every extension of those pings is then counted. * Document on countInstalls() that it counts pings and not instances despite its name, and correct the field that its DataManager example queries, which doesn't exist in the mapping. * Verify in the integration test that a maximum exactly reaching the number of extensions in the index still counts them all, extract this issue's phases out of the test method, and restore the mocked maximum in a finally block. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-platform/settings/notifications
1 0
0 0
[xwiki/xwiki-platform] 58c4af: XWIKI-24710: Add script APIs to count distinct act...
by XWiki Notifications 25 Aug '26

25 Aug '26
Branch: refs/heads/XWIKI-24710 Home: https://github.com/xwiki/xwiki-platform Commit: 58c4afdba5909b522f104784bbb45616a645f0e6 https://github.com/xwiki/xwiki-platform/commit/58c4afdba5909b522f104784bbb4… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/pom.xml M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/ActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/DataManager.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/TooManyExtensionsException.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultDataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptService.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/it/org/xwiki/activeinstalls2/internal/PingSenderIT.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/ActiveInstallsConfigurationTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/DataManagerTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfigurationTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptServiceTest.java M xwiki-platform-tools/xwiki-platform-tool-configuration-resources/src/main/resources/xwiki.properties.vm Log Message: ----------- XWIKI-24710: Add script APIs to count distinct active installs globally and per extension * Add DataManager#countDistinctInstalls(), counting the distinct instances matching a query with a cardinality aggregation on the instance id. Contrary to countInstalls(), which counts pings, this counts installs: an instance pings once a day but also on every restart. * Add DataManager#countDistinctInstallsByExtension(), returning the same count per extension id in a single query. It uses a reverse nested aggregation since the extensions are indexed as a nested type while the instance id is on the root document. Document that the counts are keyed by the id an extension is installed under and are not resolved through the features it provides. * Expose both through the activeinstalls2 script service. * Both methods are default methods throwing their declared checked exception, so that existing DataManager implementations keep working. * Set the cardinality precision threshold explicitly on both aggregations: the maximum Elasticsearch supports for the global count, and the lower default for the per-extension one, which pays that memory once per extension bucket. Document in both APIs the count above which the result is an approximation. * Return the per-extension counts in the order Elasticsearch returns them rather than in a hash order. * Add ActiveInstallsConfiguration#getMaxExtensionCountPerQuery(), configurable with the new activeinstalls2.maxExtensionCountPerQuery property, to bound how many extensions a single per-extension count can report. This makes both the point at which the query starts failing and the cost it can impose on the Elasticsearch cluster configurable. * Raise the new TooManyExtensionsException rather than a generic Exception when that bound is exceeded, so that a caller can tell that raising the configured maximum is what's needed without matching on a message. * Add unit tests for the DataManager and ActiveInstallsConfiguration default methods, for the script service and for the configuration, extend the integration test to verify the per-extension counts, their order and that counting more extensions than the configured maximum fails, and raise the module's instruction coverage ratios accordingly. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-platform/settings/notifications
1 0
0 0
[xwiki/xwiki-docker] 3f350a: XDOCKER-18: Never downgrade the XWiki version of a...
by XWiki Notifications 25 Aug '26

25 Aug '26
Branch: refs/heads/XDOCKER-18-automate-docker-images-release Home: https://github.com/xwiki/xwiki-docker Commit: 3f350abe0d37da9e99f2687a097b0cbe03024742 https://github.com/xwiki/xwiki-docker/commit/3f350abe0d37da9e99f2687a097b0c… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M gradle/update-versions.gradle Log Message: ----------- XDOCKER-18: Never downgrade the XWiki version of a cycle * Apply to 'updateXWiki' the floor rule 'updateJDBC' already has. A pinned version ahead of everything the Maven metadata lists means the metadata lost it (a release pulled for being broken, a repository half synced), not that the cycle should be rebuilt and republished backwards. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> Commit: 76c436e3f52ef3a62e71789462125f8e8ffbb0fb https://github.com/xwiki/xwiki-docker/commit/76c436e3f52ef3a62e71789462125f… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M README.md M gradle/run-instances.gradle M gradle/update-versions.gradle Log Message: ----------- XDOCKER-18: Smoke test what a change is about, and say why it failed * Boot, for each cycle, the variant of every database whose JDBC driver 'updateJDBC' moved, on top of the postgres-tomcat baseline. A driver bump is the one DB-specific change there is, and nothing else in the build ever connects XWiki to a database - the Docker Build workflow only checks that the jar landed in WEB-INF/lib - so a MySQL connector crossing a major went out entirely unbooted. 'updateJDBC' now reports which database moved, and '-Pvariants' overrides the selection. * Report the tail of the container logs when an instance never comes up, while the containers still exist: the 'down -v' takes them away, and a bare timeout message is not something a failed release can be diagnosed from. * Match the version reported by the REST API between boundaries instead of as a substring. One version string can be the prefix of another, so an instance answering 17.10.12 satisfied a smoke test expecting 17.10.1, i.e. the release gate went green on the wrong image. * Fail when the docker-compose.yml rewrites that isolate an instance find nothing to replace, instead of silently booting on 8080 in the shared project and tearing down, volumes included, whatever was started there by hand. * Tear down the instance's compose project before starting it too, so that a stale one left by a killed daemon or a reboot is not adopted and reported on in place of the image just built. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> Commit: 125d48a0fd658f4e059a79bcced68ce970c42d30 https://github.com/xwiki/xwiki-docker/commit/125d48a0fd658f4e059a79bcced68c… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M build.gradle M gradle/helpers.gradle M gradle/official-image.gradle Log Message: ----------- XDOCKER-18: Keep the official images file honest about what it declares * Stop untracked files blocking 'submitOfficialImage'. What the guard is about is whether the commits it emits are reachable upstream, which a release manager's scratch notes have no bearing on, so it now looks at tracked changes only - and names them, instead of leaving 'git status' to be run by hand. * Define what a cycle 'role' means in a single map, the section comment and the Pull Request label together, and check the model against it there. The labels used to live apart from the check, leaving the Pull Request body free to render an unknown role as 'null' while everything else looked right. * Reject a variant that build.gradle generates but this file does not declare. It would be generated, committed and built by CI, yet never reach the file that publishes it, so the images would simply not exist on DockerHub. * Retry syncing the fork, which GitHub creates asynchronously and which a first-ever run can therefore fail to find. * Drop 'capture's working directory parameter, which no caller passes, and the unused ReplaceTokens import. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> Commit: 030467de568b71880c5483a24052b95ea69c5812 https://github.com/xwiki/xwiki-docker/commit/030467de568b71880c5483a24052b9… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M gradle/official-image.gradle Log Message: ----------- XDOCKER-18: Submit the current URL of this repository * Emit 'GitRepo: https://github.com/xwiki/xwiki-docker.git'. The published file still names xwiki-contrib/docker-xwiki, which only resolves through the redirect GitHub kept when this repository moved to the xwiki organisation, and that redirect goes away the day anything else is created under the old name - taking the official image builds with it. This is the one line by which the generated file now differs from the published one. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> Compare: https://github.com/xwiki/xwiki-docker/compare/dca1cb0f0c3d...030467de568b To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-docker/settings/notifications
1 0
0 0
[xwiki/xwiki-platform] 957cfe: XWIKI-24710: Add script APIs to count distinct act...
by XWiki Notifications 25 Aug '26

25 Aug '26
Branch: refs/heads/XWIKI-24710 Home: https://github.com/xwiki/xwiki-platform Commit: 957cfee31c8f329eb03644fe2e8474a030f29560 https://github.com/xwiki/xwiki-platform/commit/957cfee31c8f329eb03644fe2e84… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/pom.xml M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/ActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/DataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultDataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptService.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/it/org/xwiki/activeinstalls2/internal/PingSenderIT.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/ActiveInstallsConfigurationTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/DataManagerTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfigurationTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptServiceTest.java M xwiki-platform-tools/xwiki-platform-tool-configuration-resources/src/main/resources/xwiki.properties.vm Log Message: ----------- XWIKI-24710: Add script APIs to count distinct active installs globally and per extension * Add DataManager#countDistinctInstalls(), counting the distinct instances matching a query with a cardinality aggregation on the instance id. Contrary to countInstalls(), which counts pings, this counts installs: an instance pings once a day but also on every restart. * Add DataManager#countDistinctInstallsByExtension(), returning the same count per extension id in a single query. It uses a reverse nested aggregation since the extensions are indexed as a nested type while the instance id is on the root document. * Expose both through the activeinstalls2 script service. * Both methods are default methods throwing their declared checked exception, so that existing DataManager implementations keep working. * Set the cardinality precision threshold explicitly on both aggregations: the maximum Elasticsearch supports for the global count, and the lower default for the per-extension one, which pays that memory once per extension bucket. Document in both APIs the count above which the result is an approximation. * Return the per-extension counts in the order Elasticsearch returns them rather than in a hash order. * Add ActiveInstallsConfiguration#getMaxExtensionCount(), configurable with the new activeinstalls2.maxExtensionCount property, to bound how many extensions a single per-extension count can report. This makes both the point at which the query starts failing and the cost it can impose on the Elasticsearch cluster configurable. * Add unit tests for the DataManager and ActiveInstallsConfiguration default methods, for the script service and for the configuration, extend the integration test to verify that counting more extensions than the configured maximum fails, and raise the module's instruction coverage ratios accordingly. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-platform/settings/notifications
1 0
0 0
[xwiki/xwiki-platform] e8a6f6: XWIKI-24710: Add script APIs to count distinct act...
by XWiki Notifications 25 Aug '26

25 Aug '26
Branch: refs/heads/XWIKI-24710 Home: https://github.com/xwiki/xwiki-platform Commit: e8a6f620de21059069b60abf9036d2cd77710a02 https://github.com/xwiki/xwiki-platform/commit/e8a6f620de21059069b60abf9036… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/pom.xml M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/ActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/DataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultDataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptService.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/it/org/xwiki/activeinstalls2/internal/PingSenderIT.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/ActiveInstallsConfigurationTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/DataManagerTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfigurationTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptServiceTest.java M xwiki-platform-tools/xwiki-platform-tool-configuration-resources/src/main/resources/xwiki.properties.vm Log Message: ----------- XWIKI-24710: Add script APIs to count distinct active installs globally and per extension * Add DataManager#countDistinctInstalls(), counting the distinct instances matching a query with a cardinality aggregation on the instance id. Contrary to countInstalls(), which counts pings, this counts installs: an instance pings once a day but also on every restart. * Add DataManager#countDistinctInstallsByExtension(), returning the same count per extension id in a single query. It uses a reverse nested aggregation since the extensions are indexed as a nested type while the instance id is on the root document. * Expose both through the activeinstalls2 script service. * Both methods are default methods throwing their declared checked exception, so that existing DataManager implementations keep working. * Set the cardinality precision threshold explicitly on both aggregations: the maximum Elasticsearch supports for the global count, and the lower default for the per-extension one, which pays that memory once per extension bucket. Document in both APIs the count above which the result is an approximation. * Return the per-extension counts in the order Elasticsearch returns them rather than in a hash order. * Add ActiveInstallsConfiguration#getMaxExtensionCount(), configurable with the new activeinstalls2.maxExtensionCount property, to bound how many extensions a single per-extension count can report. This makes both the point at which the query starts failing and the cost it can impose on the Elasticsearch cluster configurable. * Add unit tests for the DataManager and ActiveInstallsConfiguration default methods, for the script service and for the configuration, extend the integration test to verify that counting more extensions than the configured maximum fails, and raise the module's instruction coverage ratios accordingly. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-platform/settings/notifications
1 0
0 0
[xwiki/xwiki-docker] d92e3c: XDOCKER-18: Give each booted instance a compose pr...
by XWiki Notifications 25 Aug '26

25 Aug '26
Branch: refs/heads/XDOCKER-18-automate-docker-images-release Home: https://github.com/xwiki/xwiki-docker Commit: d92e3cb14e4e58bff5934e95c5e4bc5d2cb52b46 https://github.com/xwiki/xwiki-docker/commit/d92e3cb14e4e58bff5934e95c5e4bc… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M gradle/release.gradle M gradle/run-instances.gradle Log Message: ----------- XDOCKER-18: Give each booted instance a compose project of its own * 'smokeTest' ran 'docker compose up -d' and 'down -v' straight in the version/variant directory, so its compose project was the directory basename - 'postgres-tomcat', which every cycle shares and which is also what a developer gets from 'cd 18/postgres-tomcat && docker compose up'. Booting cycle 18 while such an instance was running failed on the container name and the port 8080 already taken, and the teardown in the 'finally' then removed that instance's containers and, with '-v', its data volumes. A release check has no business deleting someone's wiki. * Rename 'runAllCompose' to 'composeInstance', move it above 'smokeTest' and use it there too, so the smoke test gets the port and container renaming plus the '-p' project that 'runAll' already had. Both derive their project name through 'composeProject', which prefixes it with the task so tearing one down never reaches the other. * Publish the smoke test on 18080 rather than 8080, so that a port a developer is already using cannot fail a boot for a reason unrelated to the image being checked. * Depend on 'generate' in 'smokeTest' and 'runAll'. The image is tagged with the model's XWiki version while the compose file names the one in the generated '.env', so './gradlew updateXWiki smokeTest' used to boot the previously published image and then wait ten minutes for a version it could never report. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> Commit: a05665c1d6207b326fa031f6e1ab8e89f96bb461 https://github.com/xwiki/xwiki-docker/commit/a05665c1d6207b326fa031f6e1ab8e… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M gradle/helpers.gradle Log Message: ----------- XDOCKER-18: Retry a download that failed rather than abort the release * 'release' streams the XWiki WAR and the LibreOffice archives, hundreds of megabytes from hosts that fail transiently often enough that the generated Dockerfile retries its own downloads for that very reason (CURL_OPTIONS in template/Dockerfile). Here a single blip aborted the run, possibly after 'versions.json' had already been rewritten for the cycles handled before it, leaving the release manager to work out how far it got. * Fold the redirect-following loop that 'httpGetText' and 'sha256OfUrl' each carried into a single 'httpGet' that hands the response stream to a consumer, and give it three attempts with a growing delay. A failure while the consumer is reading counts too, since that is where a large download dies. * Only retry what can get better on its own: an IOException and the 408/429/5xx statuses. A 404 on a version that does not exist still fails at once instead of burning the delays first. * Convert the command to plain Strings in 'stream'. ProcessBuilder only turns its list into an array when the process starts, so a GString slipped into it failed there with an ArrayStoreException rather than where it was written - and 'capture', which the same scripts use interchangeably, takes GStrings in its stride. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> Commit: 35765fc4af8fec31219afbbe4f8470c8f3b02f63 https://github.com/xwiki/xwiki-docker/commit/35765fc4af8fec31219afbbe4f8470… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M build.gradle M gradle/official-image.gradle Log Message: ----------- XDOCKER-18: Reject a cycle role that docker-library would not understand * The 'role' of a cycle is not only ours: it drives the tag aliases and the section comments of the official Docker library file that 'submitOfficialImage' submits to docker-library. A typo in 'versions.json' went through unnoticed, emitting a literal 'null' section header, silently dropping that cycle's stable-*/lts-* aliases and putting '(null)' in the Pull Request body - noticed, if at all, by a reviewer upstream. * Check the roles when build.gradle reads the model, and check that exactly one cycle is the stable one, since the branch and the commit message of that Pull Request are named after its version. * Drop the check 'submitOfficialImage' made for a missing stable cycle, now that it cannot happen, and say where the invariant comes from. * Also drop 'ext.versionsFile', which nothing read: 'writeVersions' closes over it. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> Commit: 4b7d34cf141df8415643629216956d4125e80418 https://github.com/xwiki/xwiki-docker/commit/4b7d34cf141df8415643629216956d… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M gradle/update-versions.gradle Log Message: ----------- XDOCKER-18: Hash the WAR at the URL the image downloads it from * 'updateXWiki' resolved the versions and computed the sha256 from nexus.xwiki.org while the generated Dockerfile downloads the WAR from maven.xwiki.org, on the argument that the two serve the same artifacts. They do, but pinning the bytes the image actually fetches is the whole point of the hash, and it costs nothing to read them from the one URL that matters. The JDBC and LibreOffice hashes are already taken from their own download URL. * Read the maven-metadata.xml and the WAR from maven.xwiki.org/releases, sharing the one repository URL, and read the cycle POM of 'updateJDBC' from there as well rather than from a second repository. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> Commit: dca1cb0f0c3d95e389444df7b9ea2073ef22daab https://github.com/xwiki/xwiki-docker/commit/dca1cb0f0c3d95e389444df7b9ea20… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M .github/workflows/gradlew-check.yml Log Message: ----------- XDOCKER-18: Check the generated files on Pull Requests too * The Gradlew Check workflow is what guarantees that the committed generated files are what the templates and versions.json produce, but it only ran on a push to master - so a Pull Request changing either was merged before anything verified it, and master was where it broke. * Run it on Pull Requests as well. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> Compare: https://github.com/xwiki/xwiki-docker/compare/3ac324f7cf4c...dca1cb0f0c3d To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-docker/settings/notifications
1 0
0 0
[xwiki/xwiki-platform] a1a4b7: XWIKI-24710: Add script APIs to count distinct act...
by XWiki Notifications 25 Aug '26

25 Aug '26
Branch: refs/heads/XWIKI-24710 Home: https://github.com/xwiki/xwiki-platform Commit: a1a4b769040d3ac56dea5ac1f7d86ef55ebf6654 https://github.com/xwiki/xwiki-platform/commit/a1a4b769040d3ac56dea5ac1f7d8… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/pom.xml M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/ActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/DataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultDataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptService.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/it/org/xwiki/activeinstalls2/internal/PingSenderIT.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/ActiveInstallsConfigurationTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/DataManagerTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfigurationTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptServiceTest.java M xwiki-platform-tools/xwiki-platform-tool-configuration-resources/src/main/resources/xwiki.properties.vm Log Message: ----------- XWIKI-24710: Add script APIs to count distinct active installs globally and per extension * Add DataManager#countDistinctInstalls(), counting the distinct instances matching a query with a cardinality aggregation on the instance id. Contrary to countInstalls(), which counts pings, this counts installs: an instance pings once a day but also on every restart. * Add DataManager#countDistinctInstallsByExtension(), returning the same count per extension id in a single query. It uses a reverse nested aggregation since the extensions are indexed as a nested type while the instance id is on the root document. * Expose both through the activeinstalls2 script service. * Both methods are default methods throwing their declared checked exception, so that existing DataManager implementations keep working. * Set the cardinality precision threshold explicitly on both aggregations: the maximum Elasticsearch supports for the global count, and the lower default for the per-extension one, which pays that memory once per extension bucket. Document in both APIs the count above which the result is an approximation. * Return the per-extension counts in the order Elasticsearch returns them rather than in a hash order. * Add ActiveInstallsConfiguration#getMaxExtensionCount(), configurable with the new activeinstalls2.maxExtensionCount property, to bound how many extensions a single per-extension count can report. This makes both the point at which the query starts failing and the cost it can impose on the Elasticsearch cluster configurable. * Add unit tests for the DataManager and ActiveInstallsConfiguration default methods, for the script service and for the configuration, and raise the module's instruction coverage ratios accordingly. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-platform/settings/notifications
1 0
0 0
[xwiki/xwiki-platform] 1387d5: XWIKI-24710: Add script APIs to count distinct act...
by XWiki Notifications 25 Aug '26

25 Aug '26
Branch: refs/heads/XWIKI-24710 Home: https://github.com/xwiki/xwiki-platform Commit: 1387d549e50da459460a0ee44e92933ee832fa8b https://github.com/xwiki/xwiki-platform/commit/1387d549e50da459460a0ee44e92… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/pom.xml M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/ActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/DataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfiguration.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultDataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptService.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/it/org/xwiki/activeinstalls2/internal/PingSenderIT.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/ActiveInstallsConfigurationTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/DataManagerTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/internal/DefaultActiveInstallsConfigurationTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptServiceTest.java M xwiki-platform-tools/xwiki-platform-tool-configuration-resources/src/main/resources/xwiki.properties.vm Log Message: ----------- XWIKI-24710: Add script APIs to count distinct active installs globally and per extension * Add DataManager#countDistinctInstalls(), counting the distinct instances matching a query with a cardinality aggregation on the instance id. Contrary to countInstalls(), which counts pings, this counts installs: an instance pings once a day but also on every restart. * Add DataManager#countDistinctInstallsByExtension(), returning the same count per extension id in a single query. It uses a reverse nested aggregation since the extensions are indexed as a nested type while the instance id is on the root document. * Expose both through the activeinstalls2 script service. * Both methods are default methods throwing their declared checked exception, so that existing DataManager implementations keep working. * Set the cardinality precision threshold explicitly on both aggregations: the maximum Elasticsearch supports for the global count, and the lower default for the per-extension one, which pays that memory once per extension bucket. Document in both APIs the count above which the result is an approximation. * Return the per-extension counts in the order Elasticsearch returns them rather than in a hash order. * Add ActiveInstallsConfiguration#getMaxExtensionCount(), configurable with the new activeinstalls2.maxExtensionCount property, to bound how many extensions a single per-extension count can report. This makes both the point at which the query starts failing and the cost it can impose on the Elasticsearch cluster configurable. * Add unit tests for the DataManager and ActiveInstallsConfiguration default methods, for the script service and for the configuration, and raise the module's instruction coverage ratios accordingly. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-platform/settings/notifications
1 0
0 0
[xwiki/xwiki-docker] 5a39eb: XDOCKER-18: Compare the versions without failing o...
by XWiki Notifications 25 Aug '26

25 Aug '26
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/5a39eb6179bc6a096280e2ff599e67… Author: Vincent Massol <vincent(a)massol.net> 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) <noreply(a)anthropic.com> Commit: 8d465194c91d00717dfd5d79483458df8a8e736c https://github.com/xwiki/xwiki-docker/commit/8d465194c91d00717dfd5d79483458… Author: Vincent Massol <vincent(a)massol.net> 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) <noreply(a)anthropic.com> Commit: 43a66d3403fd8bd21ac9a31ccc3f701e6a76ca0b https://github.com/xwiki/xwiki-docker/commit/43a66d3403fd8bd21ac9a31ccc3f70… Author: Vincent Massol <vincent(a)massol.net> 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) <noreply(a)anthropic.com> Commit: 300d1fe27bb95b4fdabff82daa84f25377f1efc1 https://github.com/xwiki/xwiki-docker/commit/300d1fe27bb95b4fdabff82daa84f2… Author: Vincent Massol <vincent(a)massol.net> 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) <noreply(a)anthropic.com> Commit: 3ac324f7cf4cce404b6fbe2555ca0ede2113f06a https://github.com/xwiki/xwiki-docker/commit/3ac324f7cf4cce404b6fbe2555ca0e… Author: Vincent Massol <vincent(a)massol.net> 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) <noreply(a)anthropic.com> 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
1 0
0 0
[xwiki/xwiki-platform] 5268ba: XWIKI-24710: Add script APIs to count distinct act...
by XWiki Notifications 25 Aug '26

25 Aug '26
Branch: refs/heads/XWIKI-24710 Home: https://github.com/xwiki/xwiki-platform Commit: 5268ba704038ac8c0a77c69fe22f08b83f74d6bc https://github.com/xwiki/xwiki-platform/commit/5268ba704038ac8c0a77c69fe22f… Author: Vincent Massol <vincent(a)massol.net> Date: 2026-08-25 (Tue, 25 Aug 2026) Changed paths: M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/pom.xml M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/DataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/internal/DefaultDataManager.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/main/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptService.java M xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/it/org/xwiki/activeinstalls2/internal/PingSenderIT.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/DataManagerTest.java A xwiki-platform-core/xwiki-platform-activeinstalls2/xwiki-platform-activeinstalls2-api/src/test/java/org/xwiki/activeinstalls2/script/ActiveInstallsScriptServiceTest.java Log Message: ----------- XWIKI-24710: Add script APIs to count distinct active installs globally and per extension * Add DataManager#countDistinctInstalls(), counting the distinct instances matching a query with a cardinality aggregation on the instance id. Contrary to countInstalls(), which counts pings, this counts installs: an instance pings once a day but also on every restart. * Add DataManager#countDistinctInstallsByExtension(), returning the same count per extension id in a single query. It uses a reverse nested aggregation since the extensions are indexed as a nested type while the instance id is on the root document. * Expose both through the activeinstalls2 script service. * Both methods are default methods throwing their declared checked exception, so that existing DataManager implementations keep working. * Set the cardinality precision threshold explicitly on both aggregations: the maximum Elasticsearch supports for the global count, and the lower default for the per-extension one, which pays that memory once per extension bucket. Document in both APIs the count above which the result is an approximation. * Return the per-extension counts in the order Elasticsearch returns them rather than in a hash order. * Add unit tests for the DataManager default methods and for the script service, and raise the module's instruction coverage ratio accordingly. Co-Authored-By: Claude Opus 5 (1M context) <noreply(a)anthropic.com> To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-platform/settings/notifications
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • ...
  • 5831
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.