diff --git a/rebar.config.script b/rebar.config.script index e2130b0..ff6edd2 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -19,8 +19,6 @@ %%% limitations under the License. %%% %%%---------------------------------------------------------------------- -SysVersion = lists:map(fun erlang:list_to_integer/1, - string:tokens(erlang:system_info(version), ".")), Cfg = case file:consult(filename:join([filename:dirname(SCRIPT),"vars.config"])) of {ok, Terms} -> @@ -57,7 +55,6 @@ ProcessVars = fun(_F, [], Acc) -> (F, [{Type, Ver, Value} | Tail], Acc) when Type == if_version_above orelse Type == if_version_below -> - SysVer = erlang:system_info(otp_release), Include = if Type == if_version_above -> SysVer > Ver; true -> @@ -167,13 +164,31 @@ AppendList = fun(Append) -> end end, -Rebar3DepsFilter = fun(DepsList) -> - lists:map(fun({DepName,_, {git,_, {tag,Version}}}) -> - {DepName, Version}; - (Dep) -> - Dep - end, DepsList) - end, +% Convert our rich deps syntax to rebar2 format: +% https://github.com/rebar/rebar/wiki/Dependency-management +Rebar2DepsFilter = +fun(DepsList) -> + lists:map(fun({DepName, _HexVersion, Source}) -> + {DepName, ".*", Source} + end, DepsList) +end, + +% Convert our rich deps syntax to rebar3 version definition format: +% https://rebar3.org/docs/configuration/dependencies/#dependency-version-handling +% https://hexdocs.pm/elixir/Version.html +Rebar3DepsFilter = +fun(DepsList) -> + lists:map(fun({DepName, HexVersion, {git, _, {tag, GitVersion}} = Source}) -> + case HexVersion == ".*" of + true -> + {DepName, GitVersion}; + false -> + {DepName, HexVersion} + end; + ({DepName, _HexVersion, Source}) -> + {DepName, ".*", Source} + end, DepsList) +end, GlobalDepsFilter = fun(Deps) -> DepNames = lists:map(fun({DepName, _, _}) -> DepName; @@ -207,6 +222,8 @@ GithubConfig = case {os:getenv("GITHUB_ACTIONS"), os:getenv("GITHUB_TOKEN")} of end, Rules = [ + {[deps], (not IsRebar3), + Rebar2DepsFilter, []}, {[deps], IsRebar3, Rebar3DepsFilter, []}, {[plugins], IsRebar3,