-
Notifications
You must be signed in to change notification settings - Fork 7.4k
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
feat: version callouts #19452
feat: version callouts #19452
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -103,8 +103,14 @@ params: | |
example_alpine_version: "3.19" | ||
example_node_version: "20" | ||
|
||
min_api_threshold: 1.41 | ||
|
||
min_version_thresholds: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is it n-2 based? (n being the latest stable) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ah, these are arbitrary atm so we need to decide. n-2 could be a good default. It might depend what the threshold is depending on the component, e.g. for Desktop n-2 might be too aggressive. |
||
buildx: "0.10.0" | ||
buildkit: "0.11.0" | ||
engine: "24.0.0" | ||
api: "1.41" | ||
desktop: "4.20.0" | ||
compose: "2.20.0" | ||
scout: "1.0.0" | ||
|
||
menus: | ||
main: | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
{{- /* | ||
Renders a version callout for when a feature was introduced in a component. | ||
|
||
Accepts positional parameters. | ||
Depends on site.Params.min_version_thresholds and i18n strings for component IDs | ||
|
||
@param {string} component The ID of the component as defined in site config. | ||
@param {string} version The version of the component in which the thing was introduced. | ||
@param {string} [link] A relevant link to e.g. release note. | ||
|
||
@returns {template.HTML} | ||
|
||
@examples | ||
|
||
{{< introduced buildx 0.12.0 "../release-notes.md#0120" >}} | ||
|
||
{{< introduced desktop "4.28" "https://example.com/" >}} | ||
|
||
*/ -}} | ||
|
||
{{- $component := .Get 0 }} | ||
{{- $v := .Get 1 }} | ||
{{- $link := .Get 2 }} | ||
{{- $pos := .Position }} | ||
{{- with (index site.Params.min_version_thresholds $component) }} | ||
{{- /* | ||
Hacky semver comparison. | ||
|
||
- Split the input version and threshold version strings | ||
- Range over the input version []string | ||
- Cast to ints and compare input with same index threshold []string | ||
- Set threshold false if input is lower than config, and break | ||
*/ -}} | ||
{{ $vslice := strings.Split $v "." }} | ||
{{ $tslice := strings.Split . "." }} | ||
{{ $versionAboveThreshold := true }} | ||
{{ range $i, $e := $vslice }} | ||
{{ if compare.Lt (cast.ToInt $e) (cast.ToInt (index $tslice $i)) }} | ||
{{ $versionAboveThreshold = false }} | ||
{{ break }} | ||
{{ end }} | ||
{{ end }} | ||
{{- if $versionAboveThreshold }} | ||
<div class="text-gray-light dark:text-gray-dark flex items-center gap-2"> | ||
<span class="icon-svg flex items-center">{{ partial "icon.html" "chevron_right" }}</span> | ||
<span>Introduced in {{ T $component }} version | ||
{{- if $link }} | ||
{{ page.RenderString (fmt.Printf `[%s](%s)` $v $link) }} | ||
{{- else }} | ||
{{ $v }} | ||
{{- end }} | ||
</span> | ||
</div> | ||
{{- else }} | ||
{{ warnf "[introduced] version below threshold: %s %s %v" $component $v $pos }} | ||
{{- end }} | ||
{{- else }} | ||
{{ errorf "[introduced] invalid component: %s %v" $component $pos }} | ||
{{- end }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not rendered because 0.9.0 is below the threshold set in
site.Params.min_version_thresholds.buildx
Also generates a warning: https://github.com/docker/docs/actions/runs/7974560715/job/21770734246?pr=19452#step:4:301