From c52286a20ae35b28a67b7c28a984f511639c13c9 Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Tue, 23 Aug 2022 10:48:10 -0300 Subject: [PATCH] refactor: store db as list and rename file to `relup-paths.eterm` --- .github/workflows/apps_version_check.yaml | 2 +- build | 2 +- data/relup-paths.eterm | 32 +++++++++++++++++++++++ data/relup_bases.eterm | 32 ----------------------- scripts/relup-base-packages.sh | 2 +- scripts/relup-base-vsns.escript | 19 ++++++++++---- scripts/relup-base-vsns.sh | 2 +- 7 files changed, 50 insertions(+), 41 deletions(-) create mode 100644 data/relup-paths.eterm delete mode 100644 data/relup_bases.eterm diff --git a/.github/workflows/apps_version_check.yaml b/.github/workflows/apps_version_check.yaml index bf3544708..a86b06967 100644 --- a/.github/workflows/apps_version_check.yaml +++ b/.github/workflows/apps_version_check.yaml @@ -24,7 +24,7 @@ jobs: - name: Check relup version DB run: | PKG_VSN=$(./pkg-vsn.sh) - ./scripts/relup-base-vsns.escript check-vsn-db $PKG_VSN ./data/relup_bases.eterm + ./scripts/relup-base-vsns.escript check-vsn-db $PKG_VSN ./data/relup-paths.eterm - name: Check relup (ce) if: endsWith(github.repository, 'emqx') run: ./scripts/update-appup.sh emqx --check diff --git a/build b/build index bed17f407..732240194 100755 --- a/build +++ b/build @@ -67,7 +67,7 @@ make_rel() { } relup_db() { - ./scripts/relup-base-vsns.escript "$@" ./data/relup_bases.eterm + ./scripts/relup-base-vsns.escript "$@" ./data/relup-paths.eterm } ## unzip previous version .zip files to _build/$PROFILE/rel/emqx/releases before making relup diff --git a/data/relup-paths.eterm b/data/relup-paths.eterm new file mode 100644 index 000000000..ee4840f11 --- /dev/null +++ b/data/relup-paths.eterm @@ -0,0 +1,32 @@ +%% -*- mode: erlang; -*- + +[{<<"4.4.0">>,#{from_versions => [],otp => <<"24.1.5-3">>}}, + {<<"4.4.1">>,#{from_versions => [<<"4.4.0">>],otp => <<"24.1.5-3">>}}, + {<<"4.4.2">>, + #{from_versions => [<<"4.4.0">>,<<"4.4.1">>],otp => <<"24.1.5-3">>}}, + {<<"4.4.3">>, + #{from_versions => [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>], + otp => <<"24.1.5-3">>}}, + {<<"4.4.4">>, + #{from_versions => [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>,<<"4.4.3">>], + otp => <<"24.1.5-3">>}}, + {<<"4.4.5">>, + #{from_versions => + [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>], + otp => <<"24.1.5-3">>}}, + {<<"4.4.6">>, + #{from_versions => + [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>, + <<"4.4.5">>], + otp => <<"24.1.5-3">>}}, + {<<"4.4.7">>, + #{from_versions => + [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>, + <<"4.4.5">>,<<"4.4.6">>], + otp => <<"24.1.5-3">>}}, + {<<"4.4.8">>, + #{from_versions => + [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>, + <<"4.4.5">>,<<"4.4.6">>,<<"4.4.7">>], + otp => <<"24.1.5-3">>}}, + {<<"4.5.0">>,#{from_versions => [<<"4.4.8">>],otp => <<"24.3.4.2-1">>}}]. diff --git a/data/relup_bases.eterm b/data/relup_bases.eterm deleted file mode 100644 index 1582cf75e..000000000 --- a/data/relup_bases.eterm +++ /dev/null @@ -1,32 +0,0 @@ -%% -*- mode: erlang; -*- - -#{<<"4.4.0">> => #{from_versions => [],otp => <<"24.1.5-3">>}, - <<"4.4.1">> => #{from_versions => [<<"4.4.0">>],otp => <<"24.1.5-3">>}, - <<"4.4.2">> => - #{from_versions => [<<"4.4.0">>,<<"4.4.1">>],otp => <<"24.1.5-3">>}, - <<"4.4.3">> => - #{from_versions => [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>], - otp => <<"24.1.5-3">>}, - <<"4.4.4">> => - #{from_versions => [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>,<<"4.4.3">>], - otp => <<"24.1.5-3">>}, - <<"4.4.5">> => - #{from_versions => - [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>], - otp => <<"24.1.5-3">>}, - <<"4.4.6">> => - #{from_versions => - [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>, - <<"4.4.5">>], - otp => <<"24.1.5-3">>}, - <<"4.4.7">> => - #{from_versions => - [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>, - <<"4.4.5">>,<<"4.4.6">>], - otp => <<"24.1.5-3">>}, - <<"4.4.8">> => - #{from_versions => - [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>, - <<"4.4.5">>,<<"4.4.6">>,<<"4.4.7">>], - otp => <<"24.1.5-3">>}, - <<"4.5.0">> => #{from_versions => [<<"4.4.8">>],otp => <<"24.3.4.2-1">>}}. diff --git a/scripts/relup-base-packages.sh b/scripts/relup-base-packages.sh index 416030219..60785adc8 100755 --- a/scripts/relup-base-packages.sh +++ b/scripts/relup-base-packages.sh @@ -64,7 +64,7 @@ mkdir -p _upgrade_base pushd _upgrade_base otp_vsn_for() { - ../scripts/relup-base-vsns.escript otp-vsn-for "${1#[e|v]}" ../data/relup_bases.eterm + ../scripts/relup-base-vsns.escript otp-vsn-for "${1#[e|v]}" ../data/relup-paths.eterm } for tag in $(../scripts/relup-base-vsns.sh $EDITION | xargs echo -n); do diff --git a/scripts/relup-base-vsns.escript b/scripts/relup-base-vsns.escript index 1109b2555..5b04c7dba 100755 --- a/scripts/relup-base-vsns.escript +++ b/scripts/relup-base-vsns.escript @@ -53,7 +53,7 @@ Usage: ". main(["base-vsns", To0, VsnDB]) -> - {ok, [VsnMap]} = file:consult(VsnDB), + VsnMap = read_db(VsnDB), To = strip_pre_release(To0), #{from_versions := Froms} = fetch_version(To, VsnMap), AvailableVersionsIndex = available_versions_index(), @@ -64,13 +64,13 @@ main(["base-vsns", To0, VsnDB]) -> filter_froms(Froms, AvailableVersionsIndex)), halt(0); main(["otp-vsn-for", Vsn0, VsnDB]) -> - {ok, [VsnMap]} = file:consult(VsnDB), + VsnMap = read_db(VsnDB), Vsn = strip_pre_release(Vsn0), #{otp := OtpVsn} = fetch_version(Vsn, VsnMap), io:format(user, "~s~n", [OtpVsn]), halt(0); main(["insert-new-vsn", NewVsn0, BaseFromVsn0, OtpVsn0, VsnDB]) -> - {ok, [VsnMap]} = file:consult(VsnDB), + VsnMap = read_db(VsnDB), NewVsn = strip_pre_release(NewVsn0), validate_version(NewVsn), BaseFromVsn = strip_pre_release(BaseFromVsn0), @@ -87,10 +87,15 @@ main(["insert-new-vsn", NewVsn0, BaseFromVsn0, OtpVsn0, VsnDB]) -> halt(1) end, NewVsnMap = insert_new_vsn(VsnMap, NewVsn, OtpVsn, BaseFromVsn), - file:write_file(VsnDB, io_lib:format("%% -*- mode: erlang; -*-\n\n~p.~n", [NewVsnMap])), + NewVsnList = + lists:sort( + fun({Vsn1, _}, {Vsn2, _}) -> + Vsn1 < Vsn2 + end, maps:to_list(NewVsnMap)), + file:write_file(VsnDB, io_lib:format("%% -*- mode: erlang; -*-\n\n~p.~n", [NewVsnList])), halt(0); main(["check-vsn-db", NewVsn0, VsnDB]) -> - {ok, [VsnMap]} = file:consult(VsnDB), + VsnMap = read_db(VsnDB), NewVsn = strip_pre_release(NewVsn0), case check_all_vsns_schema(VsnMap) of [] -> ok; @@ -262,6 +267,10 @@ available_versions_index() -> %% still build with 23. Switch to that once we drop OTP 23. maps:from_list([{Vsn, true} || Vsn <- AllVersions]). +read_db(VsnDB) -> + {ok, [VsnList]} = file:consult(VsnDB), + maps:from_list(VsnList). + print_warning(Msg) -> print_warning(Msg, []). diff --git a/scripts/relup-base-vsns.sh b/scripts/relup-base-vsns.sh index c5ccb462f..15b97921c 100755 --- a/scripts/relup-base-vsns.sh +++ b/scripts/relup-base-vsns.sh @@ -57,7 +57,7 @@ TAGS_EXCLUDE=( 'dummy' ) while read -r vsn; do # shellcheck disable=SC2207 TAGS+=($(git tag -l "${GIT_TAG_PREFIX}${vsn}")) -done < <(./scripts/relup-base-vsns.escript base-vsns "$CUR" ./data/relup_bases.eterm) +done < <(./scripts/relup-base-vsns.escript base-vsns "$CUR" ./data/relup-paths.eterm) for tag_to_del in "${TAGS_EXCLUDE[@]}"; do TAGS=( "${TAGS[@]/$tag_to_del}" )