On 5/21/2009 at 7:17 AM, Michael McCandless wrote:
> OK so it sounds like we've boiled the proposal down to two concrete
> changes to the back-compat policy:
> 
>   1) Default settings can change; we will always choose defaults
>      based on "latest & greatest for new users".  This only
>      affects "runtime behavior".  EG in 2.9, when sorting by
>      field you won't get scores by default.  When we do this we
>      should clearly document the change, and what settings one
>      could use to get back to the old behavior, in CHANGES.txt.
> 
>   2) An API, once released as deprecated, is fair game to be
>      removed in the next minor release.
> 
> We still only make bug fixes on point releases, support the index
> file format until the next major release -- those don't change.

Contrasting the upgrade experience of existing "maintenance" users (i.e., users 
not using new Lucene features) under current policy with their experience under 
the above proposals:

Currently there are two upgrade experiences for these users: a) upgrading 
within the same major release; and b) major release upgrades.  

For a), the user reads CHANGES for back-compat exceptions, but otherwise has 
drop-in compatibility.  For b), the user performs two upgrades: first, just 
like in a), to the last minor release in the same major release, addressing all 
deprecation warnings; and second, to the major release, with drop-in 
compatibility, modulo CHANGES.

Here's the upgrade procedure under the above proposals, from version X.Y to X.Z:

1. Address all deprecation warnings against the currently used Lucene version 
(call it version X.Y[0]).

2. Upgrade to X.(++Y), addressing all deprecation warnings and checking CHANGES 
for exceptions to the back-compat policy, including mechanisms to maintain 
X.Y[0] defaults. 

3. Iterate #2 until Y==Z.

One consequence of these changes is that major version upgrades the same as 
minor version upgrades, with the exception that index format support (and 
default settings support?) will potentially require attention.

Another consequence is that upgrade effort will no longer be amortizable.  
Currently, maintenance users can skip minor version upgrades with almost no 
penalty, and defer the upgrade pain to major release upgrades, since 
deprecation warnings can be safely ignored.  (Not advocating this practice, 
just noting that it's possible.)

Steve


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

Reply via email to