Problem
Revapi is configured with a three-component release pattern:
<versionFormat>\d+\.\d+\.\d+</versionFormat>
Scylla Java Driver releases use four components (for example 4.19.2.1). As a result, the dynamic RELEASE old artifact cannot select any published version.
Observed output on 4.19.2.2-SNAPSHOT:
Failed to resolve old artifacts: Failed to find a version of artifact
'com.scylladb:java-driver-core:RELEASE' that would correspond to an expression
'\d+\.\d+\.\d+'. The versions found were: [4.19.2.1, 4.19.2.1-SNAPSHOT,
4.19.2.0, ...]
Revapi then reports success while comparing against no old API, allowing binary-incompatible changes to pass unnoticed.
Suggested fix
Accept the fourth version component:
<versionFormat>\d+\.\d+\.\d+(?:\.\d+)?</versionFormat>
Also consider pinning the old artifact to the previous published version in release branches, so a later publication cannot silently change the comparison baseline.
Verification
Run:
mvn -pl core revapi:check
The log should identify the resolved old artifact explicitly and report incompatible API changes relative to it.
Problem
Revapi is configured with a three-component release pattern:
Scylla Java Driver releases use four components (for example
4.19.2.1). As a result, the dynamicRELEASEold artifact cannot select any published version.Observed output on
4.19.2.2-SNAPSHOT:Revapi then reports success while comparing against no old API, allowing binary-incompatible changes to pass unnoticed.
Suggested fix
Accept the fourth version component:
Also consider pinning the old artifact to the previous published version in release branches, so a later publication cannot silently change the comparison baseline.
Verification
Run:
The log should identify the resolved old artifact explicitly and report incompatible API changes relative to it.