diff --git a/_config.yml b/_config.yml index 5ecc307f57..d9dc2d275a 100644 --- a/_config.yml +++ b/_config.yml @@ -19,7 +19,8 @@ lsi: false exclude: ["_samples", "_scripts", "404.html", "datacenter", "ee", "index.html", "js/metadata.json"] # Component versions -- address like site.docker_ce_version -# You can't have - characters in these for non-YAML reasons +# You can't have - characters in these for non-YAML reasons. +# When updating 'latest_engine_api_version', also update 'min_api_threshold' below. latest_engine_api_version: "1.41" docker_ce_version: "20.10" compose_v1_version: "1.29.2" @@ -30,6 +31,25 @@ machine_version: "0.16.0" distribution_version: "2.7" compose_switch_version: "1.0.4" +# Options for displaying minimum API version requirements in the reference pages. +# +# The reference pages show badges for commands and options (flags) that require +# a minimum API version. While this information can be useful if an option was +# added in a recent version of the Docker Engine (and API), these badges are no +# longer relevant to most users if the minimum required version is quite "old". +# +# We assume users reading these pages to be on the current version, or at most +# on the version before that (which is already "unsupported"). Users running +# older versions have bigger problems on their hand, so we're not accounting for +# those. +# +# So, to reduce unnecessary clutter on the page, we only show the minimum required +# API version if it requires a relatively recent version of the Engine. +# +# The "min_api_threshold" option specifies the minimum required API version for +# which we show a badge (currently: API v1.40, or "Docker 19.03"). +min_api_threshold: 1.40 + # List of plugins to enable for local development builds. Mostly the same as # for production, but without the "jekyll-sitemap" plugin, which is not needed # for previewing, and excluding saves some time to build diff --git a/_includes/cli.md b/_includes/cli.md index 91f9ea6fd3..ce81a3dfa2 100644 --- a/_includes/cli.md +++ b/_includes/cli.md @@ -7,6 +7,17 @@ {{ controller_data.short | replace_relative_links: page.path }} {% if controller_data.min_api_version %} +{% comment %} + To reduce unnecessary clutter on the page, we only show the minimum required + API version if it requires a relatively recent version of the Engine, which + is configured through the "min_api_threshold" option in _config.yml + + Below, we first convert the min_api_version from a string to a number, so that + we can compare versions (see https://stackoverflow.com/a/27200972/1811501), + then compare it, to decide whether to show the "minimum required API version". +{% endcomment %} +{% assign min_api_version = controller_data.min_api_version | plus: 0 %} +{% if min_api_version >= site.min_api_threshold %} API {{ controller_data.min_api_version }}+  The client and daemon API must both be at least @@ -14,6 +25,7 @@ The client and daemon API must both be at least to use this command. Use the `docker version` command on the client to check your client and daemon API versions. +{% endif %} {% endif %} {% if controller_data.deprecated %} @@ -114,7 +126,14 @@ For example uses of this command, refer to the [examples section](#examples) bel {% capture deprecated-badge %}{% if option.deprecated %}deprecated{% endif %}{% endcapture %} {% capture experimental-daemon-badge %}{% if option.experimental %}experimental (daemon){% endif %}{% endcapture %} {% capture experimental-cli-badge %}{% if option.experimentalcli %}experimental (CLI){% endif %}{% endcapture %} - {% capture min-api %}{% if option.min_api_version %}API {{ option.min_api_version }}+{% endif %}{%endcapture%} + {%- if option.min_api_version -%} + {% assign min_api_version = option.min_api_version | plus: 0 %} + {% if min_api_version >= site.min_api_threshold %} + {% capture min-api %}API {{ option.min_api_version }}+{%endcapture%} + {%- endif -%} + {%- else -%} + {% capture min-api %}{%endcapture%} + {%- endif -%} {% capture flag-orchestrator %}{% if option.swarm %}Swarm{% endif %}{% if option.kubernetes %}Kubernetes{% endif %}{% endcapture %} {% capture all-badges %}{{ deprecated-badge }}{{ experimental-daemon-badge }}{{ experimental-cli-badge }}{{ min-api }}{{ flag-orchestrator }}{% endcapture %} {% assign defaults-to-skip = "[],map[],false,0,0s,default,'',\"\"" | split: ',' %}