Say which two things 2.0.0 breaks - #68
Merged
Merged
Conversation
The release notes claimed the JVM public API was unchanged from 1.2.0, byte for byte. It is not, and the mistake is a specific one worth naming: the multiplatform migration changed no API, I measured that, and then I wrote it up as if it were true of the whole release. Between v1.2.0 and v2.0.0 the dump gains 666 lines and loses 8. The additions are cluster support, formula and MMR reranking, shard-scope snapshots and the Koog module, all merged after the 1.2.0 tag. The eight removals are the old constructor and copy signatures of ScrollRequest and SearchRequest, which gained a shardKey parameter. Source still compiles, because the parameter is defaulted, but copy() called against a 1.x jar does not — which is exactly the case STABILITY.md already described in the abstract, arriving for real. So the major is justified twice over rather than once, and the honest version is more useful than the one it replaces: a reader who calls copy() on either type now learns they have to recompile, where before they were told nothing had changed. The narrow claim survives and is worth keeping, because it is the part that sounds like it should have broken something: the multiplatform migration's own diff on the api dump is empty.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
2.0.0release notes claim the JVM public API is unchanged from1.2.0, byte for byte. That iswrong, and it is published: the GitHub Release body is generated from
CHANGELOG.md, so it carriesthe claim too.
The mistake was mine and it is a specific one. I measured that the multiplatform migration changed no
API, which is true, and then wrote it up as if it were true of the whole release.
What the dump actually says
The additions are cluster and sharding, formula and MMR reranking, shard-scope snapshots and the Koog
module, all merged after the
1.2.0tag. The eight removals are the old constructor andcopysignatures of
ScrollRequestandSearchRequest, which gained ashardKeyparameter:Source still compiles, because the parameter is defaulted.
copy()called against a1.xjar doesnot. That is precisely the case
STABILITY.mdalready described under "what may still change in aminor", arriving for real.
What changes here
CHANGELOG.md,STABILITY.mdand the README now say the major is justified twice: the artifactcoordinate moving to
kdrant-core-jvm, and those twocopysignatures. The narrow claim surviveswhere it belongs, because it is the part that sounds like it should have broken something and did not:
The corrected version is more useful than the one it replaces. A reader who calls
copy()on eithertype now learns they have to recompile, where before they were told nothing had changed.
After merge the
v2.0.0Release body needs regenerating from the corrected changelog, since it wascreated from the old text.