This is an automated email from the ASF dual-hosted git repository.

ashishtiwari pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git


The following commit(s) were added to refs/heads/master by this push:
     new 090b02099 chore: release 3.12 (#12069)
090b02099 is described below

commit 090b02099fd52e95303bec802ae02745f74c7a23
Author: Shreemaan Abhishek <[email protected]>
AuthorDate: Tue Apr 1 12:55:41 2025 +0530

    chore: release 3.12 (#12069)
---
 .asf.yaml                         |  4 +++
 CHANGELOG.md                      | 63 +++++++++++++++++++++++++++++++++++++++
 apisix/core/version.lua           |  2 +-
 docs/en/latest/building-apisix.md |  2 +-
 docs/en/latest/config.json        |  2 +-
 docs/zh/latest/building-apisix.md |  2 +-
 docs/zh/latest/config.json        |  2 +-
 7 files changed, 72 insertions(+), 5 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index 141b8e877..29226df44 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -54,6 +54,10 @@ github:
           dismiss_stale_reviews: true
           require_code_owner_reviews: true
           required_approving_review_count: 3
+      release/3.12:
+        required_pull_request_reviews:
+          require_code_owner_reviews: true
+          required_approving_review_count: 3
       release/3.11:
         required_pull_request_reviews:
           require_code_owner_reviews: true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0925887a3..5ea8093d7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@ title: Changelog
 
 ## Table of Contents
 
+- [3.12.0](#3120)
 - [3.11.0](#3110)
 - [3.10.0](#3100)
 - [3.9.0](#390)
@@ -78,6 +79,68 @@ title: Changelog
 - [0.7.0](#070)
 - [0.6.0](#060)
 
+## 3.12.0
+
+### Change
+
+- replace plugin attribute with plugin metadata in `opentelemetry` plugin 
[#11940](https://github.com/apache/apisix/pull/11940)
+- add expiration time for all Prometheus metrics 
[#11838](https://github.com/apache/apisix/pull/11838)
+- allow workflow config without case 
[#11787](https://github.com/apache/apisix/pull/11787)
+- refactor: ai-content-moderation to ai-aws-content-moderation (#12010)
+- rectify business logic/code in ai-proxy 
[#12055](https://github.com/apache/apisix/pull/12055)
+
+### Bugfixes
+
+- Fix: resync etcd when a lower revision is found 
[#12015](https://github.com/apache/apisix/pull/12015)
+- Fix: remove model options' `stream` default value 
[#12013](https://github.com/apache/apisix/pull/12013)
+- Fix: grpc-web response contains two trailer chunks 
[#11988](https://github.com/apache/apisix/pull/11988)
+- Fix: event_id is nil in chaitin-waf 
[#11651](https://github.com/apache/apisix/pull/11651)
+- Fix: race condition problem while update upstream.nodes 
[#11916](https://github.com/apache/apisix/pull/11916)
+- Fix: `upstream_obj.upstream` should not be a string 
[#11932](https://github.com/apache/apisix/pull/11932)
+- Fix: query params in override.endpoint not being sent to LLMs 
[#11863](https://github.com/apache/apisix/pull/11863)
+- Fix: corrupt data in routes() response due to healthchecker data 
[#11844](https://github.com/apache/apisix/pull/11844)
+- Fix: deepcopy should copy same table exactly only once 
[#11861](https://github.com/apache/apisix/pull/11861)
+- Fix: disallow empty key configuration attributes 
[#11852](https://github.com/apache/apisix/pull/11852)
+- Fix: etcd watch restart when receive invalid revision 
[#11833](https://github.com/apache/apisix/pull/11833)
+- Fix: missing parsed_url nil check 
[#11637](https://github.com/apache/apisix/pull/11637)
+- Fix: use `plugin.get` to fetch plugin configured in multi-auth plugin 
[#11794](https://github.com/apache/apisix/pull/11794)
+- Fix: allow special characters in uri params 
[#11788](https://github.com/apache/apisix/pull/11788)
+- Fix: add nil check to conf in body-transformer 
[#11768](https://github.com/apache/apisix/pull/11768)
+- Fix: use max_req_body_bytes field in custom_format 
[#11771](https://github.com/apache/apisix/pull/11771)
+- Fix: health checker can't be released due to health parent being released 
early [#11760](https://github.com/apache/apisix/pull/11760)
+- Fix: use right modifiedIndex for consumer when use credential 
[#11649](https://github.com/apache/apisix/pull/11649)
+
+### Core
+
+- upgrade openresty version to v1.27.11 
[#11936](https://github.com/apache/apisix/pull/11936)
+- Support the use of system-provided CA certs in `ssl_trusted_certificate` 
[#11809](https://github.com/apache/apisix/pull/11809)
+- support _meta.pre_function to execute custom logic before execution of each 
phase [#11793](https://github.com/apache/apisix/pull/11793)
+- support anonymous consumer 
[#11917](https://github.com/apache/apisix/pull/11917)
+- accelerate the creation of the consumer cache 
[#11840](https://github.com/apache/apisix/pull/11840)
+- replace 'string.find' with 'core.string.find' 
[#11886](https://github.com/apache/apisix/pull/11886)
+- workflow plugin registration 
[#11832](https://github.com/apache/apisix/pull/11832)
+
+### Plugins
+
+- refactor ai-proxy and ai-proxy-multi 
[#12030](https://github.com/apache/apisix/pull/12030)
+- support embeddings API [#12062](https://github.com/apache/apisix/pull/12062)
+- implement rate limiting based fallback strategy 
[#12047](https://github.com/apache/apisix/pull/12047)
+- ai-rate-limiting plugin [#12037](https://github.com/apache/apisix/pull/12037)
+- add `valid_issuers` field in `openid-connect` plugin 
[#12002](https://github.com/apache/apisix/pull/12002)
+- add ai-prompt-guard plugin 
[#12008](https://github.com/apache/apisix/pull/12008)
+- add jwt audience validator 
[#11987](https://github.com/apache/apisix/pull/11987)
+- store JWT in the request context 
[#11675](https://github.com/apache/apisix/pull/11675)
+- support proxying openai compatible LLMs 
[#12004](https://github.com/apache/apisix/pull/12004)
+- add `ai-proxy-multi` plugin 
[#11986](https://github.com/apache/apisix/pull/11986) 
[#12030](https://github.com/apache/apisix/pull/12030)
+- make rate limiting response header names configurable 
[#11831](https://github.com/apache/apisix/pull/11831)
+- support mulipart content-type in `body-transformer` 
[#11767](https://github.com/apache/apisix/pull/11767)
+- plugins in multi-auth returns error instead of logging it 
[#11775](https://github.com/apache/apisix/pull/11775)
+- support configuring `key_claim_name` 
[#11772](https://github.com/apache/apisix/pull/11772)
+- add Total request per second panel in grafana dashboard 
[#11692](https://github.com/apache/apisix/pull/11692)
+- add ai-rag plugin [#11568](https://github.com/apache/apisix/pull/11568)
+- add ai-content-moderation plugin 
[#11541](https://github.com/apache/apisix/pull/11541)
+- use setmetatable to set hidden variables without effecting serialisation 
[#11770](https://github.com/apache/apisix/pull/11770)
+
 ## 3.11.0
 
 ### Change
diff --git a/apisix/core/version.lua b/apisix/core/version.lua
index 9aa349d66..ed1ac8d19 100644
--- a/apisix/core/version.lua
+++ b/apisix/core/version.lua
@@ -20,5 +20,5 @@
 -- @module core.version
 
 return {
-    VERSION = "3.11.0"
+    VERSION = "3.12.0"
 }
diff --git a/docs/en/latest/building-apisix.md 
b/docs/en/latest/building-apisix.md
index a88cfa883..576911288 100644
--- a/docs/en/latest/building-apisix.md
+++ b/docs/en/latest/building-apisix.md
@@ -48,7 +48,7 @@ To build and package APISIX for a specific platform, see 
[apisix-build-tools](ht
 First of all, we need to specify the version `APISIX_VERSION` to be installed:
 
 ```shell
-APISIX_VERSION='3.11.0'
+APISIX_VERSION='3.12.0'
 ```
 
 Then, you can run the following command to clone the APISIX source code from 
Github:
diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json
index 91cb337fb..09c61605a 100644
--- a/docs/en/latest/config.json
+++ b/docs/en/latest/config.json
@@ -1,5 +1,5 @@
 {
-  "version": "3.11.0",
+  "version": "3.12.0",
   "sidebar": [
     {
       "type": "category",
diff --git a/docs/zh/latest/building-apisix.md 
b/docs/zh/latest/building-apisix.md
index d6908e02c..8b07dbb1d 100644
--- a/docs/zh/latest/building-apisix.md
+++ b/docs/zh/latest/building-apisix.md
@@ -47,7 +47,7 @@ import TabItem from '@theme/TabItem';
 首先,我们需要指定需要安装的版本`APISIX_VERSION`:
 
 ```shell
-APISIX_VERSION='3.11.0'
+APISIX_VERSION='3.12.0'
 ```
 
 然后,你可以运行以下命令,从 Github 克隆 APISIX 源码:
diff --git a/docs/zh/latest/config.json b/docs/zh/latest/config.json
index 1f6c0d585..84b506f3a 100644
--- a/docs/zh/latest/config.json
+++ b/docs/zh/latest/config.json
@@ -1,5 +1,5 @@
 {
-  "version": "3.11.0",
+  "version": "3.12.0",
   "sidebar": [
     {
       "type": "category",

Reply via email to