Skip to content

Conversation

@thaJeztah
Copy link
Member


relates to:

Relates to cli@27b2797, which forked this type from the Moby API, and moby@6cfff7e, which made the same change on the API side.

The Email field was originally used to create a new Docker Hub account through the docker login command. The docker login command could be used both to log in to an existing account (providing only username and password), or to create a new account (providing desired username and password, and an e-mail address to use for the new account).

This functionality was confusing, because it was implemented when Docker Hub was the only registry, but the same functionality could not be used for other registries. This functionality was removed in Docker 1.11 (API version 1.23) through moby@aee260d, which also removed the Email field (engine-api@9a9e468) as it was no longer used.

However, this caused issues when using a new CLI connecting with an old daemon, as the field would no longer be serialized, and the deprecation may not yet be picked up by custom registries, so engine-api@167efc7 added the field back, deprecated it, and added an "omitempty". There was no official "deprecated" format yet at the time, so let's make sure the deprecation follows the proper format to make sure it gets noticed.

- What I did

- How I did it

- How to verify it

- Human readable description for the release notes

Go SDK: cli/config/types: update deprecation message for `AuthConfig.Email` field

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

Relates to [cli@27b2797], which forked this type from the Moby API, and
[moby@6cfff7e], which made the same change on the API side.

The Email field was originally used to create a new Docker Hub account
through the `docker login` command. The `docker login` command could be
used both to log in to an existing account (providing only username and
password), or to create a new account (providing desired username and
password, and an e-mail address to use for the new account).

This functionality was confusing, because it was implemented when Docker
Hub was the only registry, but the same functionality could not be used
for other registries. This functionality was removed in Docker 1.11 (API
version 1.23) through [moby@aee260d], which also removed the Email field
([engine-api@9a9e468]) as it was no longer used.

However, this caused issues when using a new CLI connecting with an old
daemon, as the field would no longer be serialized, and the deprecation
may not yet be picked up by custom registries, so [engine-api@167efc7]
added the field back, deprecated it, and added an "omitempty". There
was no official "deprecated" format yet at the time, so let's make sure
the deprecation follows the proper format to make sure it gets noticed.

[cli@27b2797]: docker@27b2797
[moby@6cfff7e]: moby/moby@6cfff7e
[moby@aee260d]: moby/moby@aee260d
[engine-api@9a9e468]: docker-archive-public/docker.engine-api@9a9e468
[engine-api@167efc7]: docker-archive-public/docker.engine-api@167efc7

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

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@thaJeztah thaJeztah merged commit 88d6197 into docker:28.x Aug 28, 2025
124 of 125 checks passed
@thaJeztah thaJeztah deleted the 28.x_backport_fix_email_deprecation branch August 28, 2025 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/authentication 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