[janusgraph-foundationdb] - Repository cleanup questions

27 views
Skip to first unread message

Christopher Jackson

unread,
Jul 10, 2020, 5:54:50 PM7/10/20
to JanusGraph developers
Hi Folks,

I wanted to get started on making some contributions to the foundationdb adapter now that the initial repo is established, first and foremost by cleaning up the repo. IE. making it conform to the standards/conventions used by the rest of the janusgraph projects/repositories. While working on https://github.com/JanusGraph/janusgraph-foundationdb/issues/10 I also wanted to tackle other cleanup type items. In particular I'm curious to what should be done (if anything) about lines like these:
https://github.com/JanusGraph/janusgraph-foundationdb/blob/master/src/main/java/com/experoinc/janusgraph/diskstorage/foundationdb/FoundationDBConfigOptions.java#L1
https://github.com/JanusGraph/janusgraph-foundationdb/blob/master/src/main/java/com/experoinc/janusgraph/diskstorage/foundationdb/FoundationDBConfigOptions.java#L26

Should the copyright tags and author tags still be present? And in general how do `@author` tags work in the janusgraph open source project? I know that the main repository has files:
https://github.com/JanusGraph/janusgraph/blob/master/AUTHORS.txt
https://github.com/JanusGraph/janusgraph/blob/master/CONTRIBUTORS.txt
which I believe cover both these points, should we create analogous files in this repository and remove author tags and copyright statements from each individual source file?

Again I don't know what proper etiquette is in this regard so looking for input from others before making any changes.

Regards,
Christopher Jackson

Jason Plurad

unread,
Jul 14, 2020, 5:47:27 PM7/14/20
to JanusGraph developers
I didn't work on initial fork from thinkaurelius/titan, so it'd be great if those folks chimed in on this thread.

From what I recall of that fork process, all of the author tags were removed from the source files, and the AUTHORS.txt + CONTRIBUTORS.txt were created in its place. We could go ahead and create an AUTHORS.txt and put Expero Inc in it. I don't think a CONTRIBUTORS.txt file is required. All JanusGraph contributors have to sign a CLA to contribute, and once signed, they are covered by "JanusGraph Authors" (twilmes is already covered by that also).

For copyright, I think we'd need a NOTICE.txt (https://github.com/JanusGraph/janusgraph/blob/master/NOTICE.txt) which can describe that the code was contributed by Expero Inc to JanusGraph. Then update the copyright in the source files to "JanusGraph Authors". Check out the Apache License (https://www.apache.org/licenses/LICENSE-2.0) under Redistribution of Derivative Works.

Misha Brukman

unread,
Jul 14, 2020, 6:43:39 PM7/14/20
to JanusGraph developer list
I support the proposal to change the package names/paths to match JanusGraph style since it was moved from Expero to the JanusGraph org. The changes I think you want to make are:
  • move directories from com/experoinc/janusgraph --> org/janusgraph
  • update package names accordingly
  • update copyright line from Expero Inc. -> JanusGraph Authors
  • create AUTHORS.txt, add Expero Inc there
  • create CONTRIBUTORS.txt, add Ted Wilmes there (and anyone else in the Git history so far, but see below for details on copyright)
What's the difference between these two and why do we need both of them?
  • AUTHORS.txt are the copyright holders aka copyright owners of the code — these are either people (if they're individuals and they own the copyright of their contributions) or companies (if they own the copyright of their employees' contributions)
  • CONTRIBUTORS.txt — these are the people that did the actual work, who don't own the copyright themselves (if they do, they're already in AUTHORS.txt)
For all of us whose companies own the copyright of our contributions to JanusGraph (as evidenced by the fact that we're on our companies' Corporate CLAs), our company name would go into AUTHORS.txt and our own name would go into CONTRIBUTORS.txt.

However, before we do any changes to the code, as a first PR, can we please add a .travis.yml file to the repo so that we start building and testing each change? Otherwise, we'll be in the situation we were in with the JanusGraph repo (before Travis CI was setup), where PR reviewers had to manually patch the PR to verify that it builds and tests pass before approving them, and that was painful. The 2 big cleanups where PR #1 and #2, and Travis CI config was only added in PR #3, and Henry Saputra was very patient in doing this manually, but let's not repeat that again. :-)

Back to the original topic: I did the initial cleanup on the JanusGraph repo after importing from thinkaurelius/titan; you can see my changes in:
Specifically, for PR #2 (which consists of 2 commits), you can see the scripts and the changes that were done in the individual commits:
Please feel free to reuse & adapt the scripts as needed for this update and include them in the commit message, as they may be useful in the future, should someone else donate another large subproject to JanusGraph!

Re: @author tags: I think we kept a bunch of them for historical reasons to give credit to the original Aurelius folks (even though we also kept the full Git history, so everyone can see who the original author was). https://github.com/JanusGraph/janusgraph/search?q=%22%40author%22 shows 607 appearances of `author@` in the codebase.

We also kept <developer> and <contributor> tags in pom.xml files, e.g., see https://github.com/JanusGraph/janusgraph/blob/c433f54e01887245f02189cceac83dafdec94514/pom.xml#L19-L46 — I don't think there's a particular need or desire to remove either @author lines or the <developer> / <contributor> tags. If we want to make a large-scale change to remove ALL of them, we should discuss this with a vote on janusgraph-dev@ but I'm not sure whether it's worth it, and as I mentioned above, we owe a lot of gratitude to the original authors of Titan from which JanusGraph came, so I would feel bad removing them all in one fell swoop.

Hope this helps!

I'm happy to help with these changes, or if you'd like to make them, I'm happy to review them.

Misha

--
You received this message because you are subscribed to the Google Groups "JanusGraph developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to janusgraph-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/janusgraph-dev/c11b7d10-7ab9-4f56-bcce-3ebdc22889acn%40googlegroups.com.

Misha Brukman

unread,
Jul 14, 2020, 7:39:15 PM7/14/20
to JanusGraph developer list
I went ahead and created individual issues for each of the tasks in case anyone wants to jump in and help with the cleanup process:
Please let me know if you have any questions; feel free to add me as a reviewer on PRs addressing any of these issues.

Misha

Christopher Jackson

unread,
Jul 16, 2020, 1:07:21 AM7/16/20
to JanusGraph developers
Thanks so much for the guidance Misha and for creating the work items. I will start working on these and request you as a reviewer. 

Misha Brukman

unread,
Jul 16, 2020, 9:40:41 AM7/16/20
to JanusGraph developer list
FYI, looks like there's already a PR to move files and update the packages. Additionally, Jan Jansen volunteered to work on the Travis CI config after the PR to add testcontainers is merged.

On Thu, Jul 16, 2020 at 1:07 AM Christopher Jackson <jackson.chr...@gmail.com> wrote:
Thanks so much for the guidance Misha and for creating the work items. I will start working on these and request you as a reviewer. 

--
You received this message because you are subscribed to the Google Groups "JanusGraph developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to janusgraph-de...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages