Skip to content

Commit 482d63a

Browse files
authored
TECH-76: Upgrades to Erlang/OTP 27 (#148)
Upgrades plugins, fixes 'maybe' keyword, fixes record literal update expressions
1 parent dd26859 commit 482d63a

8 files changed

Lines changed: 52 additions & 46 deletions

File tree

.env

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
# You SHOULD specify point releases here so that build time and run time Erlang/OTPs
33
# are the same. See: https://github.com/erlware/relx/pull/902
44
SERVICE_NAME=hellgate
5-
OTP_VERSION=24.3.4
6-
REBAR_VERSION=3.18
5+
OTP_VERSION=27.1.2
6+
REBAR_VERSION=3.24
77
THRIFT_VERSION=0.14.2.3

apps/hellgate/src/hg_invoice_payment_refund.erl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,17 +155,17 @@ cash_flow(#{cash_flow := V}) ->
155155
sessions(#{sessions := V}) ->
156156
V.
157157

158-
-spec session(t()) -> hg_maybe:maybe(session()).
158+
-spec session(t()) -> hg_maybe:'maybe'(session()).
159159
session(#{sessions := []}) ->
160160
undefined;
161161
session(#{sessions := [Session | _]}) ->
162162
Session.
163163

164-
-spec transaction_info(t()) -> hg_maybe:maybe(trx_info()).
164+
-spec transaction_info(t()) -> hg_maybe:'maybe'(trx_info()).
165165
transaction_info(T) ->
166166
maps:get(transaction_info, T, undefined).
167167

168-
-spec failure(t()) -> hg_maybe:maybe(failure()).
168+
-spec failure(t()) -> hg_maybe:'maybe'(failure()).
169169
failure(T) ->
170170
maps:get(failure, T, undefined).
171171

apps/hellgate/src/hg_maybe.erl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
-module(hg_maybe).
22

3+
%% TODO
4+
%% Deprecate and obsolete this module since erlang 27 already have 'maybe':
5+
%% https://www.erlang.org/doc/system/expressions.html#maybe
6+
37
-export([apply/2]).
48
-export([apply/3]).
59

610
-export([get_defined/1]).
711
-export([get_defined/2]).
812

9-
-type maybe(T) ::
13+
-type 'maybe'(T) ::
1014
undefined | T.
1115

12-
-export_type([maybe/1]).
16+
-export_type(['maybe'/1]).
1317

1418
-spec apply(fun(), Arg :: undefined | term()) -> term().
1519
apply(Fun, Arg) ->
@@ -21,14 +25,14 @@ apply(Fun, Arg, _Default) when Arg =/= undefined ->
2125
apply(_Fun, undefined, Default) ->
2226
Default.
2327

24-
-spec get_defined([maybe(T)]) -> T | no_return().
28+
-spec get_defined(['maybe'(T)]) -> T | no_return().
2529
get_defined([]) ->
2630
erlang:error(badarg);
2731
get_defined([Value | _Tail]) when Value =/= undefined ->
2832
Value;
2933
get_defined([undefined | Tail]) ->
3034
get_defined(Tail).
3135

32-
-spec get_defined(maybe(T), maybe(T)) -> T | no_return().
36+
-spec get_defined('maybe'(T), 'maybe'(T)) -> T | no_return().
3337
get_defined(V1, V2) ->
3438
get_defined([V1, V2]).

apps/hellgate/src/hg_session.erl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
-type t() :: #{
99
target := target(),
1010
status := session_status(),
11-
trx := hg_maybe:maybe(trx_info()),
11+
trx := hg_maybe:'maybe'(trx_info()),
1212
tags := [tag()],
1313
timeout_behaviour := timeout_behaviour(),
1414
context := tag_context(),
@@ -120,7 +120,7 @@ target(#{target := V}) ->
120120
status(#{status := V}) ->
121121
V.
122122

123-
-spec trx_info(t()) -> hg_maybe:maybe(trx_info()).
123+
-spec trx_info(t()) -> hg_maybe:'maybe'(trx_info()).
124124
trx_info(#{trx := V}) ->
125125
V.
126126

@@ -140,27 +140,27 @@ route(#{route := V}) ->
140140
payment_info(#{payment_info := V}) ->
141141
V.
142142

143-
-spec result(t()) -> hg_maybe:maybe(session_result()).
143+
-spec result(t()) -> hg_maybe:'maybe'(session_result()).
144144
result(T) ->
145145
maps:get(result, T, undefined).
146146

147147
-spec timeout_behaviour(t()) -> timeout_behaviour().
148148
timeout_behaviour(#{timeout_behaviour := V}) ->
149149
V.
150150

151-
-spec proxy_state(t()) -> hg_maybe:maybe(proxy_state()).
151+
-spec proxy_state(t()) -> hg_maybe:'maybe'(proxy_state()).
152152
proxy_state(T) ->
153153
maps:get(proxy_state, T, undefined).
154154

155-
-spec timings(t()) -> hg_maybe:maybe(timings()).
155+
-spec timings(t()) -> hg_maybe:'maybe'(timings()).
156156
timings(T) ->
157157
maps:get(timings, T, undefined).
158158

159-
-spec repair_scenario(t()) -> hg_maybe:maybe(repair_scenario()).
159+
-spec repair_scenario(t()) -> hg_maybe:'maybe'(repair_scenario()).
160160
repair_scenario(T) ->
161161
maps:get(repair_scenario, T, undefined).
162162

163-
-spec user_interaction(t()) -> hg_maybe:maybe(interaction()).
163+
-spec user_interaction(t()) -> hg_maybe:'maybe'(interaction()).
164164
user_interaction(T) ->
165165
maps:get(interaction, T, undefined).
166166

@@ -185,7 +185,7 @@ set_repair_scenario(Scenario, Session) ->
185185
set_payment_info(PaymentInfo, Session) ->
186186
Session#{payment_info => PaymentInfo}.
187187

188-
-spec set_trx_info(hg_maybe:maybe(trx_info()), t()) -> t().
188+
-spec set_trx_info(hg_maybe:'maybe'(trx_info()), t()) -> t().
189189
set_trx_info(Trx, Session) ->
190190
Session#{trx := Trx}.
191191

apps/hellgate/test/hg_invoice_tests_SUITE.erl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8878,6 +8878,7 @@ construct_domain_fixture() ->
88788878
}
88798879
}
88808880
},
8881+
PaymentTerms = ?payment_terms,
88818882
[
88828883
hg_ct_fixture:construct_bank_card_category(
88838884
?bc_cat(1),
@@ -9911,7 +9912,7 @@ construct_domain_fixture() ->
99119912
{provider, #domain_ProviderObject{
99129913
ref = ?prv(6),
99139914
data = ?provider(#domain_ProvisionTermSet{
9914-
payments = ?payment_terms#domain_PaymentsProvisionTerms{
9915+
payments = PaymentTerms#domain_PaymentsProvisionTerms{
99159916
categories =
99169917
{value,
99179918
?ordset([
@@ -9956,7 +9957,7 @@ construct_domain_fixture() ->
99569957
{provider, #domain_ProviderObject{
99579958
ref = ?prv(7),
99589959
data = ?provider(#domain_ProvisionTermSet{
9959-
payments = ?payment_terms#domain_PaymentsProvisionTerms{
9960+
payments = PaymentTerms#domain_PaymentsProvisionTerms{
99609961
categories =
99619962
{value,
99629963
?ordset([

apps/hellgate/test/hg_route_rules_tests_SUITE.erl

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ mock_dominant(SupPid) ->
169169
).
170170

171171
mock_party_management(SupPid) ->
172+
PaymentTerms = ?payment_terms,
172173
_ = hg_mock_helper:mock_party_management(
173174
[
174175
{party_management, fun
@@ -298,7 +299,7 @@ mock_party_management(SupPid) ->
298299
}};
299300
('ComputeProviderTerminalTerms', {?prv(2), _, ?base_routing_rule_domain_revision, _}) ->
300301
{ok, #domain_ProvisionTermSet{
301-
payments = ?payment_terms#domain_PaymentsProvisionTerms{
302+
payments = PaymentTerms#domain_PaymentsProvisionTerms{
302303
categories =
303304
{value,
304305
?ordset([
@@ -314,7 +315,7 @@ mock_party_management(SupPid) ->
314315
}};
315316
('ComputeProviderTerminalTerms', {?prv(3), _, ?base_routing_rule_domain_revision, _}) ->
316317
{ok, #domain_ProvisionTermSet{
317-
payments = ?payment_terms#domain_PaymentsProvisionTerms{
318+
payments = PaymentTerms#domain_PaymentsProvisionTerms{
318319
payment_methods =
319320
{value,
320321
?ordset([
@@ -330,38 +331,38 @@ mock_party_management(SupPid) ->
330331
}};
331332
('ComputeProviderTerminalTerms', {?prv(4), _, ?base_routing_rule_domain_revision, _}) ->
332333
{ok, #domain_ProvisionTermSet{
333-
payments = ?payment_terms#domain_PaymentsProvisionTerms{
334+
payments = PaymentTerms#domain_PaymentsProvisionTerms{
334335
allow = {constant, false}
335336
}
336337
}};
337338
('ComputeProviderTerminalTerms', {?prv(7), _, ?base_routing_rule_domain_revision, _}) ->
338339
{ok, #domain_ProvisionTermSet{
339-
payments = ?payment_terms#domain_PaymentsProvisionTerms{
340+
payments = PaymentTerms#domain_PaymentsProvisionTerms{
340341
allow = {constant, true},
341342
global_allow = {constant, false}
342343
}
343344
}};
344345
('ComputeProviderTerminalTerms', {?prv(1), _, ?routing_with_risk_coverage_set_domain_revision, _}) ->
345346
{ok, #domain_ProvisionTermSet{
346-
payments = ?payment_terms#domain_PaymentsProvisionTerms{
347+
payments = PaymentTerms#domain_PaymentsProvisionTerms{
347348
risk_coverage = {value, low}
348349
}
349350
}};
350351
('ComputeProviderTerminalTerms', {?prv(2), _, ?routing_with_risk_coverage_set_domain_revision, _}) ->
351352
{ok, #domain_ProvisionTermSet{
352-
payments = ?payment_terms#domain_PaymentsProvisionTerms{
353+
payments = PaymentTerms#domain_PaymentsProvisionTerms{
353354
risk_coverage = {value, high}
354355
}
355356
}};
356357
('ComputeProviderTerminalTerms', {?prv(5), _, ?empty_allow_revision, _}) ->
357358
{ok, #domain_ProvisionTermSet{
358-
payments = ?payment_terms#domain_PaymentsProvisionTerms{
359+
payments = PaymentTerms#domain_PaymentsProvisionTerms{
359360
allow = undefined
360361
}
361362
}};
362363
('ComputeProviderTerminalTerms', {?prv(6), _, ?not_reduced_allow_revision, _}) ->
363364
{ok, #domain_ProvisionTermSet{
364-
payments = ?payment_terms#domain_PaymentsProvisionTerms{
365+
payments = PaymentTerms#domain_PaymentsProvisionTerms{
365366
allow = {all_of, [{constant, false}]}
366367
}
367368
}};

rebar.config

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@
106106
]}.
107107

108108
{project_plugins, [
109-
{covertool, "2.0.4"},
110-
{erlfmt, "1.0.0"},
111-
{rebar3_lint, "1.0.1"},
109+
{covertool, "2.0.7"},
110+
{erlfmt, "1.5.0"},
111+
{rebar3_lint, "3.2.6"},
112112
{rebar3_lcov, {git, "https://github.com/valitydev/rebar3-lcov.git", {tag, "0.1"}}}
113113
]}.
114114

rebar.lock

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
{git,"https://github.com/rbkmoney/cg_mon.git",
1616
{ref,"5a87a37694e42b6592d3b4164ae54e0e87e24e18"}},
1717
1},
18-
{<<"chatterbox">>,{pkg,<<"ts_chatterbox">>,<<"0.13.0">>},2},
18+
{<<"chatterbox">>,{pkg,<<"ts_chatterbox">>,<<"0.15.1">>},2},
1919
{<<"cowboy">>,{pkg,<<"cowboy">>,<<"2.9.0">>},1},
2020
{<<"cowlib">>,{pkg,<<"cowlib">>,<<"2.11.0">>},2},
2121
{<<"ctx">>,{pkg,<<"ctx">>,<<"0.6.0">>},2},
2222
{<<"damsel">>,
2323
{git,"https://github.com/valitydev/damsel.git",
24-
{ref,"ad715bd647bc5cfa822e2b09b1329dab6a2bf295"}},
24+
{ref,"7ed2112a6503abe9f65142e43dca6675e939d164"}},
2525
0},
2626
{<<"dmt_client">>,
2727
{git,"https://github.com/valitydev/dmt-client.git",
@@ -37,21 +37,21 @@
3737
0},
3838
{<<"fault_detector_proto">>,
3939
{git,"https://github.com/valitydev/fault-detector-proto.git",
40-
{ref,"365aadcfefa7dbf75ee6613ed8c7a7fe377abbfc"}},
40+
{ref,"32f0b845052aa352539edade5b1efdd3c4e01371"}},
4141
0},
4242
{<<"genlib">>,
4343
{git,"https://github.com/valitydev/genlib.git",
4444
{ref,"f6074551d6586998e91a97ea20acb47241254ff3"}},
4545
0},
4646
{<<"gproc">>,{pkg,<<"gproc">>,<<"0.9.0">>},0},
47-
{<<"grpcbox">>,{pkg,<<"grpcbox">>,<<"0.16.0">>},1},
47+
{<<"grpcbox">>,{pkg,<<"grpcbox">>,<<"0.17.1">>},1},
4848
{<<"hackney">>,{pkg,<<"hackney">>,<<"1.18.0">>},1},
49-
{<<"hpack">>,{pkg,<<"hpack_erl">>,<<"0.2.3">>},3},
49+
{<<"hpack">>,{pkg,<<"hpack_erl">>,<<"0.3.0">>},3},
5050
{<<"idna">>,{pkg,<<"idna">>,<<"6.1.1">>},2},
5151
{<<"jsx">>,{pkg,<<"jsx">>,<<"3.1.0">>},1},
5252
{<<"limiter_proto">>,
5353
{git,"https://github.com/valitydev/limiter-proto.git",
54-
{ref,"970f197ce6c527fee5c45237ad2ce4b8820184a1"}},
54+
{ref,"efeb7d4a05bd13c95fada18514509b34b107fcb9"}},
5555
0},
5656
{<<"metrics">>,{pkg,<<"metrics">>,<<"1.0.1">>},2},
5757
{<<"mg_proto">>,
@@ -99,27 +99,27 @@
9999
{ref,"c280ff266ae1c1906fb0dcee8320bb8d8a4a3c75"}},
100100
1},
101101
{<<"tls_certificate_check">>,
102-
{pkg,<<"tls_certificate_check">>,<<"1.19.0">>},
102+
{pkg,<<"tls_certificate_check">>,<<"1.24.0">>},
103103
1},
104104
{<<"unicode_util_compat">>,{pkg,<<"unicode_util_compat">>,<<"0.7.0">>},2},
105105
{<<"woody">>,
106106
{git,"https://github.com/valitydev/woody_erlang.git",
107-
{ref,"81219ba5408e1c67f5eaed3c7e566ede42da88d4"}},
107+
{ref,"072825ee7179825a4078feb0649df71303c74157"}},
108108
0}]}.
109109
[
110110
{pkg_hash,[
111111
{<<"accept">>, <<"B33B127ABCA7CC948BBE6CAA4C263369ABF1347CFA9D8E699C6D214660F10CD1">>},
112112
{<<"acceptor_pool">>, <<"43C20D2ACAE35F0C2BCD64F9D2BDE267E459F0F3FD23DAB26485BF518C281B21">>},
113113
{<<"cache">>, <<"B23A5FE7095445A88412A6E614C933377E0137B44FFED77C9B3FEF1A731A20B2">>},
114114
{<<"certifi">>, <<"D4FB0A6BB20B7C9C3643E22507E42F356AC090A1DCEA9AB99E27E0376D695EBA">>},
115-
{<<"chatterbox">>, <<"6F059D97BCAA758B8EA6FFFE2B3B81362BD06B639D3EA2BB088335511D691EBF">>},
115+
{<<"chatterbox">>, <<"5CAC4D15DD7AD61FC3C4415CE4826FC563D4643DEE897A558EC4EA0B1C835C9C">>},
116116
{<<"cowboy">>, <<"865DD8B6607E14CF03282E10E934023A1BD8BE6F6BACF921A7E2A96D800CD452">>},
117117
{<<"cowlib">>, <<"0B9FF9C346629256C42EBE1EEB769A83C6CB771A6EE5960BD110AB0B9B872063">>},
118118
{<<"ctx">>, <<"8FF88B70E6400C4DF90142E7F130625B82086077A45364A78D208ED3ED53C7FE">>},
119119
{<<"gproc">>, <<"853CCB7805E9ADA25D227A157BA966F7B34508F386A3E7E21992B1B484230699">>},
120-
{<<"grpcbox">>, <<"B83F37C62D6EECA347B77F9B1EC7E9F62231690CDFEB3A31BE07CD4002BA9C82">>},
120+
{<<"grpcbox">>, <<"6E040AB3EF16FE699FFB513B0EF8E2E896DA7B18931A1EF817143037C454BCCE">>},
121121
{<<"hackney">>, <<"C4443D960BB9FBA6D01161D01CD81173089686717D9490E5D3606644C48D121F">>},
122-
{<<"hpack">>, <<"17670F83FF984AE6CD74B1C456EDDE906D27FF013740EE4D9EFAA4F1BF999633">>},
122+
{<<"hpack">>, <<"2461899CC4AB6A0EF8E970C1661C5FC6A52D3C25580BC6DD204F84CE94669926">>},
123123
{<<"idna">>, <<"8A63070E9F7D0C62EB9D9FCB360A7DE382448200FBBD1B106CC96D3D8099DF8D">>},
124124
{<<"jsx">>, <<"D12516BAA0BB23A59BB35DCCAF02A1BD08243FCBB9EFE24F2D9D056CCFF71268">>},
125125
{<<"metrics">>, <<"25F094DEA2CDA98213CECC3AEFF09E940299D950904393B2A29D191C346A8486">>},
@@ -135,21 +135,21 @@
135135
{<<"quantile_estimator">>, <<"EF50A361F11B5F26B5F16D0696E46A9E4661756492C981F7B2229EF42FF1CD15">>},
136136
{<<"ranch">>, <<"8C7A100A139FD57F17327B6413E4167AC559FBC04CA7448E9BE9057311597A1D">>},
137137
{<<"ssl_verify_fun">>, <<"354C321CF377240C7B8716899E182CE4890C5938111A1296ADD3EC74CF1715DF">>},
138-
{<<"tls_certificate_check">>, <<"C76C4C5D79EE79A2B11C84F910C825D6F024A78427C854F515748E9BD025E987">>},
138+
{<<"tls_certificate_check">>, <<"D00E2887551FF8CDAE4D0340D90D9FCBC4943C7B5F49D32ED4BC23AFF4DB9A44">>},
139139
{<<"unicode_util_compat">>, <<"BC84380C9AB48177092F43AC89E4DFA2C6D62B40B8BD132B1059ECC7232F9A78">>}]},
140140
{pkg_hash_ext,[
141141
{<<"accept">>, <<"11B18C220BCC2EAB63B5470C038EF10EB6783BCB1FCDB11AA4137DEFA5AC1BB8">>},
142142
{<<"acceptor_pool">>, <<"0CBCD83FDC8B9AD2EEE2067EF8B91A14858A5883CB7CD800E6FCD5803E158788">>},
143143
{<<"cache">>, <<"44516CE6FA03594D3A2AF025DD3A87BFE711000EB730219E1DDEFC816E0AA2F4">>},
144144
{<<"certifi">>, <<"6AC7EFC1C6F8600B08D625292D4BBF584E14847CE1B6B5C44D983D273E1097EA">>},
145-
{<<"chatterbox">>, <<"B93D19104D86AF0B3F2566C4CBA2A57D2E06D103728246BA1AC6C3C0FF010AA7">>},
145+
{<<"chatterbox">>, <<"4F75B91451338BC0DA5F52F3480FA6EF6E3A2AEECFC33686D6B3D0A0948F31AA">>},
146146
{<<"cowboy">>, <<"2C729F934B4E1AA149AFF882F57C6372C15399A20D54F65C8D67BEF583021BDE">>},
147147
{<<"cowlib">>, <<"2B3E9DA0B21C4565751A6D4901C20D1B4CC25CBB7FD50D91D2AB6DD287BC86A9">>},
148148
{<<"ctx">>, <<"A14ED2D1B67723DBEBBE423B28D7615EB0BDCBA6FF28F2D1F1B0A7E1D4AA5FC2">>},
149149
{<<"gproc">>, <<"587E8AF698CCD3504CF4BA8D90F893EDE2B0F58CABB8A916E2BF9321DE3CF10B">>},
150-
{<<"grpcbox">>, <<"294DF743AE20A7E030889F00644001370A4F7CE0121F3BBDAF13CF3169C62913">>},
150+
{<<"grpcbox">>, <<"4A3B5D7111DAABC569DC9CBD9B202A3237D81C80BF97212FBC676832CB0CEB17">>},
151151
{<<"hackney">>, <<"9AFCDA620704D720DB8C6A3123E9848D09C87586DC1C10479C42627B905B5C5E">>},
152-
{<<"hpack">>, <<"06F580167C4B8B8A6429040DF36CC93BBA6D571FAEAEC1B28816523379CBB23A">>},
152+
{<<"hpack">>, <<"D6137D7079169D8C485C6962DFE261AF5B9EF60FBC557344511C1E65E3D95FB0">>},
153153
{<<"idna">>, <<"92376EB7894412ED19AC475E4A86F7B413C1B9FBB5BD16DCCD57934157944CEA">>},
154154
{<<"jsx">>, <<"0C5CC8FDC11B53CC25CF65AC6705AD39E54ECC56D1C22E4ADB8F5A53FB9427F3">>},
155155
{<<"metrics">>, <<"69B09ADDDC4F74A40716AE54D140F93BEB0FB8978D8636EADED0C31B6F099F16">>},
@@ -165,6 +165,6 @@
165165
{<<"quantile_estimator">>, <<"282A8A323CA2A845C9E6F787D166348F776C1D4A41EDE63046D72D422E3DA946">>},
166166
{<<"ranch">>, <<"49FBCFD3682FAB1F5D109351B61257676DA1A2FDBE295904176D5E521A2DDFE5">>},
167167
{<<"ssl_verify_fun">>, <<"FE4C190E8F37401D30167C8C405EDA19469F34577987C76DDE613E838BBC67F8">>},
168-
{<<"tls_certificate_check">>, <<"4083B4A298ADD534C96125337CB01161C358BB32DD870D5A893AAE685FD91D70">>},
168+
{<<"tls_certificate_check">>, <<"90B25A58EE433D91C17F036D4D354BF8859A089BFDA60E68A86F8EECAE45EF1B">>},
169169
{<<"unicode_util_compat">>, <<"25EEE6D67DF61960CF6A794239566599B09E17E668D3700247BC498638152521">>}]}
170170
].

0 commit comments

Comments
 (0)