This is an automated email from the ASF dual-hosted git repository.
alinsran pushed a commit to branch release/3.5
in repository https://gitbox.apache.org/repos/asf/apisix.git
The following commit(s) were added to refs/heads/release/3.5 by this push:
new 76344d39b feat: release APISIX 3.5.0 (#10110)
76344d39b is described below
commit 76344d39bf8ad346826bc918fde6053521571407
Author: Xin Rong <[email protected]>
AuthorDate: Tue Aug 29 22:20:58 2023 +0800
feat: release APISIX 3.5.0 (#10110)
---
.asf.yaml | 4 ++
CHANGELOG.md | 40 +++++++++++++++
apisix/core/version.lua | 2 +-
ci/centos7-ci.sh | 2 +-
ci/redhat-ci.sh | 2 +-
docs/en/latest/building-apisix.md | 2 +-
docs/en/latest/config.json | 2 +-
docs/zh/latest/CHANGELOG.md | 40 +++++++++++++++
docs/zh/latest/building-apisix.md | 2 +-
docs/zh/latest/config.json | 2 +-
rockspec/apisix-3.5.0-0.rockspec | 103 ++++++++++++++++++++++++++++++++++++++
t/chaos/utils/Dockerfile | 2 +-
t/core/etcd.t | 10 ++--
t/node/upstream-websocket.t | 5 +-
t/plugin/ext-plugin/sanity.t | 11 +++-
t/plugin/ext-plugin/sanity2.t | 11 +++-
16 files changed, 224 insertions(+), 16 deletions(-)
diff --git a/.asf.yaml b/.asf.yaml
index fa106d0ca..010df0388 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -53,6 +53,10 @@ github:
dismiss_stale_reviews: true
require_code_owner_reviews: true
required_approving_review_count: 2
+ release/3.5:
+ required_pull_request_reviews:
+ require_code_owner_reviews: true
+ required_approving_review_count: 2
release/3.4:
required_pull_request_reviews:
require_code_owner_reviews: true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 78f9cc93a..92bd8498c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@ title: Changelog
## Table of Contents
+- [3.5.0](#350)
- [3.4.0](#340)
- [3.3.0](#330)
- [3.2.1](#321)
@@ -71,6 +72,45 @@ title: Changelog
- [0.7.0](#070)
- [0.6.0](#060)
+## 3.5.0
+
+### Change
+
+- :warning: remove snowflake algorithm in the request-id plugin:
[#9715](https://github.com/apache/apisix/pull/9715)
+- :warning: No longer compatible with OpenResty 1.19, it needs to be upgraded
to 1.21+: [#9913](https://github.com/apache/apisix/pull/9913)
+- :warning: Remove the configuration item `apisix.stream_proxy.only`, the
L4/L7 proxy needs to be enabled through the configuration item
`apisix.proxy_mode`: [#9607](https://github.com/apache/apisix/pull/9607)
+- :warning: The admin-api `/apisix/admin/plugins?all=true` marked as
deprecated: [#9580](https://github.com/apache/apisix/pull/9580)
+- :warning: allowlist and denylist can't be enabled at the same time in
ua-restriction plugin: [#9841](https://github.com/apache/apisix/pull/9841)
+
+### Core
+
+- :sunrise: Support host level dynamic setting of tls protocol version:
[#9903](https://github.com/apache/apisix/pull/9903)
+- :sunrise: Support force delete resource:
[#9810](https://github.com/apache/apisix/pull/9810)
+- :sunrise: Support pulling env vars from yaml keys:
[#9855](https://github.com/apache/apisix/pull/9855)
+- :sunrise: Add schema validate API in admin-api:
[#10065](https://github.com/apache/apisix/pull/10065)
+
+### Plugins
+
+- :sunrise: Add chaitin-waf plugin:
[#9838](https://github.com/apache/apisix/pull/9838)
+- :sunrise: Support vars for file-logger plugin:
[#9712](https://github.com/apache/apisix/pull/9712)
+- :sunrise: Support adding response headers for mock plugin:
[#9720](https://github.com/apache/apisix/pull/9720)
+- :sunrise: Support regex_uri with unsafe_uri for proxy-rewrite plugin:
[#9813](https://github.com/apache/apisix/pull/9813)
+- :sunrise: Support set client_email field for google-cloud-logging plugin:
[#9813](https://github.com/apache/apisix/pull/9813)
+- :sunrise: Support sending headers upstream returned by OPA server for opa
plugin: [#9710](https://github.com/apache/apisix/pull/9710)
+- :sunrise: Support configuring proxy server for openid-connect plugin:
[#9948](https://github.com/apache/apisix/pull/9948)
+
+### Bugfixes
+
+- Fix(log-rotate): the max_kept configuration doesn't work when using custom
name: [#9749](https://github.com/apache/apisix/pull/9749)
+- Fix(limit_conn): do not use the http variable in stream mode:
[#9816](https://github.com/apache/apisix/pull/9816)
+- Fix(loki-logger): getting an error with log_labels:
[#9850](https://github.com/apache/apisix/pull/9850)
+- Fix(limit-count): X-RateLimit-Reset shouldn't be set to 0 after request be
rejected: [#9978](https://github.com/apache/apisix/pull/9978)
+- Fix(nacos): attempt to index upvalue 'applications' (a nil value):
[#9960](https://github.com/apache/apisix/pull/9960)
+- Fix(etcd): can't sync etcd data if key has special character:
[#9967](https://github.com/apache/apisix/pull/9967)
+- Fix(tencent-cloud-cls): dns parsing failure:
[#9843](https://github.com/apache/apisix/pull/9843)
+- Fix(reload): worker not exited when executing quit or reload command
[#9909](https://github.com/apache/apisix/pull/9909)
+- Fix(traffic-split): upstream_id validity verification
[#10008](https://github.com/apache/apisix/pull/10008)
+
## 3.4.0
### Core
diff --git a/apisix/core/version.lua b/apisix/core/version.lua
index 7ba204811..5fa6af15e 100644
--- a/apisix/core/version.lua
+++ b/apisix/core/version.lua
@@ -20,5 +20,5 @@
-- @module core.version
return {
- VERSION = "3.4.0"
+ VERSION = "3.5.0"
}
diff --git a/ci/centos7-ci.sh b/ci/centos7-ci.sh
index 6b6483a4f..41758ca62 100755
--- a/ci/centos7-ci.sh
+++ b/ci/centos7-ci.sh
@@ -33,7 +33,7 @@ install_dependencies() {
# install openresty to make apisix's rpm test work
yum install -y yum-utils && yum-config-manager --add-repo
https://openresty.org/package/centos/openresty.repo
- yum install -y openresty-1.21.4.1 openresty-debug-1.21.4.1
openresty-openssl111-debug-devel pcre pcre-devel
+ yum install -y openresty-1.21.4.2 openresty-debug-1.21.4.2
openresty-openssl111-debug-devel pcre pcre-devel
# install luarocks
./utils/linux-install-luarocks.sh
diff --git a/ci/redhat-ci.sh b/ci/redhat-ci.sh
index 4b307e648..4b55cc7e6 100755
--- a/ci/redhat-ci.sh
+++ b/ci/redhat-ci.sh
@@ -32,7 +32,7 @@ install_dependencies() {
# install openresty to make apisix's rpm test work
yum install -y yum-utils && yum-config-manager --add-repo
https://openresty.org/package/centos/openresty.repo
- yum install -y openresty-1.21.4.1 openresty-debug-1.21.4.1
openresty-openssl111-debug-devel pcre pcre-devel xz
+ yum install -y openresty-1.21.4.2 openresty-debug-1.21.4.2
openresty-openssl111-debug-devel pcre pcre-devel xz
# install luarocks
./utils/linux-install-luarocks.sh
diff --git a/docs/en/latest/building-apisix.md
b/docs/en/latest/building-apisix.md
index 01d4ac331..1a8222704 100644
--- a/docs/en/latest/building-apisix.md
+++ b/docs/en/latest/building-apisix.md
@@ -52,7 +52,7 @@ curl
https://raw.githubusercontent.com/apache/apisix/master/utils/install-depend
Save the APISIX version to an environment variable to be used next:
```shell
-APISIX_VERSION='3.4.0'
+APISIX_VERSION='3.5.0'
```
Clone the APISIX source code of this version into a new directory
`apisix-APISIX_VERSION`:
diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json
index ee172c332..bec485d7a 100644
--- a/docs/en/latest/config.json
+++ b/docs/en/latest/config.json
@@ -1,5 +1,5 @@
{
- "version": "3.4.0",
+ "version": "3.5.0",
"sidebar": [
{
"type": "category",
diff --git a/docs/zh/latest/CHANGELOG.md b/docs/zh/latest/CHANGELOG.md
index be16cb069..92bd25912 100644
--- a/docs/zh/latest/CHANGELOG.md
+++ b/docs/zh/latest/CHANGELOG.md
@@ -23,6 +23,7 @@ title: CHANGELOG
## Table of Contents
+- [3.5.0](#350)
- [3.4.0](#340)
- [3.3.0](#330)
- [3.2.1](#321)
@@ -71,6 +72,45 @@ title: CHANGELOG
- [0.7.0](#070)
- [0.6.0](#060)
+## 3.5.0
+
+### Change
+
+- :warning: request-id
插件移除雪花算法:[#9715](https://github.com/apache/apisix/pull/9715)
+- :warning: 不再兼容 OpenResty 1.19 版本,需要将其升级到 1.21+
版本:[#9913](https://github.com/apache/apisix/pull/9913)
+- :warning: 删除配置项 `apisix.stream_proxy.only`,L4/L7 代理需要通过配置项
`apesix.proxy_mode` 来启用:[#9607](https://github.com/apache/apisix/pull/9607)
+- :warning: admin-api 的 `/apisix/admin/plugins?all=true`
接口标记为弃用:[#9580](https://github.com/apache/apisix/pull/9580)
+- :warning: ua-restriction
插件不允许同时启用黑名单和白名单:[#9841](https://github.com/apache/apisix/pull/9841)
+
+### Core
+
+- :sunrise: 支持根据 host 级别动态设置 TLS
协议版本:[#9903](https://github.com/apache/apisix/pull/9903)
+- :sunrise: 支持强制删除资源:[#9810](https://github.com/apache/apisix/pull/9810)
+- :sunrise: 支持从 yaml
中提取环境变量:[#9855](https://github.com/apache/apisix/pull/9855)
+- :sunrise: admin-api 新增 schema validate API
校验资源配置:[#10065](https://github.com/apache/apisix/pull/10065)
+
+### Plugins
+
+- :sunrise: 新增 chaitin-waf
插件:[#9838](https://github.com/apache/apisix/pull/9838)
+- :sunrise: file-logger 支持设置 var
变量:[#9712](https://github.com/apache/apisix/pull/9712)
+- :sunrise: mock 插件支持添加响应头:[#9720](https://github.com/apache/apisix/pull/9720)
+- :sunrise: proxy-rewrite 插件支持正则匹配 URL
编码:[#9813](https://github.com/apache/apisix/pull/9813)
+- :sunrise: google-cloud-logging 插件支持 client_email
配置:[#9813](https://github.com/apache/apisix/pull/9813)
+- :sunrise: opa 插件支持向上游发送 OPA server
返回的头:[#9710](https://github.com/apache/apisix/pull/9710)
+- :sunrise: openid-connect
插件支持配置代理服务器:[#9948](https://github.com/apache/apisix/pull/9948)
+
+### Bugfixes
+
+- 修复 log-rotate 插件使用自定义名称时,max_kept
配置不起作用:[#9749](https://github.com/apache/apisix/pull/9749)
+- 修复 limit_conn 在 stream 模式下非法使用 http
变量:[#9816](https://github.com/apache/apisix/pull/9816)
+- 修复 loki-logger 插件在获取 log_labels
时会索引空值:[#9850](https://github.com/apache/apisix/pull/9850)
+- 修复使用 limit-count 插件时,当请求被拒绝后,X-RateLimit-Reset 不应设置为
0:[#9978](https://github.com/apache/apisix/pull/9978)
+- 修复 nacos 插件在运行时索引一个空值:[#9960](https://github.com/apache/apisix/pull/9960)
+- 修复 etcd
在同步数据时,如果密钥有特殊字符,则同步异常:[#9967](https://github.com/apache/apisix/pull/9967)
+- 修复 tencent-cloud-cls 插件 DNS
解析失败:[#9843](https://github.com/apache/apisix/pull/9843)
+- 修复执行 reload 或 quit 命令时 worker
未退出:[#9909](https://github.com/apache/apisix/pull/9909)
+- 修复在 traffic-split 插件中 upstream_id
有效性验证:[#10008](https://github.com/apache/apisix/pull/10008)
+
## 3.4.0
### Core
diff --git a/docs/zh/latest/building-apisix.md
b/docs/zh/latest/building-apisix.md
index 95672c82b..2f844d473 100644
--- a/docs/zh/latest/building-apisix.md
+++ b/docs/zh/latest/building-apisix.md
@@ -53,7 +53,7 @@ curl
https://raw.githubusercontent.com/apache/apisix/master/utils/install-depend
然后,创建一个目录并设置环境变量 `APISIX_VERSION`:
```shell
-APISIX_VERSION='3.4.0'
+APISIX_VERSION='3.5.0'
mkdir apisix-${APISIX_VERSION}
```
diff --git a/docs/zh/latest/config.json b/docs/zh/latest/config.json
index 7ac2791ca..8585bf606 100644
--- a/docs/zh/latest/config.json
+++ b/docs/zh/latest/config.json
@@ -1,5 +1,5 @@
{
- "version": "3.4.0",
+ "version": "3.5.0",
"sidebar": [
{
"type": "doc",
diff --git a/rockspec/apisix-3.5.0-0.rockspec b/rockspec/apisix-3.5.0-0.rockspec
new file mode 100644
index 000000000..1c0ad6d8c
--- /dev/null
+++ b/rockspec/apisix-3.5.0-0.rockspec
@@ -0,0 +1,103 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one or more
+-- contributor license agreements. See the NOTICE file distributed with
+-- this work for additional information regarding copyright ownership.
+-- The ASF licenses this file to You under the Apache License, Version 2.0
+-- (the "License"); you may not use this file except in compliance with
+-- the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+
+package = "apisix"
+version = "3.5.0-0"
+supported_platforms = {"linux", "macosx"}
+
+source = {
+ url = "git://github.com/apache/apisix",
+ branch = "3.5.0",
+}
+
+description = {
+ summary = "Apache APISIX is a cloud-native microservices API gateway,
delivering the ultimate performance, security, open source and scalable
platform for all your APIs and microservices.",
+ homepage = "https://github.com/apache/apisix",
+ license = "Apache License 2.0",
+}
+
+dependencies = {
+ "lua-resty-ctxdump = 0.1-0",
+ "api7-lua-resty-dns-client = 7.0.1",
+ "lua-resty-template = 2.0",
+ "lua-resty-etcd = 1.10.4",
+ "api7-lua-resty-http = 0.2.0",
+ "lua-resty-balancer = 0.04",
+ "lua-resty-ngxvar = 0.5.2",
+ "lua-resty-jit-uuid = 0.0.7",
+ "lua-resty-healthcheck-api7 = 3.0.0",
+ "api7-lua-resty-jwt = 0.2.5",
+ "lua-resty-hmac-ffi = 0.06-1",
+ "lua-resty-cookie = 0.2.0-1",
+ "lua-resty-session = 3.10",
+ "opentracing-openresty = 0.1",
+ "lua-resty-radixtree = 2.8.2",
+ "lua-protobuf = 0.5.0-1",
+ "lua-resty-openidc = 1.7.6-3",
+ "luafilesystem = 1.7.0-2",
+ "api7-lua-tinyyaml = 0.4.2",
+ "nginx-lua-prometheus = 0.20230607-1",
+ "jsonschema = 0.9.8",
+ "lua-resty-ipmatcher = 0.6.1",
+ "lua-resty-kafka = 0.22-0",
+ "lua-resty-logger-socket = 2.0.1-0",
+ "skywalking-nginx-lua = 0.6.0",
+ "base64 = 1.5-2",
+ "binaryheap = 0.4",
+ "api7-dkjson = 0.1.1",
+ "resty-redis-cluster = 1.05-1",
+ "lua-resty-expr = 1.3.2",
+ "graphql = 0.0.2",
+ "argparse = 0.7.1-1",
+ "luasocket = 3.1.0-1",
+ "luasec = 0.9-1",
+ "lua-resty-consul = 0.3-2",
+ "penlight = 1.13.1",
+ "ext-plugin-proto = 0.6.0",
+ "casbin = 1.41.8-1",
+ "inspect == 3.1.1",
+ "lualdap = 1.2.6-1",
+ "lua-resty-rocketmq = 0.3.0-0",
+ "opentelemetry-lua = 0.2-3",
+ "net-url = 0.9-1",
+ "xml2lua = 1.5-2",
+ "nanoid = 0.1-1",
+ "lua-resty-mediador = 0.1.2-1",
+ "lua-resty-ldap = 0.1.0-0",
+ "lua-resty-t1k = 1.1.0"
+}
+
+build = {
+ type = "make",
+ build_variables = {
+ CFLAGS="$(CFLAGS)",
+ LIBFLAG="$(LIBFLAG)",
+ LUA_LIBDIR="$(LUA_LIBDIR)",
+ LUA_BINDIR="$(LUA_BINDIR)",
+ LUA_INCDIR="$(LUA_INCDIR)",
+ LUA="$(LUA)",
+ OPENSSL_INCDIR="$(OPENSSL_INCDIR)",
+ OPENSSL_LIBDIR="$(OPENSSL_LIBDIR)",
+ },
+ install_variables = {
+ ENV_INST_PREFIX="$(PREFIX)",
+ ENV_INST_BINDIR="$(BINDIR)",
+ ENV_INST_LIBDIR="$(LIBDIR)",
+ ENV_INST_LUADIR="$(LUADIR)",
+ ENV_INST_CONFDIR="$(CONFDIR)",
+ },
+}
diff --git a/t/chaos/utils/Dockerfile b/t/chaos/utils/Dockerfile
index 9ab2a0509..f2e119f02 100644
--- a/t/chaos/utils/Dockerfile
+++ b/t/chaos/utils/Dockerfile
@@ -17,7 +17,7 @@
ARG ENABLE_PROXY=false
-FROM openresty/openresty:1.21.4.1-alpine-fat AS production-stage
+FROM openresty/openresty:1.21.4.2-alpine-fat AS production-stage
ARG ENABLE_PROXY
ARG APISIX_PATH
diff --git a/t/core/etcd.t b/t/core/etcd.t
index c0715de7b..670ada081 100644
--- a/t/core/etcd.t
+++ b/t/core/etcd.t
@@ -396,8 +396,8 @@ ab
--- request
GET /t
--- grep_error_log eval
-qr/init_by_lua:\d+: \S+/
---- grep_error_log_out
-init_by_lua:12: ab
-init_by_lua:19: 200
-init_by_lua:26: 404
+qr/init_by_lua.*: \S+/
+--- grep_error_log_out eval
+qr{init_by_lua.* ab
+init_by_lua.* 200
+init_by_lua.* 404}
diff --git a/t/node/upstream-websocket.t b/t/node/upstream-websocket.t
index a374b638f..a19a202de 100644
--- a/t/node/upstream-websocket.t
+++ b/t/node/upstream-websocket.t
@@ -270,7 +270,10 @@ passed
local client = require "resty.websocket.client"
local wb = client:new()
local uri = "wss://127.0.0.1:1994/websocket_handshake"
- local ok, err = wb:connect(uri)
+ local opts = {
+ server_name = "127.0.0.1"
+ }
+ local ok, err = wb:connect(uri, opts)
if not ok then
ngx.say("failed to connect: " .. err)
return
diff --git a/t/plugin/ext-plugin/sanity.t b/t/plugin/ext-plugin/sanity.t
index 1a3732402..873a540a8 100644
--- a/t/plugin/ext-plugin/sanity.t
+++ b/t/plugin/ext-plugin/sanity.t
@@ -14,7 +14,16 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-use t::APISIX 'no_plan';
+use t::APISIX;
+
+my $nginx_binary = $ENV{'TEST_NGINX_BINARY'} || 'nginx';
+my $version = eval { `$nginx_binary -V 2>&1` };
+
+if ($version !~ m/\/apisix-nginx-module/) {
+ plan(skip_all => "apisix-nginx-module not installed");
+} else {
+ plan('no_plan');
+}
repeat_each(1);
no_long_string();
diff --git a/t/plugin/ext-plugin/sanity2.t b/t/plugin/ext-plugin/sanity2.t
index 206e7b090..672600558 100644
--- a/t/plugin/ext-plugin/sanity2.t
+++ b/t/plugin/ext-plugin/sanity2.t
@@ -14,7 +14,16 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-use t::APISIX 'no_plan';
+use t::APISIX;
+
+my $nginx_binary = $ENV{'TEST_NGINX_BINARY'} || 'nginx';
+my $version = eval { `$nginx_binary -V 2>&1` };
+
+if ($version !~ m/\/apisix-nginx-module/) {
+ plan(skip_all => "apisix-nginx-module not installed");
+} else {
+ plan('no_plan');
+}
repeat_each(1);
no_long_string();