diff --git a/apps/emqx/include/emqx_release.hrl b/apps/emqx/include/emqx_release.hrl index 31afc0ef5..d76c02d78 100644 --- a/apps/emqx/include/emqx_release.hrl +++ b/apps/emqx/include/emqx_release.hrl @@ -32,7 +32,7 @@ %% `apps/emqx/src/bpapi/README.md' %% Opensource edition --define(EMQX_RELEASE_CE, "5.1.4"). +-define(EMQX_RELEASE_CE, "5.1.5-build.3"). %% Enterprise edition -define(EMQX_RELEASE_EE, "5.1.1"). diff --git a/apps/emqx/src/emqx.app.src b/apps/emqx/src/emqx.app.src index d9598ee1b..f324d6ae0 100644 --- a/apps/emqx/src/emqx.app.src +++ b/apps/emqx/src/emqx.app.src @@ -2,7 +2,7 @@ {application, emqx, [ {id, "emqx"}, {description, "EMQX Core"}, - {vsn, "5.1.5"}, + {vsn, "5.1.7"}, {modules, []}, {registered, []}, {applications, [ diff --git a/apps/emqx/src/emqx_schema.erl b/apps/emqx/src/emqx_schema.erl index 5cab3cbc5..e6bff790e 100644 --- a/apps/emqx/src/emqx_schema.erl +++ b/apps/emqx/src/emqx_schema.erl @@ -2017,6 +2017,14 @@ common_ssl_opts_schema(Defaults, Type) -> desc => ?DESC(common_ssl_opts_schema_cacertfile) } )}, + {"cacerts", + sc( + boolean(), + #{ + default => false, + deprecated => {since, "5.1.4"} + } + )}, {"certfile", sc( binary(), diff --git a/apps/emqx_conf/src/emqx_conf.app.src b/apps/emqx_conf/src/emqx_conf.app.src index 86fb169a6..ab65c03c8 100644 --- a/apps/emqx_conf/src/emqx_conf.app.src +++ b/apps/emqx_conf/src/emqx_conf.app.src @@ -1,6 +1,6 @@ {application, emqx_conf, [ {description, "EMQX configuration management"}, - {vsn, "0.1.25"}, + {vsn, "0.1.26"}, {registered, []}, {mod, {emqx_conf_app, []}}, {applications, [kernel, stdlib, emqx_ctl]}, diff --git a/apps/emqx_machine/src/emqx_machine.app.src b/apps/emqx_machine/src/emqx_machine.app.src index bdd1db76e..e86351556 100644 --- a/apps/emqx_machine/src/emqx_machine.app.src +++ b/apps/emqx_machine/src/emqx_machine.app.src @@ -3,7 +3,7 @@ {id, "emqx_machine"}, {description, "The EMQX Machine"}, % strict semver, bump manually! - {vsn, "0.2.10"}, + {vsn, "0.2.11"}, {modules, []}, {registered, []}, {applications, [kernel, stdlib, emqx_ctl]}, diff --git a/build b/build index 34f7e8edb..03d1ce673 100755 --- a/build +++ b/build @@ -382,7 +382,7 @@ make_docker() { # shellcheck disable=SC2155 local VSN_MINOR="$(scripts/semver.sh "$PKG_VSN" --minor)" # shellcheck disable=SC2155 - local VSN_MINOR="$(scripts/semver.sh "$PKG_VSN" --patch)" + local VSN_PATCH="$(scripts/semver.sh "$PKG_VSN" --patch)" local SUFFIX='' if [[ "$PROFILE" = *-elixir ]]; then SUFFIX="-elixir" diff --git a/changes/ce/fix-11410.en.md b/changes/ce/fix-11410.en.md new file mode 100644 index 000000000..f0c144652 --- /dev/null +++ b/changes/ce/fix-11410.en.md @@ -0,0 +1,3 @@ +Reintroduce `cacerts` TLS client option as a deprecated option. + +This fixes issues found when trying to upgrade from 5.1.3 where that option is set in the configuration files or persisted in EMQX Operator settings. diff --git a/changes/v5.1.5-build.3.en.md b/changes/v5.1.5-build.3.en.md new file mode 100644 index 000000000..f8317a3d8 --- /dev/null +++ b/changes/v5.1.5-build.3.en.md @@ -0,0 +1,37 @@ +# v5.1.5-build.3 + +## Enhancements + +- [#10697](https://github.com/emqx/emqx/pull/10697) This change allows to set the minReadySeconds for the StatefulSet. This allows to add a gap between the restarts of each pod by upgrade or restart command. + +- [#11390](https://github.com/emqx/emqx/pull/11390) Add `node.broker_pool_size`, `node.generic_pool_size`, `node.channel_cleanup_batch_size` options to EMQX configuration. + + Tuning these options can significantly improve performance if cluster interconnect network latency is high. + +- [#11389](https://github.com/emqx/emqx/pull/11389) Improved retained message publishing latency by consolidating multiple index update operations into a single mnesia activity, leveraging the new APIs introduced in mria 0.6.0. + +- [#11399](https://github.com/emqx/emqx/pull/11399) Improved the placeholder syntax of rule engine. + + The parameters of actions support using placeholder syntax to + dynamically fill in the content of strings. The format of the + placeholder syntax is `${key}`. + Before this improvement, the `key` in `${key}` could only contain + letters, numbers, and underscores. Now the `key` supports any UTF8 + characters. + +- [#11405](https://github.com/emqx/emqx/pull/11405) Improve the error reason of the `date_to_unix_ts` to make more sense. + +## Bug Fixes + +- [#11279](https://github.com/emqx/emqx/pull/11279) Prevent client disconnected when sending large payloads with debug/trace logging is enabled. + +- [#11388](https://github.com/emqx/emqx/pull/11388) Increase `emqx_router_sup` restart intensity. + + The goal is to tolerate occasional crashes that can happen under relatively normal conditions + and don't seem critical to shutdown the whole app (emqx). + For example, mria write/delete call delegated from a replicant to a core node by `emqx_router_helper` may fail, + if the core node is being stopped / restarted / not ready. + +- [#11410](https://github.com/emqx/emqx/pull/11410) Reintroduce `cacerts` TLS client option as a deprecated option. + + This fixes issues found when trying to upgrade from 5.1.3 where that option is set in the configuration files or persisted in EMQX Operator settings. diff --git a/changes/v5.1.5-patch.1.en.md b/changes/v5.1.5-patch.1.en.md new file mode 100644 index 000000000..8958c9613 --- /dev/null +++ b/changes/v5.1.5-patch.1.en.md @@ -0,0 +1,26 @@ +# v5.1.5-patch.1 + +## Enhancements + +- [#10697](https://github.com/emqx/emqx/pull/10697) This change allows to set the minReadySeconds for the StatefulSet. This allows to add a gap between the restarts of each pod by upgrade or restart command. + +- [#11390](https://github.com/emqx/emqx/pull/11390) Add `node.broker_pool_size`, `node.generic_pool_size`, `node.channel_cleanup_batch_size` options to EMQX configuration. + + Tuning these options can significantly improve performance if cluster interconnect network latency is high. + +- [#11389](https://github.com/emqx/emqx/pull/11389) Improved retained message publishing latency by consolidating multiple index update operations into a single mnesia activity, leveraging the new APIs introduced in mria 0.6.0. + +- [#11405](https://github.com/emqx/emqx/pull/11405) Improve the error reason of the `date_to_unix_ts` to make more sense. + +## Bug Fixes + +- [#11388](https://github.com/emqx/emqx/pull/11388) Increase `emqx_router_sup` restart intensity. + + The goal is to tolerate occasional crashes that can happen under relatively normal conditions + and don't seem critical to shutdown the whole app (emqx). + For example, mria write/delete call delegated from a replicant to a core node by `emqx_router_helper` may fail, + if the core node is being stopped / restarted / not ready. + +- [#11410](https://github.com/emqx/emqx/pull/11410) Reintroduce `cacerts` TLS client option as a deprecated option. + + This fixes issues found when trying to upgrade from 5.1.3 where that option is set in the configuration files or persisted in EMQX Operator settings. diff --git a/changes/v5.1.5-patch.2.en.md b/changes/v5.1.5-patch.2.en.md new file mode 100644 index 000000000..2386fb5ee --- /dev/null +++ b/changes/v5.1.5-patch.2.en.md @@ -0,0 +1,26 @@ +# v5.1.5-patch.2 + +## Enhancements + +- [#10697](https://github.com/emqx/emqx/pull/10697) This change allows to set the minReadySeconds for the StatefulSet. This allows to add a gap between the restarts of each pod by upgrade or restart command. + +- [#11390](https://github.com/emqx/emqx/pull/11390) Add `node.broker_pool_size`, `node.generic_pool_size`, `node.channel_cleanup_batch_size` options to EMQX configuration. + + Tuning these options can significantly improve performance if cluster interconnect network latency is high. + +- [#11389](https://github.com/emqx/emqx/pull/11389) Improved retained message publishing latency by consolidating multiple index update operations into a single mnesia activity, leveraging the new APIs introduced in mria 0.6.0. + +- [#11405](https://github.com/emqx/emqx/pull/11405) Improve the error reason of the `date_to_unix_ts` to make more sense. + +## Bug Fixes + +- [#11388](https://github.com/emqx/emqx/pull/11388) Increase `emqx_router_sup` restart intensity. + + The goal is to tolerate occasional crashes that can happen under relatively normal conditions + and don't seem critical to shutdown the whole app (emqx). + For example, mria write/delete call delegated from a replicant to a core node by `emqx_router_helper` may fail, + if the core node is being stopped / restarted / not ready. + +- [#11410](https://github.com/emqx/emqx/pull/11410) Reintroduce `cacerts` TLS client option as a deprecated option. + + This fixes issues found when trying to upgrade from 5.1.3 where that option is set in the configuration files or persisted in EMQX Operator settings. diff --git a/changes/v5.1.5.en.md b/changes/v5.1.5.en.md new file mode 100644 index 000000000..69377f157 --- /dev/null +++ b/changes/v5.1.5.en.md @@ -0,0 +1,24 @@ +# v5.1.5 + +## Enhancements + +- [#10697](https://github.com/emqx/emqx/pull/10697) This change allows to set the minReadySeconds for the StatefulSet. This allows to add a gap between the restarts of each pod by upgrade or restart command. + +- [#11390](https://github.com/emqx/emqx/pull/11390) Add `node.broker_pool_size`, `node.generic_pool_size`, `node.channel_cleanup_batch_size` options to EMQX configuration. + + Tuning these options can significantly improve performance if cluster interconnect network latency is high. + +- [#11389](https://github.com/emqx/emqx/pull/11389) Improved retained message publishing latency by consolidating multiple index update operations into a single mnesia activity, leveraging the new APIs introduced in mria 0.6.0. + +## Bug Fixes + +- [#11388](https://github.com/emqx/emqx/pull/11388) Increase `emqx_router_sup` restart intensity. + + The goal is to tolerate occasional crashes that can happen under relatively normal conditions + and don't seem critical to shutdown the whole app (emqx). + For example, mria write/delete call delegated from a replicant to a core node by `emqx_router_helper` may fail, + if the core node is being stopped / restarted / not ready. + +- [#11410](https://github.com/emqx/emqx/pull/11410) Reintroduce `cacerts` TLS client option as a deprecated option. + + This fixes issues found when trying to upgrade from 5.1.3 where that option is set in the configuration files or persisted in EMQX Operator settings. diff --git a/deploy/charts/emqx/Chart.yaml b/deploy/charts/emqx/Chart.yaml index 89699ff9e..f1e4fe822 100644 --- a/deploy/charts/emqx/Chart.yaml +++ b/deploy/charts/emqx/Chart.yaml @@ -14,8 +14,8 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. -version: 5.1.4 +version: 5.1.5 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. -appVersion: 5.1.4 +appVersion: 5.1.5 diff --git a/scripts/parse-git-ref.sh b/scripts/parse-git-ref.sh index 5209afcc1..b0d01d2d3 100755 --- a/scripts/parse-git-ref.sh +++ b/scripts/parse-git-ref.sh @@ -20,7 +20,7 @@ if [[ $1 =~ ^refs/tags/v[5-9]+\.[0-9]+\.[0-9]+$ ]]; then PROFILE=emqx RELEASE=true LATEST=$(is_latest "$1") -elif [[ $1 =~ ^refs/tags/v[5-9]+\.[0-9]+\.[0-9]+-[0-9]+$ ]]; then +elif [[ $1 =~ ^refs/tags/v[5-9]+\.[0-9]+\.[0-9]+-build\.[0-9]+$ ]]; then PROFILE=emqx RELEASE=true LATEST=$(is_latest "$1") @@ -28,7 +28,7 @@ elif [[ $1 =~ ^refs/tags/e[5-9]+\.[0-9]+\.[0-9]+$ ]]; then PROFILE=emqx-enterprise RELEASE=true LATEST=$(is_latest "$1") -elif [[ $1 =~ ^refs/tags/e[5-9]+\.[0-9]+\.[0-9]+-[0-9]+$ ]]; then +elif [[ $1 =~ ^refs/tags/e[5-9]+\.[0-9]+\.[0-9]+-build\.[0-9]+$ ]]; then PROFILE=emqx-enterprise RELEASE=true LATEST=$(is_latest "$1") diff --git a/scripts/semver.sh b/scripts/semver.sh index 065241355..5abf77fd6 100755 --- a/scripts/semver.sh +++ b/scripts/semver.sh @@ -6,21 +6,21 @@ function parseSemver() { local RE='^([0-9]+)\.([0-9]+)\.([0-9]+)(-([a-z]+\.[0-9]+))?$' echo "$1" | grep -qE "$RE" || exit 1 #shellcheck disable=SC2155 - local MAJOR=$( echo "$1" | sed -r "s#$RE#\1#") + local MAJOR=$(echo "$1" | sed -r "s#$RE#\1#") #shellcheck disable=SC2155 - local MINOR=$( echo "$1" | sed -r "s#$RE#\2#") + local MINOR=$(echo "$1" | sed -r "s#$RE#\2#") #shellcheck disable=SC2155 - local PATCH=$( echo "$1" | sed -r "s#$RE#\3#") + local PATCH=$(echo "$1" | sed -r "s#$RE#\3#") #shellcheck disable=SC2155 - local SPECIAL=$(echo "$1" | sed -r "s#$RE#\5#") + local BUILD=$(echo "$1" | sed -r "s#$RE#\5#") case "${2}" in - --major) echo "${MAJOR}" ;; - --minor) echo "${MINOR}" ;; - --patch) echo "${PATCH}" ;; - --special) echo "${SPECIAL}" ;; + --major) echo "${MAJOR}" ;; + --minor) echo "${MINOR}" ;; + --patch) echo "${PATCH}" ;; + --build) echo "${BUILD}" ;; *) cat <>>= 1 +./parse-git-ref.sh v5.2.0-1 +>>>2 +Unrecognized git ref: v5.2.0-1 +>>>= 1 + +./parse-git-ref.sh e5.2.0-1 +>>>2 +Unrecognized git ref: e5.2.0-1 +>>>= 1 + ./parse-git-ref.sh refs/tags/v5.1.0 >>> {"profile": "emqx", "release": true, "latest": false} >>>= 0 -./parse-git-ref.sh refs/tags/v5.1.5-1 +./parse-git-ref.sh refs/tags/v5.1.5-build.1 >>> {"profile": "emqx", "release": true, "latest": false} >>>= 0 @@ -43,7 +53,7 @@ Unrecognized tag: refs/tags/v5.2.0-alpha-1 {"profile": "emqx-enterprise", "release": true, "latest": false} >>>= 0 -./parse-git-ref.sh refs/tags/e5.1.5-1 +./parse-git-ref.sh refs/tags/e5.1.5-build.1 >>> {"profile": "emqx-enterprise", "release": true, "latest": false} >>>= 0 diff --git a/scripts/shelltest/semver.test b/scripts/shelltest/semver.test index 60a85dce1..b04543cad 100644 --- a/scripts/shelltest/semver.test +++ b/scripts/shelltest/semver.test @@ -3,30 +3,30 @@ ./semver.sh 5.1.0 >>> -{"major": 5, "minor": 1, "patch": 0, "special": ""} +{"major": 5, "minor": 1, "patch": 0, "build": ""} >>>= 0 -./semver.sh 5.1.0-patch.3 +./semver.sh 5.1.0-build.3 >>> -{"major": 5, "minor": 1, "patch": 0, "special": "patch.3"} +{"major": 5, "minor": 1, "patch": 0, "build": "build.3"} >>>= 0 -./semver.sh 5.1.0-patch.3 --major +./semver.sh 5.1.0-build.3 --major >>> 5 >>>= 0 -./semver.sh 5.1.0-patch.3 --minor +./semver.sh 5.1.0-build.3 --minor >>> 1 >>>= 0 -./semver.sh 5.1.0-patch.3 --patch +./semver.sh 5.1.0-build.3 --patch >>> 0 >>>= 0 -./semver.sh 5.1.0-patch.3 --special +./semver.sh 5.1.0-build.3 --build >>> -patch.3 +build.3 >>>= 0