[DISCUSSION] Release snapshot versions on each commit


Oleksandr Porunov
 

Related discussion regarding publishing with `org.janusgraph` or `org.janusgraph.commit` groupId: https://github.com/JanusGraph/janusgraph/discussions/3374


Oleksandr Porunov
 
Edited


Florian Hockmann
 

Thanks for bumping this thread again in the discussion for the 1.0.0 release, Oleksandr!

 

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

 

+1 on GitHub Packages for snapshots on each commit and sonatype for official releases.

 

As a possible next step for the future, we could maybe also build a Docker image for each commit (or daily if it’s difficult to trigger a build in janusgraph-docker from each commit in the main repo) and publish that somewhere (not sure if Docker Hub or also a different repo for these non-release based images).

 

> 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. 

 

No, that is not documented any where that I know of. I at least searched for these artifacts recently but couldn’t find them. Documenting this would be great, especially of course if we also publish Maven snapshot packages to make them easier to consume.

 

One general note: I would usually just assume lazy consensus for such discussions where you don’t get many responses and especially no negative response. People here simply might not have the time to respond, but that doesn’t mean that they don’t like the idea. I remember that I’ve read this thread, liked the idea, but didn’t have much to add to the discussion so I didn’t respond. Such a behaviour shouldn’t stop good ideas from being implemented 😉

 

Von: janusgraph-dev@... <janusgraph-dev@...> Im Auftrag von Oleksandr Porunov
Gesendet: Mittwoch, 25. August 2021 14:31
An: janusgraph-dev@...
Betreff: Re: [janusgraph-dev] [DISCUSSION] Release snapshot versions on each commit

 

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


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


Jansen, Jan
 

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
 

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