- From now on the Changelog is what's in the GitHub Releases page: https://github.com/databricks/sjsonnet/releases
- Add flag re-introduce broken assertions evaluation logic, to help with migrations
- 0.5.7 to 0.5.9 were broken releases with missing logic for the flag above
- Re-enable handling of unicode strings in std.base64 by @stephenamar-db in #493
- Fix multiple assertion related bugs (inheritance, binding of super in inherited assertions, and timing of evaluation) by @JoshRosen in #468
- Fix detection of duplicate fields with dynamic field name expressions by @JoshRosen in #470
- chore: Make std.setInter accepts str. by @He-Pin in #472
- chore: Make std.setDiff accepts str. by @He-Pin in #478
- chore: Make std.setUnion accept str. by @He-Pin in #480
- Add graalvm build and test suite - experimental by @stephenamar-db in #482
- Upgrade to mill 1.0.2
- Fix parsing error with numbers causing whitespaces to be consumed. by @stephenamar-db in #457
- Fix parseInt to properly understand longs by @stephenamar-db in #458
- chore: Extract Util#hashMapCapacity method. by @He-Pin in #412
- chore: Fix some IDE lint problems by @He-Pin in #413
- Add go-jsonnet test_suite to sjsonnet by @stephenamar-db in #417
- Enable additional math tests cases by @stephenamar-db in #418
- Add more test coverage for std.ExtVar. by @Danstahrm in #402
- Remove strictImport and duplicateKeysInComprehension flags. by @stephenamar-db in #419
- Remove --no-static-error, --strict-inherited-assertions & --strict-set-operations by @stephenamar-db in #420
- Remove SBT and consolidate build to mill by @stephenamar-db in #421
- chore: Add missing version for maven in readme. by @He-Pin in #423
- chore: bump scala-native to 0.5.8 by @He-Pin in #422
- Implement md5/sha (except sha3) for the native build by @stephenamar-db in #424
- Properly implement file hashing in scala native - using the built-in murmurhash by @stephenamar-db in #425
- Add support for parseYaml in native and js by @stephenamar-db in #427
- Additional fixes to the parser based on the go test suite by @stephenamar-db in #428
- chore: bump scala fmt version to 3.9.7 by @He-Pin in #429
- Update ScalaJS entrypoint and documentation by @LaurelineSwissBorg in #426
- fix: Imports inside --tla-code-file,--ext-code-file. by @rudo-thomas in #432
- Add a flag to reverse the order of jpath entries. by @Danstahrm in #400
- fix: Support std.sort() on arrays of arrays. by @rudo-thomas in #434
- Fix ||| block parsing by @stephenamar-db in #433
- chore: tweak tripleBar parsing. by @He-Pin in #435
- Fix additional discrepancies found when importing go-jsonnet tests. by @stephenamar-db in #436
- chore: Add test for std.removeAt which should not modify the parameter. by @He-Pin in #437
- Remove std.strReplaceAll, which is not standard by @stephenamar-db in #440
- add yaml tests added in go-jsonnet by @stephenamar-db in #441
- Refactor std.native functions out of Std by @stephenamar-db in #442
- fix: Handling of special characters in std.parseYaml(). by @rudo-thomas in #438
- Remove last differences between jvm and native in regard to the go testsuite by @stephenamar-db in #443
- Fix some additional discrepancies between the implementations by @stephenamar-db in #444
- fix: Indentation of empty lines in YamlRenderer. by @rudo-thomas in #445
- Fix benchmark suite by @stephenamar-db in #446
- fix(js,native): std.parseYaml() handling of "---". by @rudo-thomas in #447
- fix(jvm): Let the importer read any path that exists and is not a directory. by @rudo-thomas in #451
- fix: Implement --string when --multi is not set. by @rudo-thomas in #452
- feat(jvm,native): Special-case "/dev/stdin" and "-" in TLAs, extVars, top-level file. by @rudo-thomas in #449
- Fix readme to publish and allow for server/client to be pushed to maven by @stephenamar-db in #389
- chore: Update readme for std library by @He-Pin in #390
- Add client/server to the build workflow by @stephenamar-db in #393
- chore: Turn off the multi threading support in scala native by @He-Pin in #396
- chore: bump mill 0.12.14 by @He-Pin in #397
- Allow empty labels for fmtstrings. by @Danstahrm in #401
- chore: Change Scala native's release mode to ReleaseFull by @He-Pin in #395
- Allow
std.mapto operate on string args as well. by @Danstahrm in #404 - fix(publish): fix publishing for js and native projects by @ngbinh in #403
- Fix formatting for g/G and f when rounding the value by @stephenamar-db in #407
- Implement * in FormatSpec to dynamically insert width/precision by @stephenamar-db in #408
- chore: Uncomment missing
gformatting test. by @He-Pin in #409 - Fix various small issues found when I imported all recent error tests by @stephenamar-db in #410
- Fix multiple object comprehension bugs by @JoshRosen in #358
- Update Scala 3 to 3.3.7 by @He-Pin in #365
- feat: Allow negative start/end on std.slice by @He-Pin in #367
- Add std.object*Ex methods by @stephenamar-db in #368
- fix: Fix foldr for str by @He-Pin in #373
- chore: Remove unused
newwhen create Val.Arr by @He-Pin in #375 - chore: bump dependencies versions by @He-Pin in #376
- Fix tailstrict implementation and add more tests by @stephenamar-db in #379
- correct safe integer range for bitwise ops by @stephenamar-db in #381
- Add --debug-importer flag to print out what the default importer is doing by @stephenamar-db in #385
- Add support for Scala3
- Fix std.min/maxArray
- Add array compare
- Fix formatter for Array and Obj and add ErrorTests to JS
- Fix overly-eager evaluation of unmerged or removed target fields in std.mergePatch
- Various small bug fixes.
- Add support for
tailstrict#189. - Bind the standard library to a
$stdvariable and use it in desugared expressions #249. - Update re2j dependency.
- Add new Math functions to keep up with go-jsonnet.
- Implement |||- syntax.
- Fix a bug in new strict mode for set in
std.setUnion#242. - Add support for Java 21 and dropped support for Java 11.
- Add
std.nativesupport, and movestd.xz/std.gzipto native. Enable support forstd.gzipin scala native. - Optimization:
std.sortshould only evaluate keyF once per array element. - Fix corner case for YAML parsing with primitive types google/jsonnet/issues/1109.
- Add optional regex methods in
std.nativebased on google/jsonnet/pull/1039 and jrsonnet. - Multiple bug fixes regarding handling of hidden fields in
std.mergePatch. - Add
importbinsupport. - Updated mill to 0.11.13 to fix publishing to Sonatype.
- Several performance optimizations, primarily aimed at reducing garbage object creation in common cases.
- Implemented every missing methods in
std. - Improved readability of stack traces when
stdmethods are involved. - Cleaned up default Main class to allow for repeated flags.
- Updated mill to 0.11.9 and added JDK17 build.
- Fixed sjsonnet handling of 64bits integers #191
- Stopped manifesting functions with no arguments in objects by default #168
- Fixed "Duplicate Local Variables in Object Scope" #178
- Fix a bug leading to the truncation of the data returned by
std.gzipandstd.xz#221.
- Fix a bug introduced with 0.4.11 with synthetic paths #215
- Fix thread-safety bug in Obj.getAllKeys #217
- Implement
std.isEmpty,std.xor,std.xnor,std.trim,std.equalsIgnoreCase,std.sha1,std.sha256,std.sha512,std.sha3#204 - fix: std.manifestJsonMinified and empty arrays/objects #207
- fix: Use different chars for synthetic paths. #208
- Fix sorting algorithm to work for all array types #211
- Add better error handling for format #212
- Switch from CRC32 to XXHash64 for import cache keys #198
- Ensure almost-octal-number-like strings are quoted when
--yaml-outis passed, to avoid issues with non-compliant YAML parsers #183
- Add
std.parseYaml
-
Make Jsonnet standard library configurable and non-global #166, fixing a race condition on library initialization in multithreaded environments and allowing custom
std.*functions to be passed in by the user -
Added a flag
--no-duplicate-keys-in-comprehensionto follow upstream google/jsonnet behavior of failing if a dictionary comprehension #156 ea8720f. This is optional for migration purposes but will likely become the default in future -
Disallow Jsonnet identifiers that start with numbers #161
-
Fix parsing of
+:in dictionary comprehensions #155 -
Fix parse failure when passing
id == ...to a function arguments #151 -
Add a flag
--strict-import-syntaxto disallow the syntaximport "foo".bar, when it should be(import "foo").bar, following upstream google/jsonnet. This is optional for migration purposes but will likely become the default in future #153 ccbe6e -
Allow assertions to take non-string error messages #170
-
Fix parsing of object keys starting with the prefix
assert#169 -
Properly propagate assertions during inheritance #172, and add the flag
--strict-inherited-assertionsto fix a bug where assertions inherited from a shared object were only triggering once, rather than once-per-inheritor 95342. This is optional for migration purposes but will likely become the default in future -
Add
std.slice,std.manifestJsonMinified, fix handling of numbers inmanifestXmlJsonml, handling of code inextCode#171 -
Add the ability to include code in
--tla-codeand--tla-code-file#175 -
Add
std.reversea425342 -
Fixes to main method handling of various combinations of
--exec,--yaml-out,-yaml-stream,--multi, and--output-file#174
- Update Mill to 0.10.12
- Fix parsing of k/v cli arguments with an "=" in the value
- Make lazy initialization of static Val.Obj thread-safe #136
- Deduplicate strings in the parser #137
- Update the JS example #141
- Performance improvements with lots of internal changes #117
- Bump uJson version to 1.3.7
- Bump uJson version to 1.3.0
- Avoid catching fatal exceptions during evaluation
- Add
--yaml-debugflag to add source-line comments showing where each line of YAML came from #105#105 - Add
objectValuesandobjectVlauesAllto stdlib #104
- Allow direct YAML output generation via
--yaml-out - Do not allow duplicate field in object when evaluating list list comprehension #100
- Fix compiler crash when '+' signal is true in a field declaration inside a list comprehension #98
- Fix error message for too many arguments with at least one named arg #97
- Streaming JSON output to disk for lower memory usage #85
- Static detection of duplicate fields #86
- Strict mode to disallow error-prone adjacent object literals #88
- Add
std.flatMap,std.repeat,std.clamp,std.member,std.stripChars,std.rstripChars,std.lstripChars
- Add support for syntactical key ordering #53
- Bump dependency versions
- Bump verion of Scalatags, uPickle
- Bump version of FastParse
- Bump versions of OS-Lib, uJson, Scalatags
- Support std lib methods that take a key lambda #40
- Handle hex in unicode escaoes #41
- Add encodeUTF8, decodeUTF8 std lib methdos #42
- Properly fail on non-boolean conditionals #44
- Support YAML-steam output #45
- ~2x performance increase
- Javascript support, allowing Sjsonnet to be used in the browser or on Node.js
- Performance improvements
- Scala 2.13 support
- Performance improvements
- Add
std.mod,std.minandstd.max - Performance improvements
- Improvements to error reporting when types do not match
- Performance improvements to the parser via upgrading to Fastparse 2.x
- First release