From fe1e3c7ba566ff0e83c440bb665d727e18895243 Mon Sep 17 00:00:00 2001 From: Aleksey Kashapov Date: Tue, 3 Dec 2024 18:40:03 +0300 Subject: [PATCH] Upgrades plugins, fixes 'maybe' keyword, fixes record literal update expressions --- .env | 4 +-- .../src/hg_invoice_payment_refund.erl | 6 ++-- apps/hellgate/src/hg_maybe.erl | 12 ++++--- apps/hellgate/src/hg_session.erl | 16 +++++----- apps/hellgate/test/hg_invoice_tests_SUITE.erl | 5 +-- .../test/hg_route_rules_tests_SUITE.erl | 17 +++++----- rebar.config | 6 ++-- rebar.lock | 32 +++++++++---------- 8 files changed, 52 insertions(+), 46 deletions(-) diff --git a/.env b/.env index aced9e90..7c91940d 100644 --- a/.env +++ b/.env @@ -2,6 +2,6 @@ # You SHOULD specify point releases here so that build time and run time Erlang/OTPs # are the same. See: https://github.com/erlware/relx/pull/902 SERVICE_NAME=hellgate -OTP_VERSION=24.3.4 -REBAR_VERSION=3.18 +OTP_VERSION=27.1.2 +REBAR_VERSION=3.24 THRIFT_VERSION=0.14.2.3 diff --git a/apps/hellgate/src/hg_invoice_payment_refund.erl b/apps/hellgate/src/hg_invoice_payment_refund.erl index 586c1548..c6c589bb 100644 --- a/apps/hellgate/src/hg_invoice_payment_refund.erl +++ b/apps/hellgate/src/hg_invoice_payment_refund.erl @@ -155,17 +155,17 @@ cash_flow(#{cash_flow := V}) -> sessions(#{sessions := V}) -> V. --spec session(t()) -> hg_maybe:maybe(session()). +-spec session(t()) -> hg_maybe:'maybe'(session()). session(#{sessions := []}) -> undefined; session(#{sessions := [Session | _]}) -> Session. --spec transaction_info(t()) -> hg_maybe:maybe(trx_info()). +-spec transaction_info(t()) -> hg_maybe:'maybe'(trx_info()). transaction_info(T) -> maps:get(transaction_info, T, undefined). --spec failure(t()) -> hg_maybe:maybe(failure()). +-spec failure(t()) -> hg_maybe:'maybe'(failure()). failure(T) -> maps:get(failure, T, undefined). diff --git a/apps/hellgate/src/hg_maybe.erl b/apps/hellgate/src/hg_maybe.erl index 3ffac979..e752657d 100644 --- a/apps/hellgate/src/hg_maybe.erl +++ b/apps/hellgate/src/hg_maybe.erl @@ -1,15 +1,19 @@ -module(hg_maybe). +%% TODO +%% Deprecate and obsolete this module since erlang 27 already have 'maybe': +%% https://www.erlang.org/doc/system/expressions.html#maybe + -export([apply/2]). -export([apply/3]). -export([get_defined/1]). -export([get_defined/2]). --type maybe(T) :: +-type 'maybe'(T) :: undefined | T. --export_type([maybe/1]). +-export_type(['maybe'/1]). -spec apply(fun(), Arg :: undefined | term()) -> term(). apply(Fun, Arg) -> @@ -21,7 +25,7 @@ apply(Fun, Arg, _Default) when Arg =/= undefined -> apply(_Fun, undefined, Default) -> Default. --spec get_defined([maybe(T)]) -> T | no_return(). +-spec get_defined(['maybe'(T)]) -> T | no_return(). get_defined([]) -> erlang:error(badarg); get_defined([Value | _Tail]) when Value =/= undefined -> @@ -29,6 +33,6 @@ get_defined([Value | _Tail]) when Value =/= undefined -> get_defined([undefined | Tail]) -> get_defined(Tail). --spec get_defined(maybe(T), maybe(T)) -> T | no_return(). +-spec get_defined('maybe'(T), 'maybe'(T)) -> T | no_return(). get_defined(V1, V2) -> get_defined([V1, V2]). diff --git a/apps/hellgate/src/hg_session.erl b/apps/hellgate/src/hg_session.erl index 312c413e..40352d2f 100644 --- a/apps/hellgate/src/hg_session.erl +++ b/apps/hellgate/src/hg_session.erl @@ -8,7 +8,7 @@ -type t() :: #{ target := target(), status := session_status(), - trx := hg_maybe:maybe(trx_info()), + trx := hg_maybe:'maybe'(trx_info()), tags := [tag()], timeout_behaviour := timeout_behaviour(), context := tag_context(), @@ -120,7 +120,7 @@ target(#{target := V}) -> status(#{status := V}) -> V. --spec trx_info(t()) -> hg_maybe:maybe(trx_info()). +-spec trx_info(t()) -> hg_maybe:'maybe'(trx_info()). trx_info(#{trx := V}) -> V. @@ -140,7 +140,7 @@ route(#{route := V}) -> payment_info(#{payment_info := V}) -> V. --spec result(t()) -> hg_maybe:maybe(session_result()). +-spec result(t()) -> hg_maybe:'maybe'(session_result()). result(T) -> maps:get(result, T, undefined). @@ -148,19 +148,19 @@ result(T) -> timeout_behaviour(#{timeout_behaviour := V}) -> V. --spec proxy_state(t()) -> hg_maybe:maybe(proxy_state()). +-spec proxy_state(t()) -> hg_maybe:'maybe'(proxy_state()). proxy_state(T) -> maps:get(proxy_state, T, undefined). --spec timings(t()) -> hg_maybe:maybe(timings()). +-spec timings(t()) -> hg_maybe:'maybe'(timings()). timings(T) -> maps:get(timings, T, undefined). --spec repair_scenario(t()) -> hg_maybe:maybe(repair_scenario()). +-spec repair_scenario(t()) -> hg_maybe:'maybe'(repair_scenario()). repair_scenario(T) -> maps:get(repair_scenario, T, undefined). --spec user_interaction(t()) -> hg_maybe:maybe(interaction()). +-spec user_interaction(t()) -> hg_maybe:'maybe'(interaction()). user_interaction(T) -> maps:get(interaction, T, undefined). @@ -185,7 +185,7 @@ set_repair_scenario(Scenario, Session) -> set_payment_info(PaymentInfo, Session) -> Session#{payment_info => PaymentInfo}. --spec set_trx_info(hg_maybe:maybe(trx_info()), t()) -> t(). +-spec set_trx_info(hg_maybe:'maybe'(trx_info()), t()) -> t(). set_trx_info(Trx, Session) -> Session#{trx := Trx}. diff --git a/apps/hellgate/test/hg_invoice_tests_SUITE.erl b/apps/hellgate/test/hg_invoice_tests_SUITE.erl index 58474f6f..b6602be6 100644 --- a/apps/hellgate/test/hg_invoice_tests_SUITE.erl +++ b/apps/hellgate/test/hg_invoice_tests_SUITE.erl @@ -8878,6 +8878,7 @@ construct_domain_fixture() -> } } }, + PaymentTerms = ?payment_terms, [ hg_ct_fixture:construct_bank_card_category( ?bc_cat(1), @@ -9911,7 +9912,7 @@ construct_domain_fixture() -> {provider, #domain_ProviderObject{ ref = ?prv(6), data = ?provider(#domain_ProvisionTermSet{ - payments = ?payment_terms#domain_PaymentsProvisionTerms{ + payments = PaymentTerms#domain_PaymentsProvisionTerms{ categories = {value, ?ordset([ @@ -9956,7 +9957,7 @@ construct_domain_fixture() -> {provider, #domain_ProviderObject{ ref = ?prv(7), data = ?provider(#domain_ProvisionTermSet{ - payments = ?payment_terms#domain_PaymentsProvisionTerms{ + payments = PaymentTerms#domain_PaymentsProvisionTerms{ categories = {value, ?ordset([ diff --git a/apps/hellgate/test/hg_route_rules_tests_SUITE.erl b/apps/hellgate/test/hg_route_rules_tests_SUITE.erl index 16ddc0b5..4fdae7ee 100644 --- a/apps/hellgate/test/hg_route_rules_tests_SUITE.erl +++ b/apps/hellgate/test/hg_route_rules_tests_SUITE.erl @@ -169,6 +169,7 @@ mock_dominant(SupPid) -> ). mock_party_management(SupPid) -> + PaymentTerms = ?payment_terms, _ = hg_mock_helper:mock_party_management( [ {party_management, fun @@ -298,7 +299,7 @@ mock_party_management(SupPid) -> }}; ('ComputeProviderTerminalTerms', {?prv(2), _, ?base_routing_rule_domain_revision, _}) -> {ok, #domain_ProvisionTermSet{ - payments = ?payment_terms#domain_PaymentsProvisionTerms{ + payments = PaymentTerms#domain_PaymentsProvisionTerms{ categories = {value, ?ordset([ @@ -314,7 +315,7 @@ mock_party_management(SupPid) -> }}; ('ComputeProviderTerminalTerms', {?prv(3), _, ?base_routing_rule_domain_revision, _}) -> {ok, #domain_ProvisionTermSet{ - payments = ?payment_terms#domain_PaymentsProvisionTerms{ + payments = PaymentTerms#domain_PaymentsProvisionTerms{ payment_methods = {value, ?ordset([ @@ -330,38 +331,38 @@ mock_party_management(SupPid) -> }}; ('ComputeProviderTerminalTerms', {?prv(4), _, ?base_routing_rule_domain_revision, _}) -> {ok, #domain_ProvisionTermSet{ - payments = ?payment_terms#domain_PaymentsProvisionTerms{ + payments = PaymentTerms#domain_PaymentsProvisionTerms{ allow = {constant, false} } }}; ('ComputeProviderTerminalTerms', {?prv(7), _, ?base_routing_rule_domain_revision, _}) -> {ok, #domain_ProvisionTermSet{ - payments = ?payment_terms#domain_PaymentsProvisionTerms{ + payments = PaymentTerms#domain_PaymentsProvisionTerms{ allow = {constant, true}, global_allow = {constant, false} } }}; ('ComputeProviderTerminalTerms', {?prv(1), _, ?routing_with_risk_coverage_set_domain_revision, _}) -> {ok, #domain_ProvisionTermSet{ - payments = ?payment_terms#domain_PaymentsProvisionTerms{ + payments = PaymentTerms#domain_PaymentsProvisionTerms{ risk_coverage = {value, low} } }}; ('ComputeProviderTerminalTerms', {?prv(2), _, ?routing_with_risk_coverage_set_domain_revision, _}) -> {ok, #domain_ProvisionTermSet{ - payments = ?payment_terms#domain_PaymentsProvisionTerms{ + payments = PaymentTerms#domain_PaymentsProvisionTerms{ risk_coverage = {value, high} } }}; ('ComputeProviderTerminalTerms', {?prv(5), _, ?empty_allow_revision, _}) -> {ok, #domain_ProvisionTermSet{ - payments = ?payment_terms#domain_PaymentsProvisionTerms{ + payments = PaymentTerms#domain_PaymentsProvisionTerms{ allow = undefined } }}; ('ComputeProviderTerminalTerms', {?prv(6), _, ?not_reduced_allow_revision, _}) -> {ok, #domain_ProvisionTermSet{ - payments = ?payment_terms#domain_PaymentsProvisionTerms{ + payments = PaymentTerms#domain_PaymentsProvisionTerms{ allow = {all_of, [{constant, false}]} } }}; diff --git a/rebar.config b/rebar.config index edeeb8c4..6b13ed2b 100644 --- a/rebar.config +++ b/rebar.config @@ -106,9 +106,9 @@ ]}. {project_plugins, [ - {covertool, "2.0.4"}, - {erlfmt, "1.0.0"}, - {rebar3_lint, "1.0.1"}, + {covertool, "2.0.7"}, + {erlfmt, "1.5.0"}, + {rebar3_lint, "3.2.6"}, {rebar3_lcov, {git, "https://github.com/valitydev/rebar3-lcov.git", {tag, "0.1"}}} ]}. diff --git a/rebar.lock b/rebar.lock index 28321322..cc6f423a 100644 --- a/rebar.lock +++ b/rebar.lock @@ -15,13 +15,13 @@ {git,"https://github.com/rbkmoney/cg_mon.git", {ref,"5a87a37694e42b6592d3b4164ae54e0e87e24e18"}}, 1}, - {<<"chatterbox">>,{pkg,<<"ts_chatterbox">>,<<"0.13.0">>},2}, + {<<"chatterbox">>,{pkg,<<"ts_chatterbox">>,<<"0.15.1">>},2}, {<<"cowboy">>,{pkg,<<"cowboy">>,<<"2.9.0">>},1}, {<<"cowlib">>,{pkg,<<"cowlib">>,<<"2.11.0">>},2}, {<<"ctx">>,{pkg,<<"ctx">>,<<"0.6.0">>},2}, {<<"damsel">>, {git,"https://github.com/valitydev/damsel.git", - {ref,"ad715bd647bc5cfa822e2b09b1329dab6a2bf295"}}, + {ref,"7ed2112a6503abe9f65142e43dca6675e939d164"}}, 0}, {<<"dmt_client">>, {git,"https://github.com/valitydev/dmt-client.git", @@ -37,21 +37,21 @@ 0}, {<<"fault_detector_proto">>, {git,"https://github.com/valitydev/fault-detector-proto.git", - {ref,"365aadcfefa7dbf75ee6613ed8c7a7fe377abbfc"}}, + {ref,"32f0b845052aa352539edade5b1efdd3c4e01371"}}, 0}, {<<"genlib">>, {git,"https://github.com/valitydev/genlib.git", {ref,"f6074551d6586998e91a97ea20acb47241254ff3"}}, 0}, {<<"gproc">>,{pkg,<<"gproc">>,<<"0.9.0">>},0}, - {<<"grpcbox">>,{pkg,<<"grpcbox">>,<<"0.16.0">>},1}, + {<<"grpcbox">>,{pkg,<<"grpcbox">>,<<"0.17.1">>},1}, {<<"hackney">>,{pkg,<<"hackney">>,<<"1.18.0">>},1}, - {<<"hpack">>,{pkg,<<"hpack_erl">>,<<"0.2.3">>},3}, + {<<"hpack">>,{pkg,<<"hpack_erl">>,<<"0.3.0">>},3}, {<<"idna">>,{pkg,<<"idna">>,<<"6.1.1">>},2}, {<<"jsx">>,{pkg,<<"jsx">>,<<"3.1.0">>},1}, {<<"limiter_proto">>, {git,"https://github.com/valitydev/limiter-proto.git", - {ref,"970f197ce6c527fee5c45237ad2ce4b8820184a1"}}, + {ref,"efeb7d4a05bd13c95fada18514509b34b107fcb9"}}, 0}, {<<"metrics">>,{pkg,<<"metrics">>,<<"1.0.1">>},2}, {<<"mg_proto">>, @@ -99,12 +99,12 @@ {ref,"c280ff266ae1c1906fb0dcee8320bb8d8a4a3c75"}}, 1}, {<<"tls_certificate_check">>, - {pkg,<<"tls_certificate_check">>,<<"1.19.0">>}, + {pkg,<<"tls_certificate_check">>,<<"1.24.0">>}, 1}, {<<"unicode_util_compat">>,{pkg,<<"unicode_util_compat">>,<<"0.7.0">>},2}, {<<"woody">>, {git,"https://github.com/valitydev/woody_erlang.git", - {ref,"81219ba5408e1c67f5eaed3c7e566ede42da88d4"}}, + {ref,"072825ee7179825a4078feb0649df71303c74157"}}, 0}]}. [ {pkg_hash,[ @@ -112,14 +112,14 @@ {<<"acceptor_pool">>, <<"43C20D2ACAE35F0C2BCD64F9D2BDE267E459F0F3FD23DAB26485BF518C281B21">>}, {<<"cache">>, <<"B23A5FE7095445A88412A6E614C933377E0137B44FFED77C9B3FEF1A731A20B2">>}, {<<"certifi">>, <<"D4FB0A6BB20B7C9C3643E22507E42F356AC090A1DCEA9AB99E27E0376D695EBA">>}, - {<<"chatterbox">>, <<"6F059D97BCAA758B8EA6FFFE2B3B81362BD06B639D3EA2BB088335511D691EBF">>}, + {<<"chatterbox">>, <<"5CAC4D15DD7AD61FC3C4415CE4826FC563D4643DEE897A558EC4EA0B1C835C9C">>}, {<<"cowboy">>, <<"865DD8B6607E14CF03282E10E934023A1BD8BE6F6BACF921A7E2A96D800CD452">>}, {<<"cowlib">>, <<"0B9FF9C346629256C42EBE1EEB769A83C6CB771A6EE5960BD110AB0B9B872063">>}, {<<"ctx">>, <<"8FF88B70E6400C4DF90142E7F130625B82086077A45364A78D208ED3ED53C7FE">>}, {<<"gproc">>, <<"853CCB7805E9ADA25D227A157BA966F7B34508F386A3E7E21992B1B484230699">>}, - {<<"grpcbox">>, <<"B83F37C62D6EECA347B77F9B1EC7E9F62231690CDFEB3A31BE07CD4002BA9C82">>}, + {<<"grpcbox">>, <<"6E040AB3EF16FE699FFB513B0EF8E2E896DA7B18931A1EF817143037C454BCCE">>}, {<<"hackney">>, <<"C4443D960BB9FBA6D01161D01CD81173089686717D9490E5D3606644C48D121F">>}, - {<<"hpack">>, <<"17670F83FF984AE6CD74B1C456EDDE906D27FF013740EE4D9EFAA4F1BF999633">>}, + {<<"hpack">>, <<"2461899CC4AB6A0EF8E970C1661C5FC6A52D3C25580BC6DD204F84CE94669926">>}, {<<"idna">>, <<"8A63070E9F7D0C62EB9D9FCB360A7DE382448200FBBD1B106CC96D3D8099DF8D">>}, {<<"jsx">>, <<"D12516BAA0BB23A59BB35DCCAF02A1BD08243FCBB9EFE24F2D9D056CCFF71268">>}, {<<"metrics">>, <<"25F094DEA2CDA98213CECC3AEFF09E940299D950904393B2A29D191C346A8486">>}, @@ -135,21 +135,21 @@ {<<"quantile_estimator">>, <<"EF50A361F11B5F26B5F16D0696E46A9E4661756492C981F7B2229EF42FF1CD15">>}, {<<"ranch">>, <<"8C7A100A139FD57F17327B6413E4167AC559FBC04CA7448E9BE9057311597A1D">>}, {<<"ssl_verify_fun">>, <<"354C321CF377240C7B8716899E182CE4890C5938111A1296ADD3EC74CF1715DF">>}, - {<<"tls_certificate_check">>, <<"C76C4C5D79EE79A2B11C84F910C825D6F024A78427C854F515748E9BD025E987">>}, + {<<"tls_certificate_check">>, <<"D00E2887551FF8CDAE4D0340D90D9FCBC4943C7B5F49D32ED4BC23AFF4DB9A44">>}, {<<"unicode_util_compat">>, <<"BC84380C9AB48177092F43AC89E4DFA2C6D62B40B8BD132B1059ECC7232F9A78">>}]}, {pkg_hash_ext,[ {<<"accept">>, <<"11B18C220BCC2EAB63B5470C038EF10EB6783BCB1FCDB11AA4137DEFA5AC1BB8">>}, {<<"acceptor_pool">>, <<"0CBCD83FDC8B9AD2EEE2067EF8B91A14858A5883CB7CD800E6FCD5803E158788">>}, {<<"cache">>, <<"44516CE6FA03594D3A2AF025DD3A87BFE711000EB730219E1DDEFC816E0AA2F4">>}, {<<"certifi">>, <<"6AC7EFC1C6F8600B08D625292D4BBF584E14847CE1B6B5C44D983D273E1097EA">>}, - {<<"chatterbox">>, <<"B93D19104D86AF0B3F2566C4CBA2A57D2E06D103728246BA1AC6C3C0FF010AA7">>}, + {<<"chatterbox">>, <<"4F75B91451338BC0DA5F52F3480FA6EF6E3A2AEECFC33686D6B3D0A0948F31AA">>}, {<<"cowboy">>, <<"2C729F934B4E1AA149AFF882F57C6372C15399A20D54F65C8D67BEF583021BDE">>}, {<<"cowlib">>, <<"2B3E9DA0B21C4565751A6D4901C20D1B4CC25CBB7FD50D91D2AB6DD287BC86A9">>}, {<<"ctx">>, <<"A14ED2D1B67723DBEBBE423B28D7615EB0BDCBA6FF28F2D1F1B0A7E1D4AA5FC2">>}, {<<"gproc">>, <<"587E8AF698CCD3504CF4BA8D90F893EDE2B0F58CABB8A916E2BF9321DE3CF10B">>}, - {<<"grpcbox">>, <<"294DF743AE20A7E030889F00644001370A4F7CE0121F3BBDAF13CF3169C62913">>}, + {<<"grpcbox">>, <<"4A3B5D7111DAABC569DC9CBD9B202A3237D81C80BF97212FBC676832CB0CEB17">>}, {<<"hackney">>, <<"9AFCDA620704D720DB8C6A3123E9848D09C87586DC1C10479C42627B905B5C5E">>}, - {<<"hpack">>, <<"06F580167C4B8B8A6429040DF36CC93BBA6D571FAEAEC1B28816523379CBB23A">>}, + {<<"hpack">>, <<"D6137D7079169D8C485C6962DFE261AF5B9EF60FBC557344511C1E65E3D95FB0">>}, {<<"idna">>, <<"92376EB7894412ED19AC475E4A86F7B413C1B9FBB5BD16DCCD57934157944CEA">>}, {<<"jsx">>, <<"0C5CC8FDC11B53CC25CF65AC6705AD39E54ECC56D1C22E4ADB8F5A53FB9427F3">>}, {<<"metrics">>, <<"69B09ADDDC4F74A40716AE54D140F93BEB0FB8978D8636EADED0C31B6F099F16">>}, @@ -165,6 +165,6 @@ {<<"quantile_estimator">>, <<"282A8A323CA2A845C9E6F787D166348F776C1D4A41EDE63046D72D422E3DA946">>}, {<<"ranch">>, <<"49FBCFD3682FAB1F5D109351B61257676DA1A2FDBE295904176D5E521A2DDFE5">>}, {<<"ssl_verify_fun">>, <<"FE4C190E8F37401D30167C8C405EDA19469F34577987C76DDE613E838BBC67F8">>}, - {<<"tls_certificate_check">>, <<"4083B4A298ADD534C96125337CB01161C358BB32DD870D5A893AAE685FD91D70">>}, + {<<"tls_certificate_check">>, <<"90B25A58EE433D91C17F036D4D354BF8859A089BFDA60E68A86F8EECAE45EF1B">>}, {<<"unicode_util_compat">>, <<"25EEE6D67DF61960CF6A794239566599B09E17E668D3700247BC498638152521">>}]} ].