ceps icon indicating copy to clipboard operation
ceps copied to clipboard

CEP request: OCI packaging

Open jaimergp opened this issue 1 year ago • 0 comments

https://github.com/orgs/channel-mirrors/packages has a mostly complete mirror of conda-forge and bioconda in GHCR.io. Each anaconda.org artifact (be it tar.bz2 .conda), has been pushed there under the following conventions:

  • Name of the "container": <channel>/<subdir>/<package name>
  • Label of the container: <version>-<build_string>

For each name+label combo, we have the following manifest of layers:

{
  "digest": "sha256:<hash>",
  "mediaType": "application/vnd.oci.image.manifest.v1+json",
  "size": <size in bytes>,
  "config": {
    "digest": "sha256:<hash>",
    "mediaType": "application/vnd.unknown.config.v1+json",
    "size": <size in bytes>
  },
  "layers": [
    {
      "digest": "sha256:<hash>",
      "mediaType": "application/vnd.oci.image.layer.v1.tar",
      "size": <size in bytes>
    },
    {
      "digest": "sha256:<hash>",
      "mediaType": "application/vnd.conda.package.v2",
      "size": <size in bytes>
    },
    {
      "digest": "sha256:<hash>",
      "mediaType": "application/vnd.conda.info.v1.tar+gzip",
      "size": <size in bytes>
    },
    {
      "digest": "sha256:<hash>",
      "mediaType": "application/vnd.conda.info.index.v1+json",
      "size": <size in bytes>
    }
  ]
}

I think the tar and conda layers correspond to tar.bz2 and .conda ones. Always present, but only one is populated. The info layers correspond to the compressed info/ contents and the info/index.json file, respectively.

This should be standardized in a CEP.

jaimergp avatar Apr 12 '24 14:04 jaimergp