Release v1.17.0 (#8710)

Signed-off-by: Johan Fylling <johan.dev@fylling.se>
This commit is contained in:
Johan Fylling
2026-05-28 16:48:35 +02:00
committed by GitHub
parent 68c9de5da0
commit 64a3625d33
5 changed files with 5225 additions and 5 deletions
+59 -4
View File
@@ -3,11 +3,18 @@
All notable changes to this project will be documented in this file. This All notable changes to this project will be documented in this file. This
project adheres to [Semantic Versioning](http://semver.org/). project adheres to [Semantic Versioning](http://semver.org/).
## Unreleased ## 1.17.0
This release contains a mix of new features, performance improvements, and bugfixes. Notably:
- A new `future.keywords.not` import that adds improved semantics to the `not` keyword.
- Rule Labels in Decision Logs
- Published json schema for IR and bundle manifest
- Dropped automaxprocs and x/net dependencies
### Improved Negation Semantics ([#8387](https://github.com/open-policy-agent/opa/issues/8387)) ### Improved Negation Semantics ([#8387](https://github.com/open-policy-agent/opa/issues/8387))
This OPA release introduces a new [`future.keywords.not` import](https://www.openpolicyagent.org/docs/policy-language#improved-negation-semantics) This OPA release introduces a new [`future.keywords.not` import](https://www.openpolicyagent.org/docs/policy-reference/keywords/not#improved-negation-semantics)
that fixes a long-standing semantic issue with negation in Rego. that fixes a long-standing semantic issue with negation in Rego.
Without the import, the compiler expands a negated composite expression like Without the import, the compiler expands a negated composite expression like
@@ -26,7 +33,7 @@ This is unintuitive: the user's intent is "the condition does not hold," but
an undefined intermediate value causes a silent failure instead of the expected an undefined intermediate value causes a silent failure instead of the expected
`not` result. `not` result.
With `import future.keywords.not`, composite-expression negation wraps the full compiler With `import future.keywords.not`, composite-expression negation wraps the full compiler
expansion in an implicit body: expansion in an implicit body:
``` ```
@@ -39,8 +46,10 @@ and the `not` expression succeeds; matching the intuition that "the condition do
> **_NOTE:_** > **_NOTE:_**
> >
> Users are recommended to import `future.keywords.not` whenever the `not` keyword is used in a policy. > Users are recommended to import `future.keywords.not` whenever the `not` keyword is used in a policy.
Authored by @johanfylling
### Rule Labels in Decision Logs ### Rule Labels in Decision Logs ([#2089](https://github.com/open-policy-agent/opa/issues/2089))
Rule annotations now support a `labels` field. Labels from all successfully evaluated Rule annotations now support a `labels` field. Labels from all successfully evaluated
rules are collected and included in each decision log entry as a top-level `rule_labels` rules are collected and included in each decision log entry as a top-level `rule_labels`
@@ -76,6 +85,52 @@ full label context for a single rule, rather than one entry per contributing sco
Both the runtime and the Go SDK now process metadata annotations by default. Both the runtime and the Go SDK now process metadata annotations by default.
Authored by @srenatus, reported by @tsandall
### Runtime, SDK, Tooling
- ast: Allow `$ref` in `allOf` in JSON schemas ([#6523](https://github.com/open-policy-agent/opa/issues/6523)) authored by @deeglaze reported by @mosiac1
- bundle: Update bundle roots conflict detection algorithm. ([#8664](https://github.com/open-policy-agent/opa/pull/8664)) authored by @philipaconrad
- download: Use oras, not containerd ([#8639](https://github.com/open-policy-agent/opa/pull/8639)) authored by @srenatus
- server: Remove dead code (s.partials) ([#8708](https://github.com/open-policy-agent/opa/pull/8708)) authored by @srenatus
- server: Wire in response/request metadata for compile handler ([#8650](https://github.com/open-policy-agent/opa/pull/8650)) authored by @srenatus
- server/types: generalize request/response metadata ([#8650](https://github.com/open-policy-agent/opa/pull/8650)) authored by @srenatus
### Compiler, Topdown and Rego
- builtins: Enable pattern validation in `json.verify_schema` and `json.match_schema` built-in functions ([#6089](https://github.com/open-policy-agent/opa/issues/6089)) authored by @sspaink reported by @ewout8
- ir: Don't capitalize `index` field in `MakeNumberRefStmt` IR statement ([#6266](https://github.com/open-policy-agent/opa/issues/6266)) authored by @sspaink reported by @johanfylling
- perf: Avoid allocating in binary and/or operators when possible ([#8689](https://github.com/open-policy-agent/opa/pull/8689)) authored by @anderseknert
- rego: Allow per-eval `GenerateJSON` function ([#8690](https://github.com/open-policy-agent/opa/pull/8690)) authored by @anderseknert
### Docs, Website, Ecosystem
- ecosystem: add OPA MCP ([#8618](https://github.com/open-policy-agent/opa/pull/8618)) authored by @OrygnsCode
- docs: Add explicit address binding to examples ([#8688](https://github.com/open-policy-agent/opa/pull/8688)) authored by @charlieegan3
- docs: Add titles to code blocks in policy-testing ([#8649](https://github.com/open-policy-agent/opa/pull/8649)) authored by @charlieegan3
- docs: Correct OCP SSH key docs ([#8675](https://github.com/open-policy-agent/opa/pull/8675)) authored by @taurelius
- docs: Update diagram to match index examples ([#8667](https://github.com/open-policy-agent/opa/pull/8667)) authored by @charlieegan3
### Miscellaneous
- ast,storage/inmem: Add `inmem.NewFromASTObject` and add missing string case to `ast.InternedValue` ([#8707](https://github.com/open-policy-agent/opa/pull/8707)) authored by @anderseknert
- build: `go install` -> `go install tool` to control checksums ([#8646](https://github.com/open-policy-agent/opa/pull/8646)) authored by @srenatus
- build: Push edge binaries to bucket ([#8668](https://github.com/open-policy-agent/opa/pull/8668)) authored by @charlieegan3
- workflows: Fix benchmarks workflow (replace action, avoid stackoverflow) ([#8655](https://github.com/open-policy-agent/opa/pull/8655)) authored by @srenatus
- workflows: Note improvements in benchmark comments ([#8673](https://github.com/open-policy-agent/opa/pull/8673)) authored by @srenatus
- Generate a JSON Schema for the IR plan ([#8662](https://github.com/open-policy-agent/opa/issues/8662)) authored by @sspaink reported by @kroekle
- Generate a JSON Schema for the bundle manifest ([#8661](https://github.com/open-policy-agent/opa/issues/8661)) authored by @sspaink reported by @kroekle
- Dependency updates; notably:
- build(deps): Remove automaxprocs dependency ([#8696](https://github.com/open-policy-agent/opa/pull/8696)) authored by @anderseknert
- build(deps): Remove direct x/net dependency ([#8697](https://github.com/open-policy-agent/opa/pull/8697)) authored by @anderseknert
- build(deps): Bump github.com/bytecodealliance/wasmtime-go from 43.0.2 to 44.0.0 ([8652](https://github.com/open-policy-agent/opa/pull/8652)) authored by @srenatus
- build(deps): Bump github.com/fsnotify/fsnotify from 1.9.0 to 1.10.1
- build(deps): Bump github.com/huandu/go-sqlbuilder from 1.40.2 to 1.41.0
- build(deps): Bump github.com/lestrrat-go/jwx/v3 from 3.1.0 to 3.1.1
- build(deps): Bump github.com/vektah/gqlparser/v2 from 2.5.32 to 2.5.33
- build(deps): Bump google.golang.org/grpc from 1.80.0 to 1.81.0
- build(deps): Bump gopkg.in/ini.v1 from 1.67.1 to 1.67.2
## 1.16.2 ## 1.16.2
This release updates the version of Go used to build the OPA binaries and images to 1.26.3; This release updates the version of Go used to build the OPA binaries and images to 1.26.3;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+5
View File
@@ -1084,6 +1084,11 @@
"Major": 0, "Major": 0,
"Minor": 34, "Minor": 34,
"Patch": 0 "Patch": 0
},
"not": {
"Major": 1,
"Minor": 17,
"Patch": 0
} }
} }
} }
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"runtime/debug" "runtime/debug"
) )
var Version = "1.17.0-dev" var Version = "1.17.0"
// GoVersion is the version of Go this was built with // GoVersion is the version of Go this was built with
var GoVersion = runtime.Version() var GoVersion = runtime.Version()