markrmiller commented on issue #13797:
URL: https://github.com/apache/lucene/issues/13797#issuecomment-2865097554

   Thank you for your question, Vigya. 
   
   > Will v16 still need to ship the 14-format code?
   Yes—until a new on-disk break forces `MIN_SUPPORTED_MAJOR` to move again.
   
   > Do we ever bump even when nothing broke?
   No. We bump *only* on an incompatible format change; otherwise, the constant 
stays put. With the caveat that nothing is promised to the user beyond one 
major version, and something could come up that a developer decides warrants 
bumping anyway.
   
   Let me try to clarify with a concrete example.
   
   The idea is that MIN_SUPPORTED_MAJOR represents "the oldest major version 
that the current version can read directly" - not a version-by-version 
compatibility chain.
   
   Here's how it would work:
   
   Let's say we implement this in Lucene 11 and set MIN_SUPPORTED_MAJOR = 10, 
meaning Lucene 11 can read Lucene 10 indexes directly.
   
   - If Lucene 12 has no breaking index format changes, we'd keep 
MIN_SUPPORTED_MAJOR = 10
   - If Lucene 13 also has no breaking changes, it stays at 10
   - If Lucene 14 has no breaking changes, still 10
   
   Now, if Lucene 15 introduces a breaking index format change (e.g., new norms 
encoding), we'd set MIN_SUPPORTED_MAJOR = 14. This means Lucene 15 can read 
indexes from version 14 and no older.
   
   When Lucene 16 comes along:
   - If there are no breaking changes, MIN_SUPPORTED_MAJOR remains 14
   - If there are breaking changes, we'd bump to MIN_SUPPORTED_MAJOR = 15
   
   So you would need to retain codec read code for versions ≥ 
MIN_SUPPORTED_MAJOR,  but the assumption is this would typically be a low cost 
for the user benefit. Where it’s not, there is no promise, and 
MIN_SUPPORTED_MAJOR could be raised even where no break has forced it as a kind 
of exceptional case. Again, no promises have been made to users.
   
   Does that help clarify the proposal? I think your concerns are valid. We 
would definitely need to ensure this mechanism is well-documented and clearly 
understood. <subjective_statement> Still, it doesn’t seem like a significant 
lift given what is already required to make changes and ensure one major 
release back compat. </subjective_statement>


-- 
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: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to