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 2025-11-08 16:36:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hcloud-cli (Old) and /work/SRC/openSUSE:Factory/.hcloud-cli.new.1980 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hcloud-cli" Sat Nov 8 16:36:25 2025 rev:10 rq:1316469 version:1.56.0 Changes: -------- --- /work/SRC/openSUSE:Factory/hcloud-cli/hcloud-cli.changes 2025-10-22 12:23:06.340713559 +0200 +++ /work/SRC/openSUSE:Factory/.hcloud-cli.new.1980/hcloud-cli.changes 2025-11-08 16:36:39.333547536 +0100 @@ -1,0 +2,25 @@ +Fri Nov 07 15:48:37 UTC 2025 - Johannes Kastl <[email protected]> + +- Update to version 1.56.0: + * Features + - format user provided TXT records when not quoted (#1208) + * Bug Fixes + - more readable default time format (#1197) + - iso: broken --type flag in list command (#1221) + - Storage Boxes not listed in hcloud all list (#1222) + - consistent tab spacing in describe commands (#1216) + - filepaths not correctly resolved on Windows (#1229) + * Dependencies + - deps: update module github.com/jedib0t/go-pretty/v6 to v6.7.0 + (#1228) + - deps: update dependency go to v1.25.4 (#1227) + - deps: update dependency golangci-lint to v2.6.1 (#1226) + - deps: update module github.com/hetznercloud/hcloud-go/v2 to + v2.29.0 (#1218) + - deps: update dependency golangci-lint to v2.6.0 (#1215) + - deps: update actions/upload-artifact action to v5 (#1212) + - deps: update module github.com/jedib0t/go-pretty/v6 to v6.6.9 + (#1214) + - deps: update golang.org/x/exp digest to a4bb9ff (#1209) + +------------------------------------------------------------------- Old: ---- hcloud-cli-1.55.0.obscpio New: ---- hcloud-cli-1.56.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hcloud-cli.spec ++++++ --- /var/tmp/diff_new_pack.SjQ98E/_old 2025-11-08 16:36:41.025618380 +0100 +++ /var/tmp/diff_new_pack.SjQ98E/_new 2025-11-08 16:36:41.029618548 +0100 @@ -19,7 +19,7 @@ %define executable_name hcloud Name: hcloud-cli -Version: 1.55.0 +Version: 1.56.0 Release: 0 Summary: A command-line interface for Hetzner Cloud License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.SjQ98E/_old 2025-11-08 16:36:41.089621060 +0100 +++ /var/tmp/diff_new_pack.SjQ98E/_new 2025-11-08 16:36:41.093621227 +0100 @@ -3,7 +3,7 @@ <param name="url">https://github.com/hetznercloud/cli</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v1.55.0</param> + <param name="revision">v1.56.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.SjQ98E/_old 2025-11-08 16:36:41.125622567 +0100 +++ /var/tmp/diff_new_pack.SjQ98E/_new 2025-11-08 16:36:41.129622734 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/hetznercloud/cli</param> - <param name="changesrevision">ce8997330e6b1e48c920d6ac4d5288d0fcb7d166</param></service></servicedata> + <param name="changesrevision">c9ebdf3828494ba9e579d64840f86631f65041b4</param></service></servicedata> (No newline at EOF) ++++++ hcloud-cli-1.55.0.obscpio -> hcloud-cli-1.56.0.obscpio ++++++ ++++ 6426 lines of diff (skipped) ++++++ hcloud-cli.obsinfo ++++++ --- /var/tmp/diff_new_pack.SjQ98E/_old 2025-11-08 16:36:41.841652546 +0100 +++ /var/tmp/diff_new_pack.SjQ98E/_new 2025-11-08 16:36:41.849652881 +0100 @@ -1,5 +1,5 @@ name: hcloud-cli -version: 1.55.0 -mtime: 1761041577 -commit: ce8997330e6b1e48c920d6ac4d5288d0fcb7d166 +version: 1.56.0 +mtime: 1762523394 +commit: c9ebdf3828494ba9e579d64840f86631f65041b4 ++++++ vendor.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/exp/zoneutil/txt.go new/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/exp/zoneutil/txt.go --- old/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/exp/zoneutil/txt.go 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/exp/zoneutil/txt.go 2025-11-07 14:49:54.000000000 +0100 @@ -0,0 +1,95 @@ +package zoneutil + +import ( + "fmt" + "slices" + "strings" +) + +// IsTXTRecordQuoted returns wether a the given string starts and ends with quotes. +// +// - hello world => false +// - "hello world" => true +func IsTXTRecordQuoted(value string) bool { + return strings.HasPrefix(value, `"`) && strings.HasSuffix(value, `"`) +} + +// FormatTXTRecord splits a long string in chunks of 255 characters, and quotes each of +// the chunks. Existing quotes will be escaped. +// +// - hello world => "hello world" +// - hello "world" => "hello \"world\"" +// +// This function can be reversed with [ParseTXTValue]. +func FormatTXTRecord(value string) string { + // Escape existing quotes + value = strings.ReplaceAll(value, "\"", "\\\"") + + // Split in chunks of 255 characters + parts := []string{} + for chunk := range slices.Chunk([]byte(value), 255) { + parts = append(parts, fmt.Sprintf(`"%s"`, chunk)) + } + return strings.Join(parts, " ") +} + +// ParseTXTRecord joins multiple quoted strings into a single unquoted string. +// +// - "hello world" => hello world +// - "hello \"world\"" => hello "world" +func ParseTXTRecord(value string) string { + return strings.Join(parseTXTStrings(value), "") +} + +// parseTXTStrings splits the given string at whitespaces not escaped by double quotation marks: +// - "hello" "world" -> []string{"hello", "world"} +// - "hello" world -> []string{"hello", "world"} +// - hello "world" -> []string{"hello", "world"} +// - hello world -> []string{"hello", "world"} +// +// Double quotation marks escaped with \" are ignored: +// - hello\" world -> []string{"hello \"", "world"} +// - hello wo\"rld -> []string{"hello", "wo\"rld"} +func parseTXTStrings(value string) []string { + var result []string + + var cur strings.Builder + var quoted, escapeNext bool + + for _, c := range value { + if escapeNext { + // This character is escaped by a previous \. + cur.WriteRune(c) + escapeNext = false + continue + } + + switch c { + case '\\': + // Next character is escaped. + escapeNext = true + case '"': + quoted = !quoted + case ' ': + if quoted { + // Inside double quotation marks, add character to current string. + cur.WriteRune(c) + } else if cur.Len() > 0 { + // Whitespace after ending quotation mark, end of current string. + result = append(result, cur.String()) + cur.Reset() + } + default: + if quoted { + cur.WriteRune(c) + } + } + } + + // Remaining characters are last string. + if cur.Len() > 0 { + result = append(result, cur.String()) + } + + return result +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/floating_ip.go new/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/floating_ip.go --- old/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/floating_ip.go 2025-10-21 12:12:57.000000000 +0200 +++ new/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/floating_ip.go 2025-11-07 14:49:54.000000000 +0100 @@ -29,6 +29,7 @@ } // DNSPtrForIP returns the reverse DNS pointer of the IP address. +// // Deprecated: Use GetDNSPtrForIP instead. func (f *FloatingIP) DNSPtrForIP(ip net.IP) string { return f.DNSPtr[ip.String()] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/hcloud.go new/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/hcloud.go --- old/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/hcloud.go 2025-10-21 12:12:57.000000000 +0200 +++ new/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/hcloud.go 2025-11-07 14:49:54.000000000 +0100 @@ -31,4 +31,4 @@ package hcloud // Version is the library's version following Semantic Versioning. -const Version = "2.28.0" // x-releaser-pleaser-version +const Version = "2.29.0" // x-releaser-pleaser-version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/iso.go new/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/iso.go --- old/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/iso.go 2025-10-21 12:12:57.000000000 +0200 +++ new/vendor/github.com/hetznercloud/hcloud-go/v2/hcloud/iso.go 2025-11-07 14:49:54.000000000 +0100 @@ -78,6 +78,7 @@ Architecture []Architecture // IncludeWildcardArchitecture must be set to also return custom ISOs that have no architecture set, if you are // also setting the Architecture field. + // // Deprecated: Use [ISOListOpts.IncludeArchitectureWildcard] instead. IncludeWildcardArchitecture bool // IncludeWildcardArchitecture must be set to also return custom ISOs that have no architecture set, if you are diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/jedib0t/go-pretty/v6/text/color.go new/vendor/github.com/jedib0t/go-pretty/v6/text/color.go --- old/vendor/github.com/jedib0t/go-pretty/v6/text/color.go 2025-10-21 12:12:57.000000000 +0200 +++ new/vendor/github.com/jedib0t/go-pretty/v6/text/color.go 2025-11-07 14:49:54.000000000 +0100 @@ -27,7 +27,11 @@ if os.Getenv("FORCE_COLOR") == "1" { return true } - return os.Getenv("NO_COLOR") == "" || os.Getenv("NO_COLOR") == "0" + if os.Getenv("NO_COLOR") == "" || os.Getenv("NO_COLOR") == "0" { + return os.Getenv("TERM") != "dumb" + } + + return false } // The logic here is inspired from github.com/fatih/color; the following is diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2025-10-21 12:12:57.000000000 +0200 +++ new/vendor/modules.txt 2025-11-07 14:49:54.000000000 +0100 @@ -55,7 +55,7 @@ # github.com/guptarohit/asciigraph v0.7.3 ## explicit; go 1.11 github.com/guptarohit/asciigraph -# github.com/hetznercloud/hcloud-go/v2 v2.28.0 +# github.com/hetznercloud/hcloud-go/v2 v2.29.0 ## explicit; go 1.24.0 github.com/hetznercloud/hcloud-go/v2/hcloud github.com/hetznercloud/hcloud-go/v2/hcloud/exp/actionutil @@ -64,6 +64,7 @@ github.com/hetznercloud/hcloud-go/v2/hcloud/exp/kit/randutil github.com/hetznercloud/hcloud-go/v2/hcloud/exp/kit/sliceutil github.com/hetznercloud/hcloud-go/v2/hcloud/exp/kit/sshutil +github.com/hetznercloud/hcloud-go/v2/hcloud/exp/zoneutil github.com/hetznercloud/hcloud-go/v2/hcloud/internal/instrumentation github.com/hetznercloud/hcloud-go/v2/hcloud/schema # github.com/iancoleman/orderedmap v0.3.0 @@ -72,7 +73,7 @@ # github.com/inconshreveable/mousetrap v1.1.0 ## explicit; go 1.18 github.com/inconshreveable/mousetrap -# github.com/jedib0t/go-pretty/v6 v6.6.8 +# github.com/jedib0t/go-pretty/v6 v6.7.0 ## explicit; go 1.18 github.com/jedib0t/go-pretty/v6/table github.com/jedib0t/go-pretty/v6/text @@ -197,7 +198,7 @@ golang.org/x/crypto/internal/poly1305 golang.org/x/crypto/ssh golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -# golang.org/x/exp v0.0.0-20251017212417-90e834f514db +# golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 ## explicit; go 1.24.0 golang.org/x/exp/maps # golang.org/x/net v0.46.0
