hossman commented on PR #15784: URL: https://github.com/apache/lucene/pull/15784#issuecomment-5544033002
> The queries are marked [@lucene.experimental](https://github.com/apache/lucene/blob/553fb33c0ef7c5e6d54ed4f35b966d95cb6535a9/build-tools/build-infra/src/main/java/org/apache/lucene/gradle/plugins/java/RenderJavadocPlugin.java#L502), allowing changes to be backwards incompatible You're right. That's totally valid reasoning -- but I feel like there's a difference between making backcompat changes that are easy to catch because of compilation/linkage failures, and a binary compatible API that (IIUC) interprets it's arguments in _roughly_ the opposite of what it use to. (I've seen a lot of `@lucene.experimental` backcompat breaks that cause compilation failures -- but i don't think i've ever seen one like this) > Given that Lucene 10.5.2 bugfix is in process, I wonder if we can re-add the old collector from 10.4 and expose a new deprecated static method (say FloatVectorSimilarity.legacyQuery) for users that discover this incompatible change, and can continue with the old behavior without copying the class outside Lucene, like you had to. I'll leave that up to you ... it won't necessarily help users discover this change, but for users who do discover it it would certainly simplify the process for reclaiming the old behavior. straw man extension of your idea: Since these classes are `@lucene.experimental`, we could even remove the public constructors completely -- so anyone using these classes gets a compilation error (regardless of whether they are expecting the args to mean `traversalSimilarity,resultSimilarity` or `resultSimilarity,decay`) and replace them with factory methods -- Marking the `traversalSimilarity` factory methods deprecated. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
