[ 
https://issues.apache.org/jira/browse/TINKERPOP-1443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15668253#comment-15668253
 ] 

ASF GitHub Bot commented on TINKERPOP-1443:
-------------------------------------------

Github user metlos commented on the issue:

    https://github.com/apache/tinkerpop/pull/494
  
    Yes, Java makes it somewhat difficult to properly declare "module 
boundaries" - let's hope Java 9 will do that right.
    
    But for now, it is often useful to declare certain packages as internal and 
not consider any changes in them as "user-facing". As shown with 
`org.apache.tinkerpop.shaded`, it is quite easy to exclude packages from the 
API check with Revapi.
    
    If the internal and API classes are mixed within a single package, we could 
also annotate the internal classes with some dedicated annotation - let's say 
`org.apache.tinkerpop.Internal` and configure Revapi to ignore anything 
annotated with that annotation. Revapi can also be configured to just ignore 
certain classes but that's slightly more involved, because you'd need to modify 
the POM each time you add an internal class (as opposed to just annotating the 
class).


> Use an API checker during build
> -------------------------------
>
>                 Key: TINKERPOP-1443
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1443
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: build-release
>    Affects Versions: 3.2.2
>            Reporter: Lukas Krejci
>
> Tinkerpop 3.2.2 changed the signature of the method 
> {{GraphTraversal.hasLabel}} from {{(String...)}} to {{(String, String...)}}. 
> While this is certainly an improvement, it is both source and binary 
> incompatible change.
> I.e. even if every usage of {{hasLabel}} had at least one parameter in the 
> user code, none of those calls will work until all the user code is 
> recompiled using Tinkerpop 3.2.2.
> I don't know the versioning policy of Tinkerpop but changes like the above in 
> a micro/patch release are generally unexpected.
> Please consider API checkers like http://revapi.org to warn about such 
> incompatible API changes...



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

Reply via email to