-
Notifications
You must be signed in to change notification settings - Fork 181
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
Discussion: ORAS to split go-libraries and ORAS binary, with a 3rd Ref Implementation #181
Comments
I have no problem moving the libraries under opencontainers/artifacts |
Yes, we should at least split the library and command line tool. |
I am looking forward to this feature! We are using oras to build our OCI artifacts for ML Models: https://github.com/kleveross/ormb We are using oras as a library here: https://github.com/kleveross/ormb/blob/master/pkg/oras/client.go#L32 The code is mostly copied from helm chart. I think if we could split oras reference implementation and golang libraries, it helps artifact authors like us to write the business logic easily. |
This is done: |
I was following this issue intending to implement a python version - is this still desired? And if so, should I use the CLI link as reference? |
Hi Venessa, |
okey doke! I can probably start on this over the weekend. In case it matters for the future, I'm a "Vanessa." Thanks for the update! |
Thanks, and apologies for the misspelling. |
I'm pretty indifferent - a repo transfer is just as much work on your end as creating one, so it's probably easiest for me to start on my user account and then transfer. I'll post an update here after some work this weekend! |
@vsoch - we actually have a placeholder for this: https://github.com/oras-project/oras-py I've just added you to maintainers team, feel free to push to a branch there! oras-go is currently undergoing a redesign of the API. I would love for the Python version to match that API, so users going between the two have a familiar library to work with. Would you mind reaching out in Slack/Email to discuss further? |
The primary intent of ORAS is to enable new artifact authors to utilize existing OCI distribtuion-spec, w/OCI Artifact enabled registries for their new artifact type. Thus avoiding the requirement to build and maintain Yet Another Storage Solution (YASS).
As we've converged on adopting ORAS to OCI, questions surfaced for what is ORAS?
This mix is the result of ORAS being both a set of libraries and a generic test harness. The test harness, while extremely useful, has confused the intent of the initial project, and still doesn't provide a clean refernece implementation for the average developer to easily implement. There have been requests for additional language implementations of the ORAS capabilities, such as ORAS-python.
I'd propose the following:
login
,push
,pull
,delete
*manifest.config
object oras-project/oras#131Open)
oras pull
shouldn't require--media-type
or--allow-all
oras-project/oras#130login
,push
,pull
,delete
. It would not exposeconfig
as a user parameter, nor the embeddedmediaTypes
, just as helm, wasm, singularity expose their internal config or mediaType values.Both regdoc and the ORAS-client would implement Notaryv2, demonstrating signing capabilities.
To support additional OCI Artifact schema types, regdoc may be enhanced to store collections, or we may need a more complex example. Whether ORAS becomes its own root org, or placed under http://github.com/opencontainers/ is a separate discussion, and only limited by the number of individual repos placed under a single org, as opposed to different orgs be managed by OCI.
Alternative Option
Should the ORAS go libraries that enable OCI Artifacts move into the OCI Artifacts repo? This would be similar to distribution-spec specs-go/ and image-spec specs-go/.
This would free up ORAS to be the ORAS client project, leaving regdoc as the reference implementation.
The text was updated successfully, but these errors were encountered: