[
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)