open-component-model / ocm-project

OCM Project Backlog
Apache License 2.0
0 stars 0 forks source link

Identify all locations in code with interaction with OCI registries #105

Open morri-son opened 1 year ago

morri-son commented 1 year ago

belongs to user story open-component-model/ocm-project#106 What would you like to be done: Identify all locations in code with interaction with OCI registries to estimate the feasibility and effort for the refactoring. Why is this needed**: Without proper estimation it is not possible to plan for the refactoring.

Skarlso commented 1 month ago

At a high level glance, it seems these are the most culprits using docker to interact with OCI ( be it either api/tech/docker or docker/docker )

ag "api/tech/docker"
api/oci/extensions/repositories/ocireg/utils.go
17:     "ocm.software/ocm/api/tech/docker/resolve"

api/oci/extensions/repositories/ocireg/blobs.go
13:     "ocm.software/ocm/api/tech/docker/resolve"

api/oci/extensions/repositories/ocireg/repository.go
20:     "ocm.software/ocm/api/tech/docker"
21:     "ocm.software/ocm/api/tech/docker/resolve"

api/oci/extensions/repositories/ocireg/namespace.go
15:     "ocm.software/ocm/api/tech/docker/resolve"

There are also some more types and lib using docker/docker:

api/oci/grammar/grammar.go
154:    // TagRegexp matches valid tag names. From docker/docker:graph/tags.go.

api/oci/extensions/repositories/docker/client.go
11:     dockerclient "github.com/docker/docker/client"

api/oci/extensions/repositories/docker/repository.go
7:      dockertypes "github.com/docker/docker/api/types/image"
8:      "github.com/docker/docker/client"

api/oci/extensions/repositories/docker/namespace.go
10:     dockertypes "github.com/docker/docker/api/types/image"

api/ocm/tools/toi/drivers/docker/opts.go
4:      "github.com/docker/docker/api/types/container"

api/ocm/tools/toi/drivers/docker/driver.go
16:     "github.com/docker/docker/api/types"
17:     "github.com/docker/docker/api/types/container"
18:     "github.com/docker/docker/api/types/image"
19:     registrytypes "github.com/docker/docker/api/types/registry"
20:     "github.com/docker/docker/client"
21:     "github.com/docker/docker/pkg/jsonmessage"
22:     "github.com/docker/docker/pkg/stdcopy"
23:     "github.com/docker/docker/registry"

This way, it should be okay to just start replacing these things to use oras instead. We'll see, of course, how easy that will be... :)