Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hcloud-cli for openSUSE:Factory checked in at 2026-06-28 21:07:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hcloud-cli (Old) and /work/SRC/openSUSE:Factory/.hcloud-cli.new.11887 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hcloud-cli" Sun Jun 28 21:07:41 2026 rev:21 rq:1362092 version:1.66.0 Changes: -------- --- /work/SRC/openSUSE:Factory/hcloud-cli/hcloud-cli.changes 2026-05-21 18:34:19.427809258 +0200 +++ /work/SRC/openSUSE:Factory/.hcloud-cli.new.11887/hcloud-cli.changes 2026-06-28 21:08:25.873909551 +0200 @@ -1,0 +2,28 @@ +Sun Jun 28 06:36:16 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 1.66.0: + * Datacenters commands are now deprecated + - The hcloud datacenters list and hcloud datacenters describe + commands are now deprecated. + The endpoints GET /v1/datacenters and GET + /v1/datacenters/{id} are now deprecated and will be removed + after 1 Oct. 2026. After this date, requests to these + endpoints will return HTTP 410 Gone. + See the changelog for more details. + https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated + * Features + - deprecate hcloud datacenters ... commands (#1436) + * Bug Fixes + - cmd: Change tense for deletion of active context (#1412) + * Dependencies + - deps: update codecov/codecov-action action to v7 (#1440) + - deps: update module github.com/hetznercloud/hcloud-go/v2 to + v2.44.0 (#1437) + - deps: update module github.com/jedib0t/go-pretty/v6 to v6.8.1 + (#1424) + - deps: update golang.org/x/ (#1430) + - deps: update module github.com/hetznercloud/hcloud-go/v2 to + v2.43.0 (#1432) + - deps: update dependency go to v1.26.4 (#1429) + +------------------------------------------------------------------- Old: ---- hcloud-cli-1.65.0.obscpio New: ---- hcloud-cli-1.66.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hcloud-cli.spec ++++++ --- /var/tmp/diff_new_pack.so3C1Z/_old 2026-06-28 21:08:26.549932329 +0200 +++ /var/tmp/diff_new_pack.so3C1Z/_new 2026-06-28 21:08:26.553932464 +0200 @@ -19,7 +19,7 @@ %define executable_name hcloud Name: hcloud-cli -Version: 1.65.0 +Version: 1.66.0 Release: 0 Summary: A command-line interface for Hetzner Cloud License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.so3C1Z/_old 2026-06-28 21:08:26.593933812 +0200 +++ /var/tmp/diff_new_pack.so3C1Z/_new 2026-06-28 21:08:26.597933947 +0200 @@ -1,9 +1,9 @@ <services> <service name="obs_scm" mode="manual"> - <param name="url">https://github.com/hetznercloud/cli</param> + <param name="url">https://github.com/hetznercloud/cli.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v1.65.0</param> + <param name="revision">refs/tags/v1.66.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.so3C1Z/_old 2026-06-28 21:08:26.621934755 +0200 +++ /var/tmp/diff_new_pack.so3C1Z/_new 2026-06-28 21:08:26.625934890 +0200 @@ -1,6 +1,8 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/hetznercloud/cli</param> - <param name="changesrevision">a9f3077b036d9145ef75e17b51483fa4481c0a9f</param></service></servicedata> + <param name="changesrevision">a9f3077b036d9145ef75e17b51483fa4481c0a9f</param></service><service name="tar_scm"> + <param name="url">https://github.com/hetznercloud/cli.git</param> + <param name="changesrevision">05d3057f919e40fe761a471a84b445b9615c3afb</param></service></servicedata> (No newline at EOF) ++++++ hcloud-cli-1.65.0.obscpio -> hcloud-cli-1.66.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/.golangci.yml new/hcloud-cli-1.66.0/.golangci.yml --- old/hcloud-cli-1.65.0/.golangci.yml 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/.golangci.yml 2026-06-24 18:32:50.000000000 +0200 @@ -65,7 +65,7 @@ text: var-naming - linters: - staticcheck - text: (Datacenter|ServerTypes) is deprecated + text: (Datacenter.*|ServerTypes) is deprecated formatters: enable: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/CHANGELOG.md new/hcloud-cli-1.66.0/CHANGELOG.md --- old/hcloud-cli-1.65.0/CHANGELOG.md 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/CHANGELOG.md 2026-06-24 18:32:50.000000000 +0200 @@ -1,5 +1,23 @@ # Changelog +## [v1.66.0](https://github.com/hetznercloud/cli/releases/tag/v1.66.0) + +### Datacenters commands are now deprecated + +The `hcloud datacenters list` and `hcloud datacenters describe` commands are now deprecated. + +The endpoints `GET /v1/datacenters` and `GET /v1/datacenters/{id}` are now deprecated and will be removed after 1 Oct. 2026. After this date, requests to these endpoints will return `HTTP 410 Gone`. + +See the [changelog](https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated) for more details. + +### Features + +- deprecate `hcloud datacenters ...` commands (#1436) + +### Bug Fixes + +- **cmd**: Change tense for deletion of active context (#1412) + ## [v1.65.0](https://github.com/hetznercloud/cli/releases/tag/v1.65.0) ### Load Balancer HTTP Services now support `TimeoutIdle` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/CONTRIBUTING.md new/hcloud-cli-1.66.0/CONTRIBUTING.md --- old/hcloud-cli-1.65.0/CONTRIBUTING.md 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/CONTRIBUTING.md 2026-06-24 18:32:50.000000000 +0200 @@ -1,4 +1,6 @@ -# Developing hcloud-cli +# Contributing + +See our [contributing guidelines](https://github.com/hetznercloud/.github/blob/main/CONTRIBUTING.md). ## Installing tools diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/docs/reference/manual/hcloud.md new/hcloud-cli-1.66.0/docs/reference/manual/hcloud.md --- old/hcloud-cli-1.65.0/docs/reference/manual/hcloud.md 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/docs/reference/manual/hcloud.md 2026-06-24 18:32:50.000000000 +0200 @@ -28,7 +28,7 @@ * [hcloud completion](hcloud_completion.md) - Output shell completion code for the specified shell * [hcloud config](hcloud_config.md) - Manage configuration * [hcloud context](hcloud_context.md) - Manage contexts -* [hcloud datacenter](hcloud_datacenter.md) - View Datacenters +* [hcloud datacenter](hcloud_datacenter.md) - View Datacenters (deprecated) * [hcloud firewall](hcloud_firewall.md) - Manage Firewalls * [hcloud floating-ip](hcloud_floating-ip.md) - Manage Floating IPs * [hcloud image](hcloud_image.md) - Manage Images diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/docs/reference/manual/hcloud_datacenter.md new/hcloud-cli-1.66.0/docs/reference/manual/hcloud_datacenter.md --- old/hcloud-cli-1.65.0/docs/reference/manual/hcloud_datacenter.md 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/docs/reference/manual/hcloud_datacenter.md 2026-06-24 18:32:50.000000000 +0200 @@ -1,6 +1,14 @@ ## hcloud datacenter -View Datacenters +View Datacenters (deprecated) + +### Synopsis + +The 'hcloud datacenter ...' commands are deprecated and will be removed after 1 Oct. 2026. +After this date, requests to the datacenters API endpoints will return HTTP 410 Gone. + +See https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated for more details. + ### Options @@ -25,6 +33,6 @@ ### SEE ALSO * [hcloud](hcloud.md) - Hetzner Cloud CLI -* [hcloud datacenter describe](hcloud_datacenter_describe.md) - Describe a Datacenter -* [hcloud datacenter list](hcloud_datacenter_list.md) - List Datacenters +* [hcloud datacenter describe](hcloud_datacenter_describe.md) - Describe a Datacenter (deprecated) +* [hcloud datacenter list](hcloud_datacenter_list.md) - List Datacenters (deprecated) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/docs/reference/manual/hcloud_datacenter_describe.md new/hcloud-cli-1.66.0/docs/reference/manual/hcloud_datacenter_describe.md --- old/hcloud-cli-1.65.0/docs/reference/manual/hcloud_datacenter_describe.md 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/docs/reference/manual/hcloud_datacenter_describe.md 2026-06-24 18:32:50.000000000 +0200 @@ -1,6 +1,14 @@ ## hcloud datacenter describe -Describe a Datacenter +Describe a Datacenter (deprecated) + +### Synopsis + +The 'hcloud datacenter ...' commands are deprecated and will be removed after 1 Oct. 2026. +After this date, requests to the datacenters API endpoints will return HTTP 410 Gone. + +See https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated for more details. + ``` hcloud datacenter describe [options] <datacenter> @@ -29,5 +37,5 @@ ### SEE ALSO -* [hcloud datacenter](hcloud_datacenter.md) - View Datacenters +* [hcloud datacenter](hcloud_datacenter.md) - View Datacenters (deprecated) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/docs/reference/manual/hcloud_datacenter_list.md new/hcloud-cli-1.66.0/docs/reference/manual/hcloud_datacenter_list.md --- old/hcloud-cli-1.65.0/docs/reference/manual/hcloud_datacenter_list.md 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/docs/reference/manual/hcloud_datacenter_list.md 2026-06-24 18:32:50.000000000 +0200 @@ -1,9 +1,14 @@ ## hcloud datacenter list -List Datacenters +List Datacenters (deprecated) ### Synopsis +The 'hcloud datacenter ...' commands are deprecated and will be removed after 1 Oct. 2026. +After this date, requests to the datacenters API endpoints will return HTTP 410 Gone. + +See https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated for more details. + Displays a list of Datacenters. Output can be controlled with the -o flag. Use -o noheader to suppress the @@ -45,5 +50,5 @@ ### SEE ALSO -* [hcloud datacenter](hcloud_datacenter.md) - View Datacenters +* [hcloud datacenter](hcloud_datacenter.md) - View Datacenters (deprecated) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/go.mod new/hcloud-cli-1.66.0/go.mod --- old/hcloud-cli-1.65.0/go.mod 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/go.mod 2026-06-24 18:32:50.000000000 +0200 @@ -2,7 +2,7 @@ go 1.25.0 -toolchain go1.26.3 +toolchain go1.26.4 require ( github.com/BurntSushi/toml v1.6.0 @@ -12,8 +12,8 @@ github.com/fatih/structs v1.1.0 github.com/goccy/go-yaml v1.19.2 github.com/guptarohit/asciigraph v0.9.0 - github.com/hetznercloud/hcloud-go/v2 v2.40.0 - github.com/jedib0t/go-pretty/v6 v6.7.10 + github.com/hetznercloud/hcloud-go/v2 v2.44.0 + github.com/jedib0t/go-pretty/v6 v6.8.1 github.com/spf13/cast v1.10.0 github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 @@ -21,11 +21,11 @@ github.com/stretchr/testify v1.11.1 github.com/swaggest/assertjson v1.10.0 go.uber.org/mock v0.6.0 - golang.org/x/crypto v0.51.0 - golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a - golang.org/x/net v0.54.0 - golang.org/x/term v0.43.0 - golang.org/x/text v0.37.0 + golang.org/x/crypto v0.53.0 + golang.org/x/exp v0.0.0-20260611194520-c48552f49976 + golang.org/x/net v0.56.0 + golang.org/x/term v0.44.0 + golang.org/x/text v0.38.0 ) require ( @@ -59,7 +59,7 @@ github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect go.yaml.in/yaml/v2 v2.4.2 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/sys v0.44.0 // indirect + golang.org/x/sys v0.46.0 // indirect google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/go.sum new/hcloud-cli-1.66.0/go.sum --- old/hcloud-cli-1.65.0/go.sum 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/go.sum 2026-06-24 18:32:50.000000000 +0200 @@ -37,14 +37,14 @@ github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/guptarohit/asciigraph v0.9.0 h1:MvCSRRVkT2XvU1IO6n92o7l7zqx1DiFaoszOUZQztbY= github.com/guptarohit/asciigraph v0.9.0/go.mod h1:dYl5wwK4gNsnFf9Zp+l06rFiDZ5YtXM6x7SRWZ3KGag= -github.com/hetznercloud/hcloud-go/v2 v2.40.0 h1:fuP7khfiDQAIXdKyQq7f3LnnOjyZg0PXTafXjUKkqIA= -github.com/hetznercloud/hcloud-go/v2 v2.40.0/go.mod h1:ANz38eerXjPv00dm9dckKhttOGtYeeGmjjvwL5e6c5E= +github.com/hetznercloud/hcloud-go/v2 v2.44.0 h1:1p9qwaZ/H55nLP9c7WfuwUA0LfsexS2YHOhD8+iBga8= +github.com/hetznercloud/hcloud-go/v2 v2.44.0/go.mod h1:d0s2WLe7jSoStamv3eHoWgBSOxc/K17tYSXsqUkbse0= github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc= github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJDkXXS7VoV7XGE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jedib0t/go-pretty/v6 v6.7.10 h1:B/2qW2Bkv2L6n14PP8o1kx75kWzHOQ3YTluWzg9icac= -github.com/jedib0t/go-pretty/v6 v6.7.10/go.mod h1:YwC5CE4fJ1HFUDeivSV1r//AmANFHyqczZk+U6BDALU= +github.com/jedib0t/go-pretty/v6 v6.8.1 h1:0fkCNhjrX0zPpwkWaDYU5VMrygg41Tu197mWILIJoqQ= +github.com/jedib0t/go-pretty/v6 v6.8.1/go.mod h1:YwC5CE4fJ1HFUDeivSV1r//AmANFHyqczZk+U6BDALU= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -119,19 +119,19 @@ go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= -golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= -golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a h1:+3jdDGGB8NGb1Zktc737jlt3/A5f6UlwSzmvqUuufxw= -golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= -golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= -golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= +golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= +golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= +golang.org/x/exp v0.0.0-20260611194520-c48552f49976 h1:X8Hz2ImujgbmetVuW+w2YkyZChE3cBpZi2P158rTG9M= +golang.org/x/exp v0.0.0-20260611194520-c48552f49976/go.mod h1:vnf4pv9iKZXY58sQE1L86zmNWJ4159e1RkcWiLCkeEY= +golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= +golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4= -golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk= -golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= +golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= +golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc= +golang.org/x/term v0.44.0/go.mod h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y= +golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= +golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/base/change_protection.go new/hcloud-cli-1.66.0/internal/cmd/base/change_protection.go --- old/hcloud-cli-1.65.0/internal/cmd/base/change_protection.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/base/change_protection.go 2026-06-24 18:32:50.000000000 +0200 @@ -53,8 +53,8 @@ // IDOrName is used to retrieve a string representation of the resource IDOrName func(resource T) string - // Experimental is a function that will be used to mark the command as experimental. - Experimental func(state.State, *cobra.Command) *cobra.Command + // Configure is a function that can be used to configure the command directly. + Configure func(state.State, *cobra.Command) *cobra.Command } func (cpc *ChangeProtectionCmds[T, Opts]) newChangeProtectionCmd(s state.State, enable bool) *cobra.Command { @@ -133,8 +133,8 @@ cpc.AdditionalFlags(cmd) } - if cpc.Experimental != nil { - cmd = cpc.Experimental(s, cmd) + if cpc.Configure != nil { + cmd = cpc.Configure(s, cmd) } return cmd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/base/create.go new/hcloud-cli-1.66.0/internal/cmd/base/create.go --- old/hcloud-cli-1.65.0/internal/cmd/base/create.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/base/create.go 2026-06-24 18:32:50.000000000 +0200 @@ -19,8 +19,8 @@ // It should return the created resource, the schema of the resource and an error. Run func(state.State, *cobra.Command, []string) (T, any, error) PrintResource func(state.State, *cobra.Command, T) - // Experimental is a function that will be used to mark the command as experimental. - Experimental func(state.State, *cobra.Command) *cobra.Command + // Configure is a function that can be used to configure the command directly. + Configure func(state.State, *cobra.Command) *cobra.Command } // CobraCommand creates a command that can be registered with cobra. @@ -78,8 +78,8 @@ return nil } - if cc.Experimental != nil { - cmd = cc.Experimental(s, cmd) + if cc.Configure != nil { + cmd = cc.Configure(s, cmd) } return cmd } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/base/delete.go new/hcloud-cli-1.66.0/internal/cmd/base/delete.go --- old/hcloud-cli-1.65.0/internal/cmd/base/delete.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/base/delete.go 2026-06-24 18:32:50.000000000 +0200 @@ -44,8 +44,8 @@ // [DeleteCmd.FetchWithArgs] and [DeleteCmd.PositionalArgumentOverride] is being used. ValidArgsFunction func(client hcapi2.Client) []cobra.CompletionFunc - // Experimental is a function that will be used to mark the command as experimental. - Experimental func(state.State, *cobra.Command) *cobra.Command + // Configure is a function that can be used to configure the command directly. + Configure func(state.State, *cobra.Command) *cobra.Command } type FetchFunc[T any] func(s state.State, cmd *cobra.Command, idOrName string) (T, *hcloud.Response, error) @@ -84,8 +84,8 @@ if dc.AdditionalFlags != nil { dc.AdditionalFlags(cmd) } - if dc.Experimental != nil { - cmd = dc.Experimental(s, cmd) + if dc.Configure != nil { + cmd = dc.Configure(s, cmd) } return cmd } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/base/describe.go new/hcloud-cli-1.66.0/internal/cmd/base/describe.go --- old/hcloud-cli-1.65.0/internal/cmd/base/describe.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/base/describe.go 2026-06-24 18:32:50.000000000 +0200 @@ -47,8 +47,8 @@ // [DescribeCmd.FetchWithArgs] and [DescribeCmd.PositionalArgumentOverride] is being used. ValidArgsFunction func(client hcapi2.Client) []cobra.CompletionFunc - // Experimental is a function that will be used to mark the command as experimental. - Experimental func(state.State, *cobra.Command) *cobra.Command + // Configure is a function that can be used to configure the command directly. + Configure func(state.State, *cobra.Command) *cobra.Command } // CobraCommand creates a command that can be registered with cobra. @@ -84,8 +84,8 @@ dc.AdditionalFlags(cmd) } - if dc.Experimental != nil { - cmd = dc.Experimental(s, cmd) + if dc.Configure != nil { + cmd = dc.Configure(s, cmd) } return cmd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/base/labels.go new/hcloud-cli-1.66.0/internal/cmd/base/labels.go --- old/hcloud-cli-1.65.0/internal/cmd/base/labels.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/base/labels.go 2026-06-24 18:32:50.000000000 +0200 @@ -46,8 +46,8 @@ // provided as part of the [LabelCmds.ValidArgsFunction]. ValidArgsFunction func(client hcapi2.Client) []cobra.CompletionFunc - // Experimental is a function that will be used to mark the command as experimental. - Experimental func(state.State, *cobra.Command) *cobra.Command + // Configure is a function that can be used to configure the command directly. + Configure func(state.State, *cobra.Command) *cobra.Command } // AddCobraCommand creates a command that can be registered with cobra. @@ -79,8 +79,8 @@ cmd.Flags().BoolP("overwrite", "o", false, "Overwrite label if it exists already (true, false)") - if lc.Experimental != nil { - cmd = lc.Experimental(s, cmd) + if lc.Configure != nil { + cmd = lc.Configure(s, cmd) } return cmd @@ -177,8 +177,8 @@ cmd.Flags().BoolP("all", "a", false, "Remove all labels") - if lc.Experimental != nil { - cmd = lc.Experimental(s, cmd) + if lc.Configure != nil { + cmd = lc.Configure(s, cmd) } return cmd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/base/list.go new/hcloud-cli-1.66.0/internal/cmd/base/list.go --- old/hcloud-cli-1.65.0/internal/cmd/base/list.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/base/list.go 2026-06-24 18:32:50.000000000 +0200 @@ -56,8 +56,8 @@ // Can be set if auto-completion is needed (usually if [ListCmd.FetchWithArgs] is used) ValidArgsFunction func(client hcapi2.Client) cobra.CompletionFunc - // Experimental is a function that will be used to mark the command as experimental. - Experimental func(state.State, *cobra.Command) *cobra.Command + // Configure is a function that can be used to configure the command directly. + Configure func(state.State, *cobra.Command) *cobra.Command } // CobraCommand creates a command that can be registered with cobra. @@ -92,8 +92,8 @@ lc.AdditionalFlags(cmd) } cmd.Flags().StringSliceP("sort", "s", []string{}, "Determine the sorting of the result") - if lc.Experimental != nil { - cmd = lc.Experimental(s, cmd) + if lc.Configure != nil { + cmd = lc.Configure(s, cmd) } return cmd } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/base/set_rdns.go new/hcloud-cli-1.66.0/internal/cmd/base/set_rdns.go --- old/hcloud-cli-1.65.0/internal/cmd/base/set_rdns.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/base/set_rdns.go 2026-06-24 18:32:50.000000000 +0200 @@ -22,8 +22,8 @@ Fetch func(s state.State, cmd *cobra.Command, idOrName string) (T, *hcloud.Response, error) GetDefaultIP func(resource T) net.IP - // Experimental is a function that will be used to mark the command as experimental. - Experimental func(state.State, *cobra.Command) *cobra.Command + // Configure is a function that can be used to configure the command directly. + Configure func(state.State, *cobra.Command) *cobra.Command } // CobraCommand creates a command that can be registered with cobra. @@ -45,8 +45,8 @@ cmd.Flags().IPP("ip", "i", net.IP{}, "IP address for which the reverse DNS entry should be set") - if rc.Experimental != nil { - cmd = rc.Experimental(s, cmd) + if rc.Configure != nil { + cmd = rc.Configure(s, cmd) } return cmd } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/base/update.go new/hcloud-cli-1.66.0/internal/cmd/base/update.go --- old/hcloud-cli-1.65.0/internal/cmd/base/update.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/base/update.go 2026-06-24 18:32:50.000000000 +0200 @@ -41,8 +41,8 @@ // [UpdateCmd.FetchWithArgs] and [UpdateCmd.PositionalArgumentOverride] is being used. ValidArgsFunction func(client hcapi2.Client) []cobra.CompletionFunc - // Experimental is a function that will be used to mark the command as experimental. - Experimental func(state.State, *cobra.Command) *cobra.Command + // Configure is a function that can be used to configure the command directly. + Configure func(state.State, *cobra.Command) *cobra.Command } // CobraCommand creates a command that can be registered with cobra. @@ -72,8 +72,8 @@ }, } uc.DefineFlags(cmd) - if uc.Experimental != nil { - cmd = uc.Experimental(s, cmd) + if uc.Configure != nil { + cmd = uc.Configure(s, cmd) } return cmd } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/context/delete.go new/hcloud-cli-1.66.0/internal/cmd/context/delete.go --- old/hcloud-cli-1.65.0/internal/cmd/context/delete.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/context/delete.go 2026-06-24 18:32:50.000000000 +0200 @@ -34,7 +34,7 @@ return fmt.Errorf("context not found: %v", name) } if cfg.ActiveContext() == context { - _, _ = fmt.Fprintln(os.Stderr, "Warning: You are deleting the currently active context. Please select a new active context.") + _, _ = fmt.Fprintln(os.Stderr, "Warning: You deleted the currently active context. Please select a new active context.") cfg.SetActiveContext(nil) } config.RemoveContext(cfg, context) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/context/delete_test.go new/hcloud-cli-1.66.0/internal/cmd/context/delete_test.go --- old/hcloud-cli-1.65.0/internal/cmd/context/delete_test.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/context/delete_test.go 2026-06-24 18:32:50.000000000 +0200 @@ -37,7 +37,7 @@ name: "delete active context", args: []string{"my-context"}, config: testConfig, - expErr: "Warning: You are deleting the currently active context. Please select a new active context.\n", + expErr: "Warning: You deleted the currently active context. Please select a new active context.\n", expOut: `active_context = "" [[contexts]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/datacenter/datacenter.go new/hcloud-cli-1.66.0/internal/cmd/datacenter/datacenter.go --- old/hcloud-cli-1.65.0/internal/cmd/datacenter/datacenter.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/datacenter/datacenter.go 2026-06-24 18:32:50.000000000 +0200 @@ -7,14 +7,25 @@ "github.com/hetznercloud/cli/internal/state" ) +const deprecationNotice = `The 'hcloud datacenter ...' commands are deprecated and will be removed after 1 Oct. 2026. +After this date, requests to the datacenters API endpoints will return HTTP 410 Gone. + +See https://docs.hetzner.cloud/changelog#2026-06-02-datacenters-deprecated for more details. +` + func NewCommand(s state.State) *cobra.Command { cmd := &cobra.Command{ Use: "datacenter", Aliases: []string{"datacenters"}, - Short: "View Datacenters", + Short: "View Datacenters (deprecated)", Args: util.Validate, TraverseChildren: true, DisableFlagsInUseLine: true, + + Long: deprecationNotice, + PersistentPreRun: func(cmd *cobra.Command, _ []string) { + cmd.PrintErrln("Warning: The 'datacenter' commands are deprecated. Use the 'location' commands instead.") + }, } cmd.AddCommand( ListCmd.CobraCommand(s), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/datacenter/describe.go new/hcloud-cli-1.66.0/internal/cmd/datacenter/describe.go --- old/hcloud-cli-1.65.0/internal/cmd/datacenter/describe.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/datacenter/describe.go 2026-06-24 18:32:50.000000000 +0200 @@ -32,6 +32,11 @@ fmt.Fprint(out, DescribeDatacenter(s.Client(), datacenter, false)) return nil }, + Configure: func(_ state.State, c *cobra.Command) *cobra.Command { + c.Short += " (deprecated)" + c.Long = deprecationNotice + return c + }, } func DescribeDatacenter(client hcapi2.Client, datacenter *hcloud.Datacenter, short bool) string { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/cmd/datacenter/list.go new/hcloud-cli-1.66.0/internal/cmd/datacenter/list.go --- old/hcloud-cli-1.65.0/internal/cmd/datacenter/list.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/cmd/datacenter/list.go 2026-06-24 18:32:50.000000000 +0200 @@ -1,6 +1,9 @@ package datacenter import ( + "fmt" + + "github.com/spf13/cobra" "github.com/spf13/pflag" "github.com/hetznercloud/cli/internal/cmd/base" @@ -35,4 +38,10 @@ }, Schema: hcloud.SchemaFromDatacenter, + + Configure: func(_ state.State, c *cobra.Command) *cobra.Command { + c.Short += " (deprecated)" + c.Long = fmt.Sprintf("%s\n%s", deprecationNotice, c.Long) + return c + }, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/internal/version/version.go new/hcloud-cli-1.66.0/internal/version/version.go --- old/hcloud-cli-1.65.0/internal/version/version.go 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/internal/version/version.go 2026-06-24 18:32:50.000000000 +0200 @@ -4,7 +4,7 @@ var ( // version is a semver version (https://semver.org). - version = "1.65.0" // x-releaser-pleaser-version + version = "1.66.0" // x-releaser-pleaser-version // versionPrerelease is a semver version pre-release identifier (https://semver.org). // diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hcloud-cli-1.65.0/mise.toml new/hcloud-cli-1.66.0/mise.toml --- old/hcloud-cli-1.65.0/mise.toml 2026-05-21 14:14:58.000000000 +0200 +++ new/hcloud-cli-1.66.0/mise.toml 2026-06-24 18:32:50.000000000 +0200 @@ -1,7 +1,7 @@ [tools] -go = "1.26.3" +go = "1.26.4" "go:go.uber.org/mock/mockgen" = "v0.6.0" "github:golangci/golangci-lint" = "2.12.2" -"github:goreleaser/goreleaser" = "v2.15.4" +"github:goreleaser/goreleaser" = "v2.16.0" "github:anchore/quill" = "v0.7.1" "github:jstemmer/go-junit-report" = "v2.1.0" ++++++ hcloud-cli.obsinfo ++++++ --- /var/tmp/diff_new_pack.so3C1Z/_old 2026-06-28 21:08:27.205954435 +0200 +++ /var/tmp/diff_new_pack.so3C1Z/_new 2026-06-28 21:08:27.213954704 +0200 @@ -1,5 +1,5 @@ name: hcloud-cli -version: 1.65.0 -mtime: 1779365698 -commit: a9f3077b036d9145ef75e17b51483fa4481c0a9f +version: 1.66.0 +mtime: 1782318770 +commit: 05d3057f919e40fe761a471a84b445b9615c3afb ++++++ vendor.tar.gz ++++++ ++++ 8886 lines of diff (skipped)
