chore: bump github.com/zclconf/go-cty from 1.14.1 to 1.17.0
Type: Pull Request
State: Open
Association: Contributor
Comments: 0
(28 days ago)
(28 days ago)
dependencies go
Bumps github.com/zclconf/go-cty from 1.14.1 to 1.17.0.
Release notes
Sourced from github.com/zclconf/go-cty's releases.
v1.17.0
ctynow requires Go 1.23 or later.
cty.Value.Elementsoffers a moderniter.Seq2-based equivalent ofcty.Value.ElementIterator.
cty.DeepValuesoffers a moderniter.Seq2-based equivalent ofcty.Walk.
cty.Value.WrangleMarksDeepallows inspecting and modifying individual marks throughout a possibly-nested data structure.Having now got some experience using marks more extensively in some callers, it's become clear that it's often necessary for different subsystems to be able to collaborate using independent marks without upsetting each other's assumptions. Today that tends to be achieved using hand-written transforms either with
cty.Transformorcty.Value.UnmarkDeepWithPaths/cty.Value.MarkWithPaths, both of which can be pretty expensive even in the common case where there are no marks present at all.This new function allows inspecting and transforming marks with far less overhead, by creating new values only for parts of a structure that actually need to change and by reusing (rather than recreating) the "payloads" of the values being modified when we know that only the marks have changed.
cty.ValueMarksOfTypeandcty.ValueMarksOfTypeDeepmake it easier to use type-based rather than value-based mark schemes, where different values of a common type are used to track a specific kind of relationship with multiple external values.
cty.Value.HasMarkDeepprovides a "deep" version of the existingcty.Value.HasMark, searching throughout a possibly-nested structure for any values that have the given mark.
cty.Value.UnmarkDeepandcty.Value.UnmarkDeepWithPathsare now implemented in terms ofcty.Value.WrangleMarksDeep, so they benefit from its reduced overhead. In particular they avoid reconstructing a data structure that contains no marked values at all.
cty.Value.MarkWithPathsnow has a fast path when it's given a zero-lengthPathValueMarks, in which case it just returns the value it was given with no modifications.v1.16.0
convert: When converting between two different capsule types, will now try to use the "conversion from" implementation from the target type if the source type doesn't have a suitable "conversion to" implementation. (#194)convert: When converting to a map whose element type is an object type with optional attributes, will no longer construct a broken result when a final map is empty. (#198)
Changelog
Sourced from github.com/zclconf/go-cty's changelog.
1.17.0 (September 5, 2025)
ctynow requires Go 1.23 or later.
cty.Value.Elementsoffers a moderniter.Seq2-based equivalent ofcty.Value.ElementIterator.
cty.DeepValuesoffers a moderniter.Seq2-based equivalent ofcty.Walk.
cty.Value.WrangleMarksDeepallows inspecting and modifying individual marks throughout a possibly-nested data structure.Having now got some experience using marks more extensively in some callers, it's become clear that it's often necessary for different subsystems to be able to collaborate using independent marks without upsetting each other's assumptions. Today that tends to be achieved using hand-written transforms either with
cty.Transformorcty.Value.UnmarkDeepWithPaths/cty.Value.MarkWithPaths, both of which can be pretty expensive even in the common case where there are no marks present at all.This new function allows inspecting and transforming marks with far less overhead, by creating new values only for parts of a structure that actually need to change and by reusing (rather than recreating) the "payloads" of the values being modified when we know that only the marks have changed.
cty.ValueMarksOfTypeandcty.ValueMarksOfTypeDeepmake it easier to use type-based rather than value-based mark schemes, where different values of a common type are used to track a specific kind of relationship with multiple external values.
cty.Value.HasMarkDeepprovides a "deep" version of the existingcty.Value.HasMark, searching throughout a possibly-nested structure for any values that have the given mark.
cty.Value.UnmarkDeepandcty.Value.UnmarkDeepWithPathsare now implemented in terms ofcty.Value.WrangleMarksDeep, so they benefit from its reduced overhead. In particular they avoid reconstructing a data structure that contains no marked values at all.
cty.Value.MarkWithPathsnow has a fast path when it's given a zero-lengthPathValueMarks, in which case it just returns the value it was given with no modifications.1.16.4 (August 20, 2025)
cty.UnknownAsNullnow accepts marked values and preserves the given marks in its result. Previously it had no direct support for marks and so would either panic or return incorrect results when given marked values.1.16.3 (May 16, 2025)
convert: Now generates more specific error messages in various cases of type conversion failure, giving additional information about the type that was given as compared to the type that was wanted by the caller.1.16.2 (January 21, 2025)
json:ImpliedTypenow returns an error if a JSON object contains two properties of the same name. As a compatibility concession it allows duplicates whose values have the same implied type, since it was unintentionally possible to combineImpliedTypeandUnmarshalsuccessfully in that case before, but this is not an endorsement of using duplicate property names since that makes the input ambiguous in any case. (#199)function/stdlib:ElementFuncno longer crashes when asked for a negative index into a tuple. This fixes a miss in the negative index support added back in v1.15.0. (#200)1.16.1 (January 13, 2025)
cty:Value.HasElementnow treats unknown set elements consistently with how much of the rest ofctytreats them.function/stdlib:FormatFuncandFormatListFuncnow handle unknown and null values of unknown type as arguments, rather than letting the function system's short-circuit behavior take care of it. This allowscty.DynamicValandcty.NullVal(cty.DynamicPseudoType)to be treated consistently with other values, returning results consistent with the documented behavior, rather than forcing the function to immediately returncty.DynamicVal.1.16.0 (January 3, 2025)
convert: When converting between two different capsule types, will now try to use the "conversion from" implementation from the target type if the source type doesn't have a suitable "conversion to" implementation. (#194)convert: When converting to a map whose element type is an object type with optional attributes, will no longer construct a broken result when a final map is empty. (#198)1.15.1 (November 26, 2024)
function: Function calls can now return more mark-related information when called with unknown values when neitherAllowMarksnorAllowUnknownare set for a particular parameter. (#196)1.15.0 (July 15, 2024)
function/stdlib: Theelementfunction now accepts negative indices, extending the illusion of an infinitely-long list into the negative direction too.cty: The various "transform" functions were previously incorrectly propagating marks from a parent object down to attribute values when calling the caller-provided transform functions. The marks will now no longer be propagated downwards, which is consistent with the treatment of collection and tuple elements. If your transform function needs to take into account context about marks of upstream containers then you can maintain a stack of active marks in yourTransformerimplementation, pushing inEnterand popping inExit. (#185)1.14.4 (March 20, 2024)
... (truncated)
Commits
da4c600CHANGELOG: Prepare for v1.17.0 releaseb13ddd4cty: Use WrangleMarksDeep for UnmarkDeep and UnmarkDeepWithPaths4453ac2cty: Use DeepValues instead of Walk for deep marks inspectionsf833b10Bulk replace interface{} -> anyd4bb9d4cty: Various new mark-inspecting helpers31572cfcty+ctymarks: Deep mark wrangling helperd95a68ccty: Modern iter.Seq2 equivalents of Value.ElementIterator and Walke76eeeav1.16.4 release700a2bccty: UnknownAsNull accepts marked values and preserves marks3c2b6a0Prepare for future v1.16.4 release- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Pull Request Statistics
1
2
+4
-4
Package Dependencies
Technical Details
| ID: | 8719154 |
| UUID: | 2870965544 |
| Node ID: | PR_kwDOLmBl1M6rH3Uo |
| Host: | GitHub |
| Repository: | Txim0520/https-github.com-coder-coder |
| Merge State: | Unknown |