Skip to content

Commit

Permalink
Add rebar_state:all_checkouts_deps/1 and apply suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
pablocostass committed Aug 28, 2020
1 parent c9fa733 commit aecbdcd
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 5 deletions.
3 changes: 1 addition & 2 deletions src/rebar_prv_lock.erl
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ do(State) ->
rebar_config:maybe_write_lock_file(filename:join(Dir, ?LOCK_FILE), Locks, OldLocks),
State1 = rebar_state:set(State, {locks, default}, Locks),

Checkouts = [rebar_app_info:name(Dep)
|| Dep <- rebar_state:all_deps(State), rebar_app_info:is_checkout(Dep)],
Checkouts = [rebar_app_info:name(Dep) || Dep <- rebar_state:all_checkout_deps(State)],
%% Remove the checkout dependencies from the old lock info
%% so that they do not appear in the rebar_utils:info_useless/1 warning.
OldLockNames = [element(1,L) || L <- OldLocks] -- Checkouts,
Expand Down
6 changes: 3 additions & 3 deletions src/rebar_prv_upgrade.erl
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@ do_(State) ->
DepsDict = deps_dict(rebar_state:all_deps(State)),
AltDeps = find_non_default_deps(Deps, State),
FilteredNames = cull_default_names_if_profiles(Names, Deps, State),
Checkouts = [rebar_app_info:name(Dep)
|| Dep <- rebar_state:all_deps(State), rebar_app_info:is_checkout(Dep)],
Checkouts = [rebar_app_info:name(Dep) || Dep <- rebar_state:all_checkout_deps(State)],
case prepare_locks(FilteredNames, Deps, Locks, [], DepsDict, AltDeps, Checkouts) of
{error, Reason} ->
{error, Reason};
Expand Down Expand Up @@ -126,7 +125,8 @@ format_error({transitive_dependency, Name}) ->
"Promote it to your top-level rebar.config file to upgrade it.",
[Name]);
format_error({checkout_dependency, Name}) ->
io_lib:format("Dependency ~ts is a checkout dependency and cannot be upgraded.", [Name]);
io_lib:format("Dependency ~ts is a checkout dependency under _checkouts/ and checkouts cannot be upgraded.",
[Name]);
format_error(Reason) ->
io_lib:format("~p", [Reason]).

Expand Down
4 changes: 4 additions & 0 deletions src/rebar_state.erl
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
deps_to_build/1, deps_to_build/2,
all_plugin_deps/1, all_plugin_deps/2, update_all_plugin_deps/2,
all_deps/1, all_deps/2, update_all_deps/2, merge_all_deps/2,
all_checkout_deps/1,
namespace/1, namespace/2,

deps_names/1,
Expand Down Expand Up @@ -342,6 +343,9 @@ all_deps(#state_t{all_deps=Apps}) ->
all_deps(State=#state_t{}, NewApps) ->
State#state_t{all_deps=NewApps}.

all_checkout_deps(#state_t{all_deps=Apps}) ->
[App || App <- Apps, rebar_app_info:is_checkout(App)].

all_plugin_deps(#state_t{all_plugin_deps=Apps}) ->
Apps.

Expand Down
4 changes: 4 additions & 0 deletions test/rebar_compile_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -461,6 +461,10 @@ paths_checkout_deps(Config) ->

{ok, State} = rebar_test_utils:run_and_check(Config, RebarConfig, ["compile"], return),

[AppName2] = rebar_state:all_checkout_deps(State),
Name2Bin = binary:list_to_bin(Name2),
Name2Bin = rebar_app_info:name(AppName2),

code:add_paths(rebar_state:code_paths(State, all_deps)),
ok = application:load(list_to_atom(Name2)),
Loaded = application:loaded_applications(),
Expand Down

0 comments on commit aecbdcd

Please sign in to comment.