Improve development workflow


Jan Jansen <faro...@...>
 

Hello

My thoughts to improve the development workflow in the near future.

Ideas:
  • Replace maven with gradle as build system
    • Clean syntax to describe a build jobs
    • performance improvement in build time and test time
    I worked on a PoC https://github.com/GDATASoftwareAG/janusgraph/tree/gradle
  • Use dependabot to upgrade deps
  • Use newer JAVA version for example JAVA 12, this allows to newer language features
  • Use Netlify to deploy a test version of doc in a PR: https://www.netlify.com/. Example PR: from testcontainers: https://github.com/testcontainers/testcontainers-java/pull/1815/checks?check_run_id=208346640
  • Ongoing task improve testsuite
  • Add a benchmark test using https://openjdk.java.net/projects/code-tools/jmh/

Any other ideas? Any thoughts?

Greetings,
Jan


Oleksandr Porunov <alexand...@...>
 

Hi Jan,

Good suggestions! Agree with all notes but have some questions on 2 notes.

> Use dependabot to upgrade deps

I didn't use this bot. Could this cause some problems? Like breaking changes or something like that?

> Use newer JAVA version for example JAVA 12, this allows to newer language features

Will it force all JanusGraph users to switch to Java 12? It isn't that simple task and would be a big breaking change I think.

Best regards,
Oleksandr

On Saturday, August 31, 2019 at 3:24:03 PM UTC+3, Jan Jansen wrote:
Hello

My thoughts to improve the development workflow in the near future.

Ideas:

Any other ideas? Any thoughts?

Greetings,
Jan


Jan Jansen <faro...@...>
 

Hi Oleksandr,

> I didn't use this bot. Could this cause some problems? Like breaking changes or something like that?

The bot will create a PR on our repo. So, we can review the changes and merge it by our own.

> Will it force all JanusGraph users to switch to Java 12? It isn't that simple task and would be a big breaking change I think.

It will force all JanusGraph users to switch to Java 12.
It is a simple task but to achieve advantage, we have to use some of the new language features.

Greetings,
Jan


Oleksandr Porunov <alexand...@...>
 

> It will force all JanusGraph users to switch to Java 12. 
> It is a simple task but to achieve advantage, we have to use some of the new language features.

I don't imagine users easily switch to Java 12. Switching from Java 8 to Java 12 in big projects is very hard.
Imagine you are using Spring Boot framework version 1.5 in your application which don't support Java version > then 8. Imagine the project uses JanusGraph libs directly (which requires Java 12). To use Spring Boot with version which supports Java 12 we should upgrade Spring Boot to version 2.2. But the problem is that this version isn't released right now. So, if we require Java 12 to use JanusGraph it means that JanusGraph libraries will be incompatible with Spring Boot libraries.
It is just an example but there are a lot of libs which don't support Java 12 yet.

Maybe I am missing something but using Java 12 for JanusGraph may throw away many users because a lot of them are using some libs which are incompatible with Java 12. 

Of course we should upgrade Java version sooner or later but I think we should investigate it before upgrading. 


On Sunday, September 1, 2019 at 11:18:21 AM UTC+3, Jan Jansen wrote:
Hi Oleksandr,

> I didn't use this bot. Could this cause some problems? Like breaking changes or something like that?

The bot will create a PR on our repo. So, we can review the changes and merge it by our own.

> Will it force all JanusGraph users to switch to Java 12? It isn't that simple task and would be a big breaking change I think.

It will force all JanusGraph users to switch to Java 12.
It is a simple task but to achieve advantage, we have to use some of the new language features.

Greetings,
Jan


Jan Jansen <faro...@...>
 

I worked on a pr to extract driver specific features from JanusGraph, so users won’t  have to directly interact with internal JanusGraph. In this case we can provide driver which is java 8 compatible. Than we can freely decide on which java version our database supports.

Other idea would be to use Kotlin for a more modern language features which is completely compatible with java 8.

On 1. Sep 2019, at 10:54, Oleksandr Porunov <alexand...@...> wrote:

> It will force all JanusGraph users to switch to Java 12. 
> It is a simple task but to achieve advantage, we have to use some of the new language features.

I don't imagine users easily switch to Java 12. Switching from Java 8 to Java 12 in big projects is very hard.
Imagine you are using Spring Boot framework version 1.5 in your application which don't support Java version > then 8. Imagine the project uses JanusGraph libs directly (which requires Java 12). To use Spring Boot with version which supports Java 12 we should upgrade Spring Boot to version 2.2. But the problem is that this version isn't released right now. So, if we require Java 12 to use JanusGraph it means that JanusGraph libraries will be incompatible with Spring Boot libraries.
It is just an example but there are a lot of libs which don't support Java 12 yet.

Maybe I am missing something but using Java 12 for JanusGraph may throw away many users because a lot of them are using some libs which are incompatible with Java 12. 

Of course we should upgrade Java version sooner or later but I think we should investigate it before upgrading. 

On Sunday, September 1, 2019 at 11:18:21 AM UTC+3, Jan Jansen wrote:
Hi Oleksandr,

> I didn't use this bot. Could this cause some problems? Like breaking changes or something like that?

The bot will create a PR on our repo. So, we can review the changes and merge it by our own.

> Will it force all JanusGraph users to switch to Java 12? It isn't that simple task and would be a big breaking change I think.

It will force all JanusGraph users to switch to Java 12.
It is a simple task but to achieve advantage, we have to use some of the new language features.

Greetings,
Jan

--
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 janusgr...@....
To view this discussion on the web visit https://groups.google.com/d/msgid/janusgraph-dev/d82542ac-563d-4146-a828-7719ef55bb51%40googlegroups.com.


Jan Jansen <faro...@...>
 

Improving Issue templates would be also great, for example, https://github.com/elastic/beats/issues/new/choose.

We can add templates for question, bugs, flaky test, and features.

In the bug and question, we can ensure better that user checkout our user groups.


Niklas Schiffler <nschi...@...>
 

Users don't have to, but many already do and would be blocked from upgrading. If you at some point decide to switch to a newer Java version as requirement, it would be preferable to use an LTS version (not 12).

nik..


On 01-09-19 14:43, 'Jan Jansen' via JanusGraph developers wrote:

I worked on a pr to extract driver specific features from JanusGraph, so users won’t  have to directly interact with internal JanusGraph. In this case we can provide driver which is java 8 compatible. Than we can freely decide on which java version our database supports.

Other idea would be to use Kotlin for a more modern language features which is completely compatible with java 8.

On 1. Sep 2019, at 10:54, Oleksandr Porunov <alexand...@...> wrote:

> It will force all JanusGraph users to switch to Java 12. 
> It is a simple task but to achieve advantage, we have to use some of the new language features.

I don't imagine users easily switch to Java 12. Switching from Java 8 to Java 12 in big projects is very hard.
Imagine you are using Spring Boot framework version 1.5 in your application which don't support Java version > then 8. Imagine the project uses JanusGraph libs directly (which requires Java 12). To use Spring Boot with version which supports Java 12 we should upgrade Spring Boot to version 2.2. But the problem is that this version isn't released right now. So, if we require Java 12 to use JanusGraph it means that JanusGraph libraries will be incompatible with Spring Boot libraries.
It is just an example but there are a lot of libs which don't support Java 12 yet.

Maybe I am missing something but using Java 12 for JanusGraph may throw away many users because a lot of them are using some libs which are incompatible with Java 12. 

Of course we should upgrade Java version sooner or later but I think we should investigate it before upgrading. 

On Sunday, September 1, 2019 at 11:18:21 AM UTC+3, Jan Jansen wrote:
Hi Oleksandr,

> I didn't use this bot. Could this cause some problems? Like breaking changes or something like that?

The bot will create a PR on our repo. So, we can review the changes and merge it by our own.

> Will it force all JanusGraph users to switch to Java 12? It isn't that simple task and would be a big breaking change I think.

It will force all JanusGraph users to switch to Java 12.
It is a simple task but to achieve advantage, we have to use some of the new language features.

Greetings,
Jan
--
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 janusgr...@....
To view this discussion on the web visit https://groups.google.com/d/msgid/janusgraph-dev/d82542ac-563d-4146-a828-7719ef55bb51%40googlegroups.com.
--
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 janusgr...@....
To view this discussion on the web visit https://groups.google.com/d/msgid/janusgraph-dev/80D741D8-419C-4A26-8635-5E8C949BD76B%40googlemail.com.