From f793f4714f6edecbe9d4e30e44ba9ffaa8755a5d Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Wed, 15 Apr 2026 16:33:04 +0000 Subject: [PATCH 1/3] Fix float precision loss in jsonschema ParseFloat strconv.ParseFloat(s, 32) parses the string as a float32 and then promotes it to float64, silently losing precision. For example, "1.1" becomes 1.100000023841858 instead of 1.1. This affects users who specify number-type template variables during `databricks bundle init`. Change the bit size from 32 to 64 to preserve full float64 precision. Task: 001.md Co-authored-by: Isaac --- libs/jsonschema/utils.go | 2 +- libs/jsonschema/utils_test.go | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/libs/jsonschema/utils.go b/libs/jsonschema/utils.go index b9df7da515..cb25393075 100644 --- a/libs/jsonschema/utils.go +++ b/libs/jsonschema/utils.go @@ -110,7 +110,7 @@ func fromString(s string, T Type) (any, error) { case BooleanType: v, err = strconv.ParseBool(s) case NumberType: - v, err = strconv.ParseFloat(s, 32) + v, err = strconv.ParseFloat(s, 64) case IntegerType: v, err = strconv.ParseInt(s, 10, 64) case ArrayType, ObjectType: diff --git a/libs/jsonschema/utils_test.go b/libs/jsonschema/utils_test.go index 954c723d3f..d0a46e6788 100644 --- a/libs/jsonschema/utils_test.go +++ b/libs/jsonschema/utils_test.go @@ -95,8 +95,7 @@ func TestTemplateFromString(t *testing.T) { v, err = fromString("1.1", NumberType) assert.NoError(t, err) - // Floating point conversions are not perfect - assert.Less(t, (v.(float64) - 1.1), 0.000001) + assert.Equal(t, 1.1, v) v, err = fromString("12345", IntegerType) assert.NoError(t, err) @@ -104,7 +103,7 @@ func TestTemplateFromString(t *testing.T) { v, err = fromString("123", NumberType) assert.NoError(t, err) - assert.InDelta(t, float64(123), v.(float64), 0.0001) + assert.Equal(t, float64(123), v) _, err = fromString("qrt", ArrayType) assert.EqualError(t, err, "cannot parse string as object of type array. Value of string: \"qrt\"") From 3895b076ce43e606ae24a86666d580bef81e157a Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Wed, 15 Apr 2026 16:37:52 +0000 Subject: [PATCH 2/3] Add changelog entry for float precision fix Co-authored-by: Isaac --- NEXT_CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index 52d764e384..b80fa8314b 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -9,6 +9,7 @@ * Added `--limit` flag to all paginated list commands for client-side result capping ([#4984](https://github.com/databricks/cli/pull/4984)). ### Bundles +* Fix float precision loss when parsing number-type template variables during `bundle init` (denik/random-bugfixes-3) ### Dependency updates From 6ffc4be55fb6da39baa8d99c46ebf6fde2647467 Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Thu, 16 Apr 2026 13:48:31 +0000 Subject: [PATCH 3/3] Reverted by user via WEB UI --- NEXT_CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index b80fa8314b..52d764e384 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -9,7 +9,6 @@ * Added `--limit` flag to all paginated list commands for client-side result capping ([#4984](https://github.com/databricks/cli/pull/4984)). ### Bundles -* Fix float precision loss when parsing number-type template variables during `bundle init` (denik/random-bugfixes-3) ### Dependency updates