[ 
https://issues.apache.org/jira/browse/CURATOR-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jordan Zimmerman closed CURATOR-193.
------------------------------------
    Resolution: Implemented

We will strive to maintain semantic versioning in the future.

> Release note incompatibilities between Curator 2.6 and 2.7
> ----------------------------------------------------------
>
>                 Key: CURATOR-193
>                 URL: https://issues.apache.org/jira/browse/CURATOR-193
>             Project: Apache Curator
>          Issue Type: Task
>          Components: Documentation
>    Affects Versions: 2.6.0, 2.7.0, 2.7.1
>            Reporter: Sean Busbey
>            Priority: Critical
>              Labels: compatibility, release_notes, versioning
>
> Please release note that Curator 2.7 is incompatible with Curator 2.6 in the 
> following ways:
> * org.apache.curator.utils.PathUtils.validatePath(String) in curator-client
> In release 2.7.0, CURATOR-136 changed the return type of this method from 
> void to String. This is fine for a semver minor version under source 
> compatibility, but is a violation of semver under binary compatibility. A 
> downstream user will get NoSuchMethodError if their already compiled class 
> uses this method.
> Downstream users should recompile their code against Curator 2.7.0+
> * 
> org.apache.curator.framework.recipes.shared.SharedCountReader.getVersionedValue()
>  in curator-recipes
> * 
> org.apache.curator.framework.recipes.shared.SharedValueReader.getVersionedValue()
>  in curator-recipes
> In release 2.7.0, I think CURATOR-151 added these two methods to these 
> interfaces as a part of improving an API.
> The changes are fine for binary compatibility provided nothing in the 
> framework ever calls them (doing so will result in NoSuchMethodError when 
> called on an instance compiled against the older interface).  AFAICT, nothing 
> in the framework accepts one of these interfaces and then calls this method.
> However, the addition of methods to Java interfaces breaks source 
> compatibility. The inter-process semaphore recipes work on arbitrary 
> SharedCountReader instances. That means that downstream folks who made their 
> own implementation of the SharedCountReader interface under 2.6.0 will get a 
> compilation error when they attempt to update to 2.7.0+.
> Downstream users will need to implement the added method before compiling 
> against Curator 2.7.0+.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to