[DISCUSSION] Release snapshot versions on each commit


Oleksandr Porunov
 

I would like to propose to make simple GitHub jar releases on each commit in `master` or `v*` branches. Those releases would be simple GitHub packages and their purpose wouldn't be mostly for easier testing. 
This would also allow users to use latest features from `master` branch without need to build their own version of JanusGraph to use those snapshot versions.

Would be great to hear other opinions about it. Do you think this would be useful for the community or not?

Best regards,
Oleksandr


Jan.jansen@...
 

Hi Porunov

We already build release package for any master commit and this release package can be download by anyone.

Disclaimer:

It doesn't follow our default release guildlines, it just builds it and publishes as artifact (https://github.com/JanusGraph/janusgraph/actions/runs/1155506290).


I think it would great if we fully automate the release any step.

Greetings,
Jan


Von: janusgraph-dev@... <janusgraph-dev@...> im Auftrag von Oleksandr Porunov <alexandr.porunov@...>
Gesendet: Montag, 16. August 2021 15:09:26
An: janusgraph-dev@...
Betreff: [janusgraph-dev] [DISCUSSION] Release snapshot versions on each commit
 
I would like to propose to make simple GitHub jar releases on each commit in `master` or `v*` branches. Those releases would be simple GitHub packages and their purpose wouldn't be mostly for easier testing. 
This would also allow users to use latest features from `master` branch without need to build their own version of JanusGraph to use those snapshot versions.

Would be great to hear other opinions about it. Do you think this would be useful for the community or not?

Best regards,
Oleksandr


Oleksandr Porunov
 

Hi Jan,

Thanks for pointing on that! That indeed uploads distribution for a commit but it doesn't provide you with the maven nexus repository to use those distributions. Basically, it means, that you will need to physically download `distribution-builds` and run it. In case you would like to run JanusGraph embedded into the application, it becomes not as easy to be used due to necessity to include transitive dependencies manually.
What I mean is to publish staging artifacts to the maven repository such as GitHub actions. If so, people could just include latest JanusGraph master snapshot releases simply defining something like:
<dependency>
  <groupId>org.janusgraph</groupId>
  <artifactId>janusgraph-core</artifactId>
  <version>0.6.0-SNAPSHOT-12345</version>
</dependency>

Ignore `version` as for now because I didn't think about versioning yet but you can see a simple example here: https://github.com/orgs/mapped/packages?repo_name=janusgraph
See the commit here: https://github.com/mapped/janusgraph/commit/a94a0c03cb9d1b1445901c6735aff3e66b8692ac

Basically, I think it's possible to configure different publishing flows (either to sonatype for official releases or to GitHub Packages for unofficial releases).

Moreover, about the link which you shared. Did we document it anywhere? If no, I think it would be good to create a separate documentation page which tells about release artifacts for each commit and potentially releases to GitHub Packages for each commit.  

Best regards,
Oleksandr