You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by sp...@apache.org on 2022/09/26 09:03:28 UTC

[apisix] branch master updated: feat: release 3.0.0-beta (#7975)

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

spacewander 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 3c18031c6 feat: release 3.0.0-beta (#7975)
3c18031c6 is described below

commit 3c18031c6e70daa15db72fe06ae8644b04b4481e
Author: 罗泽轩 <sp...@gmail.com>
AuthorDate: Mon Sep 26 17:03:21 2022 +0800

    feat: release 3.0.0-beta (#7975)
---
 .asf.yaml                         |   4 +
 CHANGELOG.md                      | 152 ++++++++++++++++++++++++++++++++++++++
 apisix/core/version.lua           |   2 +-
 docs/en/latest/building-apisix.md |   2 +-
 docs/en/latest/config.json        |   2 +-
 docs/zh/latest/CHANGELOG.md       | 150 +++++++++++++++++++++++++++++++++++++
 docs/zh/latest/building-apisix.md |   2 +-
 docs/zh/latest/config.json        |   2 +-
 rockspec/apisix-2.99.0-0.rockspec | 104 ++++++++++++++++++++++++++
 9 files changed, 415 insertions(+), 5 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index 3a54fd017..9038b5c11 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/2.99:
+        required_pull_request_reviews:
+          require_code_owner_reviews: true
+          required_approving_review_count: 2
       release/2.15:
         required_pull_request_reviews:
           require_code_owner_reviews: true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 45fee3ac5..8da19cb39 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@ title: Changelog
 
 ## Table of Contents
 
+- [3.0.0-beta](#300-beta)
 - [2.15.0](#2150)
 - [2.14.1](#2141)
 - [2.14.0](#2140)
@@ -61,6 +62,157 @@ title: Changelog
 - [0.7.0](#070)
 - [0.6.0](#060)
 
+## 3.0.0-beta
+
+Here we use 2.99.0 as the version number in the source code instead of the code name
+`3.0.0-beta` for two reasons:
+
+1. avoid unexpected errors when some programs try to compare the
+version, as `3.0.0-beta` contains `3.0.0` and is longer than it.
+2. some package system might not allow package which has a suffix
+after the version number.
+
+### Change
+
+#### Moves the config_center, etcd and Admin API configuration to the deployment
+
+We've adjusted the configuration in the static configuration file, so you need to update the configuration in `config.yaml` as well:
+
+- The `config_center` function is now implemented by `config_provider` under `deployment`: [#7901](https://github.com/apache/apisix/pull/7901)
+- The `etcd` field is moved to `deployment`: [#7860](https://github.com/apache/apisix/pull/7860)
+- The following Admin API configuration is moved to the `admin` field under `deployment`: [#7823](https://github.com/apache/apisix/pull/7823)
+    - admin_key
+    - enable_admin_cors
+    - allow_admin
+    - admin_listen
+    - https_admin
+    - admin_api_mtls
+    - admin_api_version
+
+You can refer to the latest `config-default.yaml` for details.
+
+#### Removing multiple deprecated configurations
+
+With the new 3.0 release, we took the opportunity to clean out many configurations that were previously marked as deprecated.
+
+In the static configuration, we removed several fields as follows:
+
+- Removed `enable_http2` and `listen_port` from `apisix.ssl`: [#7717](https://github.com/apache/apisix/pull/7717)
+- Removed `apisix.port_admin`: [#7716](https://github.com/apache/apisix/pull/7716)
+- Removed `etcd.health_check_retry`: [#7676](https://github.com/apache/apisix/pull/7676)
+- Removed `nginx_config.http.lua_shared_dicts`: [#7677](https://github.com/apache/apisix/pull/7677)
+- Removed `nginx_config.http.real_ip_header`: [#7696](https://github.com/apache/apisix/pull/7696)
+
+In the dynamic configuration, we made the following adjustments:
+
+- Moved `disable` of the plugin configuration under `_meta`: [#7707](https://github.com/apache/apisix/pull/7707)
+- Removed `service_protocol` from the Route: [#7701](https://github.com/apache/apisix/pull/7701)
+
+There are also specific plugin level changes:
+
+- Removed `audience` field from authz-keycloak: [#7683](https://github.com/apache/apisix/pull/7683)
+- Removed `upstream` field from mqtt-proxy: [#7694](https://github.com/apache/apisix/pull/7694)
+- tcp-related configuration placed under the `tcp` field in error-log-logger: [#7700](https://github.com/apache/apisix/pull/7700)
+- Removed `max_retry_times` and `retry_interval` fields from syslog: [#7699](https://github.com/apache/apisix/pull/7699)
+- The `scheme` field has been removed from proxy-rewrite: [#7695](https://github.com/apache/apisix/pull/7695)
+
+#### New Admin API response format
+
+We have adjusted the response format of the Admin API in several PRs as follows:
+
+- [#7630](https://github.com/apache/apisix/pull/7630)
+- [#7622](https://github.com/apache/apisix/pull/7622)
+
+The new response format is shown below:
+
+Returns a single configuration:
+
+```json
+{
+  "modifiedIndex": 2685183,
+  "value": {
+    "id": "1",
+    ...
+  },
+  "key": "/apisix/routes/1",
+  "createdIndex": 2684956
+}
+```
+
+Returns multiple configurations:
+
+```json
+{
+  "list": [
+    {
+      "modifiedIndex": 2685183,
+      "value": {
+        "id": "1",
+        ...
+      },
+      "key": "/apisix/routes/1",
+      "createdIndex": 2684956
+    },
+    {
+      "modifiedIndex": 2685163,
+      "value": {
+        "id": "2",
+        ...
+      },
+      "key": "/apisix/routes/2",
+      "createdIndex": 2685163
+    }
+  ],
+  "total": 2
+}
+```
+
+#### Other
+
+- Port of Admin API changed to 9180: [#7806](https://github.com/apache/apisix/pull/7806)
+- We only support OpenResty 1.19.3.2 and above: [#7625](https://github.com/apache/apisix/pull/7625)
+- Adjusted the priority of the Plugin Config object so that the priority of a plugin configuration with the same name changes from Consumer > Plugin Config > Route > Service to Consumer > Route > Plugin Config > Service: [#7614](https://github. com/apache/apisix/pull/7614)
+
+### Core
+
+- Integrating grpc-client-nginx-module to APISIX: [#7917](https://github.com/apache/apisix/pull/7917)
+- k8s service discovery support for configuring multiple clusters: [#7895](https://github.com/apache/apisix/pull/7895)
+
+### Plugin
+
+- Support for injecting header with specified prefix in opentelemetry plugin: [#7822](https://github.com/apache/apisix/pull/7822)
+- Added openfunction plugin: [#7634](https://github.com/apache/apisix/pull/7634)
+- Added elasticsearch-logger plugin: [#7643](https://github.com/apache/apisix/pull/7643)
+- response-rewrite plugin supports adding response bodies: [#7794](https://github.com/apache/apisix/pull/7794)
+- log-rorate supports specifying the maximum size to cut logs: [#7749](https://github.com/apache/apisix/pull/7749)
+- Added workflow plug-in.
+    - [#7760](https://github.com/apache/apisix/pull/7760)
+    - [#7771](https://github.com/apache/apisix/pull/7771)
+- Added Tencent Cloud Log Service plugin: [#7593](https://github.com/apache/apisix/pull/7593)
+- jwt-auth supports ES256 algorithm: [#7627](https://github.com/apache/apisix/pull/7627)
+- ldap-auth internal implementation, switching from lualdap to lua-resty-ldap: [#7590](https://github.com/apache/apisix/pull/7590)
+- http request metrics within the prometheus plugin supports setting additional labels via variables: [#7549](https://github.com/apache/apisix/pull/7549)
+- The clickhouse-logger plugin supports specifying multiple clickhouse endpoints: [#7517](https://github.com/apache/apisix/pull/7517)
+
+### Bugfix
+
+- gRPC proxy sets :authority request header to configured upstream Host: [#7939](https://github.com/apache/apisix/pull/7939)
+- response-rewrite writing to an empty body may cause AIPSIX to fail to respond to the request: [#7836](https://github.com/apache/apisix/pull/7836)
+- Fix the problem that when using Plugin Config and Consumer at the same time, there is a certain probability that the plugin configuration is not updated: [#7965](https://github.com/apache/apisix/pull/7965)
+- Only reopen log files once when log cutting: [#7869](https://github.com/apache/apisix/pull/7869)
+- Passive health checks should not be enabled by default: [#7850](https://github.com/apache/apisix/pull/7850)
+- The zipkin plugin should pass trace IDs upstream even if it does not sample: [#7833](https://github.com/apache/apisix/pull/7833)
+- Correction of opentelemetry span kind to server: [#7830](https://github.com/apache/apisix/pull/7830)
+- in limit-count plugin, different routes with the same configuration should not share the same counter: [#7750](https://github.com/apache/apisix/pull/7750)
+- Fix occasional exceptions thrown when removing clean_handler: [#7648](https://github.com/apache/apisix/pull/7648)
+- Allow direct use of IPv6 literals when configuring upstream nodes: [#7594](https://github.com/apache/apisix/pull/7594)
+- The wolf-rbac plugin adjusts the way it responds to errors:
+    - [#7561](https://github.com/apache/apisix/pull/7561)
+    - [#7497](https://github.com/apache/apisix/pull/7497)
+- the phases after proxy didn't run when 500 error happens before proxy: [#7703](https://github.com/apache/apisix/pull/7703)
+- avoid error when multiple plugins associated with consumer and have rewrite phase: [#7531](https://github.com/apache/apisix/pull/7531)
+- upgrade lua-resty-etcd to 1.8.3 which fixes various issues: [#7565](https://github.com/apache/apisix/pull/7565)
+
 ## 2.15.0
 
 ### Change
diff --git a/apisix/core/version.lua b/apisix/core/version.lua
index 242b667a7..3a6865a3b 100644
--- a/apisix/core/version.lua
+++ b/apisix/core/version.lua
@@ -20,5 +20,5 @@
 -- @module core.version
 
 return {
-    VERSION = "2.15.0"
+    VERSION = "2.99.0"
 }
diff --git a/docs/en/latest/building-apisix.md b/docs/en/latest/building-apisix.md
index 64574cb98..eb7dd7fd9 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.15.0'
+APISIX_VERSION='2.99.0'
 mkdir apisix-${APISIX_VERSION}
 ```
 
diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json
index 478781cf0..5f75c3249 100644
--- a/docs/en/latest/config.json
+++ b/docs/en/latest/config.json
@@ -1,5 +1,5 @@
 {
-  "version": "2.15.0",
+  "version": "2.99.0",
   "sidebar": [
     {
       "type": "doc",
diff --git a/docs/zh/latest/CHANGELOG.md b/docs/zh/latest/CHANGELOG.md
index a7cc1333b..a7907fd2d 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-beta](#300-beta)
 - [2.15.0](#2150)
 - [2.14.1](#2141)
 - [2.14.0](#2140)
@@ -61,6 +62,155 @@ title: CHANGELOG
 - [0.7.0](#070)
 - [0.6.0](#060)
 
+## 3.0.0-beta
+
+这里我们使用 `2.99.0` 作为源代码中的版本号,而不是代码名称
+`3.0.0-beta`,有两个原因。
+
+1. 避免在一些程序试图比较版本时出现意外的错误,因为 `3.0.0-beta` 包含 `3.0.0` 并且比它长。
+2. 一些软件包系统可能不允许在版本号后面有一个后缀。
+
+### Change
+
+#### 移动 config_center、etcd 和 Admin API 的配置到 deployment 下面
+
+我们调整了下静态配置文件里面的配置,所以你需要同步更新下 config.yaml 里面的配置了:
+
+- `config_center` 功能改由 `deployment` 下面的 `config_provider` 实现: [#7901](https://github.com/apache/apisix/pull/7901)
+- `etcd` 字段整体搬迁到 `deployment` 下面: [#7860](https://github.com/apache/apisix/pull/7860)
+- 以下的 Admin API 配置移动到 `deployment` 下面的 `admin` 字段:[#7823](https://github.com/apache/apisix/pull/7823)
+    - admin_key
+    - enable_admin_cors
+    - allow_admin
+    - admin_listen
+    - https_admin
+    - admin_api_mtls
+    - admin_api_version
+
+具体可以参考最新的 config-default.yaml。
+
+#### 移除多个已废弃的配置
+
+借着 3.0 新版本的机会,我们把许多之前标记为 deprecated 的配置清理出去。
+
+在静态配置中,我们移除了以下若干字段:
+
+- 移除 `apisix.ssl` 中的 `enable_http2` 和 `listen_port`:[#7717](https://github.com/apache/apisix/pull/7717)
+- 移除 `apisix.port_admin`: [#7716](https://github.com/apache/apisix/pull/7716)
+- 移除 `etcd.health_check_retry`: [#7676](https://github.com/apache/apisix/pull/7676)
+- 移除 `nginx_config.http.lua_shared_dicts`: [#7677](https://github.com/apache/apisix/pull/7677)
+- 移除 `nginx_config.http.real_ip_header`: [#7696](https://github.com/apache/apisix/pull/7696)
+
+在动态配置中,我们做了以下调整:
+
+- 将插件配置的 `disable` 移到 `_meta` 下面:[#7707](https://github.com/apache/apisix/pull/7707)
+- 从 Route 里面移除了 `service_protocol`:[#7701](https://github.com/apache/apisix/pull/7701)
+
+此外还有具体插件级别上的改动:
+
+- authz-keycloak 中移除了 `audience` 字段: [#7683](https://github.com/apache/apisix/pull/7683)
+- mqtt-proxy 中移除了 `upstream` 字段:[#7694](https://github.com/apache/apisix/pull/7694)
+- error-log-logger 中把 tcp 相关配置放到 `tcp` 字段下面:[#7700](https://github.com/apache/apisix/pull/7700)
+- syslog 中移除了 `max_retry_times` 和 `retry_interval` 字段: [#7699](https://github.com/apache/apisix/pull/7699)
+- proxy-rewrite 中移除了 `scheme` 字段: [#7695](https://github.com/apache/apisix/pull/7695)
+
+#### 新的 Admin API 响应格式
+
+我们在以下若干个 PR 中调整了 Admin API 的响应格式:
+
+- [#7630](https://github.com/apache/apisix/pull/7630)
+- [#7622](https://github.com/apache/apisix/pull/7622)
+
+新的响应格式展示如下:
+
+返回单个配置:
+
+```json
+{
+  "modifiedIndex": 2685183,
+  "value": {
+    "id": "1",
+    ...
+  },
+  "key": "/apisix/routes/1",
+  "createdIndex": 2684956
+}
+```
+
+返回多个配置:
+
+```json
+{
+  "list": [
+    {
+      "modifiedIndex": 2685183,
+      "value": {
+        "id": "1",
+        ...
+      },
+      "key": "/apisix/routes/1",
+      "createdIndex": 2684956
+    },
+    {
+      "modifiedIndex": 2685163,
+      "value": {
+        "id": "2",
+        ...
+      },
+      "key": "/apisix/routes/2",
+      "createdIndex": 2685163
+    }
+  ],
+  "total": 2
+}
+```
+
+#### 其他
+
+- Admin API 的端口改为 9180:[#7806](https://github.com/apache/apisix/pull/7806)
+- 我们只支持 OpenResty 1.19.3.2 及以上的版本:[#7625](https://github.com/apache/apisix/pull/7625)
+- 调整了 Plugin Config 对象的优先级,同名插件配置的优先级由 Consumer > Plugin Config > Route > Service 变成 Consumer > Route > Plugin Config > Service: [#7614](https://github.com/apache/apisix/pull/7614)
+
+### Core
+
+- 集成 grpc-client-nginx-module 到 APISIX: [#7917](https://github.com/apache/apisix/pull/7917)
+- k8s 服务发现支持配置多个集群:[#7895](https://github.com/apache/apisix/pull/7895)
+
+### Plugin
+
+- 支持在 opentelemetry 插件里注入指定前缀的 header:[#7822](https://github.com/apache/apisix/pull/7822)
+- 新增 openfunction 插件:[#7634](https://github.com/apache/apisix/pull/7634)
+- 新增 elasticsearch-logger 插件:[#7643](https://github.com/apache/apisix/pull/7643)
+- response-rewrite 插件支持增加响应体:[#7794](https://github.com/apache/apisix/pull/7794)
+- log-rorate 支持指定最大大小来切割日志:[#7749](https://github.com/apache/apisix/pull/7749)
+- 新增 workflow 插件:
+    - [#7760](https://github.com/apache/apisix/pull/7760)
+    - [#7771](https://github.com/apache/apisix/pull/7771)
+- 新增 Tencent Cloud Log Service 插件:[#7593](https://github.com/apache/apisix/pull/7593)
+- jwt-auth 支持 ES256 算法: [#7627](https://github.com/apache/apisix/pull/7627)
+- ldap-auth 内部实现,由 lualdap 换成 lua-resty-ldap:[#7590](https://github.com/apache/apisix/pull/7590)
+- prometheus 插件内的 http request metrics 支持通过变量来设置额外的 labels:[#7549](https://github.com/apache/apisix/pull/7549)
+- clickhouse-logger 插件支持指定多个 clickhouse endpoints: [#7517](https://github.com/apache/apisix/pull/7517)
+
+### Bugfix
+
+- gRPC 代理设置 :authority 请求头为配置的上游 Host: [#7939](https://github.com/apache/apisix/pull/7939)
+- response-rewrite 写入空 body 时有可能导致 AIPSIX 无法响应该请求:[#7836](https://github.com/apache/apisix/pull/7836)
+- 修复同时使用 Plugin Config 和 Consumer,有一定概率发生插件配置没有更新的问题:[#7965](https://github.com/apache/apisix/pull/7965)
+- 日志切割时,只 reopen 一次日志文件:[#7869](https://github.com/apache/apisix/pull/7869)
+- 默认不应开启被动健康检查: [#7850](https://github.com/apache/apisix/pull/7850)
+- zipkin 插件即使不进行 sample,也要向上游传递 trace IDs: [#7833](https://github.com/apache/apisix/pull/7833)
+- 将 opentelemetry 的 span kind 更正为 server: [#7830](https://github.com/apache/apisix/pull/7830)
+- limit-count 插件中,同样配置的不同路由不应该共享同一个计数器:[#7750](https://github.com/apache/apisix/pull/7750)
+- 修复偶发的移除 clean_handler 时抛异常的问题: [#7648](https://github.com/apache/apisix/pull/7648)
+- 允许配置上游节点时直接使用 IPv6 字面量: [#7594](https://github.com/apache/apisix/pull/7594)
+- wolf-rbac 插件调整对错误的响应方式:
+    - [#7561](https://github.com/apache/apisix/pull/7561)
+    - [#7497](https://github.com/apache/apisix/pull/7497)
+- 当代理到上游之前发生 500 错误时,代理到上游之后运行的插件不应被跳过 [#7703](https://github.com/apache/apisix/pull/7703)
+- 当 consumer 上绑定了多个插件且该插件定义了 rewrite 方法时,避免抛出异常 [#7531](https://github.com/apache/apisix/pull/7531)
+- 升级 lua-resty-etcd 到 1.8.3。该版本修复了若干问题。 [#7565](https://github.com/apache/apisix/pull/7565)
+
 ## 2.15.0
 
 ### Change
diff --git a/docs/zh/latest/building-apisix.md b/docs/zh/latest/building-apisix.md
index a9f6c9355..ec704a871 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.15.0'
+APISIX_VERSION='2.99.0'
 mkdir apisix-${APISIX_VERSION}
 ```
 
diff --git a/docs/zh/latest/config.json b/docs/zh/latest/config.json
index 260f52bb4..da96eb5da 100644
--- a/docs/zh/latest/config.json
+++ b/docs/zh/latest/config.json
@@ -1,5 +1,5 @@
 {
-  "version": "2.15.0",
+  "version": "2.99.0",
   "sidebar": [
     {
       "type": "doc",
diff --git a/rockspec/apisix-2.99.0-0.rockspec b/rockspec/apisix-2.99.0-0.rockspec
new file mode 100644
index 000000000..21fdb7f66
--- /dev/null
+++ b/rockspec/apisix-2.99.0-0.rockspec
@@ -0,0 +1,104 @@
+--
+-- 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 = "2.99.0-0"
+supported_platforms = {"linux", "macosx"}
+
+source = {
+    url = "git://github.com/apache/apisix",
+    branch = "2.99.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",
+    "grpc-client-nginx-module = 0.2.2",
+    "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.5.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)",
+    },
+}