From ed108273436cb3d1f4f927f0a032679fb520d506 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 26 Dec 2023 10:54:48 +0800 Subject: [PATCH 1/7] docs: README spell --- README-CN.md | 2 +- README-RU.md | 2 +- README.md | 2 +- apps/emqx/src/bpapi/README.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README-CN.md b/README-CN.md index f989b9bed..84a72912d 100644 --- a/README-CN.md +++ b/README-CN.md @@ -60,7 +60,7 @@ EMQX Cloud 文档:[docs.emqx.com/zh/cloud/latest/](https://docs.emqx.com/zh/cl - 访问 [EMQ 问答社区](https://askemq.com/) 以获取帮助,也可以分享您的想法或项目。 - 添加小助手微信号 `emqmkt`,加入 EMQ 微信技术交流群。 - 加入我们的 [Discord](https://discord.gg/xYGf3fQnES),参于实时讨论。 -- 关注我们的 [bilibili](https://space.bilibili.com/522222081),获取最新物联网技术分享。 +- 关注我们的 [Bilibili](https://space.bilibili.com/522222081),获取最新物联网技术分享。 - 关注我们的 [微博](https://weibo.com/emqtt) 或 [Twitter](https://twitter.com/EMQTech),获取 EMQ 最新资讯。 ## 相关资源 diff --git a/README-RU.md b/README-RU.md index 6cb7fda6a..9f8347e2b 100644 --- a/README-RU.md +++ b/README-RU.md @@ -32,7 +32,7 @@ docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p Чтобы ознакомиться с функциональностью EMQX, пожалуйста, следуйте [руководству по началу работы](https://www.emqx.io/docs/en/v5.0/getting-started/getting-started.html#start-emqx). -#### Запуск кластера EMQX на kubernetes +#### Запуск кластера EMQX на Kubernetes [Документация по EMQX Operator](https://github.com/emqx/emqx-operator/blob/main/docs/en_US/getting-started/getting-started.md). diff --git a/README.md b/README.md index 3fda5999c..622cbfc99 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p Next, please follow the [Deploy with Docker](https://www.emqx.io/docs/en/v5.1/deploy/install-docker.html) guide for further instructions. -#### Run EMQX cluster on kubernetes +#### Run EMQX cluster on Kubernetes Please consult official [EMQX Operator](https://github.com/emqx/emqx-operator/blob/main/docs/en_US/getting-started/getting-started.md) documentation for details. diff --git a/apps/emqx/src/bpapi/README.md b/apps/emqx/src/bpapi/README.md index 9c4bef959..3b94c6f50 100644 --- a/apps/emqx/src/bpapi/README.md +++ b/apps/emqx/src/bpapi/README.md @@ -137,7 +137,7 @@ to negotiate protocol version: protocol version supported by the remote node `Node`. `emqx_bpapi:supported_version(ProtocolId)` returns maximum protocol version that is supported by all nodes in the cluster. It can -be useful when the protocol involves multicalls or multicasts. +be useful when the protocol involves multi-calls or multi-casts. The business logic can assume that the supported protocol version is not going to change on the remote node, while it is running. So it is From 572f465346e1fbeb85c01f491f3b5e0f3b6b5012 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 26 Dec 2023 17:24:57 +0800 Subject: [PATCH 2/7] fix(typo): sync to enterprise - follow up emqx/emqx#10398 --- .../charts/emqx-enterprise/templates/StatefulSet.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/deploy/charts/emqx-enterprise/templates/StatefulSet.yaml b/deploy/charts/emqx-enterprise/templates/StatefulSet.yaml index a70b6d168..624f0f2ab 100644 --- a/deploy/charts/emqx-enterprise/templates/StatefulSet.yaml +++ b/deploy/charts/emqx-enterprise/templates/StatefulSet.yaml @@ -110,14 +110,14 @@ spec: - name: wss containerPort: {{ .Values.emqxConfig.EMQX_LISTENERS__WSS__DEFAULT__BIND | default 8084 }} - name: dashboard - containerPort: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENER__HTTP__BIND | default 18083 }} + containerPort: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTP__BIND | default 18083 }} {{- if not (empty .Values.emqxConfig.EMQX_LISTENERS__TCP__INTERNAL__BIND) }} - name: internalmqtt containerPort: {{ .Values.emqxConfig.EMQX_LISTENERS__TCP__INTERNAL__BIND }} {{- end }} - {{- if not (empty .Values.emqxConfig.EMQX_DASHBOARD__LISTENER__HTTPS__BIND) }} + {{- if not (empty .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTPS__BIND) }} - name: dashboardtls - containerPort: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENER__HTTPS__BIND }} + containerPort: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTPS__BIND }} {{- end }} - name: ekka containerPort: 4370 @@ -152,14 +152,14 @@ spec: readinessProbe: httpGet: path: /status - port: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENER__HTTP__BIND | default 18083 }} + port: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTP__BIND | default 18083 }} initialDelaySeconds: 10 periodSeconds: 5 failureThreshold: 30 livenessProbe: httpGet: path: /status - port: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENER__HTTP__BIND | default 18083 }} + port: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTP__BIND | default 18083 }} initialDelaySeconds: 60 periodSeconds: 30 failureThreshold: 10 From a35ed4dacbf93fff2f63c6a5c4c43dcb7a01ed07 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 26 Dec 2023 17:30:49 +0800 Subject: [PATCH 3/7] docs: enhance markdown indent and fix typos --- deploy/charts/emqx-enterprise/README.md | 153 ++++++++++++----------- deploy/charts/emqx/README.md | 155 ++++++++++++------------ 2 files changed, 153 insertions(+), 155 deletions(-) diff --git a/deploy/charts/emqx-enterprise/README.md b/deploy/charts/emqx-enterprise/README.md index 1d4898624..d48e1f0e1 100644 --- a/deploy/charts/emqx-enterprise/README.md +++ b/deploy/charts/emqx-enterprise/README.md @@ -11,14 +11,14 @@ This chart bootstraps an emqx deployment on a Kubernetes cluster using the Helm To install the chart with the release name `my-emqx`: -+ From github ++ From Github ``` $ git clone https://github.com/emqx/emqx.git $ cd emqx/deploy/charts/emqx-enterprise $ helm install my-emqx . ``` -+ From chart repos ++ From chart Repos ``` helm repo add emqx https://repos.emqx.io/charts helm install my-emqx emqx/emqx-enterprise @@ -37,85 +37,85 @@ $ helm del my-emqx The following table lists the configurable parameters of the emqx chart and their default values. -| Parameter | Description | Default Value | +| Parameter | Description | Default Value | |--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------| -| `replicaCount` | It is recommended to have odd number of nodes in a cluster, otherwise the emqx cluster cannot be automatically healed in case of net-split. | 3 | -| `image.repository` | EMQX Image name | emqx/emqx-enterprise | -| `image.pullPolicy` | The image pull policy | IfNotPresent | -| `image.pullSecrets ` | The image pull secrets | `[]` (does not add image pull secrets to deployed pods) | -| `serviceAccount.create` | If `true`, create a new service account | `true` | -| `serviceAccount.name` | Service account to be used. If not set and `serviceAccount.create` is `true`, a name is generated using the fullname template | | -| `serviceAccount.annotations` | Annotations to add to the service account | | -| `envFromSecret` | The name pull a secret in the same kubernetes namespace which contains values that will be added to the environment | nil | -| `recreatePods` | Forces the recreation of pods during upgrades, which can be useful to always apply the most recent configuration. | false | -| `podAnnotations ` | Annotations for pod | `{}` | -| `podManagementPolicy` | To redeploy a chart with existing PVC(s), the value must be set to Parallel to avoid deadlock | `Parallel` | -| `persistence.enabled` | Enable EMQX persistence using PVC | false | -| `persistence.storageClass` | Storage class of backing PVC | `nil` (uses alpha storage class annotation) | -| `persistence.existingClaim` | EMQX data Persistent Volume existing claim name, evaluated as a template | "" | -| `persistence.accessMode` | PVC Access Mode for EMQX volume | ReadWriteOnce | -| `persistence.size` | PVC Storage Request for EMQX volume | 20Mi | -| `initContainers` | Containers that run before the creation of EMQX containers. They can contain utilities or setup scripts. | `{}` | -| `resources` | CPU/Memory resource requests/limits | {} | -| `extraVolumeMounts` | Additional volumeMounts to the default backend container. | [] | -| `extraVolumes` | Additional volumes to the default backend pod.| [] | -| `nodeSelector` | Node labels for pod assignment | `{}` | -| `tolerations` | Toleration labels for pod assignment | `[]` | -| `affinity` | Map of node/pod affinities | `{}` | -| `service.type` | Kubernetes Service type. | ClusterIP | -| `service.mqtt` | Port for MQTT. | 1883 | -| `service.mqttssl` | Port for MQTT(SSL). | 8883 | -| `service.ws` | Port for WebSocket/HTTP. | 8083 | -| `service.wss` | Port for WSS/HTTPS. | 8084 | -| `service.dashboard` | Port for dashboard and API. | 18083 | -| `service.nodePorts.mqtt` | Kubernetes node port for MQTT. | nil | -| `service.nodePorts.mqttssl` | Kubernetes node port for MQTT(SSL). | nil | -| `service.nodePorts.ws` | Kubernetes node port for WebSocket/HTTP. | nil | -| `service.nodePorts.wss` | Kubernetes node port for WSS/HTTPS. | nil | -| `service.nodePorts.dashboard` | Kubernetes node port for dashboard. | nil | -| `service.loadBalancerClass` | The load balancer implementation this Service belongs to | | -| `service.loadBalancerIP` | loadBalancerIP for Service | nil | -| `service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | [] | -| `service.externalIPs` | ExternalIPs for the service | [] | -| `service.externalTrafficPolicy` | External Traffic Policy for the service | `Cluster` -| `service.annotations` | Service/ServiceMonitor annotations | {}(evaluated as a template) | -| `service.labels` | Service/ServiceMontior labels | {}(evaluated as a template) | -| `ingress.dashboard.enabled` | Enable ingress for EMQX Dashboard | false | -| `ingress.dashboard.ingressClassName` | Set the ingress class for EMQX Dashboard | | -| `ingress.dashboard.path` | Ingress path for EMQX Dashboard | / | -| `ingress.dashboard.pathType` | Ingress pathType for EMQX Dashboard | `ImplementationSpecific` | -| `ingress.dashboard.hosts` | Ingress hosts for EMQX Dashboard | dashboard.emqx.local | -| `ingress.dashboard.tls` | Ingress tls for EMQX Dashboard | [] | -| `ingress.dashboard.annotations` | Ingress annotations for EMQX Dashboard | {} | -| `ingress.dashboard.ingressClassName` | Set the ingress class for EMQX Dashboard | | -| `ingress.mqtt.enabled` | Enable ingress for MQTT | false | -| `ingress.mqtt.ingressClassName` | Set the ingress class for MQTT | | -| `ingress.mqtt.path` | Ingress path for MQTT | / | -| `ingress.mqtt.pathType` | Ingress pathType for MQTT | `ImplementationSpecific` | -| `ingress.mqtt.hosts` | Ingress hosts for MQTT | mqtt.emqx.local | -| `ingress.mqtt.tls` | Ingress tls for MQTT | [] | -| `ingress.mqtt.annotations` | Ingress annotations for MQTT | {} | -| `ingress.mqtt.ingressClassName` | Set the ingress class for MQTT | | -| `metrics.enable` | If set to true, [prometheus-operator](https://github.com/prometheus-operator/prometheus-operator) needs to be installed, and emqx_prometheus needs to enable | false | -| `metrics.type` | Now we only supported "prometheus" | "prometheus" | -| `ssl.enabled` | Enable SSL support | false | -| `ssl.useExisting` | Use existing certificate or let cert-manager generate one | false | -| `ssl.existingName` | Name of existing certificate | emqx-tls | -| `ssl.dnsnames` | DNS name(s) for certificate to be generated | {} | -| `ssl.commonName` | Common name for or certificate to be generated | | -| `ssl.issuer.name` | Issuer name for certificate generation | letsencrypt-dns | -| `ssl.issuer.kind` | Issuer kind for certificate generation | ClusterIssuer | +| `replicaCount` | It is recommended to have odd number of nodes in a cluster, otherwise the emqx cluster cannot be automatically healed in case of net-split. | 3 | +| `image.repository` | EMQX Image name | emqx/emqx-enterprise | +| `image.pullPolicy` | The image pull policy | IfNotPresent | +| `image.pullSecrets ` | The image pull secrets | `[]` (does not add image pull secrets to deployed pods) | +| `serviceAccount.create` | If `true`, create a new service account | `true` | +| `serviceAccount.name` | Service account to be used. If not set and `serviceAccount.create` is `true`, a name is generated using the full-name template | | +| `serviceAccount.annotations` | Annotations to add to the service account | | +| `envFromSecret` | The name pull a secret in the same Kubernetes namespace which contains values that will be added to the environment | nil | +| `recreatePods` | Forces the recreation of pods during upgrades, which can be useful to always apply the most recent configuration. | false | +| `podAnnotations ` | Annotations for pod | `{}` | +| `podManagementPolicy` | To redeploy a chart with existing PVC(s), the value must be set to Parallel to avoid deadlock | `Parallel` | +| `persistence.enabled` | Enable EMQX persistence using PVC | false | +| `persistence.storageClass` | Storage class of backing PVC | `nil` (uses alpha storage class annotation) | +| `persistence.existingClaim` | EMQX data Persistent Volume existing claim name, evaluated as a template | "" | +| `persistence.accessMode` | PVC Access Mode for EMQX volume | ReadWriteOnce | +| `persistence.size` | PVC Storage Request for EMQX volume | 20Mi | +| `initContainers` | Containers that run before the creation of EMQX containers. They can contain utilities or setup scripts. | `{}` | +| `resources` | CPU/Memory resource requests/limits | {} | +| `extraVolumeMounts` | Additional volumeMounts to the default backend container. | [] | +| `extraVolumes` | Additional volumes to the default backend pod. | [] | +| `nodeSelector` | Node labels for pod assignment | `{}` | +| `tolerations` | Toleration labels for pod assignment | `[]` | +| `affinity` | Map of node/pod affinities | `{}` | +| `service.type` | Kubernetes Service type. | ClusterIP | +| `service.mqtt` | Port for MQTT. | 1883 | +| `service.mqttssl` | Port for MQTT(SSL). | 8883 | +| `service.ws` | Port for WebSocket/HTTP. | 8083 | +| `service.wss` | Port for WSS/HTTPS. | 8084 | +| `service.dashboard` | Port for dashboard and API. | 18083 | +| `service.nodePorts.mqtt` | Kubernetes node port for MQTT. | nil | +| `service.nodePorts.mqttssl` | Kubernetes node port for MQTT(SSL). | nil | +| `service.nodePorts.ws` | Kubernetes node port for WebSocket/HTTP. | nil | +| `service.nodePorts.wss` | Kubernetes node port for WSS/HTTPS. | nil | +| `service.nodePorts.dashboard` | Kubernetes node port for dashboard. | nil | +| `service.loadBalancerClass` | The load balancer implementation this Service belongs to | | +| `service.loadBalancerIP` | loadBalancerIP for Service | nil | +| `service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | [] | +| `service.externalIPs` | ExternalIPs for the service | [] | +| `service.externalTrafficPolicy` | External Traffic Policy for the service | `Cluster` | +| `service.annotations` | Service/ServiceMonitor annotations | {}(evaluated as a template) | +| `service.labels` | Service/ServiceMonitor labels | {}(evaluated as a template) | +| `ingress.dashboard.enabled` | Enable ingress for EMQX Dashboard | false | +| `ingress.dashboard.ingressClassName` | Set the ingress class for EMQX Dashboard | | +| `ingress.dashboard.path` | Ingress path for EMQX Dashboard | / | +| `ingress.dashboard.pathType` | Ingress pathType for EMQX Dashboard | `ImplementationSpecific` | +| `ingress.dashboard.hosts` | Ingress hosts for EMQX Dashboard | dashboard.emqx.local | +| `ingress.dashboard.tls` | Ingress tls for EMQX Dashboard | [] | +| `ingress.dashboard.annotations` | Ingress annotations for EMQX Dashboard | {} | +| `ingress.dashboard.ingressClassName` | Set the ingress class for EMQX Dashboard | | +| `ingress.mqtt.enabled` | Enable ingress for MQTT | false | +| `ingress.mqtt.ingressClassName` | Set the ingress class for MQTT | | +| `ingress.mqtt.path` | Ingress path for MQTT | / | +| `ingress.mqtt.pathType` | Ingress pathType for MQTT | `ImplementationSpecific` | +| `ingress.mqtt.hosts` | Ingress hosts for MQTT | mqtt.emqx.local | +| `ingress.mqtt.tls` | Ingress tls for MQTT | [] | +| `ingress.mqtt.annotations` | Ingress annotations for MQTT | {} | +| `ingress.mqtt.ingressClassName` | Set the ingress class for MQTT | | +| `metrics.enable` | If set to true, [prometheus-operator](https://github.com/prometheus-operator/prometheus-operator) needs to be installed, and emqx_prometheus needs to enable | false | +| `metrics.type` | Now we only supported "prometheus" | "prometheus" | +| `ssl.enabled` | Enable SSL support | false | +| `ssl.useExisting` | Use existing certificate or let cert-manager generate one | false | +| `ssl.existingName` | Name of existing certificate | emqx-tls | +| `ssl.dnsnames` | DNS name(s) for certificate to be generated | {} | +| `ssl.commonName` | Common name for or certificate to be generated | | +| `ssl.issuer.name` | Issuer name for certificate generation | letsencrypt-dns | +| `ssl.issuer.kind` | Issuer kind for certificate generation | ClusterIssuer | ## EMQX specific settings The following table lists the configurable [EMQX](https://www.emqx.io/)-specific parameters of the chart and their default values. -Parameter | Description | Default Value ---- | --- | --- -`emqxConfig` | Map of [configuration](https://www.emqx.io/docs/en/v5.0/admin/cfg.html) items -expressed as [environment variables](https://www.emqx.io/docs/en/v5.0/admin/cfg.html#environment-variables) (prefix `EMQX_` can be omitted) or using the configuration -files [namespaced dotted notation](https://www.emqx.io/docs/en/v5.0/admin/cfg.html#syntax) | `nil` -`emqxLicenseSecretName` | Name of the secret that holds the license information | `nil` +| Parameter | Description | Default Value | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|---------------| +| `emqxConfig` | Map of [configuration](https://www.emqx.io/docs/en/v5.0/admin/cfg.html) items | | +| expressed as [environment variables](https://www.emqx.io/docs/en/v5.0/admin/cfg.html#environment-variables) (prefix `EMQX_` can be omitted) or using the configuration | | | +| files [namespaced dotted notation](https://www.emqx.io/docs/en/v5.0/admin/cfg.html#syntax) | `nil` | | +| `emqxLicenseSecretName` | Name of the secret that holds the license information | `nil` | ## SSL settings `cert-manager` generates secrets with certificate data using the keys `tls.crt` and `tls.key`. The helm chart always mounts those keys as files to `/tmp/ssl/` @@ -136,9 +136,8 @@ In order to preserve the original client's IP address, you could change the emqx EMQX_LISTENERS__TCP__DEFAULT__PROXY_PROTOCOL: "true" ``` -With haproxy you'd also need the following ingress annotation: +With HAProxy you'd also need the following ingress annotation: ``` haproxy-ingress.github.io/proxy-protocol: "v2" ``` - diff --git a/deploy/charts/emqx/README.md b/deploy/charts/emqx/README.md index 010156eda..a06d12b5b 100644 --- a/deploy/charts/emqx/README.md +++ b/deploy/charts/emqx/README.md @@ -11,14 +11,14 @@ This chart bootstraps an emqx deployment on a Kubernetes cluster using the Helm To install the chart with the release name `my-emqx`: -+ From github ++ From Github ``` $ git clone https://github.com/emqx/emqx.git $ cd emqx/deploy/charts/emqx $ helm install my-emqx . ``` -+ From chart repos ++ From chart Repos ``` helm repo add emqx https://repos.emqx.io/charts helm install my-emqx emqx/emqx @@ -37,86 +37,86 @@ $ helm del my-emqx The following table lists the configurable parameters of the emqx chart and their default values. -| Parameter | Description | Default Value | +| Parameter | Description | Default Value | |--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------| -| `replicaCount` | It is recommended to have odd number of nodes in a cluster, otherwise the emqx cluster cannot be automatically healed in case of net-split. | 3 | -| `image.repository` | EMQX Image name | emqx/emqx | -| `image.pullPolicy` | The image pull policy | IfNotPresent | -| `image.pullSecrets ` | The image pull secrets | `[]` (does not add image pull secrets to deployed pods) | -| `serviceAccount.create` | If `true`, create a new service account | `true` | -| `serviceAccount.name` | Service account to be used. If not set and `serviceAccount.create` is `true`, a name is generated using the fullname template | | -| `serviceAccount.annotations` | Annotations to add to the service account | | -| `envFromSecret` | The name pull a secret in the same kubernetes namespace which contains values that will be added to the environment | nil | -| `recreatePods` | Forces the recreation of pods during upgrades, which can be useful to always apply the most recent configuration. | false | -| `podAnnotations ` | Annotations for pod | `{}` | -| `podManagementPolicy` | To redeploy a chart with existing PVC(s), the value must be set to Parallel to avoid deadlock | `Parallel` | -| `persistence.enabled` | Enable EMQX persistence using PVC | false | -| `persistence.storageClass` | Storage class of backing PVC | `nil` (uses alpha storage class annotation) | -| `persistence.existingClaim` | EMQX data Persistent Volume existing claim name, evaluated as a template | "" | -| `persistence.accessMode` | PVC Access Mode for EMQX volume | ReadWriteOnce | -| `persistence.size` | PVC Storage Request for EMQX volume | 20Mi | -| `initContainers` | Containers that run before the creation of EMQX containers. They can contain utilities or setup scripts. | `{}` | -| `resources` | CPU/Memory resource requests/limits | {} | -| `extraVolumeMounts` | Additional volumeMounts to the default backend container. | [] | -| `extraVolumes` | Additional volumes to the default backend pod.| [] | -| `nodeSelector` | Node labels for pod assignment | `{}` | -| `tolerations` | Toleration labels for pod assignment | `[]` | -| `affinity` | Map of node/pod affinities | `{}` | -| `topologySpreadConstraints` | List of topology spread constraints without labelSelector | `[]` | -| `service.type` | Kubernetes Service type. | ClusterIP | -| `service.mqtt` | Port for MQTT. | 1883 | -| `service.mqttssl` | Port for MQTT(SSL). | 8883 | -| `service.ws` | Port for WebSocket/HTTP. | 8083 | -| `service.wss` | Port for WSS/HTTPS. | 8084 | -| `service.dashboard` | Port for dashboard and API. | 18083 | -| `service.nodePorts.mqtt` | Kubernetes node port for MQTT. | nil | -| `service.nodePorts.mqttssl` | Kubernetes node port for MQTT(SSL). | nil | -| `service.nodePorts.ws` | Kubernetes node port for WebSocket/HTTP. | nil | -| `service.nodePorts.wss` | Kubernetes node port for WSS/HTTPS. | nil | -| `service.nodePorts.dashboard` | Kubernetes node port for dashboard. | nil | -| `service.loadBalancerClass` | The load balancer implementation this Service belongs to | | -| `service.loadBalancerIP` | loadBalancerIP for Service | nil | -| `service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | [] | -| `service.externalIPs` | ExternalIPs for the service | [] | -| `service.externalTrafficPolicy` | External Traffic Policy for the service | `Cluster` -| `service.annotations` | Service/ServiceMonitor annotations | {}(evaluated as a template) | -| `service.labels` | Service/ServiceMontior labels | {}(evaluated as a template) | -| `ingress.dashboard.enabled` | Enable ingress for EMQX Dashboard | false | -| `ingress.dashboard.ingressClassName` | Set the ingress class for EMQX Dashboard | | -| `ingress.dashboard.path` | Ingress path for EMQX Dashboard | / | -| `ingress.dashboard.pathType` | Ingress pathType for EMQX Dashboard | `ImplementationSpecific` | -| `ingress.dashboard.hosts` | Ingress hosts for EMQX Dashboard | dashboard.emqx.local | -| `ingress.dashboard.tls` | Ingress tls for EMQX Dashboard | [] | -| `ingress.dashboard.annotations` | Ingress annotations for EMQX Dashboard | {} | -| `ingress.dashboard.ingressClassName` | Set the ingress class for EMQX Dashboard | | -| `ingress.mqtt.enabled` | Enable ingress for MQTT | false | -| `ingress.mqtt.ingressClassName` | Set the ingress class for MQTT | | -| `ingress.mqtt.path` | Ingress path for MQTT | / | -| `ingress.mqtt.pathType` | Ingress pathType for MQTT | `ImplementationSpecific` | -| `ingress.mqtt.hosts` | Ingress hosts for MQTT | mqtt.emqx.local | -| `ingress.mqtt.tls` | Ingress tls for MQTT | [] | -| `ingress.mqtt.annotations` | Ingress annotations for MQTT | {} | -| `ingress.mqtt.ingressClassName` | Set the ingress class for MQTT | | -| `metrics.enable` | If set to true, [prometheus-operator](https://github.com/prometheus-operator/prometheus-operator) needs to be installed, and emqx_prometheus needs to enable | false | -| `metrics.type` | Now we only supported "prometheus" | "prometheus" | -| `ssl.enabled` | Enable SSL support | false | -| `ssl.useExisting` | Use existing certificate or let cert-manager generate one | false | -| `ssl.existingName` | Name of existing certificate | emqx-tls | -| `ssl.commonName` | Common name for or certificate to be generated | | -| `ssl.dnsnames` | DNS name(s) for certificate to be generated | {} | -| `ssl.issuer.name` | Issuer name for certificate generation | letsencrypt-dns | -| `ssl.issuer.kind` | Issuer kind for certificate generation | ClusterIssuer | +| `replicaCount` | It is recommended to have odd number of nodes in a cluster, otherwise the emqx cluster cannot be automatically healed in case of net-split. | 3 | +| `image.repository` | EMQX Image name | emqx/emqx | +| `image.pullPolicy` | The image pull policy | IfNotPresent | +| `image.pullSecrets ` | The image pull secrets | `[]` (does not add image pull secrets to deployed pods) | +| `serviceAccount.create` | If `true`, create a new service account | `true` | +| `serviceAccount.name` | Service account to be used. If not set and `serviceAccount.create` is `true`, a name is generated using the full-name template | | +| `serviceAccount.annotations` | Annotations to add to the service account | | +| `envFromSecret` | The name pull a secret in the same Kubernetes namespace which contains values that will be added to the environment | nil | +| `recreatePods` | Forces the recreation of pods during upgrades, which can be useful to always apply the most recent configuration. | false | +| `podAnnotations ` | Annotations for pod | `{}` | +| `podManagementPolicy` | To redeploy a chart with existing PVC(s), the value must be set to Parallel to avoid deadlock | `Parallel` | +| `persistence.enabled` | Enable EMQX persistence using PVC | false | +| `persistence.storageClass` | Storage class of backing PVC | `nil` (uses alpha storage class annotation) | +| `persistence.existingClaim` | EMQX data Persistent Volume existing claim name, evaluated as a template | "" | +| `persistence.accessMode` | PVC Access Mode for EMQX volume | ReadWriteOnce | +| `persistence.size` | PVC Storage Request for EMQX volume | 20Mi | +| `initContainers` | Containers that run before the creation of EMQX containers. They can contain utilities or setup scripts. | `{}` | +| `resources` | CPU/Memory resource requests/limits | {} | +| `extraVolumeMounts` | Additional volumeMounts to the default backend container. | [] | +| `extraVolumes` | Additional volumes to the default backend pod. | [] | +| `nodeSelector` | Node labels for pod assignment | `{}` | +| `tolerations` | Toleration labels for pod assignment | `[]` | +| `affinity` | Map of node/pod affinities | `{}` | +| `topologySpreadConstraints` | List of topology spread constraints without labelSelector | `[]` | +| `service.type` | Kubernetes Service type. | ClusterIP | +| `service.mqtt` | Port for MQTT. | 1883 | +| `service.mqttssl` | Port for MQTT(SSL). | 8883 | +| `service.ws` | Port for WebSocket/HTTP. | 8083 | +| `service.wss` | Port for WSS/HTTPS. | 8084 | +| `service.dashboard` | Port for dashboard and API. | 18083 | +| `service.nodePorts.mqtt` | Kubernetes node port for MQTT. | nil | +| `service.nodePorts.mqttssl` | Kubernetes node port for MQTT(SSL). | nil | +| `service.nodePorts.ws` | Kubernetes node port for WebSocket/HTTP. | nil | +| `service.nodePorts.wss` | Kubernetes node port for WSS/HTTPS. | nil | +| `service.nodePorts.dashboard` | Kubernetes node port for dashboard. | nil | +| `service.loadBalancerClass` | The load balancer implementation this Service belongs to | | +| `service.loadBalancerIP` | loadBalancerIP for Service | nil | +| `service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | [] | +| `service.externalIPs` | ExternalIPs for the service | [] | +| `service.externalTrafficPolicy` | External Traffic Policy for the service | `Cluster` | +| `service.annotations` | Service/ServiceMonitor annotations | {}(evaluated as a template) | +| `service.labels` | Service/ServiceMonitor labels | {}(evaluated as a template) | +| `ingress.dashboard.enabled` | Enable ingress for EMQX Dashboard | false | +| `ingress.dashboard.ingressClassName` | Set the ingress class for EMQX Dashboard | | +| `ingress.dashboard.path` | Ingress path for EMQX Dashboard | / | +| `ingress.dashboard.pathType` | Ingress pathType for EMQX Dashboard | `ImplementationSpecific` | +| `ingress.dashboard.hosts` | Ingress hosts for EMQX Dashboard | dashboard.emqx.local | +| `ingress.dashboard.tls` | Ingress tls for EMQX Dashboard | [] | +| `ingress.dashboard.annotations` | Ingress annotations for EMQX Dashboard | {} | +| `ingress.dashboard.ingressClassName` | Set the ingress class for EMQX Dashboard | | +| `ingress.mqtt.enabled` | Enable ingress for MQTT | false | +| `ingress.mqtt.ingressClassName` | Set the ingress class for MQTT | | +| `ingress.mqtt.path` | Ingress path for MQTT | / | +| `ingress.mqtt.pathType` | Ingress pathType for MQTT | `ImplementationSpecific` | +| `ingress.mqtt.hosts` | Ingress hosts for MQTT | mqtt.emqx.local | +| `ingress.mqtt.tls` | Ingress tls for MQTT | [] | +| `ingress.mqtt.annotations` | Ingress annotations for MQTT | {} | +| `ingress.mqtt.ingressClassName` | Set the ingress class for MQTT | | +| `metrics.enable` | If set to true, [prometheus-operator](https://github.com/prometheus-operator/prometheus-operator) needs to be installed, and emqx_prometheus needs to enable | false | +| `metrics.type` | Now we only supported "prometheus" | "prometheus" | +| `ssl.enabled` | Enable SSL support | false | +| `ssl.useExisting` | Use existing certificate or let cert-manager generate one | false | +| `ssl.existingName` | Name of existing certificate | emqx-tls | +| `ssl.commonName` | Common name for or certificate to be generated | | +| `ssl.dnsnames` | DNS name(s) for certificate to be generated | {} | +| `ssl.issuer.name` | Issuer name for certificate generation | letsencrypt-dns | +| `ssl.issuer.kind` | Issuer kind for certificate generation | ClusterIssuer | ## EMQX specific settings The following table lists the configurable [EMQX](https://www.emqx.io/)-specific parameters of the chart and their default values. -Parameter | Description | Default Value ---- | --- | --- -`emqxConfig` | Map of [configuration](https://www.emqx.io/docs/en/v5.0/admin/cfg.html) items -expressed as [environment variables](https://www.emqx.io/docs/en/v5.0/admin/cfg.html#environment-variables) (prefix `EMQX_` can be omitted) or using the configuration -files [namespaced dotted notation](https://www.emqx.io/docs/en/v5.0/admin/cfg.html#syntax) | `nil` -`emqxLicenseSecretName` | Name of the secret that holds the license information | `nil` +| Parameter | Description | Default Value | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|---------------| +| `emqxConfig` | Map of [configuration](https://www.emqx.io/docs/en/v5.0/admin/cfg.html) items | | +| expressed as [environment variables](https://www.emqx.io/docs/en/v5.0/admin/cfg.html#environment-variables) (prefix `EMQX_` can be omitted) or using the configuration | | | +| files [namespaced dotted notation](https://www.emqx.io/docs/en/v5.0/admin/cfg.html#syntax) | `nil` | | +| `emqxLicenseSecretName` | Name of the secret that holds the license information | `nil` | ## SSL settings `cert-manager` generates secrets with certificate data using the keys `tls.crt` and `tls.key`. The helm chart always mounts those keys as files to `/tmp/ssl/` @@ -137,9 +137,8 @@ In order to preserve the original client's IP address, you could change the emqx EMQX_LISTENERS__TCP__DEFAULT__PROXY_PROTOCOL: "true" ``` -With haproxy you'd also need the following ingress annotation: +With HAProxy you'd also need the following ingress annotation: ``` haproxy-ingress.github.io/proxy-protocol: "v2" ``` - From a3f33cc8bc9466c399eb25f9cfa6e2bf02f90c35 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Wed, 27 Dec 2023 11:22:50 +0800 Subject: [PATCH 4/7] chore: fix typos in code and suite --- apps/emqx/test/emqx_mqtt_protocol_v5_SUITE.erl | 2 +- apps/emqx_gateway/src/emqx_gateway_http.erl | 2 +- apps/emqx_gateway_stomp/test/emqx_stomp_SUITE.erl | 2 +- apps/emqx_management/src/emqx_mgmt_api_clients.erl | 14 +++++++------- apps/emqx_modules/src/emqx_delayed.erl | 2 +- apps/emqx_modules/src/emqx_modules.app.src | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/emqx/test/emqx_mqtt_protocol_v5_SUITE.erl b/apps/emqx/test/emqx_mqtt_protocol_v5_SUITE.erl index ff248a16a..ee2833a0a 100644 --- a/apps/emqx/test/emqx_mqtt_protocol_v5_SUITE.erl +++ b/apps/emqx/test/emqx_mqtt_protocol_v5_SUITE.erl @@ -585,7 +585,7 @@ t_connack_max_qos_allowed(Config) -> process_flag(trap_exit, false). -t_connack_assigned_clienid(Config) -> +t_connack_assigned_clientid(Config) -> ConnFun = ?config(conn_fun, Config), {ok, Client1} = emqtt:start_link([{proto_ver, v5} | Config]), {ok, _} = emqtt:ConnFun(Client1), diff --git a/apps/emqx_gateway/src/emqx_gateway_http.erl b/apps/emqx_gateway/src/emqx_gateway_http.erl index 802bbb689..921678210 100644 --- a/apps/emqx_gateway/src/emqx_gateway_http.erl +++ b/apps/emqx_gateway/src/emqx_gateway_http.erl @@ -509,7 +509,7 @@ codestr(400) -> 'BAD_REQUEST'; codestr(404) -> 'RESOURCE_NOT_FOUND'; codestr(405) -> 'METHOD_NOT_ALLOWED'; codestr(409) -> 'NOT_SUPPORT'; -codestr(500) -> 'UNKNOW_ERROR'; +codestr(500) -> 'UNKNOWN_ERROR'; codestr(501) -> 'NOT_IMPLEMENTED'. fmtstr(Fmt, Args) -> diff --git a/apps/emqx_gateway_stomp/test/emqx_stomp_SUITE.erl b/apps/emqx_gateway_stomp/test/emqx_stomp_SUITE.erl index 58913cf2f..82887a6d2 100644 --- a/apps/emqx_gateway_stomp/test/emqx_stomp_SUITE.erl +++ b/apps/emqx_gateway_stomp/test/emqx_stomp_SUITE.erl @@ -797,7 +797,7 @@ test_frame_error(Frame, AssertFun) -> AssertFun(Sock) end). -t_rest_clienit_info(_) -> +t_rest_clientid_info(_) -> with_connection(fun(Sock) -> send_connection_frame(Sock, <<"guest">>, <<"guest">>), ?assertMatch({ok, #stomp_frame{command = <<"CONNECTED">>}}, recv_a_frame(Sock)), diff --git a/apps/emqx_management/src/emqx_mgmt_api_clients.erl b/apps/emqx_management/src/emqx_mgmt_api_clients.erl index dee4a235c..e847d7ab9 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_clients.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_clients.erl @@ -221,7 +221,7 @@ schema("/clients/kickout/bulk") -> tags => ?TAGS, 'requestBody' => emqx_dashboard_swagger:schema_with_example( hoconsc:array(binary()), - ["emqx_clienid_985bb09d", "emqx_clientid_211cc01c"] + ["emqx_clientid_985bb09d", "emqx_clientid_211cc01c"] ), responses => #{ 204 => <<"Kick out clients successfully">> @@ -452,7 +452,7 @@ fields(client) -> {is_bridge, hoconsc:mk(boolean(), #{ desc => - <<"Indicates whether the client is connectedvia bridge">> + <<"Indicates whether the client is connected via bridge">> })}, {keepalive, hoconsc:mk(integer(), #{ @@ -605,7 +605,7 @@ kickout_clients(post, #{body := ClientIDs}) -> {204}; {error, Reason} -> Message = list_to_binary(io_lib:format("~p", [Reason])), - {500, #{code => <<"UNKNOW_ERROR">>, message => Message}} + {500, #{code => <<"UNKNOWN_ERROR">>, message => Message}} end. client(get, #{bindings := Bindings}) -> @@ -660,7 +660,7 @@ set_keepalive(put, #{bindings := #{clientid := ClientID}, body := Body}) -> case emqx_mgmt:set_keepalive(ClientID, Interval) of ok -> lookup(#{clientid => ClientID}); {error, not_found} -> {404, ?CLIENTID_NOT_FOUND}; - {error, Reason} -> {400, #{code => 'PARAMS_ERROR', message => Reason}} + {error, Reason} -> {400, #{code => 'PARAM_ERROR', message => Reason}} end end. @@ -728,7 +728,7 @@ get_authz_cache(#{clientid := ClientID}) -> {404, ?CLIENTID_NOT_FOUND}; {error, Reason} -> Message = list_to_binary(io_lib:format("~p", [Reason])), - {500, #{code => <<"UNKNOW_ERROR">>, message => Message}}; + {500, #{code => <<"UNKNOWN_ERROR">>, message => Message}}; Caches -> Response = [format_authz_cache(Cache) || Cache <- Caches], {200, Response} @@ -742,7 +742,7 @@ clean_authz_cache(#{clientid := ClientID}) -> {404, ?CLIENTID_NOT_FOUND}; {error, Reason} -> Message = list_to_binary(io_lib:format("~p", [Reason])), - {500, #{code => <<"UNKNOW_ERROR">>, message => Message}} + {500, #{code => <<"UNKNOWN_ERROR">>, message => Message}} end. subscribe(#{clientid := ClientID, topic := Topic} = Sub) -> @@ -752,7 +752,7 @@ subscribe(#{clientid := ClientID, topic := Topic} = Sub) -> {404, ?CLIENTID_NOT_FOUND}; {error, Reason} -> Message = list_to_binary(io_lib:format("~p", [Reason])), - {500, #{code => <<"UNKNOW_ERROR">>, message => Message}}; + {500, #{code => <<"UNKNOWN_ERROR">>, message => Message}}; {ok, SubInfo} -> {200, SubInfo} end. diff --git a/apps/emqx_modules/src/emqx_delayed.erl b/apps/emqx_modules/src/emqx_delayed.erl index 301155cc0..7cf9018bc 100644 --- a/apps/emqx_modules/src/emqx_delayed.erl +++ b/apps/emqx_modules/src/emqx_delayed.erl @@ -419,7 +419,7 @@ do_publish(Key = {Ts, _Id}, Now, Acc) when Ts =< Now -> ignore_delayed_message_publish, #{ reason => "client is banned", - clienid => Msg#message.from + clientid => Msg#message.from } ), ok diff --git a/apps/emqx_modules/src/emqx_modules.app.src b/apps/emqx_modules/src/emqx_modules.app.src index 67c6b0ceb..3bf284d50 100644 --- a/apps/emqx_modules/src/emqx_modules.app.src +++ b/apps/emqx_modules/src/emqx_modules.app.src @@ -1,7 +1,7 @@ %% -*- mode: erlang -*- {application, emqx_modules, [ {description, "EMQX Modules"}, - {vsn, "5.0.24"}, + {vsn, "5.0.25"}, {modules, []}, {applications, [kernel, stdlib, emqx, emqx_ctl, observer_cli]}, {mod, {emqx_modules_app, []}}, From 0f10d9a8bbf156f48d7f268d03946b90bb7aa675 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Thu, 28 Dec 2023 17:27:56 +0800 Subject: [PATCH 5/7] build: erlfmt `rebar.config` files and `bin/nodetool` --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 41ff1b024..c48ceb113 100644 --- a/Makefile +++ b/Makefile @@ -316,9 +316,10 @@ $(foreach tt,$(ALL_ELIXIR_TGZS),$(eval $(call gen-elixir-tgz-target,$(tt)))) .PHONY: fmt fmt: $(REBAR) @$(SCRIPTS)/erlfmt -w 'apps/*/{src,include,priv,test,integration_test}/**/*.{erl,hrl,app.src,eterm}' + @$(SCRIPTS)/erlfmt -w '**/*.escript' --exclude-files '_build/**' + @$(SCRIPTS)/erlfmt -w '**/rebar.config' @$(SCRIPTS)/erlfmt -w 'rebar.config.erl' - @$(SCRIPTS)/erlfmt -w '$(SCRIPTS)/**/*.escript' - @$(SCRIPTS)/erlfmt -w 'bin/**/*.escript' + @$(SCRIPTS)/erlfmt -w 'bin/nodetool' @mix format .PHONY: clean-test-cluster-config From 5e100f52b8a530f4a952a4b20125ec37b38e2906 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Thu, 28 Dec 2023 17:28:39 +0800 Subject: [PATCH 6/7] style: erlfmt all `rebar.config` files and `bin/nodetool` --- .ci/fvt_tests/http_server/rebar.config | 7 +- apps/emqx/rebar.config | 6 +- apps/emqx_audit/rebar.config | 6 +- apps/emqx_auth_http/rebar.config | 1 + apps/emqx_auth_jwt/rebar.config | 1 + apps/emqx_auth_ldap/rebar.config | 9 +- apps/emqx_auth_mnesia/rebar.config | 1 + apps/emqx_auth_mongodb/rebar.config | 1 + apps/emqx_auth_mysql/rebar.config | 1 + apps/emqx_auth_postgresql/rebar.config | 1 + apps/emqx_auth_redis/rebar.config | 1 + apps/emqx_bridge/rebar.config | 4 +- apps/emqx_bridge_azure_event_hub/rebar.config | 20 +- apps/emqx_bridge_cassandra/rebar.config | 12 +- apps/emqx_bridge_clickhouse/rebar.config | 12 +- apps/emqx_bridge_confluent/rebar.config | 20 +- apps/emqx_bridge_dynamo/rebar.config | 12 +- apps/emqx_bridge_gcp_pubsub/rebar.config | 1 + apps/emqx_bridge_greptimedb/rebar.config | 14 +- apps/emqx_bridge_hstreamdb/rebar.config | 8 +- apps/emqx_bridge_http/rebar.config | 10 +- apps/emqx_bridge_influxdb/rebar.config | 2 + apps/emqx_bridge_iotdb/rebar.config | 10 +- apps/emqx_bridge_kafka/rebar.config | 20 +- apps/emqx_bridge_kinesis/rebar.config | 12 +- apps/emqx_bridge_matrix/rebar.config | 2 + apps/emqx_bridge_mongodb/rebar.config | 12 +- apps/emqx_bridge_mqtt/rebar.config | 2 + apps/emqx_bridge_mysql/rebar.config | 12 +- apps/emqx_bridge_opents/rebar.config | 2 + apps/emqx_bridge_oracle/rebar.config | 13 +- apps/emqx_bridge_pgsql/rebar.config | 2 + apps/emqx_bridge_rabbitmq/rebar.config | 52 ++--- apps/emqx_bridge_redis/rebar.config | 12 +- apps/emqx_bridge_rocketmq/rebar.config | 2 + apps/emqx_bridge_sqlserver/rebar.config | 10 +- apps/emqx_bridge_syskeeper/rebar.config | 10 +- apps/emqx_bridge_tdengine/rebar.config | 2 + apps/emqx_bridge_timescale/rebar.config | 2 + apps/emqx_ctl/rebar.config | 2 + apps/emqx_dashboard_rbac/rebar.config | 2 +- apps/emqx_dashboard_sso/rebar.config | 6 +- apps/emqx_durable_storage/rebar.config | 4 +- apps/emqx_enterprise/rebar.config | 2 + apps/emqx_eviction_agent/rebar.config | 2 + apps/emqx_exhook/rebar.config | 1 + apps/emqx_gateway/rebar.config | 1 + apps/emqx_gateway_coap/rebar.config | 1 + apps/emqx_gateway_exproto/rebar.config | 1 + apps/emqx_gateway_gbt32960/rebar.config | 1 + apps/emqx_gateway_jt808/rebar.config | 2 + apps/emqx_gateway_lwm2m/rebar.config | 8 +- apps/emqx_gateway_mqttsn/rebar.config | 9 +- apps/emqx_gateway_ocpp/rebar.config | 2 + apps/emqx_gateway_stomp/rebar.config | 7 +- apps/emqx_gcp_device/rebar.config | 2 + apps/emqx_ldap/rebar.config | 4 +- apps/emqx_license/rebar.config | 2 + apps/emqx_mongodb/rebar.config | 9 +- apps/emqx_mysql/rebar.config | 8 +- apps/emqx_node_rebalance/rebar.config | 2 + apps/emqx_opentelemetry/rebar.config | 26 ++- apps/emqx_oracle/rebar.config | 9 +- apps/emqx_postgresql/rebar.config | 6 +- apps/emqx_redis/rebar.config | 8 +- apps/emqx_s3/rebar.config | 2 + apps/emqx_schema_registry/rebar.config | 12 +- bin/nodetool | 145 ++++++++----- rebar.config | 193 ++++++++++-------- 69 files changed, 483 insertions(+), 323 deletions(-) diff --git a/.ci/fvt_tests/http_server/rebar.config b/.ci/fvt_tests/http_server/rebar.config index 47ad135d1..8edd69fb6 100644 --- a/.ci/fvt_tests/http_server/rebar.config +++ b/.ci/fvt_tests/http_server/rebar.config @@ -1,12 +1,11 @@ %% -*- mode: erlang -*- {erl_opts, [debug_info]}. -{deps, - [ +{deps, [ {minirest, {git, "https://github.com/emqx/minirest.git", {tag, "1.3.7"}}} - ]}. +]}. {shell, [ - % {config, "config/sys.config"}, + % {config, "config/sys.config"}, {apps, [http_server]} ]}. diff --git a/apps/emqx/rebar.config b/apps/emqx/rebar.config index 01b51ed88..3664844a0 100644 --- a/apps/emqx/rebar.config +++ b/apps/emqx/rebar.config @@ -47,8 +47,10 @@ {bbmustache, "1.10.0"}, {emqtt, {git, "https://github.com/emqx/emqtt", {tag, "1.10.0"}}} ]}, - {extra_src_dirs, [{"test", [recursive]}, - {"integration_test", [recursive]}]} + {extra_src_dirs, [ + {"test", [recursive]}, + {"integration_test", [recursive]} + ]} ]}, {standalone_test, [ {deps, [ diff --git a/apps/emqx_audit/rebar.config b/apps/emqx_audit/rebar.config index fac0f9b07..adba35daf 100644 --- a/apps/emqx_audit/rebar.config +++ b/apps/emqx_audit/rebar.config @@ -1,5 +1,7 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ - {emqx, {path, "../emqx"}}, - {emqx_utils, {path, "../emqx_utils"}} + {emqx, {path, "../emqx"}}, + {emqx_utils, {path, "../emqx_utils"}} ]}. diff --git a/apps/emqx_auth_http/rebar.config b/apps/emqx_auth_http/rebar.config index db2424602..b2f3b05a9 100644 --- a/apps/emqx_auth_http/rebar.config +++ b/apps/emqx_auth_http/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, diff --git a/apps/emqx_auth_jwt/rebar.config b/apps/emqx_auth_jwt/rebar.config index db2424602..b2f3b05a9 100644 --- a/apps/emqx_auth_jwt/rebar.config +++ b/apps/emqx_auth_jwt/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, diff --git a/apps/emqx_auth_ldap/rebar.config b/apps/emqx_auth_ldap/rebar.config index 261f68cdc..b2f3b05a9 100644 --- a/apps/emqx_auth_ldap/rebar.config +++ b/apps/emqx_auth_ldap/rebar.config @@ -1,6 +1,7 @@ %% -*- mode: erlang -*- + {deps, [ - {emqx, {path, "../emqx"}}, - {emqx_utils, {path, "../emqx_utils"}}, - {emqx_auth, {path, "../emqx_auth"}} - ]}. + {emqx, {path, "../emqx"}}, + {emqx_utils, {path, "../emqx_utils"}}, + {emqx_auth, {path, "../emqx_auth"}} +]}. diff --git a/apps/emqx_auth_mnesia/rebar.config b/apps/emqx_auth_mnesia/rebar.config index db2424602..b2f3b05a9 100644 --- a/apps/emqx_auth_mnesia/rebar.config +++ b/apps/emqx_auth_mnesia/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, diff --git a/apps/emqx_auth_mongodb/rebar.config b/apps/emqx_auth_mongodb/rebar.config index db2424602..b2f3b05a9 100644 --- a/apps/emqx_auth_mongodb/rebar.config +++ b/apps/emqx_auth_mongodb/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, diff --git a/apps/emqx_auth_mysql/rebar.config b/apps/emqx_auth_mysql/rebar.config index db2424602..b2f3b05a9 100644 --- a/apps/emqx_auth_mysql/rebar.config +++ b/apps/emqx_auth_mysql/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, diff --git a/apps/emqx_auth_postgresql/rebar.config b/apps/emqx_auth_postgresql/rebar.config index db2424602..b2f3b05a9 100644 --- a/apps/emqx_auth_postgresql/rebar.config +++ b/apps/emqx_auth_postgresql/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, diff --git a/apps/emqx_auth_redis/rebar.config b/apps/emqx_auth_redis/rebar.config index db2424602..b2f3b05a9 100644 --- a/apps/emqx_auth_redis/rebar.config +++ b/apps/emqx_auth_redis/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, diff --git a/apps/emqx_bridge/rebar.config b/apps/emqx_bridge/rebar.config index 864c45e9a..475767bbf 100644 --- a/apps/emqx_bridge/rebar.config +++ b/apps/emqx_bridge/rebar.config @@ -1,9 +1,11 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, {emqx_resource, {path, "../../apps/emqx_resource"}} - ]}. +]}. {shell, [ % {config, "config/sys.config"}, diff --git a/apps/emqx_bridge_azure_event_hub/rebar.config b/apps/emqx_bridge_azure_event_hub/rebar.config index 6169ef8ea..76e1ae0ef 100644 --- a/apps/emqx_bridge_azure_event_hub/rebar.config +++ b/apps/emqx_bridge_azure_event_hub/rebar.config @@ -1,14 +1,16 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {wolff, {git, "https://github.com/kafka4beam/wolff.git", {tag, "1.9.1"}}} - , {kafka_protocol, {git, "https://github.com/kafka4beam/kafka_protocol.git", {tag, "4.1.3"}}} - , {brod_gssapi, {git, "https://github.com/kafka4beam/brod_gssapi.git", {tag, "v0.1.1"}}} - , {brod, {git, "https://github.com/kafka4beam/brod.git", {tag, "3.16.8"}}} - , {snappyer, "1.2.9"} - , {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {wolff, {git, "https://github.com/kafka4beam/wolff.git", {tag, "1.9.1"}}}, + {kafka_protocol, {git, "https://github.com/kafka4beam/kafka_protocol.git", {tag, "4.1.3"}}}, + {brod_gssapi, {git, "https://github.com/kafka4beam/brod_gssapi.git", {tag, "v0.1.1"}}}, + {brod, {git, "https://github.com/kafka4beam/brod.git", {tag, "3.16.8"}}}, + {snappyer, "1.2.9"}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ {apps, [emqx_bridge_azure_event_hub]} diff --git a/apps/emqx_bridge_cassandra/rebar.config b/apps/emqx_bridge_cassandra/rebar.config index f1cc275d9..c0a72fef9 100644 --- a/apps/emqx_bridge_cassandra/rebar.config +++ b/apps/emqx_bridge_cassandra/rebar.config @@ -1,10 +1,12 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {ecql, {git, "https://github.com/emqx/ecql.git", {tag, "v0.5.2"}}} - , {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {ecql, {git, "https://github.com/emqx/ecql.git", {tag, "v0.5.2"}}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ {apps, [emqx_bridge_cassandra]} diff --git a/apps/emqx_bridge_clickhouse/rebar.config b/apps/emqx_bridge_clickhouse/rebar.config index 98d889f41..e0b0dc4a2 100644 --- a/apps/emqx_bridge_clickhouse/rebar.config +++ b/apps/emqx_bridge_clickhouse/rebar.config @@ -1,10 +1,12 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {clickhouse, {git, "https://github.com/emqx/clickhouse-client-erl", {tag, "0.3.1"}}} - , {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {clickhouse, {git, "https://github.com/emqx/clickhouse-client-erl", {tag, "0.3.1"}}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ {apps, [emqx_bridge_clickhouse]} diff --git a/apps/emqx_bridge_confluent/rebar.config b/apps/emqx_bridge_confluent/rebar.config index 4f700e4cd..5e4719106 100644 --- a/apps/emqx_bridge_confluent/rebar.config +++ b/apps/emqx_bridge_confluent/rebar.config @@ -1,14 +1,16 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {wolff, {git, "https://github.com/kafka4beam/wolff.git", {tag, "1.9.1"}}} - , {kafka_protocol, {git, "https://github.com/kafka4beam/kafka_protocol.git", {tag, "4.1.3"}}} - , {brod_gssapi, {git, "https://github.com/kafka4beam/brod_gssapi.git", {tag, "v0.1.1"}}} - , {brod, {git, "https://github.com/kafka4beam/brod.git", {tag, "3.16.8"}}} - , {snappyer, "1.2.9"} - , {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {wolff, {git, "https://github.com/kafka4beam/wolff.git", {tag, "1.9.1"}}}, + {kafka_protocol, {git, "https://github.com/kafka4beam/kafka_protocol.git", {tag, "4.1.3"}}}, + {brod_gssapi, {git, "https://github.com/kafka4beam/brod_gssapi.git", {tag, "v0.1.1"}}}, + {brod, {git, "https://github.com/kafka4beam/brod.git", {tag, "3.16.8"}}}, + {snappyer, "1.2.9"}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ {apps, [emqx_bridge_confluent]} diff --git a/apps/emqx_bridge_dynamo/rebar.config b/apps/emqx_bridge_dynamo/rebar.config index 38598d313..8c46477b0 100644 --- a/apps/emqx_bridge_dynamo/rebar.config +++ b/apps/emqx_bridge_dynamo/rebar.config @@ -1,10 +1,12 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {erlcloud, {git, "https://github.com/emqx/erlcloud", {tag, "3.7.0.3"}}} - , {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {erlcloud, {git, "https://github.com/emqx/erlcloud", {tag, "3.7.0.3"}}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ {apps, [emqx_bridge_dynamo]} diff --git a/apps/emqx_bridge_gcp_pubsub/rebar.config b/apps/emqx_bridge_gcp_pubsub/rebar.config index 8c4823d71..a6a12b429 100644 --- a/apps/emqx_bridge_gcp_pubsub/rebar.config +++ b/apps/emqx_bridge_gcp_pubsub/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang; -*- + {erl_opts, [ warn_unused_vars, warn_shadow_vars, diff --git a/apps/emqx_bridge_greptimedb/rebar.config b/apps/emqx_bridge_greptimedb/rebar.config index 985299c3d..170ced1e7 100644 --- a/apps/emqx_bridge_greptimedb/rebar.config +++ b/apps/emqx_bridge_greptimedb/rebar.config @@ -1,12 +1,12 @@ -{erl_opts, [ - debug_info -]}. +%% -*- mode: erlang; -*- + +{erl_opts, [debug_info]}. {deps, [ - {emqx_connector, {path, "../../apps/emqx_connector"}}, - {emqx_resource, {path, "../../apps/emqx_resource"}}, - {emqx_bridge, {path, "../../apps/emqx_bridge"}}, - {greptimedb, {git, "https://github.com/GreptimeTeam/greptimedb-client-erl", {tag, "v0.1.6"}}} + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}}, + {greptimedb, {git, "https://github.com/GreptimeTeam/greptimedb-client-erl", {tag, "v0.1.6"}}} ]}. {plugins, [rebar3_path_deps]}. {project_plugins, [erlfmt]}. diff --git a/apps/emqx_bridge_hstreamdb/rebar.config b/apps/emqx_bridge_hstreamdb/rebar.config index fb99cd627..eab7bcb3f 100644 --- a/apps/emqx_bridge_hstreamdb/rebar.config +++ b/apps/emqx_bridge_hstreamdb/rebar.config @@ -1,9 +1,11 @@ %% -*- mode: erlang -*- + {erl_opts, [debug_info]}. {deps, [ - {hstreamdb_erl, {git, "https://github.com/hstreamdb/hstreamdb_erl.git", {tag, "0.4.5+v0.16.1"}}}, - {emqx, {path, "../../apps/emqx"}}, - {emqx_utils, {path, "../../apps/emqx_utils"}} + {hstreamdb_erl, + {git, "https://github.com/hstreamdb/hstreamdb_erl.git", {tag, "0.4.5+v0.16.1"}}}, + {emqx, {path, "../../apps/emqx"}}, + {emqx_utils, {path, "../../apps/emqx_utils"}} ]}. {shell, [ diff --git a/apps/emqx_bridge_http/rebar.config b/apps/emqx_bridge_http/rebar.config index 3db9e06af..696bc268a 100644 --- a/apps/emqx_bridge_http/rebar.config +++ b/apps/emqx_bridge_http/rebar.config @@ -1,9 +1,11 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ {apps, [emqx_bridge_http]} diff --git a/apps/emqx_bridge_influxdb/rebar.config b/apps/emqx_bridge_influxdb/rebar.config index 9f1e72515..8acb242eb 100644 --- a/apps/emqx_bridge_influxdb/rebar.config +++ b/apps/emqx_bridge_influxdb/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ diff --git a/apps/emqx_bridge_iotdb/rebar.config b/apps/emqx_bridge_iotdb/rebar.config index 4455bb148..2a3526e08 100644 --- a/apps/emqx_bridge_iotdb/rebar.config +++ b/apps/emqx_bridge_iotdb/rebar.config @@ -5,11 +5,11 @@ ]}. {deps, [ - {emqx, {path, "../../apps/emqx"}}, - {emqx_connector, {path, "../../apps/emqx_connector"}}, - {emqx_resource, {path, "../../apps/emqx_resource"}}, - {emqx_bridge, {path, "../../apps/emqx_bridge"}}, - {emqx_bridge_http, {path, "../emqx_bridge_http"}} + {emqx, {path, "../../apps/emqx"}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}}, + {emqx_bridge_http, {path, "../emqx_bridge_http"}} ]}. {plugins, [rebar3_path_deps]}. {project_plugins, [erlfmt]}. diff --git a/apps/emqx_bridge_kafka/rebar.config b/apps/emqx_bridge_kafka/rebar.config index db7d619e1..e71ccea9f 100644 --- a/apps/emqx_bridge_kafka/rebar.config +++ b/apps/emqx_bridge_kafka/rebar.config @@ -1,14 +1,16 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {wolff, {git, "https://github.com/kafka4beam/wolff.git", {tag, "1.9.1"}}} - , {kafka_protocol, {git, "https://github.com/kafka4beam/kafka_protocol.git", {tag, "4.1.3"}}} - , {brod_gssapi, {git, "https://github.com/kafka4beam/brod_gssapi.git", {tag, "v0.1.1"}}} - , {brod, {git, "https://github.com/kafka4beam/brod.git", {tag, "3.16.8"}}} - , {snappyer, "1.2.9"} - , {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {wolff, {git, "https://github.com/kafka4beam/wolff.git", {tag, "1.9.1"}}}, + {kafka_protocol, {git, "https://github.com/kafka4beam/kafka_protocol.git", {tag, "4.1.3"}}}, + {brod_gssapi, {git, "https://github.com/kafka4beam/brod_gssapi.git", {tag, "v0.1.1"}}}, + {brod, {git, "https://github.com/kafka4beam/brod.git", {tag, "3.16.8"}}}, + {snappyer, "1.2.9"}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ {apps, [emqx_bridge_kafka]} diff --git a/apps/emqx_bridge_kinesis/rebar.config b/apps/emqx_bridge_kinesis/rebar.config index 4d7f87540..7b62c68b3 100644 --- a/apps/emqx_bridge_kinesis/rebar.config +++ b/apps/emqx_bridge_kinesis/rebar.config @@ -1,10 +1,12 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {erlcloud, {git, "https://github.com/emqx/erlcloud", {tag, "3.7.0.3"}}} - , {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {erlcloud, {git, "https://github.com/emqx/erlcloud", {tag, "3.7.0.3"}}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ {apps, [emqx_bridge_kinesis]} diff --git a/apps/emqx_bridge_matrix/rebar.config b/apps/emqx_bridge_matrix/rebar.config index 87c145f26..350e87bf3 100644 --- a/apps/emqx_bridge_matrix/rebar.config +++ b/apps/emqx_bridge_matrix/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ diff --git a/apps/emqx_bridge_mongodb/rebar.config b/apps/emqx_bridge_mongodb/rebar.config index 568a1837d..a1e337396 100644 --- a/apps/emqx_bridge_mongodb/rebar.config +++ b/apps/emqx_bridge_mongodb/rebar.config @@ -1,10 +1,12 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - , {emqx_mongodb, {path, "../../apps/emqx_mongodb"}} - ]}. +{deps, [ + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}}, + {emqx_mongodb, {path, "../../apps/emqx_mongodb"}} +]}. {shell, [ {apps, [emqx_bridge_mongodb]} diff --git a/apps/emqx_bridge_mqtt/rebar.config b/apps/emqx_bridge_mqtt/rebar.config index 35ccc1a37..08d08078d 100644 --- a/apps/emqx_bridge_mqtt/rebar.config +++ b/apps/emqx_bridge_mqtt/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {deps, [ {emqx, {path, "../../apps/emqx"}} ]}. diff --git a/apps/emqx_bridge_mysql/rebar.config b/apps/emqx_bridge_mysql/rebar.config index 244738d49..ef1c3a6ac 100644 --- a/apps/emqx_bridge_mysql/rebar.config +++ b/apps/emqx_bridge_mysql/rebar.config @@ -1,10 +1,12 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - , {emqx_mysql, {path, "../../apps/emqx_mysql"}} - ]}. +{deps, [ + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}}, + {emqx_mysql, {path, "../../apps/emqx_mysql"}} +]}. {shell, [ {apps, [emqx_bridge_mysql]} diff --git a/apps/emqx_bridge_opents/rebar.config b/apps/emqx_bridge_opents/rebar.config index d7bd4560f..3ef36a4f1 100644 --- a/apps/emqx_bridge_opents/rebar.config +++ b/apps/emqx_bridge_opents/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ diff --git a/apps/emqx_bridge_oracle/rebar.config b/apps/emqx_bridge_oracle/rebar.config index c238546c4..9bde07f2a 100644 --- a/apps/emqx_bridge_oracle/rebar.config +++ b/apps/emqx_bridge_oracle/rebar.config @@ -1,13 +1,14 @@ %% -*- mode: erlang; -*- {erl_opts, [debug_info]}. -{deps, [ {emqx_oracle, {path, "../../apps/emqx_oracle"}} - , {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {emqx_oracle, {path, "../../apps/emqx_oracle"}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ - % {config, "config/sys.config"}, + % {config, "config/sys.config"}, {apps, [emqx_bridge_oracle]} ]}. diff --git a/apps/emqx_bridge_pgsql/rebar.config b/apps/emqx_bridge_pgsql/rebar.config index da2729b70..96947b664 100644 --- a/apps/emqx_bridge_pgsql/rebar.config +++ b/apps/emqx_bridge_pgsql/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ diff --git a/apps/emqx_bridge_rabbitmq/rebar.config b/apps/emqx_bridge_rabbitmq/rebar.config index 010c01e4e..a2f072e48 100644 --- a/apps/emqx_bridge_rabbitmq/rebar.config +++ b/apps/emqx_bridge_rabbitmq/rebar.config @@ -1,32 +1,32 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ - %% The following two are dependencies of rabbit_common - {thoas, {git, "https://github.com/emqx/thoas.git", {tag, "v1.0.0"}}} - , {credentials_obfuscation, {git, "https://github.com/emqx/credentials-obfuscation.git", {tag, "v3.2.0"}}} - %% The v3.11.13.2 (v3.11.13_with_app_src branch), employed in the next two dependencies, - %% represents a fork of the official RabbitMQ v3.11.13 tag. This fork diverges - %% from the official version as it includes app and hrl files - %% generated by make files in subdirectories deps/rabbit_common and - %% deps/amqp_client (app files are also relocated from the ebin to the src - %% directory). This modification ensures compatibility with rebar3, as - %% rabbit_common and amqp_client utilize the erlang.mk build tool. - %% Similar changes are probably needed when upgrading to newer versions - %% of rabbit_common and amqp_client. There are hex packages for rabbit_common and - %% amqp_client, but they are not used here as we don't want to depend on - %% packages that we don't have control over. - , {rabbit_common, {git_subdir, - "https://github.com/emqx/rabbitmq-server.git", - {tag, "v3.11.13.2"}, - "deps/rabbit_common"}} - , {amqp_client, {git_subdir, - "https://github.com/emqx/rabbitmq-server.git", - {tag, "v3.11.13.2"}, - "deps/amqp_client"}} - , {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. + %% The following two are dependencies of rabbit_common + {thoas, {git, "https://github.com/emqx/thoas.git", {tag, "v1.0.0"}}}, + {credentials_obfuscation, + {git, "https://github.com/emqx/credentials-obfuscation.git", {tag, "v3.2.0"}}}, + %% The v3.11.13.2 (v3.11.13_with_app_src branch), employed in the next two dependencies, + %% represents a fork of the official RabbitMQ v3.11.13 tag. This fork diverges + %% from the official version as it includes app and hrl files + %% generated by make files in subdirectories deps/rabbit_common and + %% deps/amqp_client (app files are also relocated from the ebin to the src + %% directory). This modification ensures compatibility with rebar3, as + %% rabbit_common and amqp_client utilize the erlang.mk build tool. + %% Similar changes are probably needed when upgrading to newer versions + %% of rabbit_common and amqp_client. There are hex packages for rabbit_common and + %% amqp_client, but they are not used here as we don't want to depend on + %% packages that we don't have control over. + {rabbit_common, + {git_subdir, "https://github.com/emqx/rabbitmq-server.git", {tag, "v3.11.13.2"}, + "deps/rabbit_common"}}, + {amqp_client, + {git_subdir, "https://github.com/emqx/rabbitmq-server.git", {tag, "v3.11.13.2"}, + "deps/amqp_client"}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ {apps, [emqx_bridge_rabbitmq]} diff --git a/apps/emqx_bridge_redis/rebar.config b/apps/emqx_bridge_redis/rebar.config index a779c88a3..8000a5596 100644 --- a/apps/emqx_bridge_redis/rebar.config +++ b/apps/emqx_bridge_redis/rebar.config @@ -1,10 +1,12 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - , {emqx_redis, {path, "../../apps/emqx_redis"}} - ]}. +{deps, [ + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}}, + {emqx_redis, {path, "../../apps/emqx_redis"}} +]}. {shell, [ {apps, [emqx_bridge_redis]} diff --git a/apps/emqx_bridge_rocketmq/rebar.config b/apps/emqx_bridge_rocketmq/rebar.config index 50dbeaa57..be477d7a5 100644 --- a/apps/emqx_bridge_rocketmq/rebar.config +++ b/apps/emqx_bridge_rocketmq/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ diff --git a/apps/emqx_bridge_sqlserver/rebar.config b/apps/emqx_bridge_sqlserver/rebar.config index 5f586f529..cad8b9c26 100644 --- a/apps/emqx_bridge_sqlserver/rebar.config +++ b/apps/emqx_bridge_sqlserver/rebar.config @@ -1,9 +1,11 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. {shell, [ {apps, [emqx_bridge_sqlserver]} diff --git a/apps/emqx_bridge_syskeeper/rebar.config b/apps/emqx_bridge_syskeeper/rebar.config index 31879d9ce..14685de33 100644 --- a/apps/emqx_bridge_syskeeper/rebar.config +++ b/apps/emqx_bridge_syskeeper/rebar.config @@ -1,6 +1,8 @@ %% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {emqx_bridge, {path, "../../apps/emqx_bridge"}} - ]}. +{deps, [ + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {emqx_bridge, {path, "../../apps/emqx_bridge"}} +]}. diff --git a/apps/emqx_bridge_tdengine/rebar.config b/apps/emqx_bridge_tdengine/rebar.config index 97ccf918a..f9a123d48 100644 --- a/apps/emqx_bridge_tdengine/rebar.config +++ b/apps/emqx_bridge_tdengine/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ diff --git a/apps/emqx_bridge_timescale/rebar.config b/apps/emqx_bridge_timescale/rebar.config index 87c145f26..350e87bf3 100644 --- a/apps/emqx_bridge_timescale/rebar.config +++ b/apps/emqx_bridge_timescale/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ diff --git a/apps/emqx_ctl/rebar.config b/apps/emqx_ctl/rebar.config index 2656fd554..5e70eb5e3 100644 --- a/apps/emqx_ctl/rebar.config +++ b/apps/emqx_ctl/rebar.config @@ -1,2 +1,4 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, []}. diff --git a/apps/emqx_dashboard_rbac/rebar.config b/apps/emqx_dashboard_rbac/rebar.config index fbd100693..86d548e32 100644 --- a/apps/emqx_dashboard_rbac/rebar.config +++ b/apps/emqx_dashboard_rbac/rebar.config @@ -2,5 +2,5 @@ {erl_opts, [debug_info]}. {deps, [ - {emqx_dashboard, {path, "../../apps/emqx_dashboard"}} + {emqx_dashboard, {path, "../../apps/emqx_dashboard"}} ]}. diff --git a/apps/emqx_dashboard_sso/rebar.config b/apps/emqx_dashboard_sso/rebar.config index 874aca800..90172af3d 100644 --- a/apps/emqx_dashboard_sso/rebar.config +++ b/apps/emqx_dashboard_sso/rebar.config @@ -2,7 +2,7 @@ {erl_opts, [debug_info]}. {deps, [ - {emqx_ldap, {path, "../../apps/emqx_ldap"}}, - {emqx_dashboard, {path, "../../apps/emqx_dashboard"}}, - {esaml, {git, "https://github.com/emqx/esaml", {tag, "v1.1.3"}}} + {emqx_ldap, {path, "../../apps/emqx_ldap"}}, + {emqx_dashboard, {path, "../../apps/emqx_dashboard"}}, + {esaml, {git, "https://github.com/emqx/esaml", {tag, "v1.1.3"}}} ]}. diff --git a/apps/emqx_durable_storage/rebar.config b/apps/emqx_durable_storage/rebar.config index f04819025..3a6379924 100644 --- a/apps/emqx_durable_storage/rebar.config +++ b/apps/emqx_durable_storage/rebar.config @@ -1,3 +1,3 @@ %% -*- mode:erlang -*- -{deps, - [{emqx_utils, {path, "../emqx_utils"}}]}. + +{deps, [{emqx_utils, {path, "../emqx_utils"}}]}. diff --git a/apps/emqx_enterprise/rebar.config b/apps/emqx_enterprise/rebar.config index 53ee79c85..f854ba9f5 100644 --- a/apps/emqx_enterprise/rebar.config +++ b/apps/emqx_enterprise/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, []}. diff --git a/apps/emqx_eviction_agent/rebar.config b/apps/emqx_eviction_agent/rebar.config index b055d8f4f..ae520b07b 100644 --- a/apps/emqx_eviction_agent/rebar.config +++ b/apps/emqx_eviction_agent/rebar.config @@ -1,2 +1,4 @@ +%% -*- mode: erlang; -*- + {deps, [{emqx, {path, "../../apps/emqx"}}]}. {project_plugins, [erlfmt]}. diff --git a/apps/emqx_exhook/rebar.config b/apps/emqx_exhook/rebar.config index 7abc601b4..38c3fcbf6 100644 --- a/apps/emqx_exhook/rebar.config +++ b/apps/emqx_exhook/rebar.config @@ -1,4 +1,5 @@ %%-*- mode: erlang -*- + {plugins, [ rebar3_proper, {grpc_plugin, {git, "https://github.com/HJianBo/grpc_plugin", {tag, "v0.10.2"}}} diff --git a/apps/emqx_gateway/rebar.config b/apps/emqx_gateway/rebar.config index dc803f9b5..2d041305e 100644 --- a/apps/emqx_gateway/rebar.config +++ b/apps/emqx_gateway/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {erl_opts, [debug_info]}. {deps, [ {emqx, {path, "../emqx"}}, diff --git a/apps/emqx_gateway_coap/rebar.config b/apps/emqx_gateway_coap/rebar.config index 493ebe04f..e463da183 100644 --- a/apps/emqx_gateway_coap/rebar.config +++ b/apps/emqx_gateway_coap/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {erl_opts, [debug_info]}. {deps, [ {emqx, {path, "../emqx"}}, diff --git a/apps/emqx_gateway_exproto/rebar.config b/apps/emqx_gateway_exproto/rebar.config index aafbe4e13..3347b920d 100644 --- a/apps/emqx_gateway_exproto/rebar.config +++ b/apps/emqx_gateway_exproto/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {erl_opts, [debug_info]}. {deps, [ {emqx, {path, "../emqx"}}, diff --git a/apps/emqx_gateway_gbt32960/rebar.config b/apps/emqx_gateway_gbt32960/rebar.config index 456746d25..b0513d86d 100644 --- a/apps/emqx_gateway_gbt32960/rebar.config +++ b/apps/emqx_gateway_gbt32960/rebar.config @@ -1,4 +1,5 @@ %% -*- mode: erlang -*- + {erl_opts, [debug_info]}. {deps, [ {emqx, {path, "../../apps/emqx"}}, diff --git a/apps/emqx_gateway_jt808/rebar.config b/apps/emqx_gateway_jt808/rebar.config index 456746d25..b5886c1e6 100644 --- a/apps/emqx_gateway_jt808/rebar.config +++ b/apps/emqx_gateway_jt808/rebar.config @@ -1,5 +1,7 @@ %% -*- mode: erlang -*- + {erl_opts, [debug_info]}. + {deps, [ {emqx, {path, "../../apps/emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, diff --git a/apps/emqx_gateway_lwm2m/rebar.config b/apps/emqx_gateway_lwm2m/rebar.config index 28c3c85e5..22c3cea1a 100644 --- a/apps/emqx_gateway_lwm2m/rebar.config +++ b/apps/emqx_gateway_lwm2m/rebar.config @@ -1,5 +1,7 @@ %% -*- mode: erlang -*- + {erl_opts, [debug_info]}. -{deps, [ {emqx, {path, "../../apps/emqx"}}, - {emqx_gateway, {path, "../../apps/emqx_gateway"}} - ]}. +{deps, [ + {emqx, {path, "../../apps/emqx"}}, + {emqx_gateway, {path, "../../apps/emqx_gateway"}} +]}. diff --git a/apps/emqx_gateway_mqttsn/rebar.config b/apps/emqx_gateway_mqttsn/rebar.config index c8675c3ba..eaaa23423 100644 --- a/apps/emqx_gateway_mqttsn/rebar.config +++ b/apps/emqx_gateway_mqttsn/rebar.config @@ -1,4 +1,7 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. -{deps, [ {emqx, {path, "../../apps/emqx"}}, - {emqx_gateway, {path, "../../apps/emqx_gateway"}} - ]}. +{deps, [ + {emqx, {path, "../../apps/emqx"}}, + {emqx_gateway, {path, "../../apps/emqx_gateway"}} +]}. diff --git a/apps/emqx_gateway_ocpp/rebar.config b/apps/emqx_gateway_ocpp/rebar.config index 242c1c36f..16bbcd109 100644 --- a/apps/emqx_gateway_ocpp/rebar.config +++ b/apps/emqx_gateway_ocpp/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {deps, [ {jesse, "1.7.0"}, {emqx, {path, "../../apps/emqx"}}, diff --git a/apps/emqx_gateway_stomp/rebar.config b/apps/emqx_gateway_stomp/rebar.config index 55e6f52f2..b0513d86d 100644 --- a/apps/emqx_gateway_stomp/rebar.config +++ b/apps/emqx_gateway_stomp/rebar.config @@ -1,7 +1,8 @@ %% -*- mode: erlang -*- + {erl_opts, [debug_info]}. {deps, [ - {emqx, {path, "../../apps/emqx"}}, - {emqx_utils, {path, "../emqx_utils"}}, - {emqx_gateway, {path, "../../apps/emqx_gateway"}} + {emqx, {path, "../../apps/emqx"}}, + {emqx_utils, {path, "../emqx_utils"}}, + {emqx_gateway, {path, "../../apps/emqx_gateway"}} ]}. diff --git a/apps/emqx_gcp_device/rebar.config b/apps/emqx_gcp_device/rebar.config index cb594b6f5..671fd195b 100644 --- a/apps/emqx_gcp_device/rebar.config +++ b/apps/emqx_gcp_device/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {erl_opts, [debug_info]}. {deps, [ {emqx, {path, "../emqx"}}, diff --git a/apps/emqx_ldap/rebar.config b/apps/emqx_ldap/rebar.config index e6e2db243..af9602b02 100644 --- a/apps/emqx_ldap/rebar.config +++ b/apps/emqx_ldap/rebar.config @@ -2,6 +2,6 @@ {erl_opts, [debug_info]}. {deps, [ - {emqx_connector, {path, "../../apps/emqx_connector"}}, - {emqx_resource, {path, "../../apps/emqx_resource"}} + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}} ]}. diff --git a/apps/emqx_license/rebar.config b/apps/emqx_license/rebar.config index e7620387a..07cf47a02 100644 --- a/apps/emqx_license/rebar.config +++ b/apps/emqx_license/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {deps, [ {emqx, {path, "../../apps/emqx"}}, {emqx_utils, {path, "../emqx_utils"}} diff --git a/apps/emqx_mongodb/rebar.config b/apps/emqx_mongodb/rebar.config index 5be42ef17..9cee51c35 100644 --- a/apps/emqx_mongodb/rebar.config +++ b/apps/emqx_mongodb/rebar.config @@ -1,7 +1,8 @@ %% -*- mode: erlang; -*- {erl_opts, [debug_info]}. -{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - , {mongodb, {git, "https://github.com/emqx/mongodb-erlang", {tag, "v3.0.22"}}} - ]}. +{deps, [ + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}}, + {mongodb, {git, "https://github.com/emqx/mongodb-erlang", {tag, "v3.0.22"}}} +]}. diff --git a/apps/emqx_mysql/rebar.config b/apps/emqx_mysql/rebar.config index 657daf61b..c6e4cc68a 100644 --- a/apps/emqx_mysql/rebar.config +++ b/apps/emqx_mysql/rebar.config @@ -2,8 +2,8 @@ {erl_opts, [debug_info]}. {deps, [ - %% NOTE: mind ecpool version when updating eredis_cluster version - {mysql, {git, "https://github.com/emqx/mysql-otp", {tag, "1.7.4.1"}}}, - {emqx_connector, {path, "../../apps/emqx_connector"}}, - {emqx_resource, {path, "../../apps/emqx_resource"}} + %% NOTE: mind ecpool version when updating eredis_cluster version + {mysql, {git, "https://github.com/emqx/mysql-otp", {tag, "1.7.4.1"}}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}} ]}. diff --git a/apps/emqx_node_rebalance/rebar.config b/apps/emqx_node_rebalance/rebar.config index b055d8f4f..ae520b07b 100644 --- a/apps/emqx_node_rebalance/rebar.config +++ b/apps/emqx_node_rebalance/rebar.config @@ -1,2 +1,4 @@ +%% -*- mode: erlang; -*- + {deps, [{emqx, {path, "../../apps/emqx"}}]}. {project_plugins, [erlfmt]}. diff --git a/apps/emqx_opentelemetry/rebar.config b/apps/emqx_opentelemetry/rebar.config index 5addc4a7e..5e5e8bcf3 100644 --- a/apps/emqx_opentelemetry/rebar.config +++ b/apps/emqx_opentelemetry/rebar.config @@ -1,16 +1,26 @@ %% -*- mode: erlang -*- -{deps, - [{emqx, {path, "../emqx"}} +{deps, [ + {emqx, {path, "../emqx"}}, %% trace - , {opentelemetry_api, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.7-emqx"}, "apps/opentelemetry_api"}} - , {opentelemetry, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.7-emqx"}, "apps/opentelemetry"}} + {opentelemetry_api, + {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.7-emqx"}, + "apps/opentelemetry_api"}}, + {opentelemetry, + {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.7-emqx"}, + "apps/opentelemetry"}}, %% logs, metrics - , {opentelemetry_experimental, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.7-emqx"}, "apps/opentelemetry_experimental"}} - , {opentelemetry_api_experimental, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.7-emqx"}, "apps/opentelemetry_api_experimental"}} + {opentelemetry_experimental, + {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.7-emqx"}, + "apps/opentelemetry_experimental"}}, + {opentelemetry_api_experimental, + {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.7-emqx"}, + "apps/opentelemetry_api_experimental"}}, %% export - , {opentelemetry_exporter, {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.7-emqx"}, "apps/opentelemetry_exporter"}} - ]}. + {opentelemetry_exporter, + {git_subdir, "https://github.com/emqx/opentelemetry-erlang", {tag, "v1.4.7-emqx"}, + "apps/opentelemetry_exporter"}} +]}. {edoc_opts, [{preprocess, true}]}. {erl_opts, [ diff --git a/apps/emqx_oracle/rebar.config b/apps/emqx_oracle/rebar.config index c6113fe30..b3a5e02ca 100644 --- a/apps/emqx_oracle/rebar.config +++ b/apps/emqx_oracle/rebar.config @@ -1,7 +1,8 @@ %% -*- mode: erlang; -*- {erl_opts, [debug_info]}. -{deps, [ {jamdb_oracle, {git, "https://github.com/emqx/jamdb_oracle", {tag, "0.4.9.5"}}} - , {emqx_connector, {path, "../../apps/emqx_connector"}} - , {emqx_resource, {path, "../../apps/emqx_resource"}} - ]}. +{deps, [ + {jamdb_oracle, {git, "https://github.com/emqx/jamdb_oracle", {tag, "0.4.9.5"}}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}} +]}. diff --git a/apps/emqx_postgresql/rebar.config b/apps/emqx_postgresql/rebar.config index a4b84ef0f..8568e49fe 100644 --- a/apps/emqx_postgresql/rebar.config +++ b/apps/emqx_postgresql/rebar.config @@ -2,7 +2,7 @@ {erl_opts, [debug_info]}. {deps, [ - {epgsql, {git, "https://github.com/emqx/epgsql", {tag, "4.7.1.1"}}}, - {emqx_connector, {path, "../../apps/emqx_connector"}}, - {emqx_resource, {path, "../../apps/emqx_resource"}} + {epgsql, {git, "https://github.com/emqx/epgsql", {tag, "4.7.1.1"}}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}} ]}. diff --git a/apps/emqx_redis/rebar.config b/apps/emqx_redis/rebar.config index a681878f1..e495a4eb6 100644 --- a/apps/emqx_redis/rebar.config +++ b/apps/emqx_redis/rebar.config @@ -2,8 +2,8 @@ {erl_opts, [debug_info]}. {deps, [ - %% NOTE: mind ecpool version when updating eredis_cluster version - {eredis_cluster, {git, "https://github.com/emqx/eredis_cluster", {tag, "0.8.3"}}}, - {emqx_connector, {path, "../../apps/emqx_connector"}}, - {emqx_resource, {path, "../../apps/emqx_resource"}} + %% NOTE: mind ecpool version when updating eredis_cluster version + {eredis_cluster, {git, "https://github.com/emqx/eredis_cluster", {tag, "0.8.3"}}}, + {emqx_connector, {path, "../../apps/emqx_connector"}}, + {emqx_resource, {path, "../../apps/emqx_resource"}} ]}. diff --git a/apps/emqx_s3/rebar.config b/apps/emqx_s3/rebar.config index e34406e54..7c6208092 100644 --- a/apps/emqx_s3/rebar.config +++ b/apps/emqx_s3/rebar.config @@ -1,3 +1,5 @@ +%% -*- mode: erlang; -*- + {deps, [ {emqx, {path, "../../apps/emqx"}}, {erlcloud, {git, "https://github.com/emqx/erlcloud", {tag, "3.7.0.3"}}}, diff --git a/apps/emqx_schema_registry/rebar.config b/apps/emqx_schema_registry/rebar.config index d604b89d9..342737ee6 100644 --- a/apps/emqx_schema_registry/rebar.config +++ b/apps/emqx_schema_registry/rebar.config @@ -2,14 +2,14 @@ {erl_opts, [debug_info]}. {deps, [ - {emqx, {path, "../emqx"}}, - {emqx_utils, {path, "../emqx_utils"}}, - {emqx_rule_engine, {path, "../emqx_rule_engine"}}, - {erlavro, {git, "https://github.com/klarna/erlavro.git", {tag, "2.9.8"}}}, - {gpb, "4.19.9"} + {emqx, {path, "../emqx"}}, + {emqx_utils, {path, "../emqx_utils"}}, + {emqx_rule_engine, {path, "../emqx_rule_engine"}}, + {erlavro, {git, "https://github.com/klarna/erlavro.git", {tag, "2.9.8"}}}, + {gpb, "4.19.9"} ]}. {shell, [ - % {config, "config/sys.config"}, + % {config, "config/sys.config"}, {apps, [emqx_schema_registry]} ]}. diff --git a/bin/nodetool b/bin/nodetool index c0d5b0025..ed1ce7706 100755 --- a/bin/nodetool +++ b/bin/nodetool @@ -12,7 +12,8 @@ main(Args) -> case os:type() of - {win32, nt} -> ok; + {win32, nt} -> + ok; _nix -> case init:get_argument(start_epmd) of {ok, [["true"]]} -> @@ -44,22 +45,31 @@ do(Args) -> ok = do_with_halt(Args, "mnesia_dir", fun create_mnesia_dir/2), ok = do_with_halt(Args, "chkconfig", fun("-config", X) -> chkconfig(X) end), ok = do_with_halt(Args, "chkconfig", fun chkconfig/1), - Args1 = do_with_ret(Args, "-name", - fun(TargetName) -> - ThisNode = this_node_name(longnames, TargetName), - {ok, _} = net_kernel:start([ThisNode, longnames]), - put(target_node, nodename(TargetName)) - end), - Args2 = do_with_ret(Args1, "-sname", - fun(TargetName) -> - ThisNode = this_node_name(shortnames, TargetName), - {ok, _} = net_kernel:start([ThisNode, shortnames]), - put(target_node, nodename(TargetName)) - end), - RestArgs = do_with_ret(Args2, "-setcookie", - fun(Cookie) -> - erlang:set_cookie(node(), list_to_atom(Cookie)) - end), + Args1 = do_with_ret( + Args, + "-name", + fun(TargetName) -> + ThisNode = this_node_name(longnames, TargetName), + {ok, _} = net_kernel:start([ThisNode, longnames]), + put(target_node, nodename(TargetName)) + end + ), + Args2 = do_with_ret( + Args1, + "-sname", + fun(TargetName) -> + ThisNode = this_node_name(shortnames, TargetName), + {ok, _} = net_kernel:start([ThisNode, shortnames]), + put(target_node, nodename(TargetName)) + end + ), + RestArgs = do_with_ret( + Args2, + "-setcookie", + fun(Cookie) -> + erlang:set_cookie(node(), list_to_atom(Cookie)) + end + ), [application:start(App) || App <- [crypto, public_key, ssl]], TargetNode = get(target_node), @@ -95,9 +105,11 @@ do(Args) -> ok -> ok; {badrpc, timeout} -> - io:format("EMQX is still shutting down, it failed to stop gracefully " - "within the configured timeout of: ~ps\n", - [erlang:convert_time_unit(?SHUTDOWN_TIMEOUT_MS, millisecond, second)]), + io:format( + "EMQX is still shutting down, it failed to stop gracefully " + "within the configured timeout of: ~ps\n", + [erlang:convert_time_unit(?SHUTDOWN_TIMEOUT_MS, millisecond, second)] + ), halt(1); {badrpc, nodedown} -> %% nodetool commands are always executed after a ping @@ -106,8 +118,15 @@ do(Args) -> ok end; ["rpc", Module, Function | RpcArgs] -> - case rpc:call(TargetNode, list_to_atom(Module), list_to_atom(Function), - [RpcArgs], 60000) of + case + rpc:call( + TargetNode, + list_to_atom(Module), + list_to_atom(Function), + [RpcArgs], + 60000 + ) + of ok -> ok; {error, cmd_not_found} -> @@ -122,7 +141,11 @@ do(Args) -> halt(1) end; ["rpc_infinity", Module, Function | RpcArgs] -> - case rpc:call(TargetNode, list_to_atom(Module), list_to_atom(Function), [RpcArgs], infinity) of + case + rpc:call( + TargetNode, list_to_atom(Module), list_to_atom(Function), [RpcArgs], infinity + ) + of ok -> ok; {badrpc, Reason} -> @@ -132,8 +155,15 @@ do(Args) -> halt(1) end; ["rpcterms", Module, Function | ArgsAsString] -> - case rpc:call(TargetNode, list_to_atom(Module), list_to_atom(Function), - consult(lists:flatten(ArgsAsString)), 60000) of + case + rpc:call( + TargetNode, + list_to_atom(Module), + list_to_atom(Function), + consult(lists:flatten(ArgsAsString)), + 60000 + ) + of {badrpc, Reason} -> io:format("RPC to ~p failed: ~p\n", [TargetNode, Reason]), halt(1); @@ -153,7 +183,9 @@ do(Args) -> end; Other -> io:format("Other: ~p~n", [Other]), - io:format("Usage: nodetool chkconfig|getpid|ping|stop|rpc|rpc_infinity|rpcterms|eval|cold_eval [Terms] [RPC]\n") + io:format( + "Usage: nodetool chkconfig|getpid|ping|stop|rpc|rpc_infinity|rpcterms|eval|cold_eval [Terms] [RPC]\n" + ) end, net_kernel:stop(). @@ -173,22 +205,22 @@ parse_eval_args(Args) -> % shells may process args into more than one, and end up stripping % spaces, so this converts all of that to a single string to parse String = binary_to_list( - list_to_binary( - join(Args," ") - ) - ), + list_to_binary( + join(Args, " ") + ) + ), % then just as a convenience to users, if they forgot a trailing % '.' add it for them. Normalized = case lists:reverse(String) of - [$. | _] -> String; - R -> lists:reverse([$. | R]) + [$. | _] -> String; + R -> lists:reverse([$. | R]) end, % then scan and parse the string {ok, Scanned, _} = erl_scan:string(Normalized), - {ok, Parsed } = erl_parse:parse_exprs(Scanned), + {ok, Parsed} = erl_parse:parse_exprs(Scanned), Parsed. do_with_ret(Args, Name, Handler) -> @@ -207,7 +239,8 @@ do_with_halt(Args, Name, Handler) -> false -> ok; {Args1, _Rest} -> - erlang:apply(Handler, Args1), %% should halt + %% should halt + erlang:apply(Handler, Args1), io:format(standard_error, "~s handler did not halt", [Name]), halt(?LINE) end. @@ -218,7 +251,9 @@ take_args(Args, OptName, 0) -> take_args(Args, OptName, OptArity) -> take_args(Args, OptName, OptArity, _Scanned = []). -take_args([], _, _, _) -> false; %% no such option +%% no such option +take_args([], _, _, _) -> + false; take_args([Name | Rest], Name, Arity, Scanned) -> length(Rest) >= Arity orelse error({not_enough_args_for, Name}), {Result, Tail} = lists:split(Arity, Rest), @@ -282,16 +317,24 @@ chkconfig(File) -> {error, Problems} -> lists:foreach(fun print_issue/1, Problems), %% halt(1) if any problems were errors - halt(case [x || {error, _} <- Problems] of - [] -> 0; - _ -> 1 - end) + halt( + case [x || {error, _} <- Problems] of + [] -> 0; + _ -> 1 + end + ) end; {error, {Line, Mod, Term}} -> - io:format(standard_error, ["Error on line ", file:format_error({Line, Mod, Term}), "\n"], []), + io:format( + standard_error, ["Error on line ", file:format_error({Line, Mod, Term}), "\n"], [] + ), halt(1); {error, Error} -> - io:format(standard_error, ["Error reading config file: ", File, " ", file:format_error(Error), "\n"], []), + io:format( + standard_error, + ["Error reading config file: ", File, " ", file:format_error(Error), "\n"], + [] + ), halt(1) end. @@ -304,7 +347,8 @@ check_license(Config) -> %% start but will not be able to receive connections due to connection limits. %% It may receive license updates from the cluster further. case emqx_license:read_license(Config) of - {ok, _} -> ok; + {ok, _} -> + ok; {error, Error} -> io:format(standard_error, "Error reading license: ~p~n", [Error]), halt(1) @@ -315,7 +359,7 @@ check_license(Config) -> %% consult(Str) when is_list(Str) -> consult([], Str, []); -consult(Bin) when is_binary(Bin)-> +consult(Bin) when is_binary(Bin) -> consult([], binary_to_list(Bin), []). consult(Cont, Str, Acc) -> @@ -349,7 +393,7 @@ validate([Terms]) -> %% Some initial and basic checks for the app.config file get_validation_funs() -> - [ ]. + []. print_issue({warning, Warning}) -> io:format(standard_error, "Warning in app.config: ~s~n", [Warning]); @@ -363,7 +407,7 @@ print_issue({error, Error}) -> %% for most unicode use cases anyway. join([], Sep) when is_list(Sep) -> []; -join([H|T], Sep) -> +join([H | T], Sep) -> H ++ lists:append([Sep ++ X || X <- T]). add_libs_dir() -> @@ -375,9 +419,11 @@ add_libs_dir() -> Release = lists:keyfind(CurrentVsn, 3, Releases), {release, _Name, _AppVsn, _ErtsVsn, Libs, _State} = Release, lists:foreach( - fun({Name, Vsn, _}) -> - add_lib_dir(RootDir, Name, Vsn) - end, Libs); + fun({Name, Vsn, _}) -> + add_lib_dir(RootDir, Name, Vsn) + end, + Libs + ); {error, Reason} -> %% rel file was been deleted by release handler error({failed_to_read_RELEASES_file, RelFile, Reason}) @@ -405,7 +451,8 @@ add_lib_dir(RootDir, Name, Vsn) -> %% See `emqx_gateway_schema:fields(gateway)` is_emqx_application(Name) andalso ensure_application_load(Name), ok; - {error, _} -> error(LibDir) + {error, _} -> + error(LibDir) end. is_emqx_application(Name) when is_atom(Name) -> diff --git a/rebar.config b/rebar.config index 47151181c..755fc13c8 100644 --- a/rebar.config +++ b/rebar.config @@ -7,119 +7,132 @@ %% with rebar.config.erl module. Final result is written to %% rebar.config.rendered if environment DEBUG is set. -{edoc_opts, [{preprocess,true}]}. -{erl_opts, [warn_unused_vars,warn_shadow_vars,warn_unused_import, - warn_obsolete_guard,compressed, nowarn_unused_import, - {d, snk_kind, msg} - ]}. +{edoc_opts, [{preprocess, true}]}. +{erl_opts, [ + warn_unused_vars, + warn_shadow_vars, + warn_unused_import, + warn_obsolete_guard, + compressed, + nowarn_unused_import, + {d, snk_kind, msg} +]}. -{xref_checks,[undefined_function_calls,undefined_functions,locals_not_used, - deprecated_function_calls,warnings_as_errors,deprecated_functions]}. +{xref_checks, [ + undefined_function_calls, + undefined_functions, + locals_not_used, + deprecated_function_calls, + warnings_as_errors, + deprecated_functions +]}. %% Check the forbidden mnesia calls: -{xref_queries, - [ {"E || \"mnesia\":\"dirty_delete.*\"/\".*\" : Fun", []} - , {"E || \"mnesia\":\"transaction\"/\".*\" : Fun", []} - , {"E || \"mnesia\":\"async_dirty\"/\".*\" : Fun", []} - , {"E || \"mnesia\":\"clear_table\"/\".*\" : Fun", []} - , {"E || \"mnesia\":\"create_table\"/\".*\" : Fun", []} - , {"E || \"mnesia\":\"delete_table\"/\".*\" : Fun", []} - ]}. +{xref_queries, [ + {"E || \"mnesia\":\"dirty_delete.*\"/\".*\" : Fun", []}, + {"E || \"mnesia\":\"transaction\"/\".*\" : Fun", []}, + {"E || \"mnesia\":\"async_dirty\"/\".*\" : Fun", []}, + {"E || \"mnesia\":\"clear_table\"/\".*\" : Fun", []}, + {"E || \"mnesia\":\"create_table\"/\".*\" : Fun", []}, + {"E || \"mnesia\":\"delete_table\"/\".*\" : Fun", []} +]}. {dialyzer, [ {warnings, [unmatched_returns, error_handling]}, - {exclude_mods, [emqx_exproto_v_1_connection_unary_handler_bhvr, - emqx_exproto_v_1_connection_handler_client, - emqx_exproto_v_1_connection_handler_bhvr, - emqx_exproto_v_1_connection_adapter_client, - emqx_exproto_v_1_connection_adapter_bhvr, - emqx_exproto_v_1_connection_unary_handler_client, - emqx_exhook_v_2_hook_provider_client, - emqx_exhook_v_2_hook_provider_bhvr - ]}, + {exclude_mods, [ + emqx_exproto_v_1_connection_unary_handler_bhvr, + emqx_exproto_v_1_connection_handler_client, + emqx_exproto_v_1_connection_handler_bhvr, + emqx_exproto_v_1_connection_adapter_client, + emqx_exproto_v_1_connection_adapter_bhvr, + emqx_exproto_v_1_connection_unary_handler_client, + emqx_exhook_v_2_hook_provider_client, + emqx_exhook_v_2_hook_provider_bhvr + ]}, {plt_location, "."}, {plt_prefix, "emqx_dialyzer"}, {plt_apps, all_apps}, {statistics, true} - ] -}. +]}. {cover_opts, [verbose]}. {cover_export_enabled, true}. {cover_excl_mods, - [ %% generated protobuf modules - emqx_exproto_pb, - emqx_exhook_pb, - %% taken almost as-is from OTP - emqx_ssl_crl_cache - ]}. + %% generated protobuf modules + [ + emqx_exproto_pb, + emqx_exhook_pb, + %% taken almost as-is from OTP + emqx_ssl_crl_cache + ]}. %{provider_hooks, [{pre, [{release, {relup_helper, gen_appups}}]}]}. -{post_hooks,[]}. +{post_hooks, []}. -{deps, - [ {lc, {git, "https://github.com/emqx/lc.git", {tag, "0.3.2"}}} - , {redbug, {git, "https://github.com/emqx/redbug", {tag, "2.0.10"}}} - , {covertool, {git, "https://github.com/zmstone/covertool", {tag, "2.0.4.1"}}} - , {gpb, "4.19.9"} - , {typerefl, {git, "https://github.com/ieQu1/typerefl", {tag, "0.9.1"}}} - , {gun, {git, "https://github.com/emqx/gun", {tag, "1.3.10"}}} - , {ehttpc, {git, "https://github.com/emqx/ehttpc", {tag, "0.4.12"}}} - , {gproc, {git, "https://github.com/emqx/gproc", {tag, "0.9.0.1"}}} - , {jiffy, {git, "https://github.com/emqx/jiffy", {tag, "1.0.6"}}} - , {cowboy, {git, "https://github.com/emqx/cowboy", {tag, "2.9.2"}}} - , {esockd, {git, "https://github.com/emqx/esockd", {tag, "5.11.1"}}} - , {rocksdb, {git, "https://github.com/emqx/erlang-rocksdb", {tag, "1.8.0-emqx-2"}}} - , {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.17.0"}}} - , {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "3.3.1"}}} - , {grpc, {git, "https://github.com/emqx/grpc-erl", {tag, "0.6.12"}}} - , {minirest, {git, "https://github.com/emqx/minirest", {tag, "1.3.15"}}} - , {ecpool, {git, "https://github.com/emqx/ecpool", {tag, "0.5.7"}}} - , {replayq, {git, "https://github.com/emqx/replayq.git", {tag, "0.3.7"}}} - , {pbkdf2, {git, "https://github.com/emqx/erlang-pbkdf2.git", {tag, "2.0.4"}}} - , {emqtt, {git, "https://github.com/emqx/emqtt", {tag, "1.10.1"}}} - , {rulesql, {git, "https://github.com/emqx/rulesql", {tag, "0.1.7"}}} - , {observer_cli, "1.7.1"} % NOTE: depends on recon 2.5.x - , {system_monitor, {git, "https://github.com/ieQu1/system_monitor", {tag, "3.0.3"}}} - , {getopt, "1.0.2"} - , {snabbkaffe, {git, "https://github.com/kafka4beam/snabbkaffe.git", {tag, "1.0.8"}}} - , {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.40.3"}}} - , {emqx_http_lib, {git, "https://github.com/emqx/emqx_http_lib.git", {tag, "0.5.3"}}} - , {esasl, {git, "https://github.com/emqx/esasl", {tag, "0.2.0"}}} - , {jose, {git, "https://github.com/potatosalad/erlang-jose", {tag, "1.11.2"}}} - , {telemetry, "1.1.0"} - , {hackney, {git, "https://github.com/emqx/hackney.git", {tag, "1.18.1-1"}}} +{deps, [ + {lc, {git, "https://github.com/emqx/lc.git", {tag, "0.3.2"}}}, + {redbug, {git, "https://github.com/emqx/redbug", {tag, "2.0.10"}}}, + {covertool, {git, "https://github.com/zmstone/covertool", {tag, "2.0.4.1"}}}, + {gpb, "4.19.9"}, + {typerefl, {git, "https://github.com/ieQu1/typerefl", {tag, "0.9.1"}}}, + {gun, {git, "https://github.com/emqx/gun", {tag, "1.3.10"}}}, + {ehttpc, {git, "https://github.com/emqx/ehttpc", {tag, "0.4.12"}}}, + {gproc, {git, "https://github.com/emqx/gproc", {tag, "0.9.0.1"}}}, + {jiffy, {git, "https://github.com/emqx/jiffy", {tag, "1.0.6"}}}, + {cowboy, {git, "https://github.com/emqx/cowboy", {tag, "2.9.2"}}}, + {esockd, {git, "https://github.com/emqx/esockd", {tag, "5.11.1"}}}, + {rocksdb, {git, "https://github.com/emqx/erlang-rocksdb", {tag, "1.8.0-emqx-2"}}}, + {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.17.0"}}}, + {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "3.3.1"}}}, + {grpc, {git, "https://github.com/emqx/grpc-erl", {tag, "0.6.12"}}}, + {minirest, {git, "https://github.com/emqx/minirest", {tag, "1.3.15"}}}, + {ecpool, {git, "https://github.com/emqx/ecpool", {tag, "0.5.7"}}}, + {replayq, {git, "https://github.com/emqx/replayq.git", {tag, "0.3.7"}}}, + {pbkdf2, {git, "https://github.com/emqx/erlang-pbkdf2.git", {tag, "2.0.4"}}}, + {emqtt, {git, "https://github.com/emqx/emqtt", {tag, "1.10.1"}}}, + {rulesql, {git, "https://github.com/emqx/rulesql", {tag, "0.1.7"}}}, + % NOTE: depends on recon 2.5.x + {observer_cli, "1.7.1"}, + {system_monitor, {git, "https://github.com/ieQu1/system_monitor", {tag, "3.0.3"}}}, + {getopt, "1.0.2"}, + {snabbkaffe, {git, "https://github.com/kafka4beam/snabbkaffe.git", {tag, "1.0.8"}}}, + {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.40.3"}}}, + {emqx_http_lib, {git, "https://github.com/emqx/emqx_http_lib.git", {tag, "0.5.3"}}}, + {esasl, {git, "https://github.com/emqx/esasl", {tag, "0.2.0"}}}, + {jose, {git, "https://github.com/potatosalad/erlang-jose", {tag, "1.11.2"}}}, + {telemetry, "1.1.0"}, + {hackney, {git, "https://github.com/emqx/hackney.git", {tag, "1.18.1-1"}}}, %% to keep in sync with mix.exs - , {ssl_verify_fun, "1.1.7"} + {ssl_verify_fun, "1.1.7"}, %% in conflict by erlavro and rocketmq - , {jsone, {git, "https://github.com/emqx/jsone.git", {tag, "1.7.1"}}} - , {uuid, {git, "https://github.com/okeuday/uuid.git", {tag, "v2.0.6"}}} - , {ssl_verify_fun, "1.1.7"} - , {rfc3339, {git, "https://github.com/emqx/rfc3339.git", {tag, "0.2.3"}}} - , {bcrypt, {git, "https://github.com/emqx/erlang-bcrypt.git", {tag, "0.6.1"}}} - ]}. + {jsone, {git, "https://github.com/emqx/jsone.git", {tag, "1.7.1"}}}, + {uuid, {git, "https://github.com/okeuday/uuid.git", {tag, "v2.0.6"}}}, + {ssl_verify_fun, "1.1.7"}, + {rfc3339, {git, "https://github.com/emqx/rfc3339.git", {tag, "0.2.3"}}}, + {bcrypt, {git, "https://github.com/emqx/erlang-bcrypt.git", {tag, "0.6.1"}}} +]}. {xref_ignores, - [ %% schema registry is for enterprise - {emqx_schema_registry,get_all_schemas,0}, - {emqx_schema_api,format_schema,1}, - {emqx_schema_api,make_schema_params,1}, - {emqx_schema_parser,decode,3}, - {emqx_schema_parser,encode,3}, - {emqx_schema_registry,add_schema,1}, - {emqx_audit, log, 2}, - emqx_exhook_pb, % generated code for protobuf - emqx_exproto_pb % generated code for protobuf -]}. + %% schema registry is for enterprise + [ + {emqx_schema_registry, get_all_schemas, 0}, + {emqx_schema_api, format_schema, 1}, + {emqx_schema_api, make_schema_params, 1}, + {emqx_schema_parser, decode, 3}, + {emqx_schema_parser, encode, 3}, + {emqx_schema_registry, add_schema, 1}, + {emqx_audit, log, 2}, + % generated code for protobuf + emqx_exhook_pb, + % generated code for protobuf + emqx_exproto_pb + ]}. -{eunit_opts, - [ verbose - ]}. +{eunit_opts, [verbose]}. -{project_plugins, - [ erlfmt, +{project_plugins, [ + erlfmt, {rebar3_hex, "7.0.2"}, - {rebar3_sbom, - {git, "https://github.com/emqx/rebar3_sbom.git", {tag, "v0.6.1-1"}}} + {rebar3_sbom, {git, "https://github.com/emqx/rebar3_sbom.git", {tag, "v0.6.1-1"}}} ]}. From 8f8ad2895b0840abfd82c792abc08b34a97b7ac0 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Thu, 28 Dec 2023 17:50:19 +0800 Subject: [PATCH 7/7] chore: bump git-blame-ignore-revs --- git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git-blame-ignore-revs b/git-blame-ignore-revs index c1bb2f5ea..5e10071ca 100644 --- a/git-blame-ignore-revs +++ b/git-blame-ignore-revs @@ -37,3 +37,5 @@ a4feb3e6e95c18cb531416112e57520c5ba00d40 02c3f87b316e8370287d5cd46de4f103ffe48433 # erlfmt all remaining escripts 72eb34658d31fb38130421949cff262efab51139 +# erlfmt rebar.config files and bin/nodetool +5e100f52b8a530f4a952a4b20125ec37b38e2906