oras-project/artifacts-spec

Finalize oci or cncf.oras mediaTypes

Closed this issue · 4 comments

While OCI finalizes the working group process and decides to enable the Reference Types working group, the OCI and Reference Types working group agreed to run these efforts in parallel. The incubation of the artifacts-spec is being developed under: https://github.com/oras-project/artifacts-spec/

As products and services move forward supporting reference types, they will store user artifacts, which will be supported for an indefinite period of time.

These new artifacts, with reference type support, are persisted with the new artifact.manifest (spec).
The current manifest.mediaType is application/vnd.cncf.oras.artifact.manifest.v1+json to avoid any conflict with OCI branding.

If OCI adopts the reference type working group before a release of the artifacts-spec is made, we can change the mediaType for user content stored. If not, the tooling can simply use the cncf.oras string. Both are Linux Foundation orgs, so in the end, it's just a string end-users have no knowledge about. That said, if we can unify these, we can avoid the different branded mediaTypes, like application/vnd.docker.distribution.manifest.v1+json and application/vnd.oci.image.manifest.v1+json

For this to be an OCI media type

If OCI adopts the reference type working group before a release of the artifacts-spec is made, we can change the mediaType for user content stored. If not, the tooling can simply use the cncf.oras string.

I'm not sure I follow this part. Which OCI media types would be used here if the WG is approved?

Hi @dlorenc, I hope the following helps clarify what is stated in the issue description:

The current manifest.mediaType is application/vnd.cncf.oras.artifact.manifest.v1+json to avoid any conflict with OCI branding.
...
If OCI adopts the reference type working group before a release of the artifacts-spec is made, we can change the mediaType

If adopted the manifest.mediaType would be: application/vnd.oci.artifact.manifest.v1+json as spec'd in [Artifacts #29 proposal]opencontainers/artifacts#29).

Thanks @lachie83. That sort of makes sense, but from an organizational perspective I'm not sure I follow how this repo, the (draft) proposal in the artifacts repo, and the draft wg proposal all relate.

It sounds like there's an assumption here that if the WG is created, the draft artifact spec in opencontainers/artifacts#29 automatically becomes finalized with a v1 released mediaType.

My understanding is that the reference types working group would be formed to create a proposal and validate it with prototypes like this one, then turn that work into a formal proposal for the relevant specs maintainers and TOB to then formalize as a new specification.

Closing as this is under the ORAS Project, which has mediaTypes defined in: oras-artifact-manifest-spec

  • Manifest: application/vnd.cncf.oras.artifact.manifest.v1+json
  • Annotations: io.cncf.oras.artifact.*