An open index of dependabot pull requests across open source projects.

chore: bump github.com/zclconf/go-cty from 1.14.1 to 1.18.0

Closed
Number: #883
Type: Pull Request
State: Closed
Author: dependabot[bot] dependabot[bot]
Association: Unknown
Comments: 1
Created: March 02, 2026 at 12:50 PM UTC
(3 months ago)
Updated: March 13, 2026 at 01:22 AM UTC
(3 months ago)
Closed: March 13, 2026 at 01:22 AM UTC
(3 months ago)
Time to Close: 11 days
Labels:
stale dependencies go
Description:

Bumps github.com/zclconf/go-cty from 1.14.1 to 1.18.0.

Release notes

Sourced from github.com/zclconf/go-cty's releases.

v1.17.0

cty now requires Go 1.23 or later.

  • cty.Value.Elements offers a modern iter.Seq2-based equivalent of cty.Value.ElementIterator.

  • cty.DeepValues offers a modern iter.Seq2-based equivalent of cty.Walk.

  • cty.Value.WrangleMarksDeep allows 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.Transform or cty.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.ValueMarksOfType and cty.ValueMarksOfTypeDeep make 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.HasMarkDeep provides a "deep" version of the existing cty.Value.HasMark, searching throughout a possibly-nested structure for any values that have the given mark.

  • cty.Value.UnmarkDeep and cty.Value.UnmarkDeepWithPaths are now implemented in terms of cty.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.MarkWithPaths now has a fast path when it's given a zero-length PathValueMarks, 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.18.0 (February 23, 2026)

cty now requires Go 1.25 or later.

  • cty.Value.Equals now has a special case where if a null value is compared with a non-null value then only top-level marks from the non-null value will transfer to the boolean result.

    This is a limited introduction of the idea that only the parts of a nested data structure that were actually relevant to the comparison should transfer to the result. The more general form of that idea might follow in a later release, but that would require some more severe refactoring of this method's implementation that would be far riskier and so this is a pragmatic compromise to support just the relatively-common case of comparing with null in callers like HCL where an equality test is the canonical way to test a value for "null-ness".

  • cty.IndexStep.Apply now works for traversing through a set.

    Although cty.Value.Index does not allow looking up a set element due to set elements not having indices, we often use cty.Path to describe a specific location in a nested structure and have a convention of handling traversal through a set as a cty.IndexStep whose "key" is the set element's value.

    To make that work a little better with code that uses cty.Path.Apply on such paths, cty.IndexStep now has a special case where if the given value is a set then it checks whether the index step's key is a member of the set and returns that value if so. If unknown values mean that it's not decidable whether there is a matching element then the result is an unknown value of the set's element type, so that traversal can continue and presumably eventually return an unknown value of the appropriate leaf type.

1.17.0 (September 5, 2025)

cty now requires Go 1.23 or later.

  • cty.Value.Elements offers a modern iter.Seq2-based equivalent of cty.Value.ElementIterator.

  • cty.DeepValues offers a modern iter.Seq2-based equivalent of cty.Walk.

  • cty.Value.WrangleMarksDeep allows 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.Transform or cty.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.ValueMarksOfType and cty.ValueMarksOfTypeDeep make 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.HasMarkDeep provides a "deep" version of the existing cty.Value.HasMark, searching throughout a possibly-nested structure for any values that have the given mark.

  • cty.Value.UnmarkDeep and cty.Value.UnmarkDeepWithPaths are now implemented in terms of cty.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.MarkWithPaths now has a fast path when it's given a zero-length PathValueMarks, in which case it just returns the value it was given with no modifications.

1.16.4 (August 20, 2025)

  • cty.UnknownAsNull now 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: ImpliedType now 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 combine ImpliedType and Unmarshal successfully 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: ElementFunc no 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.HasElement now treats unknown set elements consistently with how much of the rest of cty treats them.
  • function/stdlib: FormatFunc and FormatListFunc now 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 allows cty.DynamicVal and cty.NullVal(cty.DynamicPseudoType) to be treated consistently with other values, returning results consistent with the documented behavior, rather than forcing the function to immediately return cty.DynamicVal.

1.16.0 (January 3, 2025)

... (truncated)

Commits
  • e0c742b v1.18.0 release
  • 21d455d Update LICENSE to reflect the current situation
  • a6629d6 cty: IndexStep.Apply now works for traversing through a set
  • d586d11 cty: Value.Equals only keeps shallow marks when comparing to null
  • 2cc7315 go.mod: Require Go 1.25 or later
  • da4c600 CHANGELOG: Prepare for v1.17.0 release
  • b13ddd4 cty: Use WrangleMarksDeep for UnmarkDeep and UnmarkDeepWithPaths
  • 4453ac2 cty: Use DeepValues instead of Walk for deep marks inspections
  • f833b10 Bulk replace interface{} -> any
  • d4bb9d4 cty: Various new mark-inspecting helpers
  • Additional commits viewable in compare view

Dependabot compatibility score

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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Package Dependencies
Ecosystem:
go
Version Change:
1.14.1 → 1.18.0
Update Type:
Minor
Technical Details
ID: 14567093
UUID: 4011108176
Node ID: PR_kwDOLmBl1M7HUrx9
Host: GitHub
Repository: Txim0520/https-github.com-coder-coder