From 413566025bb28ff0bdc537b69106db2571dbd8a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Svensson?= Date: Thu, 20 Nov 2025 18:27:00 +0100 Subject: [PATCH 1/8] CI: Update actions/checkout to v6.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Svensson --- .github/workflows/ci.yml | 6 +++--- .github/workflows/db-compatibility.yml | 4 ++-- .github/workflows/release.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 78eed44..bd4e821 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: fmt: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Prepare run: | sudo apt update @@ -33,7 +33,7 @@ jobs: spellcheck: runs-on: ubuntu-latest steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Install typos uses: taiki-e/install-action@14083e64ac8cf1f5e54356df00b9779b23e192a1 # v2.58.29 with: @@ -51,7 +51,7 @@ jobs: - otp-version: '26.2.5.5' - otp-version: '25.3.2.15' steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Install Erlang/OTP uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.20.4 with: diff --git a/.github/workflows/db-compatibility.yml b/.github/workflows/db-compatibility.yml index 764ee8b..e79a8ce 100644 --- a/.github/workflows/db-compatibility.yml +++ b/.github/workflows/db-compatibility.yml @@ -16,7 +16,7 @@ jobs: - valkey-version: 8.0.1 - valkey-version: 7.2.5 steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Install redis-cli required by common tests uses: awalsh128/cache-apt-pkgs-action@2c09a5e66da6c8016428a2172bd76e5e4f14bb17 # v1.5.3 with: @@ -44,7 +44,7 @@ jobs: - redis-version: 7.0.15 - redis-version: 6.2.14 steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Install packages for common tests uses: awalsh128/cache-apt-pkgs-action@2c09a5e66da6c8016428a2172bd76e5e4f14bb17 # v1.5.3 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5c73634..922c6bd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,7 @@ jobs: name: Check ered application version runs-on: ubuntu-latest steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Install Erlang/OTP uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.20.4 with: From 0984179222764354198c40eaca21a321971e6de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Svensson?= Date: Thu, 20 Nov 2025 18:31:36 +0100 Subject: [PATCH 2/8] CI: Update cache-apt-pkgs-action to v1.6.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Svensson --- .github/workflows/ci.yml | 2 +- .github/workflows/db-compatibility.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bd4e821..1be93c4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ jobs: otp-version: ${{ matrix.otp-version }} rebar3-version: '3.23.0' - name: Install packages for common tests - uses: awalsh128/cache-apt-pkgs-action@2c09a5e66da6c8016428a2172bd76e5e4f14bb17 # v1.5.3 + uses: awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0 with: packages: redis-server faketime version: 1.0 diff --git a/.github/workflows/db-compatibility.yml b/.github/workflows/db-compatibility.yml index e79a8ce..d30e14b 100644 --- a/.github/workflows/db-compatibility.yml +++ b/.github/workflows/db-compatibility.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Install redis-cli required by common tests - uses: awalsh128/cache-apt-pkgs-action@2c09a5e66da6c8016428a2172bd76e5e4f14bb17 # v1.5.3 + uses: awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0 with: packages: redis-server version: 1.0 @@ -46,7 +46,7 @@ jobs: steps: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Install packages for common tests - uses: awalsh128/cache-apt-pkgs-action@2c09a5e66da6c8016428a2172bd76e5e4f14bb17 # v1.5.3 + uses: awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0 with: packages: redis-server faketime version: 1.0 From 198eb36e68589d044bb0287edd71bc3e36c0f3bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Svensson?= Date: Thu, 20 Nov 2025 18:37:57 +0100 Subject: [PATCH 3/8] CI: Use ubuntu-24.04 instead of ubuntu-22.04 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Svensson --- .github/workflows/ci.yml | 4 ++-- .github/workflows/db-compatibility.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1be93c4..437c326 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ permissions: jobs: fmt: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Prepare @@ -42,7 +42,7 @@ jobs: run: typos --config=.github/typos.toml build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: diff --git a/.github/workflows/db-compatibility.yml b/.github/workflows/db-compatibility.yml index d30e14b..fe81dc7 100644 --- a/.github/workflows/db-compatibility.yml +++ b/.github/workflows/db-compatibility.yml @@ -8,7 +8,7 @@ permissions: jobs: valkey: name: Valkey ${{ matrix.valkey-version }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: @@ -35,7 +35,7 @@ jobs: redis: name: Redis ${{ matrix.redis-version }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: From fa6795fcdde2b3352eecf63a27305a39f26faf28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Svensson?= Date: Thu, 20 Nov 2025 18:45:30 +0100 Subject: [PATCH 4/8] CI: add newer Valkey versions in db-compatibility tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Svensson --- .github/workflows/db-compatibility.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/db-compatibility.yml b/.github/workflows/db-compatibility.yml index fe81dc7..a714d94 100644 --- a/.github/workflows/db-compatibility.yml +++ b/.github/workflows/db-compatibility.yml @@ -13,8 +13,10 @@ jobs: fail-fast: false matrix: include: - - valkey-version: 8.0.1 - - valkey-version: 7.2.5 + - valkey-version: 9.0.0 + - valkey-version: 8.1.4 + - valkey-version: 8.0.6 + - valkey-version: 7.2.11 steps: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Install redis-cli required by common tests From a505c6fb6bcbf068db6c5f4315982d5829659b05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Svensson?= Date: Thu, 20 Nov 2025 18:50:24 +0100 Subject: [PATCH 5/8] CI: Add OTP 28 and remove testing on OTP 25 and 26 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use a rebar3 versions that matches OTP 27 and 28 Signed-off-by: Björn Svensson --- .github/workflows/ci.yml | 11 +++++------ .github/workflows/db-compatibility.yml | 8 ++++---- .github/workflows/release.yml | 4 ++-- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 437c326..0c5a6d4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,8 +17,8 @@ jobs: - name: Install Erlang/OTP uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.20.4 with: - otp-version: '26.2.4' - rebar3-version: '3.23.0' + otp-version: '28.1.1' + rebar3-version: '3.25.1' - name: erlang-formatter run: | rebar3 as check fmt @@ -47,16 +47,15 @@ jobs: fail-fast: false matrix: include: - - otp-version: '27.1.2' - - otp-version: '26.2.5.5' - - otp-version: '25.3.2.15' + - otp-version: '28.1.1' + - otp-version: '27.3.4.6' steps: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Install Erlang/OTP uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.20.4 with: otp-version: ${{ matrix.otp-version }} - rebar3-version: '3.23.0' + rebar3-version: '3.25.1' - name: Install packages for common tests uses: awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0 with: diff --git a/.github/workflows/db-compatibility.yml b/.github/workflows/db-compatibility.yml index a714d94..75ccaf3 100644 --- a/.github/workflows/db-compatibility.yml +++ b/.github/workflows/db-compatibility.yml @@ -27,8 +27,8 @@ jobs: - name: Install Erlang/OTP uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.20.4 with: - otp-version: '26.2.4' - rebar3-version: '3.23.0' + otp-version: '28.1.1' + rebar3-version: '3.25.1' - name: Build and run common tests env: SERVER_DOCKER_IMAGE: valkey/valkey:${{ matrix.valkey-version }} @@ -55,8 +55,8 @@ jobs: - name: Install Erlang/OTP uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.20.4 with: - otp-version: '26.2.4' - rebar3-version: '3.23.0' + otp-version: '28.1.1' + rebar3-version: '3.25.1' - name: Build and run common tests env: SERVER_DOCKER_IMAGE: redis:${{ matrix.redis-version }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 922c6bd..67cb733 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,8 +18,8 @@ jobs: - name: Install Erlang/OTP uses: erlef/setup-beam@e6d7c94229049569db56a7ad5a540c051a010af9 # v1.20.4 with: - otp-version: '27.1.2' - rebar3-version: '3.23.0' + otp-version: '28.1.1' + rebar3-version: '3.25.1' - name: Check if vsn matches pushed tag (see src/ered.app.src). run: | rebar3 shell --apps ered --eval "$(cat << EOF From 0482027265ab0ad976fd37e5c2456f7eaeda4e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Svensson?= Date: Thu, 20 Nov 2025 18:54:52 +0100 Subject: [PATCH 6/8] CI: Update release job to run erl instead of rebar3 shell MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rebar3 seems to have changed so its shell only runs in interactive mode, which Github Actions TTY does not support and halts without running. Signed-off-by: Björn Svensson --- .github/workflows/release.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 67cb733..6806903 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,10 +22,14 @@ jobs: rebar3-version: '3.25.1' - name: Check if vsn matches pushed tag (see src/ered.app.src). run: | - rebar3 shell --apps ered --eval "$(cat << EOF + rebar3 compile + erl -noshell -pa _build/default/lib/*/ebin -eval "$(cat <<'EOF' Version = "${{ github.ref_name }}", + application:start(ered), case application:get_key(ered, vsn) of {ok, Version} -> + io:format(user, "Version check ok, vsn and pushed tag is ~p~n", + [Version]), halt(0,[]); Error -> io:format(user, "Version check failed, got ~p while pushed tag is ~s~n", From cefbc423f3974073908e1e274e4b0ebf34037a40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Svensson?= Date: Fri, 21 Nov 2025 10:12:01 +0100 Subject: [PATCH 7/8] CI: Perform a cleanup before running dialyzer to fix issues with rebar3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Svensson --- .github/workflows/ci.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c5a6d4..1b04b67 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,4 +68,11 @@ jobs: - name: Run common tests run: rebar3 ct - name: Run dialyzer - run: rebar3 as test dialyzer + run: | + # Remove remnants from "rebar3 ct" that creates problems for the dialyzer. + # rebar3 might add ct_hooks that are not found by the dialyzer and will + # create warnings if not rebuilt. Example of a warning: + # test/ered_cluster_SUITE.erl + # Line 72 Column 13: Unknown function cthr:pal/1 + rebar3 as test clean + rebar3 as test dialyzer From 4f9550a79fc2f9d59157287306587aca9864c938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Svensson?= Date: Fri, 21 Nov 2025 10:25:49 +0100 Subject: [PATCH 8/8] Re-enable 'unknown function or type' warnings in rebar.config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Svensson --- rebar.config | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/rebar.config b/rebar.config index d006643..f37d738 100644 --- a/rebar.config +++ b/rebar.config @@ -10,7 +10,4 @@ {profiles, [{check, [{plugins, [{rebar3_fmt, "1.18.0"}]}]}]}. -%% In OTP-26 the 'unknown function or type' warning is on by default. -%% We disable this again due to missing supervisor types in OTP-26, see: -%% https://github.com/erlang/otp/pull/6893 -{dialyzer, [{warnings, [no_unknown]}]}. +{dialyzer, [{plt_extra_apps, [common_test, eunit, public_key]}]}.