I think that's a reasonable proposal as long as we understand it changes
the burden from finding all the things that should be marked @Private to
finding all the things that should be marked @Public. As Tom Graves
pointed out in an earlier discussion about @LimitedPrivate, it may be
impossible to do a straightforward task and use only interfaces marked
@Public. If users can't do basic things without straying from @Public
interfaces then tons of code can break if we assume it's always fair
game to change anything not marked @Public. The "well you shouldn't
have used a non-@Public interface" argument is not very useful in that
context.
So as long as we're good about making sure officially supported features
have corresponding @Public interfaces to wield them then I agree it will
be easier to track those rather than track all the classes that should
be @Private. Hopefully if users understand that's how things work
they'll help file JIRAs for interfaces that need to be @Public to get
their work done.
Jason
On 07/22/2014 04:54 PM, Karthik Kambatla wrote:
Hi devs
As you might have noticed, we have several classes and methods in them that
are not annotated at all. This is seldom intentional. Avoiding incompatible
changes to all these classes can be considerable baggage.
I was wondering if we should add an explicit disclaimer in our
compatibility guide that says, "Classes without annotations are to
considered @Private"
For methods, is it reasonable to say - "Class members without specific
annotations inherit the annotations of the class"?
Thanks
Karthik