github google/jsonnet v0.21.0-rc1

pre-release21 hours ago

This is the first release candidate for v0.21.0. Since this is the first release for jsonnet for nearly 2 years, and since the build systems and packaging tools have changed somewhat since the last release, this release candidate is being published first to give an opportunity for jsonnet users to report any major build breakage or other problems that would make the release fundamentally unusable.

A corresponding PyPI package is published at: https://pypi.org/project/jsonnet/0.21.0rc1/

What's Changed

Bug fixes

  • std.all, std.any - had incorrect error reporting (#1101)
  • std.parseYaml - RapidYAML updated to version 0.5.0; fixes various details (#942, #1014, #1050)
  • Printed number output is now independent of global system locale (#722)
  • UTF-8 input representing Unicode characters outside the Basic Multilingual Plane were not decoded correctly (#1181)
  • Field visibility is now inherited as expected in objects constructed by object-comprehension expressions (#1111) [this was already the case in go-jsonnet, now fixed in C++ jsonnet]
  • [Windows] On Windows, backslash is now supported as a directory separator (in imports)
  • [go-jsonnet] YAML streams were incorrectly detected for some inputs to parseYAML (go-jsonnet/#673)
  • [go-jsonnet] Internal error in conversion of native functions results to numbers (go-jsonnet/#752)

Language changes

  • Array slices can now have negative start and/or end indexes; these are now wrapped-around (similar behaviour to Python).
  • Multiline text blocks can now start with |||- to cause a trailing newline to be trimmed. (#289)

New standard library functionality

  • std.contains
  • std.objectRemoveKey
  • std.remove
  • std.removeAt
  • std.flattenDeepArray
  • std.minArray
  • std.maxArray
  • std.avg
  • std.isEven
  • std.isOdd
  • std.isInteger
  • std.isDecimal
  • std.atan2
  • std.hypot
  • std.pi (constant)
  • std.deg2rad
  • std.rad2deg
  • std.log2
  • std.log10
  • std.equalsIgnoreCase
  • std.trim
  • [go-jsonnet only] std.sha1
  • [go-jsonnet only] std.sha256
  • [go-jsonnet only] std.sha512
  • [go-jsonnet only] std.sha3
  • [go-jsonnet only] std.manifestYamlDoc is now implemented in native Go
  • [go-jsonnet only] std.escapeStringJson is now implemented in native Go
  • [go-jsonnet only] std.splitLimitR is now implemented in native Go

Build & dependency changes

  • Bazel build now has a MODULE.bazel for bzlmod compatibility.
  • [C++ jsonnet] Python build should now work on Windows / MSVC
  • [C++ jsonnet] Bazel build now uses rules_python
  • [C++ jsonnet] RapidYAML updated to 0.5.0
  • [go-jsonnet] The formatter package now provides FormatNode() and SnippetToRawAST() functions (go-jsonnet/#710)
  • [go-jsonnet] golang.org/x/crypto updated from 0.17.0 to 0.33.0
  • PyPI packages are now published direct from GitHub Actions and come with publisher attestations.
  • Python wheel packages are built for some environments.

New Contributors

Full Commit list: v0.20.0...v0.21.0-rc1

Don't miss a new jsonnet release

NewReleases is sending notifications on new releases.