[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2017-02-16 Thread metlos
Github user metlos commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
So in another words it is a matter of setting up the level of breakage you 
want to allow between different Tinkerpop versions. I based the "minor increase 
allows breaking changes" on the "feeling" I got from how Tinkerpop changed over 
time, but you may want to modify it if you so choose.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2017-02-15 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
@metlos now that 3.2.4/3.1.6 have been released i thought i'd try to get 
the TINKERPOP-1443 branch ready for a final review before merging to master. 
i'm not sure if i'm doing something wrong, but i can't seem to get revapi to 
fail on build. i thought it would fail immediately when i did a `mvn clean 
install -DskipTests` but it seems to build without error. I even added an API 
change to a class in one of the packages listed in api-contents.json, but even 
then it didn't fail. Am I misinterpreting what I'm seeing somehow or just doing 
something wrong?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2017-01-12 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
I've set up the branch internal to TinkerPop:

https://github.com/apache/tinkerpop/tree/TINKERPOP-1443

@dkuppitz I tried to apply your patch but it still wouldn't build for me. 
Not sure if I did something wrong. Would you mind applying it yourself and 
pushing the fix when you get a minute?

@metlos Feel free to close this PR at this point. If you have future 
updates you can submit PRs against that branch (until it's merged). Thanks.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2017-01-06 Thread metlos
Github user metlos commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
Hmm, maven central seems to be taking its time - it still doesn't have the 
latest revapi-java version available (which is why CI failed for the latest 
commit).

But anyway, I've updated the versions to the latest, so you can move on to 
the internal branch. Let's hope maven central gets synced soon.

Thanks!


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2017-01-05 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
Ok - I'm in no rush. Let's wait until you get the new release available 
before I go to make an internal branch.   Thanks


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2017-01-05 Thread metlos
Github user metlos commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
I'm near a new release of Revapi that contains some important fixes (like 
wrong classification of a return type change to a covariant type). So 
everything I wanted to do to this PR was to update it with the latest Revapi 
version before it's merged.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2017-01-05 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
Thanks @dkuppitz - I wonder if the easiest thing to do right now is to 
merge this work into a TinkerPop branch, make some edits so that everything is 
working how we want, then re-submit the whole thing as a fresh PR. @metlos do 
you see any problems with that approach? was there anything else you wanted to 
do to this?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2017-01-03 Thread dkuppitz
Github user dkuppitz commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
This is required to make it work:

```
daniel@cube /projects/apache/tinkerpop (pr-494) $ git diff
diff --git a/docker/build/Dockerfile.template 
b/docker/build/Dockerfile.template
index 8364884..d32aa46 100644
--- a/docker/build/Dockerfile.template
+++ b/docker/build/Dockerfile.template
@@ -21,3 +21,7 @@ RUN mkdir -p /usr/src/tinkerpop
 RUN curl -s https://bootstrap.pypa.io/ez_setup.py | python
 WORKDIR /usr/src/tinkerpop
 COPY . /usr/src/tinkerpop
+RUN chmod 744 ./.travis.install-maven.sh
+ENV M2_HOME /root/mvn-home
+ENV PATH ${M2_HOME}/bin:${PATH}
+RUN ./.travis.install-maven.sh 3.3.9 ${M2_HOME}
```

However, this should only go into `tp32`. In `master/` we should make the 
maven installation part of the base image.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2017-01-03 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
@dkuppitz note my previous comment on docker wrt this PR. do we need to 
alter something in Docker to get this building there?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-12-02 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
Note that `docker/build.sh` doesn't work under on this PR. I assume we need 
to change the maven version in there too?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-12-02 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
I sent an email to the dev list for consensus on requiring 3.2.5:


https://lists.apache.org/thread.html/9ff6c4015d7c57a187d3b66dee46dbf23797483d9bbc11f0304924a6@%3Cdev.tinkerpop.apache.org%3E


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-29 Thread metlos
Github user metlos commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
@okram the API changes seem to be due to your changes in 05bfb029. You 
could try and fill out your first intentional API changes list ;-)

(Most of the below is just git extravaganza - the important bits are points 
5, 6 and 7)

1. `git fetch <>`
1. `git checkout -b metlos-api-check-tp32 
<>/tp32`
1. `git pull https://github.com/metlos/tinkerpop api-check-tp32`
1. `mvn clean install -DskipTests`
1. copy and paste the JSON snippet output to the build console by revapi 
into `gremlin-core/api-changes.json`.
1. Follow the example in that file to ignore the found changes in `3.2.4` 
using the JSON snippet from the build.
1. Fill out the justifications for the changes in that snippet (making it a 
valid JSON).
1.  `git push ssh://g...@github.com/metlos/tinkerpop.git 
HEAD:api-check-tp32`
1. Watch this PR go green.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-28 Thread okram
Github user okram commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
I would ignore sub-packages right now. Again, lets start off small, get 
things passing, and over time, add more packages to check.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-28 Thread metlos
Github user metlos commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
>  org.apache.tinkerpop.gremlin.structure
>  org.apache.tinkerpop.gremlin.structure.io
>  org.apache.tinkerpop.gremlin.process.computer
>  org.apache.tinkerpop.gremlin.process.traversal
>  org.apache.tinkerpop.gremlin.process.traversal.dsl.graph

Is this the full list of packages or should the sub-packages of these be 
included, too?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-28 Thread robertdale
Github user robertdale commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
I'm on Apache Maven 3.3.9 (latest). So I'm ok with downgrading :trollface:


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-28 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
i'm still on 3.0.5 - i guess i don't mind upgrading, but we should see what 
others think (if anything). Do we even want to force an upgrade for TinkerPop 
3.2.x? maybe this should go to master for 3.3.0? i guess i'll wait a day for 
any comments here and then start a thread on dev to assure consensus.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-28 Thread metlos
Github user metlos commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
`.travis.install-maven.sh` is a workaround I used in another project for 
https://github.com/travis-ci/travis-ci/issues/4872. Trusty, which is the distro 
used on Travis for Tinkerpop builds, provides Maven 3.1.1, which is too old for 
Revapi which needs at least 3.2.5.

I will push another commit with the changes necessary to track the ignored 
(aka intentional) API changes. It will be similar to 
http://revapi.org/modules/revapi-maven-plugin/examples/multi-file-configuration.html.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-28 Thread spmallette
Github user spmallette commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
I didn't dig into this too much just yet - I did see this in the travis 
logs:

```text
 If you want to explicitly ignore this change and provide a justification 
for it, add the following JSON snippet to your Revapi configuration under 
"revapi.ignore" path:
```

@metlos do you happen to know offhand if this means that if we add a 
breaking change of some sort that the `revapi.ignore` will just need to 
continue to fill with these exceptions we have to add? Can those be added to an 
external file somehow or do they have to be in the pom.xml? 

also - what's the reason for `.travis.install-maven.sh`? do we need a 
specific version of maven (3.3.9) for this to work?

I generally agree with the listing of initial packages to protect that 
@okram provided - i'm not sure if adding those will allow travis to pass, but I 
think we'd want to get the build working in full before merging this.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-28 Thread okram
Github user okram commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
I think we should start this merge off by having only the following 
packages be analyzed:

```
org.apache.tinkerpop.gremlin.structure
org.apache.tinkerpop.gremlin.structure.io
org.apache.tinkerpop.gremlin.process.computer
org.apache.tinkerpop.gremlin.process.traversal
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph
```

Those are the true core concepts. As we get comfortable with this tool and 
smarter about packaging we can add more things. 

Thoughts?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-15 Thread dkuppitz
Github user dkuppitz commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
> the `ImmutablePath` method changes are internal changes

I think that's the point. It would have been an internal change if the 
methods were internal, but they're public. We can assume that people never used 
it directly, but we won't know. Maybe someone out there added a TinkerPop 
dependency in his project, because he liked the `ImmutablePath` implementation, 
but nothing else (you know, like "let's add Apache Commons, they have a nice 
method in `StringUtils`").

Hence, if we need to touch public method in a public class: deprecate them 
and remove/change them in the next major release.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-15 Thread metlos
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).


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-15 Thread okram
Github user okram commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
I think we will need to decide what is considered NOT subject to change and 
what is subject to change. For example, the `ImmutablePath` method changes are 
internal changes that are "okay." Perhaps we can come up with a list of what 
packages we CAN'T change on minor releases?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] tinkerpop issue #494: TINKERPOP-1443 - Introduce API check into the build

2016-11-15 Thread metlos
Github user metlos commented on the issue:

https://github.com/apache/tinkerpop/pull/494
  
K, finally the CI fails for the right reasons :wink: 
https://travis-ci.org/apache/tinkerpop/builds/176007319#L3026


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---