From 49b53221342dc44ecdca80f1ef8b0dfebfb7a05d Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sun, 9 Nov 2025 09:10:09 -0500 Subject: [PATCH 1/5] fix: use kernel variable for erl node dist port --- priv/templates/extended_bin | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/priv/templates/extended_bin b/priv/templates/extended_bin index d01964a70..7b4625d7a 100644 --- a/priv/templates/extended_bin +++ b/priv/templates/extended_bin @@ -707,7 +707,17 @@ if [ "$ERL_DIST_PORT" ]; then else ADDRESS="$ERL_DIST_PORT" fi - if [ "11.1" = "$(printf "%s\n11.1" "${ERTS_VSN}" | sort -V | head -n1)" ] ; then + + # if erts >= 15 then use the kernel application variable for port number + if [ "15.0" = "$(printf "%s\n15.0" "${ERTS_VSN}" | sort -V | head -n1)" ] ; then + # unless set by the user, set start_epmd to false when ERL_DIST_PORT is used + if [ ! "$START_EPMD" ]; then + EXTRA_DIST_ARGS="-kernel erl_epmd_node_listen_port ${ERL_DIST_PORT} -start_epmd false" + else + EXTRA_DIST_ARGS="-kernel erl_epmd_node_listen_port ${ERL_DIST_PORT}" + fi + # if erts >= 11.1 then use the kernel application variable for port number + elif [ "11.1" = "$(printf "%s\n11.1" "${ERTS_VSN}" | sort -V | head -n1)" ] ; then # unless set by the user, set start_epmd to false when ERL_DIST_PORT is used if [ ! "$START_EPMD" ]; then EXTRA_DIST_ARGS="-erl_epmd_port ${ERL_DIST_PORT} -start_epmd false" From 116859b35b098b4e02d8a4222a53a72e2d1969a4 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sun, 9 Nov 2025 10:36:22 -0500 Subject: [PATCH 2/5] chore: bump CI otp versions --- .github/workflows/main.yml | 4 ++-- .github/workflows/shelltest.yml | 2 +- .github/workflows/wintest.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b786d4a38..9f57a097a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,8 +15,8 @@ jobs: strategy: matrix: - otp_version: [23, 24, 26] - os: [ubuntu-20.04] # latest only runs >= 24.2 + otp_version: [26, 27, 28] + os: [ubuntu-latest] container: image: erlang:${{ matrix.otp_version }} diff --git a/.github/workflows/shelltest.yml b/.github/workflows/shelltest.yml index 759460e9b..aaeeb6d16 100644 --- a/.github/workflows/shelltest.yml +++ b/.github/workflows/shelltest.yml @@ -17,7 +17,7 @@ jobs: matrix: # TODO: make a batch of tests that runs on nodetool rather # than the new connectivity mechanism - otp_version: [25, 26] + otp_version: [26, 27, 28] os: [ubuntu-latest] # latest only runs >= 24.2 steps: diff --git a/.github/workflows/wintest.yml b/.github/workflows/wintest.yml index dcc0259df..4451a2b3b 100644 --- a/.github/workflows/wintest.yml +++ b/.github/workflows/wintest.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - otp_version: [24, 25, 26] + otp_version: [26, 27, 28] os: [windows-latest] steps: From 879e02284bfd74929337c8df71d45abcdcd7df4c Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sun, 9 Nov 2025 10:57:37 -0500 Subject: [PATCH 3/5] chore: use windows 2022 in CI --- .github/workflows/wintest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wintest.yml b/.github/workflows/wintest.yml index 4451a2b3b..0ab1ded92 100644 --- a/.github/workflows/wintest.yml +++ b/.github/workflows/wintest.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: otp_version: [26, 27, 28] - os: [windows-latest] + os: [windows-2022] steps: - uses: actions/checkout@v2 From 0f4fc08db63a2e156dd62659796bf50cb48d7eb4 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Mon, 10 Nov 2025 08:08:28 -0500 Subject: [PATCH 4/5] chore: update arguments to systools:make_relup to match typespec --- src/relx.erl | 2 +- src/rlx_relup.erl | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/relx.erl b/src/relx.erl index ab3ca332c..4597c96f2 100644 --- a/src/relx.erl +++ b/src/relx.erl @@ -128,7 +128,7 @@ build_tar(RelName, Apps, State) when is_atom(RelName) -> {ok, RealizedRelease}. -spec build_relup(rlx_release:name(), rlx_release:vsn(), rlx_release:vsn(), rlx_config:t() | rlx_state:t()) - -> {ok, rlx_state:t()} | {error, term()}. + -> {ok, rlx_state:t()}. build_relup(RelName, ToVsn, UpFromVsn, Config) when is_list(Config) -> {ok, State} = rlx_config:to_state(Config), build_relup(RelName, ToVsn, UpFromVsn, State); diff --git a/src/rlx_relup.erl b/src/rlx_relup.erl index 0a1e0ce5d..153291206 100644 --- a/src/rlx_relup.erl +++ b/src/rlx_relup.erl @@ -6,7 +6,7 @@ -include("relx.hrl"). -include("rlx_log.hrl"). --spec do(atom(), string(), string() | undefined, rlx_state:t()) -> {ok, rlx_state:t()} | relx:error(). +-spec do(atom(), string(), string() | undefined, rlx_state:t()) -> {ok, rlx_state:t()}. do(RelName, ToVsn, undefined, State) -> OutputDir = rlx_state:base_output_dir(State), ReleasesDir = filename:join([OutputDir, RelName, "releases"]), @@ -40,14 +40,14 @@ make_upfrom_script(Name, ToVsn, UpFromVsn, State) -> WarningsAsErrors = rlx_state:warnings_as_errors(State), Options = [{outdir, OutDir}, {path, [filename:join([OutputDir, "*", "lib", "*", "ebin"])]}, - {silent, true} | case WarningsAsErrors of + silent | case WarningsAsErrors of true -> [warnings_as_errors]; false -> [] end], CurrentRel = strip_dot_rel(find_rel_file(Name, ToVsn, OutputDir)), UpFromRel = strip_dot_rel(find_rel_file(Name, UpFromVsn, OutputDir)), ?log_debug("systools:make_relup(~p, ~p, ~p, ~p)", [CurrentRel, UpFromRel, UpFromRel, Options]), - case systools:make_relup(CurrentRel, [UpFromRel], [UpFromRel], [no_warn_sasl | Options]) of + case systools:make_relup(CurrentRel, [UpFromRel], [UpFromRel], Options) of ok -> ?log_info("relup from ~s to ~s successfully created!", [UpFromRel, CurrentRel]), {ok, State}; From c84746786a7df194d19b695d9c63eb3073cf8412 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Mon, 10 Nov 2025 10:38:05 -0500 Subject: [PATCH 5/5] chore: use regex for checking undefined fuction warning --- .../check_undefined_test/check_undefined_test.test | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/shelltests/check_undefined_test/check_undefined_test.test b/shelltests/check_undefined_test/check_undefined_test.test index 94ec86da1..2e1fdc5ab 100644 --- a/shelltests/check_undefined_test/check_undefined_test.test +++ b/shelltests/check_undefined_test/check_undefined_test.test @@ -1,12 +1,3 @@ $ TERM=dumb rebar3 release -> -===> Verifying dependencies... -===> Analyzing applications... -===> Compiling check_undefined_test -===> Assembling release check_undefined_test-0.1.0... -===> There are missing function calls in the release. -===> Make sure all applications needed at runtime are included in the release. -===> check_undefined_test_app:start/2 calls undefined function crypto:start/0 -===> check_undefined_test_app:start/2 calls undefined function notamodule:dosomething/0 -===> Release successfully assembled: _build/default/rel/check_undefined_test +> /calls undefined function notamodule/ >= 0 \ No newline at end of file