On Sat, Apr 18, 2026, 21:03 Alex Herbert <[email protected]> wrote:
> On Sat, 18 Apr 2026 at 22:52, Gary Gregory <[email protected]> wrote: > > > I see the following revapi errors: > > https://gist.github.com/garydgregory/1c47721f4745b1f3ffdf373dd068ad80 > > > > Gary > > > > That is a large list of errors that seem to indicate that revapi has not > linked up to the separation of the core module and the client-api. For > example the error: > > [ERROR] java.class.noLongerImplementsInterface: class > org.apache.commons.rng.core.BaseProvider: Class no longer implements > interface 'org.apache.commons.rng.RestorableUniformRandomProvider'. > > https://revapi.org/revapi-java/differences.html#java.class.noLongerImplementsInterface > > But look in the file in the downloaded source archive: > > > commons-rng-core/src/main/java/org/apache/commons/rng/core/BaseProvider.java > > --- cut --- > public abstract class BaseProvider > implements RestorableUniformRandomProvider > --- cut --- > > So revapi is not finding the client-api code. > > Can you let me know the command you used to generate this? > IIRC, I ran a default build and then: mvn revapi:check Gary > I've just downloaded the commons-rng-1.7-src.tar.gz from the dist staging > site and it builds using the default mvn command using: > > Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9) > Maven home: /Users/ah403/mvn/mvn > Java version: 17.0.17, vendor: Eclipse Adoptium, runtime: > /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home > Default locale: en_GB, platform encoding: UTF-8 > OS name: "mac os x", version: "26.3.1", arch: "aarch64", family: "mac" > > Default goal is 'clean verify javadoc:javadoc'. Note that the javadoc > plugin is set to fail on warnings so this is run in the default goal to > pick up errors. Most plugins are activated by executions in the pom to > lifecycle phases, or by a profile triggered by a file (this is how revapi > is triggered). I can verify that japicmp and revapi do run on my clean > builds for each module. > > I've looked at the difference between git master and the 1.7-release > branch. The diff does not have any changes to revapi configuration. It is > version changes in the pom, release notes, changes.xml and download page > updates. > > The revapi plugin does not appear to be reproducible or deterministic. The > config file to ignore changes has two sections, one for 1.5 and now for > 1.7. Both have the same id. This may be causing an issue if the two > sections are being merged non-deterministically. I cannot know as I cannot > reproduce the issue to experiment with fixing it. > > I see two options: > > - Reproduce this on git master, fix it, and cut a new release > - Remove use of revapi > > I actually like revapi. It is far more configurable than japicmp, and > reports on semantic, binary and source compatibility issues. But it is not > doing me any favours here. > > To allow for the first option, can you run a build on git master please. If > that fails on revapi then it is a platform dependent issue as github > actions, and my builds, have been OK with the current setup. > > Thanks, > > Alex > > > > > > > On Thu, Apr 16, 2026 at 10:18 AM Alex Herbert <[email protected]> > > wrote: > > > > > > I noticed the revapi differences reports were empty. However the raw > HTML > > > contains actual differences between the 1.6 and 1.7 release. > > > > > > The HTML is missing a <table> tag at the start of each section showing > > > differences. Thus the rows are not rendered in a browser. > > > > > > A dive into the source code for the revapi maven plugin that generates > > this > > > report shows it has not changed for 12 years and it does initiate a > table > > > at the correct point: > > > > > > > > > https://github.com/revapi/revapi/blame/9ed5780461749706433bc1cdcef8023ad49046a9/revapi-maven-plugin/src/main/java/org/revapi/maven/ReportMojo.java#L605 > > > > > > There must be some incompatibility somewhere in the dependencies used > by > > > the revapi report MOJO. I looked at the dependencies for 1.6 (where the > > > report worked) and 1.7 where it did not using: > > > > > > mvn dependency:resolve-plugins > > > > > > Notable differences in the report output object provided > > > by org.apache.maven.doxia.sink.Sink: > > > > > > RNG 1.7: > > > > > > org.revapi:revapi-maven-plugin:jar:0.15.1 > > > [INFO] org.apache.maven.doxia:doxia-sink-api:jar:2.0.0-M10 > > > [INFO] org.apache.maven.doxia:doxia-site-renderer:jar:2.0.0-M16 > > > [INFO] org.apache.maven.doxia:doxia-core:jar:2.0.0-M8 > > > [INFO] org.apache.maven.doxia:doxia-site-model:jar:2.0.0-M16 > > > [INFO] org.apache.maven.doxia:doxia-skin-model:jar:2.0.0-M16 > > > [INFO] org.apache.maven.doxia:doxia-module-xhtml5:jar:2.0.0-M8 > > > [INFO] > org.apache.maven.doxia:doxia-integration-tools:jar:2.0.0-M16 > > > [INFO] org.apache.maven.doxia:doxia-module-apt:jar:2.0.0-M8 > > > [INFO] org.apache.maven.doxia:doxia-module-xdoc:jar:2.0.0-M8 > > > > > > RNG 1.6: > > > > > > org.revapi:revapi-maven-plugin:jar:0.15.0 > > > [INFO] org.apache.maven.doxia:doxia-sink-api:jar:1.10 > > > [INFO] org.apache.maven.doxia:doxia-logging-api:jar:1.10 > > > [INFO] org.apache.maven.doxia:doxia-site-renderer:jar:1.10 > > > [INFO] org.apache.maven.doxia:doxia-core:jar:1.10 > > > [INFO] org.apache.maven.doxia:doxia-decoration-model:jar:1.10 > > > [INFO] org.apache.maven.doxia:doxia-skin-model:jar:1.10 > > > [INFO] org.apache.maven.doxia:doxia-module-xhtml:jar:1.10 > > > [INFO] org.apache.maven.doxia:doxia-module-xhtml5:jar:1.10 > > > > > > The site renderer doxia has changed major version and in 1.7 also has a > > > mismatch of versions. Commons skin 5.2.0 now requires doxia 2.0. So the > > > update to doxia somehow has broken this report. I was not able to find > a > > > way to fix this using dependency includes. Note that changing the > revapi > > > plugin back to 0.15.0 did not fix this issue. > > > > > > The simple fix is to open each of the reports and add the <table> tag > > after > > > the </h3> tag in this section. I copied the tag used in the report on > the > > > site for 1.6: > > > > > > <table border="0" class="bodyTable table table-striped table-bordered"> > > > > > > I have updated the staged site so the reports now render their contents > > so > > > you can identify API changes. These should match those displayed by > > > japicmp. Note both compatibility plugins are used as historical changes > > to > > > the codebase were not correctly handled by one plugin alone. IIRC this > > was > > > moving a large portion of code from one package to another to be > > > implemented as default methods on an interface. > > > > > > Alex > > > > > > > > > On Thu, 16 Apr 2026 at 13:12, Alex Herbert <[email protected]> > > wrote: > > > > > > > We have fixed quite a few bugs and added some significant > enhancements > > > > since Apache Commons RNG 1.6 was released, so I would like to release > > > > Apache Commons RNG 1.7. > > > > > > > > Apache Commons RNG 1.7 RC1 is available for review here: > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1 (svn > > > > revision 83845) > > > > > > > > The Git tag commit for this RC is commons-rng-1.7-RC1, which you can > > > > browse here: > > > > > > > > > > > https://gitbox.apache.org/repos/asf?p=commons-rng.git;a=commit;h=commons-rng-1.7-RC1 > > > > You may checkout this tag using: > > > > git clone https://gitbox.apache.org/repos/asf/commons-rng.git > > > > --branch commons-rng-1.7-RC1 commons-rng-1.7-RC1 > > > > (signature can be checked from git using 'git tag -v > > commons-rng-1.7-RC1') > > > > > > > > Maven artifacts are here: > > > > > > > > > > > https://repository.apache.org/content/repositories/orgapachecommons-1928/org/apache/commons/ > > > > > > > > These are the artifacts and their hashes: > > > > > > > > #Release SHA-512s > > > > #Thu Apr 16 12:33:28 BST 2026 > > > > > > > > > > > commons-rng-1.7-bin.tar.gz=9dec28282c9baf8b02f8a47fab2e74f5c2ec123dd7f62b25c1946cc2f25b3193d11b72ec40300a663f429c000840045bbeb0324556d4aadbb42e4387558e15e4 > > > > > > > > > > > commons-rng-1.7-bin.zip=0ab05dd1a97abc14275de84a385e22f3180418dc5eafb2f4572bf121bcaf459553a540661821697b2d02103f1a14b294c453f9df003feb989402e004b48fef20 > > > > > > > > > > > commons-rng-1.7-src.tar.gz=34408d3693ff70653fe7b6a113947930cd312ef8b15641d5f66f0a1fa1a1a84243acd7f4d053602065eb7dab0939e102431ec12b18fb96a037793dc777374ac6 > > > > > > > > > > > commons-rng-1.7-src.zip=43c53c00080c832a68f3169909d510b983742b7feae62d5e0413135db2e24cc4082c10cfd2fb13be6ca62a8042b055255b77cac8f5e7702e5ca481dd4e025dd8 > > > > > > > > Signatures may be validated on a system supporting a bash Unix shell > by > > > > executing: > > > > svn co > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/ > > > > cd 1.7-RC1 > > > > chmod +x ./signature-validator.sh > > > > for m in client-api core simple sampling bom; do > > > > ./signature-validator.sh > > > > > > > https://repository.apache.org/content/repositories/orgapachecommons-1928/org/apache/commons/commons-rng-${m}/1.7/ > > ; > > > > done > > > > > > > > The source code contains examples that are not part of the public > API. > > > > These examples contain Java 11 modules and are enabled using a > profile > > (see > > > > below). > > > > > > > > Note: Testing randomness using statistical thresholds results in > > failures > > > > at a given probability. The 'maven-surefire-plugin' is configured to > > re-run > > > > tests that fail, and pass the build if they succeed within the > allotted > > > > number of reruns (the test will be marked as 'flaky' in the report). > > > > > > > > I have tested this with 'mvn clean install' and 'mvn clean package > > site > > > > site:stage -Pexamples' using: > > > > > > > > Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937) > > > > Maven home: /Users/ah403/software/apache-maven-3 > > > > Java version: 11.0.29, vendor: Homebrew, runtime: > > > > /opt/homebrew/Cellar/openjdk@11 > > /11.0.29/libexec/openjdk.jdk/Contents/Home > > > > Default locale: en_GB, platform encoding: UTF-8 > > > > OS name: "mac os x", version: "15.7.5", arch: "aarch64", family: > "mac" > > > > > > > > Details of changes since 1.6 are in the release notes: > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/RELEASE-NOTES.txt > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/changes.html > > > > > > > > Site: > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/index.html > > > > (Note some *relative* links are broken and the 1.7 directories > are > > not > > > > yet created - these will be OK once the site is deployed.) > > > > > > > > JApiCmp Report (compared to 1.6): > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/commons-rng-client-api/japicmp.html > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/commons-rng-core/japicmp.html > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/commons-rng-simple/japicmp.html > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/commons-rng-sampling/japicmp.html > > > > > > > > RevApi Report (compared to 1.6): > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/commons-rng-client-api/revapi-report.html > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/commons-rng-core/revapi-report.html > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/commons-rng-simple/revapi-report.html > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/commons-rng-sampling/revapi-report.html > > > > > > > > RAT Report: > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/site/rat-report.html > > > > > > > > KEYS: > > > > https://downloads.apache.org/commons/KEYS > > > > > > > > Please review the release candidate and vote. > > > > This vote will close no sooner than 72 hours from now. > > > > > > > > [ ] +1 Release these artifacts > > > > [ ] +0 OK, but... > > > > [ ] -0 OK, but really should fix... > > > > [ ] -1 I oppose this release because... > > > > > > > > Thank you, > > > > > > > > Alex Herbert, > > > > Release Manager (using key BC87A3FD0A54480F0BADBEBD21939FF0CA2A6567) > > > > > > > > The following is intended as a helper and refresher for reviewers. > > > > > > > > Validating a release candidate > > > > ============================== > > > > > > > > These guidelines are NOT complete. > > > > > > > > Requirements: Git, Java, and Maven. > > > > > > > > You can validate a release from a release candidate (RC) tag as > > follows. > > > > > > > > 1a) Download and decompress the source archive from: > > > > > > > > https://dist.apache.org/repos/dist/dev/commons/rng/1.7-RC1/source > > > > > > > > 1b) Check out the RC tag from git (optional) > > > > > > > > This is optional, as a reviewer must at least check source > > distributions. > > > > > > > > git clone https://gitbox.apache.org/repos/asf/commons-rng.git > --branch > > > > commons-rng-1.7-RC1 commons-rng-1.7-RC1 > > > > cd commons-rng-1.7-RC1 > > > > > > > > 2) Checking the build > > > > > > > > All components should include a default Maven goal, such that you can > > run > > > > 'mvn' from the command line by itself. > > > > > > > > 2) Check Apache licenses > > > > > > > > This step is not required if the site includes a RAT report page, > which > > > > you then must check. > > > > This check should be included in the default Maven build, but you can > > > > check it with: > > > > > > > > mvn apache-rat:check > > > > > > > > 3) Check binary compatibility > > > > > > > > This step is not required if the site includes a JApiCmp report page, > > > > which you then must check. > > > > This check should be included in the default Maven build, but you can > > > > check it with: > > > > > > > > mvn verify -DskipTests -P japicmp japicmp:cmp > > > > > > > > 4) Build the package > > > > > > > > This check should be included in the default Maven build, but you can > > > > check it with: > > > > > > > > mvn -V clean package > > > > > > > > You can record the Maven and Java version produced by -V in your VOTE > > > > reply. > > > > To gather OS information from a command line: > > > > Windows: ver > > > > Linux: uname -a > > > > > > > > 4b) Check reproducibility > > > > > > > > To check that a build is reproducible, run: > > > > > > > > mvn clean verify artifact:compare -DskipTests -Dreference.repo= > > > > https://repository.apache.org/content/repositories/staging/ > > > > '-Dbuildinfo.ignore=*/*.spdx.json' > > > > > > > > Note that this excludes SPDX files from the check. > > > > > > > > 5) Build the site for a multi-module project > > > > > > > > mvn site > > > > mvn site:stage > > > > Check the site reports in: > > > > - Windows: target\site\index.html > > > > - Linux: target/site/index.html > > > > > > > > Note that the project reports are created for each module. > > > > Modules can be accessed using the 'Project Modules' link under > > > > the 'Project Information' menu (see <path-to-site>/modules.html). > > > > > > > > -the end- > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > >
