Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 0.4.0 #137

Merged
merged 2 commits into from
Jun 4, 2024
Merged

Version 0.4.0 #137

merged 2 commits into from
Jun 4, 2024

Conversation

matajoh
Copy link
Member

@matajoh matajoh commented Jun 3, 2024

New Features

  • Updated to latest version of Trieste
  • Uses Trieste's YAML and JSON parsers and emitters
  • Uses Trieste's more robust Unicode support
  • Passes broken up into a Reader, which parses Rego files, and a Rewriter which performs unification
  • Added the encoding and graphs builtins
  • Added set_log_level_from_string and setLogLevelFromString to make it easier to set the log level. All executables now use this option.

Improvements

  • The Interpreter caches intermediate versions of all modules, reducing query execution time
  • All of the early passes have been rewritten and are more efficient, resulting in reduced parsing time
  • The reduction of the input passes (and their restriction to a single file) along with other optimizations to header files has resulted in reduced compile times
  • The rego_fuzzer executable allows for more fine-grained fuzzing and testing of the Rego toolchain
  • Multiple bug fixes

Deprecation

  • The regoSetInputJSON method is a misnomer, as the input does not strictly need to be JSON. This has been replaced with an (otherwise identical) function called regoSetInputTerm which does the same thing, and the JSON version has been deprecated.

Breaking Changes

  • The rego_trieste executable has been replaced by the new rego_fuzzer executable

New Test Coverage

  • base64builtins
  • base64urlbuiltins
  • hexbuiltins
  • jsonbuiltins
  • reachable
  • urlbuiltins

Fixes #112
Fixes #114
Fixes #115
Fixes #116
Fixes #124
Fixes #126
Fixes #127
Fixes #129
Fixes #130
Fixes #134
Fixes #135

**New Features**
- Updated to latest version of Trieste
- Uses Trieste's YAML and JSON parsers and emitters
- Uses Trieste's more robust Unicode support
- Passes broken up into a `Reader`, which parses Rego files, and a `Rewriter` which performs unification
- Added the `encoding` and `graphs` builtins
- Added `set_log_level_from_string` and `setLogLevelFromString` to make it easier to set the log level. All executables now use this option.

**Improvements**
- The Interpreter caches intermediate versions of all modules, reducing query execution time
- All of the early passes have been rewritten and are more efficient, resulting in reduced parsing time
- The reduction of the input passes (and their restriction to a single file) along with other optimizations to header files has resulted in reduced compile times
- The `rego_fuzzer` xecutable allows for more fine-grained fuzzing and testing of the Rego toolchain
- Multiple bug fixes

**Deprecation**
- The `regoSetInputJSON` method is a misnomer, as the input does not strictly need to be JSON. This has been replaced with an (otherwise identical) function called
  `regoSetInputTerm` which does the same thing, and the `JSON` version has been deprecated.

**Breaking Changes**
- The `rego_trieste` executable has been replaced by the new `rego_fuzzer` executable

**New Test Coverage**
- `base64builtins`
- `base64urlbuiltins`
- `hexbuiltins`
- `jsonbuiltins`
- `reachable`
- `urlbuiltins`

Signed-off-by: Matthew A Johnson <matjoh@microsoft.com>
Signed-off-by: Matthew A Johnson <matjoh@microsoft.com>
@matajoh matajoh changed the title Version 0.4.0 - Major refactor of the code to use the new version of Trieste. Version 0.4.0 Jun 4, 2024
@matajoh matajoh merged commit 9cb7b03 into microsoft:main Jun 4, 2024
34 checks passed
@matajoh matajoh deleted the update_trieste branch June 4, 2024 01:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment