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 · 12 comments
Open

ORAS Java SDK #60

jonesbusy opened this issue Sep 23, 2024 · 12 comments

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.

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

No branches or pull requests

5 participants