From c2f3e171b5e32c25d8c485d3eddc65c0868693ff Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 22 Aug 2023 10:02:51 +0200 Subject: [PATCH] cli/command/system/newClientVersion: initialize with default API version Set the APIVersion and DefaultAPIVersion fields to the default version, as that's the version the client assumes without making a API connection to do version negotiation. One change worth mentioning is that this means that the API version will differ, depending on the format: If no server information is fetched: docker info --format='{{ json .ClientInfo }}' | jq .ApiVersion "1.44" If server information is fetched: docker info --format='{{ json .}}' | jq .ClientInfo.ApiVersion "1.43" An alternative could be to leave the ApiVersion field empty if no negotiation took place. Signed-off-by: Sebastiaan van Stijn --- cli/command/system/version.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/cli/command/system/version.go b/cli/command/system/version.go index 4cb34a0273..11692a7059 100644 --- a/cli/command/system/version.go +++ b/cli/command/system/version.go @@ -16,6 +16,7 @@ import ( flagsHelper "github.com/docker/cli/cli/flags" "github.com/docker/cli/cli/version" "github.com/docker/cli/templates" + "github.com/docker/docker/api" "github.com/docker/docker/api/types" "github.com/pkg/errors" "github.com/spf13/cobra" @@ -89,13 +90,15 @@ type clientVersion struct { // information. func newClientVersion(contextName string, dockerCli command.Cli) clientVersion { v := clientVersion{ - Version: version.Version, - GoVersion: runtime.Version(), - GitCommit: version.GitCommit, - BuildTime: reformatDate(version.BuildTime), - Os: runtime.GOOS, - Arch: arch(), - Context: contextName, + Version: version.Version, + APIVersion: api.DefaultVersion, + DefaultAPIVersion: api.DefaultVersion, + GoVersion: runtime.Version(), + GitCommit: version.GitCommit, + BuildTime: reformatDate(version.BuildTime), + Os: runtime.GOOS, + Arch: arch(), + Context: contextName, } if version.PlatformName != "" { v.Platform = &platformInfo{Name: version.PlatformName}