Skip to content

Commit 76344d3

Browse files
authored
feat: release APISIX 3.5.0 (#10110)
1 parent 704645f commit 76344d3

16 files changed

+224
-16
lines changed

.asf.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ github:
5353
dismiss_stale_reviews: true
5454
require_code_owner_reviews: true
5555
required_approving_review_count: 2
56+
release/3.5:
57+
required_pull_request_reviews:
58+
require_code_owner_reviews: true
59+
required_approving_review_count: 2
5660
release/3.4:
5761
required_pull_request_reviews:
5862
require_code_owner_reviews: true

CHANGELOG.md

+40
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ title: Changelog
2323

2424
## Table of Contents
2525

26+
- [3.5.0](#350)
2627
- [3.4.0](#340)
2728
- [3.3.0](#330)
2829
- [3.2.1](#321)
@@ -71,6 +72,45 @@ title: Changelog
7172
- [0.7.0](#070)
7273
- [0.6.0](#060)
7374

75+
## 3.5.0
76+
77+
### Change
78+
79+
- :warning: remove snowflake algorithm in the request-id plugin: [#9715](https://github.com/apache/apisix/pull/9715)
80+
- :warning: No longer compatible with OpenResty 1.19, it needs to be upgraded to 1.21+: [#9913](https://github.com/apache/apisix/pull/9913)
81+
- :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)
82+
- :warning: The admin-api `/apisix/admin/plugins?all=true` marked as deprecated: [#9580](https://github.com/apache/apisix/pull/9580)
83+
- :warning: allowlist and denylist can't be enabled at the same time in ua-restriction plugin: [#9841](https://github.com/apache/apisix/pull/9841)
84+
85+
### Core
86+
87+
- :sunrise: Support host level dynamic setting of tls protocol version: [#9903](https://github.com/apache/apisix/pull/9903)
88+
- :sunrise: Support force delete resource: [#9810](https://github.com/apache/apisix/pull/9810)
89+
- :sunrise: Support pulling env vars from yaml keys: [#9855](https://github.com/apache/apisix/pull/9855)
90+
- :sunrise: Add schema validate API in admin-api: [#10065](https://github.com/apache/apisix/pull/10065)
91+
92+
### Plugins
93+
94+
- :sunrise: Add chaitin-waf plugin: [#9838](https://github.com/apache/apisix/pull/9838)
95+
- :sunrise: Support vars for file-logger plugin: [#9712](https://github.com/apache/apisix/pull/9712)
96+
- :sunrise: Support adding response headers for mock plugin: [#9720](https://github.com/apache/apisix/pull/9720)
97+
- :sunrise: Support regex_uri with unsafe_uri for proxy-rewrite plugin: [#9813](https://github.com/apache/apisix/pull/9813)
98+
- :sunrise: Support set client_email field for google-cloud-logging plugin: [#9813](https://github.com/apache/apisix/pull/9813)
99+
- :sunrise: Support sending headers upstream returned by OPA server for opa plugin: [#9710](https://github.com/apache/apisix/pull/9710)
100+
- :sunrise: Support configuring proxy server for openid-connect plugin: [#9948](https://github.com/apache/apisix/pull/9948)
101+
102+
### Bugfixes
103+
104+
- Fix(log-rotate): the max_kept configuration doesn't work when using custom name: [#9749](https://github.com/apache/apisix/pull/9749)
105+
- Fix(limit_conn): do not use the http variable in stream mode: [#9816](https://github.com/apache/apisix/pull/9816)
106+
- Fix(loki-logger): getting an error with log_labels: [#9850](https://github.com/apache/apisix/pull/9850)
107+
- Fix(limit-count): X-RateLimit-Reset shouldn't be set to 0 after request be rejected: [#9978](https://github.com/apache/apisix/pull/9978)
108+
- Fix(nacos): attempt to index upvalue 'applications' (a nil value): [#9960](https://github.com/apache/apisix/pull/9960)
109+
- Fix(etcd): can't sync etcd data if key has special character: [#9967](https://github.com/apache/apisix/pull/9967)
110+
- Fix(tencent-cloud-cls): dns parsing failure: [#9843](https://github.com/apache/apisix/pull/9843)
111+
- Fix(reload): worker not exited when executing quit or reload command [#9909](https://github.com/apache/apisix/pull/9909)
112+
- Fix(traffic-split): upstream_id validity verification [#10008](https://github.com/apache/apisix/pull/10008)
113+
74114
## 3.4.0
75115

76116
### Core

apisix/core/version.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@
2020
-- @module core.version
2121

2222
return {
23-
VERSION = "3.4.0"
23+
VERSION = "3.5.0"
2424
}

ci/centos7-ci.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ install_dependencies() {
3333

3434
# install openresty to make apisix's rpm test work
3535
yum install -y yum-utils && yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
36-
yum install -y openresty-1.21.4.1 openresty-debug-1.21.4.1 openresty-openssl111-debug-devel pcre pcre-devel
36+
yum install -y openresty-1.21.4.2 openresty-debug-1.21.4.2 openresty-openssl111-debug-devel pcre pcre-devel
3737

3838
# install luarocks
3939
./utils/linux-install-luarocks.sh

ci/redhat-ci.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ install_dependencies() {
3232

3333
# install openresty to make apisix's rpm test work
3434
yum install -y yum-utils && yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
35-
yum install -y openresty-1.21.4.1 openresty-debug-1.21.4.1 openresty-openssl111-debug-devel pcre pcre-devel xz
35+
yum install -y openresty-1.21.4.2 openresty-debug-1.21.4.2 openresty-openssl111-debug-devel pcre pcre-devel xz
3636

3737
# install luarocks
3838
./utils/linux-install-luarocks.sh

docs/en/latest/building-apisix.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-depend
5252
Save the APISIX version to an environment variable to be used next:
5353

5454
```shell
55-
APISIX_VERSION='3.4.0'
55+
APISIX_VERSION='3.5.0'
5656
```
5757

5858
Clone the APISIX source code of this version into a new directory `apisix-APISIX_VERSION`:

docs/en/latest/config.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "3.4.0",
2+
"version": "3.5.0",
33
"sidebar": [
44
{
55
"type": "category",

docs/zh/latest/CHANGELOG.md

+40
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ title: CHANGELOG
2323

2424
## Table of Contents
2525

26+
- [3.5.0](#350)
2627
- [3.4.0](#340)
2728
- [3.3.0](#330)
2829
- [3.2.1](#321)
@@ -71,6 +72,45 @@ title: CHANGELOG
7172
- [0.7.0](#070)
7273
- [0.6.0](#060)
7374

75+
## 3.5.0
76+
77+
### Change
78+
79+
- :warning: request-id 插件移除雪花算法:[#9715](https://github.com/apache/apisix/pull/9715)
80+
- :warning: 不再兼容 OpenResty 1.19 版本,需要将其升级到 1.21+ 版本:[#9913](https://github.com/apache/apisix/pull/9913)
81+
- :warning: 删除配置项 `apisix.stream_proxy.only`,L4/L7 代理需要通过配置项 `apesix.proxy_mode` 来启用:[#9607](https://github.com/apache/apisix/pull/9607)
82+
- :warning: admin-api 的 `/apisix/admin/plugins?all=true` 接口标记为弃用:[#9580](https://github.com/apache/apisix/pull/9580)
83+
- :warning: ua-restriction 插件不允许同时启用黑名单和白名单:[#9841](https://github.com/apache/apisix/pull/9841)
84+
85+
### Core
86+
87+
- :sunrise: 支持根据 host 级别动态设置 TLS 协议版本:[#9903](https://github.com/apache/apisix/pull/9903)
88+
- :sunrise: 支持强制删除资源:[#9810](https://github.com/apache/apisix/pull/9810)
89+
- :sunrise: 支持从 yaml 中提取环境变量:[#9855](https://github.com/apache/apisix/pull/9855)
90+
- :sunrise: admin-api 新增 schema validate API 校验资源配置:[#10065](https://github.com/apache/apisix/pull/10065)
91+
92+
### Plugins
93+
94+
- :sunrise: 新增 chaitin-waf 插件:[#9838](https://github.com/apache/apisix/pull/9838)
95+
- :sunrise: file-logger 支持设置 var 变量:[#9712](https://github.com/apache/apisix/pull/9712)
96+
- :sunrise: mock 插件支持添加响应头:[#9720](https://github.com/apache/apisix/pull/9720)
97+
- :sunrise: proxy-rewrite 插件支持正则匹配 URL 编码:[#9813](https://github.com/apache/apisix/pull/9813)
98+
- :sunrise: google-cloud-logging 插件支持 client_email 配置:[#9813](https://github.com/apache/apisix/pull/9813)
99+
- :sunrise: opa 插件支持向上游发送 OPA server 返回的头:[#9710](https://github.com/apache/apisix/pull/9710)
100+
- :sunrise: openid-connect 插件支持配置代理服务器:[#9948](https://github.com/apache/apisix/pull/9948)
101+
102+
### Bugfixes
103+
104+
- 修复 log-rotate 插件使用自定义名称时,max_kept 配置不起作用:[#9749](https://github.com/apache/apisix/pull/9749)
105+
- 修复 limit_conn 在 stream 模式下非法使用 http 变量:[#9816](https://github.com/apache/apisix/pull/9816)
106+
- 修复 loki-logger 插件在获取 log_labels 时会索引空值:[#9850](https://github.com/apache/apisix/pull/9850)
107+
- 修复使用 limit-count 插件时,当请求被拒绝后,X-RateLimit-Reset 不应设置为 0:[#9978](https://github.com/apache/apisix/pull/9978)
108+
- 修复 nacos 插件在运行时索引一个空值:[#9960](https://github.com/apache/apisix/pull/9960)
109+
- 修复 etcd 在同步数据时,如果密钥有特殊字符,则同步异常:[#9967](https://github.com/apache/apisix/pull/9967)
110+
- 修复 tencent-cloud-cls 插件 DNS 解析失败:[#9843](https://github.com/apache/apisix/pull/9843)
111+
- 修复执行 reload 或 quit 命令时 worker 未退出:[#9909](https://github.com/apache/apisix/pull/9909)
112+
- 修复在 traffic-split 插件中 upstream_id 有效性验证:[#10008](https://github.com/apache/apisix/pull/10008)
113+
74114
## 3.4.0
75115

76116
### Core

docs/zh/latest/building-apisix.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-depend
5353
然后,创建一个目录并设置环境变量 `APISIX_VERSION`
5454

5555
```shell
56-
APISIX_VERSION='3.4.0'
56+
APISIX_VERSION='3.5.0'
5757
mkdir apisix-${APISIX_VERSION}
5858
```
5959

docs/zh/latest/config.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "3.4.0",
2+
"version": "3.5.0",
33
"sidebar": [
44
{
55
"type": "doc",

rockspec/apisix-3.5.0-0.rockspec

+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
--
2+
-- Licensed to the Apache Software Foundation (ASF) under one or more
3+
-- contributor license agreements. See the NOTICE file distributed with
4+
-- this work for additional information regarding copyright ownership.
5+
-- The ASF licenses this file to You under the Apache License, Version 2.0
6+
-- (the "License"); you may not use this file except in compliance with
7+
-- the License. You may obtain a copy of the License at
8+
--
9+
-- http://www.apache.org/licenses/LICENSE-2.0
10+
--
11+
-- Unless required by applicable law or agreed to in writing, software
12+
-- distributed under the License is distributed on an "AS IS" BASIS,
13+
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
-- See the License for the specific language governing permissions and
15+
-- limitations under the License.
16+
--
17+
18+
package = "apisix"
19+
version = "3.5.0-0"
20+
supported_platforms = {"linux", "macosx"}
21+
22+
source = {
23+
url = "git://github.com/apache/apisix",
24+
branch = "3.5.0",
25+
}
26+
27+
description = {
28+
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.",
29+
homepage = "https://github.com/apache/apisix",
30+
license = "Apache License 2.0",
31+
}
32+
33+
dependencies = {
34+
"lua-resty-ctxdump = 0.1-0",
35+
"api7-lua-resty-dns-client = 7.0.1",
36+
"lua-resty-template = 2.0",
37+
"lua-resty-etcd = 1.10.4",
38+
"api7-lua-resty-http = 0.2.0",
39+
"lua-resty-balancer = 0.04",
40+
"lua-resty-ngxvar = 0.5.2",
41+
"lua-resty-jit-uuid = 0.0.7",
42+
"lua-resty-healthcheck-api7 = 3.0.0",
43+
"api7-lua-resty-jwt = 0.2.5",
44+
"lua-resty-hmac-ffi = 0.06-1",
45+
"lua-resty-cookie = 0.2.0-1",
46+
"lua-resty-session = 3.10",
47+
"opentracing-openresty = 0.1",
48+
"lua-resty-radixtree = 2.8.2",
49+
"lua-protobuf = 0.5.0-1",
50+
"lua-resty-openidc = 1.7.6-3",
51+
"luafilesystem = 1.7.0-2",
52+
"api7-lua-tinyyaml = 0.4.2",
53+
"nginx-lua-prometheus = 0.20230607-1",
54+
"jsonschema = 0.9.8",
55+
"lua-resty-ipmatcher = 0.6.1",
56+
"lua-resty-kafka = 0.22-0",
57+
"lua-resty-logger-socket = 2.0.1-0",
58+
"skywalking-nginx-lua = 0.6.0",
59+
"base64 = 1.5-2",
60+
"binaryheap = 0.4",
61+
"api7-dkjson = 0.1.1",
62+
"resty-redis-cluster = 1.05-1",
63+
"lua-resty-expr = 1.3.2",
64+
"graphql = 0.0.2",
65+
"argparse = 0.7.1-1",
66+
"luasocket = 3.1.0-1",
67+
"luasec = 0.9-1",
68+
"lua-resty-consul = 0.3-2",
69+
"penlight = 1.13.1",
70+
"ext-plugin-proto = 0.6.0",
71+
"casbin = 1.41.8-1",
72+
"inspect == 3.1.1",
73+
"lualdap = 1.2.6-1",
74+
"lua-resty-rocketmq = 0.3.0-0",
75+
"opentelemetry-lua = 0.2-3",
76+
"net-url = 0.9-1",
77+
"xml2lua = 1.5-2",
78+
"nanoid = 0.1-1",
79+
"lua-resty-mediador = 0.1.2-1",
80+
"lua-resty-ldap = 0.1.0-0",
81+
"lua-resty-t1k = 1.1.0"
82+
}
83+
84+
build = {
85+
type = "make",
86+
build_variables = {
87+
CFLAGS="$(CFLAGS)",
88+
LIBFLAG="$(LIBFLAG)",
89+
LUA_LIBDIR="$(LUA_LIBDIR)",
90+
LUA_BINDIR="$(LUA_BINDIR)",
91+
LUA_INCDIR="$(LUA_INCDIR)",
92+
LUA="$(LUA)",
93+
OPENSSL_INCDIR="$(OPENSSL_INCDIR)",
94+
OPENSSL_LIBDIR="$(OPENSSL_LIBDIR)",
95+
},
96+
install_variables = {
97+
ENV_INST_PREFIX="$(PREFIX)",
98+
ENV_INST_BINDIR="$(BINDIR)",
99+
ENV_INST_LIBDIR="$(LIBDIR)",
100+
ENV_INST_LUADIR="$(LUADIR)",
101+
ENV_INST_CONFDIR="$(CONFDIR)",
102+
},
103+
}

t/chaos/utils/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
ARG ENABLE_PROXY=false
1919

20-
FROM openresty/openresty:1.21.4.1-alpine-fat AS production-stage
20+
FROM openresty/openresty:1.21.4.2-alpine-fat AS production-stage
2121

2222
ARG ENABLE_PROXY
2323
ARG APISIX_PATH

t/core/etcd.t

+5-5
Original file line numberDiff line numberDiff line change
@@ -396,8 +396,8 @@ ab
396396
--- request
397397
GET /t
398398
--- grep_error_log eval
399-
qr/init_by_lua:\d+: \S+/
400-
--- grep_error_log_out
401-
init_by_lua:12: ab
402-
init_by_lua:19: 200
403-
init_by_lua:26: 404
399+
qr/init_by_lua.*: \S+/
400+
--- grep_error_log_out eval
401+
qr{init_by_lua.* ab
402+
init_by_lua.* 200
403+
init_by_lua.* 404}

t/node/upstream-websocket.t

+4-1
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,10 @@ passed
270270
local client = require "resty.websocket.client"
271271
local wb = client:new()
272272
local uri = "wss://127.0.0.1:1994/websocket_handshake"
273-
local ok, err = wb:connect(uri)
273+
local opts = {
274+
server_name = "127.0.0.1"
275+
}
276+
local ok, err = wb:connect(uri, opts)
274277
if not ok then
275278
ngx.say("failed to connect: " .. err)
276279
return

t/plugin/ext-plugin/sanity.t

+10-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,16 @@
1414
# See the License for the specific language governing permissions and
1515
# limitations under the License.
1616
#
17-
use t::APISIX 'no_plan';
17+
use t::APISIX;
18+
19+
my $nginx_binary = $ENV{'TEST_NGINX_BINARY'} || 'nginx';
20+
my $version = eval { `$nginx_binary -V 2>&1` };
21+
22+
if ($version !~ m/\/apisix-nginx-module/) {
23+
plan(skip_all => "apisix-nginx-module not installed");
24+
} else {
25+
plan('no_plan');
26+
}
1827

1928
repeat_each(1);
2029
no_long_string();

t/plugin/ext-plugin/sanity2.t

+10-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,16 @@
1414
# See the License for the specific language governing permissions and
1515
# limitations under the License.
1616
#
17-
use t::APISIX 'no_plan';
17+
use t::APISIX;
18+
19+
my $nginx_binary = $ENV{'TEST_NGINX_BINARY'} || 'nginx';
20+
my $version = eval { `$nginx_binary -V 2>&1` };
21+
22+
if ($version !~ m/\/apisix-nginx-module/) {
23+
plan(skip_all => "apisix-nginx-module not installed");
24+
} else {
25+
plan('no_plan');
26+
}
1827

1928
repeat_each(1);
2029
no_long_string();

0 commit comments

Comments
 (0)