瀏覽代碼

only print skip warning if version is different (#1886)

pull/1888/head
Tristan Sloughter 6 年之前
committed by GitHub
父節點
當前提交
43769ae87f
沒有發現已知的金鑰在資料庫的簽署中 GPG 金鑰 ID: 4AEE18F83AFDEB23
共有 2 個檔案被更改,包括 31 行新增8 行删除
  1. +18
    -6
      src/rebar_prv_install_deps.erl
  2. +13
    -2
      test/rebar_install_deps_SUITE.erl

+ 18
- 6
src/rebar_prv_install_deps.erl 查看文件

@ -259,9 +259,21 @@ update_seen_dep(AppInfo, _Profile, _Level, Deps, Apps, State, Upgrade, Seen, Loc
%% If seen from lock file or user requested an upgrade %% If seen from lock file or user requested an upgrade
%% don't print warning about skipping %% don't print warning about skipping
case lists:keymember(Name, 1, Locks) of case lists:keymember(Name, 1, Locks) of
false when Upgrade -> ok;
false when not Upgrade -> warn_skip_deps(AppInfo, State);
true -> ok
false when Upgrade ->
ok;
false when not Upgrade ->
{ok, SeenApp} = rebar_app_utils:find(Name, Apps),
Source = rebar_app_info:source(AppInfo),
case rebar_app_info:source(SeenApp) of
Source ->
%% dep is the same version and checksum as the one we already saw.
%% meaning there is no conflict, so don't warn about it.
skip;
_ ->
warn_skip_deps(Name, Source, State)
end;
true ->
ok
end, end,
{Deps, Apps, State, Seen}. {Deps, Apps, State, Seen}.
@ -395,11 +407,11 @@ maybe_upgrade(AppInfo, _AppDir, Upgrade, State) ->
AppInfo AppInfo
end. end.
warn_skip_deps(AppInfo, State) ->
warn_skip_deps(Name, Source, State) ->
Msg = "Skipping ~ts (from ~p) as an app of the same name " Msg = "Skipping ~ts (from ~p) as an app of the same name "
"has already been fetched", "has already been fetched",
Args = [rebar_app_info:name(AppInfo),
rebar_resource_v2:format_source(rebar_app_info:source(AppInfo))],
Args = [Name,
rebar_resource_v2:format_source(Source)],
case rebar_state:get(State, deps_error_on_conflict, false) of case rebar_state:get(State, deps_error_on_conflict, false) of
false -> false ->
case rebar_state:get(State, deps_warning_on_conflict, true) of case rebar_state:get(State, deps_warning_on_conflict, true) of

+ 13
- 2
test/rebar_install_deps_SUITE.erl 查看文件

@ -17,7 +17,7 @@ groups() ->
{mixed, [], [ {mixed, [], [
m_flat1, m_flat2, m_circular1, m_circular2, m_flat1, m_flat2, m_circular1, m_circular2,
m_pick_source1, m_pick_source2, m_pick_source3, m_pick_source1, m_pick_source2, m_pick_source3,
m_pick_source4, m_pick_source5, m_source_to_pkg,
m_pick_source4, m_pick_source5, m_pick_source6, m_source_to_pkg,
m_pkg_level1, m_pkg_level2, m_pkg_level3, m_pkg_level3_alpha_order m_pkg_level1, m_pkg_level2, m_pkg_level3, m_pkg_level3_alpha_order
]} ]}
]. ].
@ -93,6 +93,8 @@ format_expected_mdeps(Deps) ->
[{dep, N}, {lock, src, N, "0.0.0"}] [{dep, N}, {lock, src, N, "0.0.0"}]
end || Dep <- Deps]). end || Dep <- Deps]).
format_expected_mixed_warnings(none) ->
none;
format_expected_mixed_warnings(Warnings) -> format_expected_mixed_warnings(Warnings) ->
[case W of [case W of
{N, Vsn} when hd(N) >= $a, hd(N) =< $z -> {pkg, rebar_string:uppercase(N), Vsn}; {N, Vsn} when hd(N) >= $a, hd(N) =< $z -> {pkg, rebar_string:uppercase(N), Vsn};
@ -225,6 +227,11 @@ mdeps(m_pick_source5) ->
{"C", [{"D", "1.0.0", []}]}], {"C", [{"D", "1.0.0", []}]}],
[{"D", "1.0.0"}], [{"D", "1.0.0"}],
{ok, ["B", "C", {"d", "1.0.0"}]}}; {ok, ["B", "C", {"d", "1.0.0"}]}};
mdeps(m_pick_source6) ->
{[{"B", [{"D", "1.0.0", []}]},
{"C", [{"D", "1.0.0", []}]}],
none,
{ok, ["B", "C", {"D", "1.0.0"}]}};
mdeps(m_source_to_pkg) -> mdeps(m_source_to_pkg) ->
{[{"B", [{"c",[{"d", []}]}]}], {[{"B", [{"c",[{"d", []}]}]}],
[], [],
@ -436,6 +443,7 @@ m_pick_source2(Config) -> run(Config).
m_pick_source3(Config) -> run(Config). m_pick_source3(Config) -> run(Config).
m_pick_source4(Config) -> run(Config). m_pick_source4(Config) -> run(Config).
m_pick_source5(Config) -> run(Config). m_pick_source5(Config) -> run(Config).
m_pick_source6(Config) -> run(Config).
m_source_to_pkg(Config) -> run(Config). m_source_to_pkg(Config) -> run(Config).
m_pkg_level1(Config) -> run(Config). m_pkg_level1(Config) -> run(Config).
m_pkg_level2(Config) -> run(Config). m_pkg_level2(Config) -> run(Config).
@ -466,7 +474,10 @@ check_warnings(Warns, [{Type, Name, Vsn} | Rest], mixed) ->
check_warnings(Warns, [{Name, Vsn} | Rest], Type) -> check_warnings(Warns, [{Name, Vsn} | Rest], Type) ->
ct:pal("Checking for warning ~p in ~p", [{Name,Vsn},Warns]), ct:pal("Checking for warning ~p in ~p", [{Name,Vsn},Warns]),
?assert(in_warnings(Type, Warns, Name, Vsn)), ?assert(in_warnings(Type, Warns, Name, Vsn)),
check_warnings(Warns, Rest, Type).
check_warnings(Warns, Rest, Type);
check_warnings(Warns, none, _Type) ->
ct:pal("Checking that there were no warnings", []),
?assert(Warns == []).
in_warnings(git, Warns, NameRaw, VsnRaw) -> in_warnings(git, Warns, NameRaw, VsnRaw) ->
Name = iolist_to_binary(NameRaw), Name = iolist_to_binary(NameRaw),

Loading…
取消
儲存