diff --git a/.asf.yaml b/.asf.yaml index 9038b5c11c43..6fb862a77b17 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.0: + required_pull_request_reviews: + require_code_owner_reviews: true + required_approving_review_count: 2 release/2.99: required_pull_request_reviews: require_code_owner_reviews: true diff --git a/CHANGELOG.md b/CHANGELOG.md index c849c9b4094c..edae58f4a4d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ title: Changelog ## Table of Contents +- [3.0.0](#300) - [3.0.0-beta](#300-beta) - [2.15.0](#2150) - [2.14.1](#2141) @@ -62,6 +63,42 @@ title: Changelog - [0.7.0](#070) - [0.6.0](#060) +## 3.0.0 + +### Change + +- `enable_cpu_affinity` is disabled by default to avoid this configuration affecting the behavior of APSISIX deployed in the container: [#8074](https://github.com/apache/apisix/pull/8074) + +### Core + +- :sunrise: Added Consumer Group entity to manage multiple consumers: [#7980](https://github.com/apache/apisix/pull/7980) +- :sunrise: Supports configuring the order in which DNS resolves domain name types: [#7935](https://github.com/apache/apisix/pull/7935) +- :sunrise: Support configuring multiple `key_encrypt_salt` for rotation: [#7925](https://github.com/apache/apisix/pull/7925) + +### Plugin + +- :sunrise: Added ai plugin to dynamically optimize the execution path of APISIX according to the scene: + - [#8102](https://github.com/apache/apisix/pull/8102) + - [#8113](https://github.com/apache/apisix/pull/8113) + - [#8120](https://github.com/apache/apisix/pull/8120) + - [#8128](https://github.com/apache/apisix/pull/8128) + - [#8130](https://github.com/apache/apisix/pull/8130) + - [#8149](https://github.com/apache/apisix/pull/8149) + - [#8157](https://github.com/apache/apisix/pull/8157) +- :sunrise: Support `session_secret` in openid-connect plugin to resolve the inconsistency of `session_secret` among multiple workers: [#8068](https://github.com/apache/apisix/pull/8068) +- :sunrise: Support sasl config in kafka-logger plugin: [#8050](https://github.com/apache/apisix/pull/8050) +- :sunrise: Support set resolve domain in proxy-mirror plugin: [#7861](https://github.com/apache/apisix/pull/7861) +- :sunrise: Support `brokers` property in kafka-logger plugin, which supports different broker to set the same host: [#7999](https://github.com/apache/apisix/pull/7999) +- :sunrise: Support get response body in ext-plugin-post-resp: [#7947](https://github.com/apache/apisix/pull/7947) +- :sunrise: Added cas-auth plugin to support CAS authentication: [#7932](https://github.com/apache/apisix/pull/7932) + +### Bugfix + +- Conditional expressions of workflow plugin should support operators: [#8121](https://github.com/apache/apisix/pull/8121) +- Fix loading problem of batch processor plugin when prometheus plugin is disabled: [#8079](https://github.com/apache/apisix/pull/8079) +- When APISIX starts, delete the old conf server sock file if it exists: [#8022](https://github.com/apache/apisix/pull/8022) +- Disable core.grpc when gRPC-client-nginx-module module is not compiled: [#8007](https://github.com/apache/apisix/pull/8007) + ## 3.0.0-beta Here we use 2.99.0 as the version number in the source code instead of the code name diff --git a/apisix/core/version.lua b/apisix/core/version.lua index 3a6865a3b56b..cca6f0e02e95 100644 --- a/apisix/core/version.lua +++ b/apisix/core/version.lua @@ -20,5 +20,5 @@ -- @module core.version return { - VERSION = "2.99.0" + VERSION = "3.0.0" } diff --git a/docs/en/latest/building-apisix.md b/docs/en/latest/building-apisix.md index eb7dd7fd9886..f12fbfe080fa 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 Then, create a directory and set the environment variable `APISIX_VERSION`: ```shell -APISIX_VERSION='2.99.0' +APISIX_VERSION='3.0.0' mkdir apisix-${APISIX_VERSION} ``` diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json index 0bbbd062d5e1..36952046a15f 100644 --- a/docs/en/latest/config.json +++ b/docs/en/latest/config.json @@ -1,5 +1,5 @@ { - "version": "2.99.0", + "version": "3.0.0", "sidebar": [ { "type": "doc", diff --git a/docs/zh/latest/CHANGELOG.md b/docs/zh/latest/CHANGELOG.md index 5405f404258e..59ca96935a17 100644 --- a/docs/zh/latest/CHANGELOG.md +++ b/docs/zh/latest/CHANGELOG.md @@ -23,6 +23,7 @@ title: CHANGELOG ## Table of Contents +- [3.0.0](#300) - [3.0.0-beta](#300-beta) - [2.15.0](#2150) - [2.14.1](#2141) @@ -62,6 +63,42 @@ title: CHANGELOG - [0.7.0](#070) - [0.6.0](#060) +## 3.0.0 + +### Change + +- 默认关闭 `enable_cpu_affinity`,避免在容器部署场景中该配置影响 APSISIX 的行为:[#8074](https://github.com/apache/apisix/pull/8074) + +### Core + +- :sunrise: 新增 Consumer Group 实体,用于管理多个 Consumer:[#7980](https://github.com/apache/apisix/pull/7980) +- :sunrise: 支持配置 DNS 解析域名类型的顺序:[#7935](https://github.com/apache/apisix/pull/7935) +- :sunrise: 支持配置多个 `key_encrypt_salt` 进行轮转:[#7925](https://github.com/apache/apisix/pull/7925) + +### Plugin + +- :sunrise: 新增 ai 插件,根据场景动态优化 APISIX 的执行路径: + - [#8102](https://github.com/apache/apisix/pull/8102) + - [#8113](https://github.com/apache/apisix/pull/8113) + - [#8120](https://github.com/apache/apisix/pull/8120) + - [#8128](https://github.com/apache/apisix/pull/8128) + - [#8130](https://github.com/apache/apisix/pull/8130) + - [#8149](https://github.com/apache/apisix/pull/8149) + - [#8157](https://github.com/apache/apisix/pull/8157) +- :sunrise: openid-connect 插件支持设置 `session_secret`,解决多个 worker 间 `session_secret` 不一致的问题:[#8068](https://github.com/apache/apisix/pull/8068) +- :sunrise: kafka-logger 插件支持设置 sasl 相关配置:[#8050](https://github.com/apache/apisix/pull/8050) +- :sunrise: proxy-mirror 插件支持设置域名作为 host:[#7861](https://github.com/apache/apisix/pull/7861) +- :sunrise: kafka-logger 插件新增 brokers 属性,支持不同 broker 设置相同 host:[#7999](https://github.com/apache/apisix/pull/7999) +- :sunrise: ext-plugin-post-resp 插件支持获取上游响应体:[#7947](https://github.com/apache/apisix/pull/7947) +- :sunrise: 新增 cas-auth 插件,支持 CAS 认证:[#7932](https://github.com/apache/apisix/pull/7932) + +### Bugfix + +- workflow 插件的条件表达式应该支持操作符:[#8121](https://github.com/apache/apisix/pull/8121) +- 修复禁用 prometheus 插件时 batch processor 加载问题:[#8079](https://github.com/apache/apisix/pull/8079) +- APISIX 启动时,如果存在旧的 conf server 的 sock 文件则删除:[#8022](https://github.com/apache/apisix/pull/8022) +- 没有编译 gRPC-client-nginx-module 模块时禁用 core.grpc:[#8007](https://github.com/apache/apisix/pull/8007) + ## 3.0.0-beta 这里我们使用 `2.99.0` 作为源代码中的版本号,而不是代码名称 diff --git a/docs/zh/latest/building-apisix.md b/docs/zh/latest/building-apisix.md index ec704a871cea..d9ebd6386452 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='2.99.0' +APISIX_VERSION='3.0.0' mkdir apisix-${APISIX_VERSION} ``` diff --git a/docs/zh/latest/config.json b/docs/zh/latest/config.json index 4a6a486ebcfb..0fa96bfad414 100644 --- a/docs/zh/latest/config.json +++ b/docs/zh/latest/config.json @@ -1,5 +1,5 @@ { - "version": "2.99.0", + "version": "3.0.0", "sidebar": [ { "type": "doc", diff --git a/rockspec/apisix-3.0.0-0.rockspec b/rockspec/apisix-3.0.0-0.rockspec new file mode 100644 index 000000000000..1f24ac84f626 --- /dev/null +++ b/rockspec/apisix-3.0.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.0.0-0" +supported_platforms = {"linux", "macosx"} + +source = { + url = "git://github.com/apache/apisix", + branch = "3.0.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", + "lua-resty-dns-client = 6.0.2", + "lua-resty-template = 2.0", + "lua-resty-etcd = 1.9.0", + "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 = 2.2.1", + "api7-lua-resty-jwt = 0.2.4", + "lua-resty-hmac-ffi = 0.05", + "lua-resty-cookie = 0.1.0", + "lua-resty-session = 3.10", + "opentracing-openresty = 0.1", + "lua-resty-radixtree = 2.8.2", + "lua-protobuf = 0.3.4", + "lua-resty-openidc = 1.7.5", + "luafilesystem = 1.7.0-2", + "api7-lua-tinyyaml = 0.4.2", + "nginx-lua-prometheus = 0.20220527", + "jsonschema = 0.9.8", + "lua-resty-ipmatcher = 0.6.1", + "lua-resty-kafka = 0.20-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.02-4", + "lua-resty-expr = 1.3.2", + "graphql = 0.0.2", + "argparse = 0.7.1-1", + "luasocket = 3.0rc1-2", + "luasec = 0.9-1", + "lua-resty-consul = 0.3-2", + "penlight = 1.9.2-1", + "ext-plugin-proto = 0.6.0", + "casbin = 1.41.1", + "api7-snowflake = 2.0-1", + "inspect == 3.1.1", + "lualdap = 1.2.6-1", + "lua-resty-rocketmq = 0.3.0-0", + "opentelemetry-lua = 0.1-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" +} + +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)", + }, +}