Hello Andre, 

For the most part, @Private is considered internal implementation and subject 
to change at any point. In this case, even more so as it is an *Impl class. 

What we can do is try the following: 
    - Look at all the various @Private classes being used by Cascading.
    - See which ones should not be used at all and which ones can be considered 
to be a @LimitedPrivate for Cascading.
    - For LimitedPrivate apis, we would then try to be a bit more careful with 
respect to changing/breaking these APIs. I would probably not say that they 
have will have the same guarantees as @Public/@Stable but we can work with the 
Cascading community to handle changes to these APIs in a workable manner on an 
ongoing basis. 

As for this API in question, for the short term fix, I guess a simple approach 
might be to introduce a backward compatible API ( I believe one which does not 
need the timeout param passed in )? Would you mind filing a jira and hopefully 
provide a patch too?

thanks
— Hitesh

On Aug 18, 2015, at 8:01 AM, Andre Kelpe <[email protected]> wrote:

> Hi,
> 
> I have found a small API incompatibility in the Tez 0.6.2 release. The
> DAGClientTimelineImpl constructor got a new parameter for time-outs. This
> was not present in 0.6.1 and from a semantic versioning point of view, that
> is problematic. I know that the class is marked with the @Private
> annotation, but it would be great if such incompatible things aren't
> introduced in a bug-fix release. It would be easier for downsteam projects,
> if you just added a second constructor.
> 
> Is that an oversight or are classes with the @Private annotation subject to
> change and dowstream projects simply have to deal with it?
> 
> Thanks!
> 
> - André
> 
> -- 
> André Kelpe
> [email protected]
> http://concurrentinc.com

Reply via email to