Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ORAS Java SDK #60

Open
jonesbusy opened this issue Sep 23, 2024 · 23 comments
Open

ORAS Java SDK #60

jonesbusy opened this issue Sep 23, 2024 · 23 comments
Labels

Comments

@jonesbusy
Copy link

Hi

As mentionned on the Slack Channel 2 weeks ago

I started implementing the Oras SDK for Java. If course right now it's not as mature as the Go SDK but minimal functions are here (push/pull blob, push/pull manifest push/pull artifact (included folder with tar.gz compression).

The repository is here : https://github.com/jonesbusy/oras-java

The SDK is tested with a mix of unit/integration tests (JUnit5/Mockito, Testcontainer with ghcr.io/oras-project/registry and WireMock for response mocking)

I also built a small CLI to perform interactive test with the SDK until I start to implementing with a real project. I validated feature under DockerHub, Artifactory and OCI (+ ghcr.io/oras-project/registry with automated tests): https://github.com/jonesbusy/oras-java-cli

For example in this is missing

  • Chunck upload (only POST and POST/PUT right now)
  • Docker login (but interfaces are here to be implemented). Only username/password + Token flow works now
  • Annotations files
  • Config layer (only empty configs are send now)
  • ...

It's missing also GitHub workflows and release configuration (Maybe using https://jreleaser.org/guide/latest/examples/maven/maven-central.html ?)

What would be the process to move/fork the repo under the oras-project organisation? I also have interest to be maintainer of this subproject and contribute it the future.

Of course it's open on any feedback/suggestion and I'm also happy to open it to more contribution by the community

Best regards,

@FeynmanZhou
Copy link
Member

FeynmanZhou commented Oct 4, 2024

Hi @jonesbusy ,

It's glad to see your proposal! It will definitely extend the ORAS ecosystem.

We discussed your proposal in the ORAS community meeting on Sep 29, 2024 and most of ORAS maintainers agreed with proceeding this proposal.

Would you mind elaborating more on the roadmap of ORAS Java SDK? A typical example is oras-project/oras-dotnet#36

@jonesbusy
Copy link
Author

Hi thanks! This is good news!

I can do something similar in form of issues (I guess we can transfer the repository + issues to the oras-project organisation once done

Will keep you updated

@jonesbusy
Copy link
Author

@FeynmanZhou I created jonesbusy/oras-java#11

Issues might be added in the future to also match other SDK evolution

@FeynmanZhou
Copy link
Member

@jonesbusy Awesome. Shall we schedule a meeting (EU-friendly time) to walk through the plan and kick off the repo transferring in Oct? We are happy to help set up the development workflow for this new subproject.

@jonesbusy
Copy link
Author

@FeynmanZhou Sure anytime between 7am and 7pm CEST would fit for me

@FeynmanZhou
Copy link
Member

I will talk with other maintainers and propose the schedule to you. Thanks!

@krishna-birla
Copy link

krishna-birla commented Oct 10, 2024

I would love to be a part of this, and help with this effort. I have a typical 8-7 schedule (IST hours), but I can spend time on this as well over the weekends and sometimes on weekdays. Please add me to the relevant channels.

I must say that till now I have only used ORAS as a tool and never really got into the GO code. I have some exposure to opencontainers spec as well. My first language is GoLang and some of my day-to-day work involves JAVA (Spring) as well.

@FeynmanZhou
Copy link
Member

FeynmanZhou commented Oct 16, 2024

Per the community discussion on Oct 15, the next step is to let ORAS org maintainers vote on whether accept this project or not.

@shizhMSFT
Copy link
Contributor

/vote

Copy link

git-vote bot commented Oct 16, 2024

Vote created

@shizhMSFT has called for a vote on ORAS Java SDK (#60).

All repository collaborators have binding votes.

Non-binding votes are also appreciated as a sign of support!

How to vote

You can cast your vote by reacting to this comment. The following reactions are supported:

In favor Against Abstain
👍 👎 👀

Please note that voting for multiple options is not allowed and those votes won't be counted.

The vote will be open for 7days. It will pass if at least 50% of the users with binding votes vote In favor 👍. Once it's closed, results will be published here as a new comment.

@krishna-birla
Copy link

Big 👍🏽 on the proposal. Also, I like the choice to use vanilla JAVA and not get into any frameworks and make it overly complicated.

@tarilabs
Copy link

fwiw, I believe this is a good addition to oras project. I would be happy to see if eventually a small Maven plugin, say wrapper of the API/cli, will be also made available.

@jonesbusy
Copy link
Author

@tarilabs Some weeks ago I did some quick tests for a Maven extension : https://github.com/jonesbusy/maven-oci-extension overriding the transport and layout. Not support for checksum. I only achieve simple maven deploy

There are other tentative (https://github.com/Tosan/oras-maven-plugin) using the CLI but I didn't test them

@sabre1041
Copy link

👍 from me. Java is one of the most popular programming languages, and continues to have large adoption and use within the enterprise. Being able to leverage ORAS in these environments will not only expand the use of OCI technologies, but the ORAS project

@SteveLasker
Copy link
Contributor

It would be great to see additional implementations. 👍 from me.

Copy link

git-vote bot commented Oct 23, 2024

Vote closed

The vote did not pass.

11.54% of the users with binding vote were in favor (passing threshold: 50%).

Summary

In favor Against Abstain Not voted
3 0 0 23

Binding votes (3)

User Vote Timestamp
@FeynmanZhou In favor 2024-10-21 8:44:46.0 +00:00:00
@SteveLasker In favor 2024-10-22 15:11:33.0 +00:00:00
@shizhMSFT In favor 2024-10-16 10:25:21.0 +00:00:00

Non-binding votes (3)

User Vote Timestamp
@krishna-birla In favor 2024-10-16 10:46:35.0 +00:00:00
@jonesbusy In favor 2024-10-16 10:54:01.0 +00:00:00
@tarilabs In favor 2024-10-16 12:46:11.0 +00:00:00

@git-vote git-vote bot removed the vote open label Oct 23, 2024
@FeynmanZhou
Copy link
Member

FeynmanZhou commented Oct 25, 2024

@jonesbusy The Git-vote rule is not as expected and shows vote didn't pass since it counts all org members. In fact, we only count votes from ORAS org owners according to the ORAS governance doc. Now we have 3/4 org owners voted with In Favor.

@FeynmanZhou
Copy link
Member

Hi @sajayantony, could you please vote on this proposal with your comment?

@sajayantony
Copy link
Contributor

Thanks for tagging me @FeynmanZhou. Sorry about the late response to issue.
LGTM and 👍.

@FeynmanZhou
Copy link
Member

Per the community discussion on Oct 29, the next is to transfer the ORAS Java SDK to ORAS org. I will schedule a meeting with @jonesbusy and @krishna-birla to finishing this step.

@krishna-birla
Copy link

krishna-birla commented Nov 5, 2024

Did we reach a consensus?

@jonesbusy
Copy link
Author

I'm OOO for some more days but then available to perform the transfer request

@jonesbusy
Copy link
Author

How can we progress on this? I would love to join one of community meeting but the timezone doesn't fit at all (Middle of the night for West europe)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants