diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c5c7ed..fc09e5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,15 +6,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.11.0](https://github.com/microsoft/regorus/compare/regorus-v0.10.1...regorus-v0.11.0) - 2026-07-21 + +### Added + +- *(compiler)* support registered host-await builtins for natural function call syntax ([#667](https://github.com/microsoft/regorus/pull/667)) +- *(value)* introduce Set storage abstraction ([#740](https://github.com/microsoft/regorus/pull/740)) + ### Fixed -- `Engine::add_data` now deep-merges nested data documents instead of only merging top-level keys. Adding `{ "a": { "x": 1 } }` followed by `{ "a": { "y": 2 } }` now yields `{ "a": { "x": 1, "y": 2 } }` (matching OPA's data-document merge). Nested sets under a shared key are unioned. Only genuine leaf conflicts (the same path holding two different values) are reported as errors. +- *(rvm)* assert every-quantifier results so failing cases don't pass ([#765](https://github.com/microsoft/regorus/pull/765)) +- `Engine::add_data` now deep-merges nested data documents instead of only merging top-level keys. Adding `{ "a": { "x": 1 } }` followed by `{ "a": { "y": 2 } }` now yields `{ "a": { "x": 1, "y": 2 } }` (matching OPA's data-document merge). Nested sets under a shared key are unioned. Only genuine leaf conflicts (the same path holding two different values) are reported as errors. ([#760](https://github.com/microsoft/regorus/pull/760)) - A zero-arg function producing two different complete values (e.g. `f() := { "a": 1 }` and `f() := { "b": 2 }`) is now reported as a conflict, matching OPA's complete-rule semantics, instead of silently combining the outputs. ### Security - `Engine::add_data` now rejects data nested beyond 128 levels instead of risking a stack overflow on adversarially deep input. +### Other + +- *(deps)* bump the rust-dependencies group across 5 directories with 11 updates ([#764](https://github.com/microsoft/regorus/pull/764)) +- Expand keyword-in-ref coverage for complex parser edge cases (interpreter + RVM) ([#744](https://github.com/microsoft/regorus/pull/744)) +- *(deps)* bump the rust-dependencies group across 5 directories with 4 updates ([#754](https://github.com/microsoft/regorus/pull/754)) +- *(deps)* bump the rust-dependencies group across 5 directories with 6 updates ([#750](https://github.com/microsoft/regorus/pull/750)) +- *(value)* migrate Value::Object to Object storage abstraction ([#736](https://github.com/microsoft/regorus/pull/736)) +- normalize path separators in folder filter on Windows ([#742](https://github.com/microsoft/regorus/pull/742)) +- Introduce Object storage abstraction ([#735](https://github.com/microsoft/regorus/pull/735)) +- *(rvm)* add debug-mode invariant assertions ([#737](https://github.com/microsoft/regorus/pull/737)) +- *(deps)* bump the rust-dependencies group across 5 directories with 5 updates ([#734](https://github.com/microsoft/regorus/pull/734)) + ## [0.10.1](https://github.com/microsoft/regorus/compare/regorus-v0.10.0...regorus-v0.10.1) - 2026-05-22 ### Fixed diff --git a/Cargo.lock b/Cargo.lock index 25adb49..c2495a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1368,7 +1368,7 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "regorus" -version = "0.10.1" +version = "0.11.0" dependencies = [ "anyhow", "cfg-if", diff --git a/Cargo.toml b/Cargo.toml index 0485fa0..bc3757b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ members = [ [package] name = "regorus" description = "A fast, lightweight Rego (OPA policy language) interpreter" -version = "0.10.1" +version = "0.11.0" edition = "2021" license = "MIT AND Apache-2.0 AND BSD-3-Clause" repository = "https://github.com/microsoft/regorus" diff --git a/bindings/csharp/Directory.Packages.props b/bindings/csharp/Directory.Packages.props index 691e379..4d37148 100644 --- a/bindings/csharp/Directory.Packages.props +++ b/bindings/csharp/Directory.Packages.props @@ -1,7 +1,7 @@ true - 0.10.1 + 0.11.0 -$(VersionSuffix) diff --git a/bindings/ffi/Cargo.lock b/bindings/ffi/Cargo.lock index 91ba705..88d30cd 100644 --- a/bindings/ffi/Cargo.lock +++ b/bindings/ffi/Cargo.lock @@ -1097,7 +1097,7 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "regorus" -version = "0.10.1" +version = "0.11.0" dependencies = [ "anyhow", "chrono", @@ -1132,7 +1132,7 @@ dependencies = [ [[package]] name = "regorus-ffi" -version = "0.10.1" +version = "0.11.0" dependencies = [ "anyhow", "cbindgen", diff --git a/bindings/ffi/Cargo.toml b/bindings/ffi/Cargo.toml index 0262c91..d216330 100644 --- a/bindings/ffi/Cargo.toml +++ b/bindings/ffi/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "regorus-ffi" -version = "0.10.1" +version = "0.11.0" edition = "2021" license = "MIT AND Apache-2.0 AND BSD-3-Clause" diff --git a/bindings/java/Cargo.lock b/bindings/java/Cargo.lock index e8ae520..343827a 100644 --- a/bindings/java/Cargo.lock +++ b/bindings/java/Cargo.lock @@ -966,7 +966,7 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "regorus" -version = "0.10.1" +version = "0.11.0" dependencies = [ "anyhow", "chrono", @@ -998,7 +998,7 @@ dependencies = [ [[package]] name = "regorus-java" -version = "0.10.1" +version = "0.11.0" dependencies = [ "anyhow", "jni", diff --git a/bindings/java/Cargo.toml b/bindings/java/Cargo.toml index 1de7353..822c067 100644 --- a/bindings/java/Cargo.toml +++ b/bindings/java/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "regorus-java" -version = "0.10.1" +version = "0.11.0" edition = "2021" repository = "https://github.com/microsoft/regorus/bindings/java" description = "Java bindings for Regorus - a fast, lightweight Rego interpreter written in Rust" diff --git a/bindings/java/pom.xml b/bindings/java/pom.xml index 4b05101..ec66342 100644 --- a/bindings/java/pom.xml +++ b/bindings/java/pom.xml @@ -9,7 +9,7 @@ com.microsoft.regorus regorus-java - 0.10.1 + 0.11.0 Regorus Java Java bindings for Regorus - a fast, lightweight Rego interpreter written in Rust diff --git a/bindings/python/Cargo.lock b/bindings/python/Cargo.lock index d0da895..080e8e5 100644 --- a/bindings/python/Cargo.lock +++ b/bindings/python/Cargo.lock @@ -980,7 +980,7 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "regorus" -version = "0.10.1" +version = "0.11.0" dependencies = [ "anyhow", "chrono", @@ -1026,7 +1026,7 @@ dependencies = [ [[package]] name = "regoruspy" -version = "0.10.1" +version = "0.11.0" dependencies = [ "anyhow", "ordered-float", diff --git a/bindings/python/Cargo.toml b/bindings/python/Cargo.toml index a904c34..e1091f1 100644 --- a/bindings/python/Cargo.toml +++ b/bindings/python/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "regoruspy" -version = "0.10.1" +version = "0.11.0" edition = "2021" repository = "https://github.com/microsoft/regorus/bindings/python" description = "Python bindings for Regorus - a fast, lightweight Rego interpreter written in Rust" diff --git a/bindings/ruby/Cargo.lock b/bindings/ruby/Cargo.lock index db8d758..21c2e1e 100644 --- a/bindings/ruby/Cargo.lock +++ b/bindings/ruby/Cargo.lock @@ -1006,7 +1006,7 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "regorus" -version = "0.10.1" +version = "0.11.0" dependencies = [ "anyhow", "chrono", @@ -1051,7 +1051,7 @@ dependencies = [ [[package]] name = "regorusrb" -version = "0.10.1" +version = "0.11.0" dependencies = [ "magnus", "regorus", diff --git a/bindings/ruby/ext/regorusrb/Cargo.toml b/bindings/ruby/ext/regorusrb/Cargo.toml index 1856332..3f7f0ab 100644 --- a/bindings/ruby/ext/regorusrb/Cargo.toml +++ b/bindings/ruby/ext/regorusrb/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "regorusrb" -version = "0.10.1" +version = "0.11.0" edition = "2024" description = "Ruby bindings for Regorus - a fast, lightweight Rego interpreter written in Rust" license = "MIT AND Apache-2.0 AND BSD-3-Clause" diff --git a/bindings/ruby/lib/regorus/version.rb b/bindings/ruby/lib/regorus/version.rb index 9837b73..ec02178 100644 --- a/bindings/ruby/lib/regorus/version.rb +++ b/bindings/ruby/lib/regorus/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Regorus - VERSION = "0.10.1" + VERSION = "0.11.0" end diff --git a/bindings/wasm/Cargo.lock b/bindings/wasm/Cargo.lock index 018c02c..31f2a83 100644 --- a/bindings/wasm/Cargo.lock +++ b/bindings/wasm/Cargo.lock @@ -965,7 +965,7 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "regorus" -version = "0.10.1" +version = "0.11.0" dependencies = [ "anyhow", "chrono", @@ -996,7 +996,7 @@ dependencies = [ [[package]] name = "regorusjs" -version = "0.10.1" +version = "0.11.0" dependencies = [ "getrandom 0.2.17", "getrandom 0.3.4", diff --git a/bindings/wasm/Cargo.toml b/bindings/wasm/Cargo.toml index 2fdb736..1b674d4 100644 --- a/bindings/wasm/Cargo.toml +++ b/bindings/wasm/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "regorusjs" -version = "0.10.1" +version = "0.11.0" edition = "2021" repository = "https://github.com/microsoft/regorus/bindings/wasm" description = "WASM bindings for Regorus - a fast, lightweight Rego interpreter written in Rust"