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

cli/command: deprecate Cli.ManifestStore, Cli.RegistryClient #5889

Merged
merged 4 commits into from
Mar 4, 2025

Conversation

thaJeztah
Copy link
Member


cli/command: internalize constructing ManifestStore

The CLI.ManifestStore method is a shallow wrapper around manifeststore.NewStore
and has no dependency on the CLI itself. However, due to its signature resulted
in various dependencies becoming a dependency of the "command" package.
Consequence of this was that cli-plugins, which need the cli/command package,
would also get those dependencies.

  • This patch inlines the code to produce the store, skipping the wrapper.
  • Define a local interface for some tests where a dummy store was used.

cli/command: internalize constructing RegistryClient

The CLI.RegistryClient method is a shallow wrapper around registryclient.NewRegistryClient
but due to its signature resulted in various dependencies becoming a dependency
of the "command" package. Consequence of this was that cli-plugins, which
need the cli/command package, would also get those dependencies.

This patch inlines the code where needed, skipping the wrapper

cli/command: deprecate Cli.ManifestStore

This method is a shallow wrapper around manifeststore.NewStore, but
due to its signature resulted in various dependencies becoming a dependency
of the "command" package. Consequence of this was that cli-plugins, which
need the cli/command package, would also get those dependencies. It is no
longer used in our code, which constructs the client in packages that need it,
so we can deprecate this method.

cli/command: deprecate Cli.RegistryClient

This method was a shallow wrapper around registryclient.NewRegistryClient but
due to its signature resulted in various dependencies becoming a dependency
of the "command" package. Consequence of this was that cli-plugins, which
need the cli/command package, would also get those dependencies. It is no
longer used in our code, which constructs the client in packages that need it,
so we can deprecate this method.

- Human readable description for the release notes

Go SDK: cli/command: deprecate Cli.ManifestStore. This method was only used internally and will be removed in the next release. Use [store.NewStore] instead.
Go SDK: cli/command: deprecate Cli.RegistryClient. This method was only used internally and will be removed in the next release. Use [client.NewRegistryClient] instead

[store.NewStore]: https://pkg.go.dev/github.com/docker/[email protected]+incompatible/cli/manifest/store#NewStore
[client.NewRegistryClient]: https://pkg.go.dev/github.com/docker/[email protected]+incompatible/cli/registry/client#NewRegistryClient

- A picture of a cute animal (not mandatory but encouraged)

The CLI.ManifestStore method is a shallow wrapper around manifeststore.NewStore
and has no dependency on the CLI itself. However, due to its signature resulted
in various dependencies becoming a dependency of the "command" package.
Consequence of this was that cli-plugins, which need the cli/command package,
would also get those dependencies.

- This patch inlines the code to produce the store, skipping the wrapper.
- Define a local interface for some tests where a dummy store was used.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
The CLI.RegistryClient method is a shallow wrapper around registryclient.NewRegistryClient
but due to its signature resulted in various dependencies becoming a dependency
of the "command" package. Consequence of this was that cli-plugins, which
need the cli/command package, would also get those dependencies.

This patch inlines the code where needed, skipping the wrapper

Signed-off-by: Sebastiaan van Stijn <[email protected]>
This method is a shallow wrapper around manifeststore.NewStore, but
due to its signature resulted in various dependencies becoming a dependency
of the "command" package. Consequence of this was that cli-plugins, which
need the cli/command package, would also get those dependencies. It is no
longer used in our code, which constructs the client in packages that need it,
so we can deprecate this method.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
This method was a shallow wrapper around registryclient.NewRegistryClient but
due to its signature resulted in various dependencies becoming a dependency
of the "command" package. Consequence of this was that cli-plugins, which
need the cli/command package, would also get those dependencies. It is no
longer used in our code, which constructs the client in packages that need it,
so we can deprecate this method.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
@thaJeztah thaJeztah added impact/changelog impact/deprecation status/2-code-review kind/refactor PR's that refactor, or clean-up code area/go-sdk Changes affecting the Go SDK impact/go-sdk Noteworthy (compatibility changes) in the Go SDK labels Mar 4, 2025
@thaJeztah thaJeztah added this to the 28.0.2 milestone Mar 4, 2025
@codecov-commenter
Copy link

codecov-commenter commented Mar 4, 2025

Codecov Report

Attention: Patch coverage is 61.11111% with 14 lines in your changes missing coverage. Please review.

Project coverage is 59.29%. Comparing base (c775585) to head (8ad0721).
Report is 10 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5889      +/-   ##
==========================================
+ Coverage   58.90%   59.29%   +0.38%     
==========================================
  Files         351      354       +3     
  Lines       29727    29752      +25     
==========================================
+ Hits        17511    17640     +129     
+ Misses      11242    11140     -102     
+ Partials      974      972       -2     

@thaJeztah thaJeztah merged commit ea1f10b into docker:master Mar 4, 2025
119 checks passed
@thaJeztah thaJeztah deleted the internalize_manifest branch March 4, 2025 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/go-sdk Changes affecting the Go SDK impact/changelog impact/deprecation impact/go-sdk Noteworthy (compatibility changes) in the Go SDK kind/refactor PR's that refactor, or clean-up code status/2-code-review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants