瀏覽代碼

Revert "only load packages when needed"

pull/773/head
Fred Hebert 9 年之前
父節點
當前提交
3f83b3a382
共有 4 個檔案被更改,包括 7 行新增7 行删除
  1. +2
    -0
      src/rebar3.erl
  2. +4
    -5
      src/rebar_packages.erl
  3. +0
    -1
      src/rebar_prv_packages.erl
  4. +1
    -1
      test/mock_pkg_resource.erl

+ 2
- 0
src/rebar3.erl 查看文件

@ -105,6 +105,7 @@ run_aux(State, RawArgs) ->
{ok, Providers} = application:get_env(rebar, providers),
%% Providers can modify profiles stored in opts, so set default after initializing providers
State4 = rebar_state:create_logic_providers(Providers, State3),
rebar_packages:packages(State4),
State5 = rebar_plugins:project_apps_install(State4),
State6 = rebar_state:default(State5, rebar_state:opts(State5)),
@ -284,6 +285,7 @@ state_from_global_config(Config, GlobalConfigFile) ->
[] ->
GlobalConfigThrowAway;
GlobalPluginsToInstall ->
rebar_packages:packages(GlobalConfigThrowAway),
rebar_plugins:handle_plugins(global,
GlobalPluginsToInstall,
GlobalConfigThrowAway)

+ 4
- 5
src/rebar_packages.erl 查看文件

@ -8,7 +8,6 @@
,package_dir/1
,registry_checksum/2
,find_highest_matching/4
,verify_table/1
,format_error/1]).
-export_type([package/0]).
@ -52,7 +51,7 @@ load_and_verify_version(State) ->
deps(Name, Vsn, State) ->
try
?n>MODULE:verify_table(State),
verify_table(State),
ets:lookup_element(?PACKAGE_TABLE, {ec_cnv:to_binary(Name), ec_cnv:to_binary(Vsn)}, 2)
catch
_:_ ->
@ -83,7 +82,7 @@ package_dir(State) ->
registry_checksum({pkg, Name, Vsn}, State) ->
try
?n>MODULE:verify_table(State),
verify_table(State),
ets:lookup_element(?PACKAGE_TABLE, {Name, Vsn}, 3)
catch
_:_ ->
@ -106,7 +105,7 @@ registry_checksum({pkg, Name, Vsn}, State) ->
%% `~> 2.0` | `>= 2.0.0 and < 3.0.0`
%% `~> 2.1` | `>= 2.1.0 and < 3.0.0`
find_highest_matching(Dep, Constraint, Table, State) ->
?n>MODULE:verify_table(State),
verify_table(State),
try ets:lookup_element(Table, Dep, 2) of
[[HeadVsn | VsnTail]] ->
{ok, handle_vsns(Constraint, HeadVsn, VsnTail)};
@ -146,4 +145,4 @@ format_error({missing_package, Package, Version}) ->
io_lib:format("Package not found in registry: ~s-~s. Try to fix with `rebar3 update`", [Package, Version]).
verify_table(State) ->
ets:info(?PACKAGE_TABLE, named_table) =:= true orelse load_and_verify_version(State).
ets:info(?PACKAGE_TABLE, named_table) =:= true orelse ?n>MODULE:load_and_verify_version(State).

+ 0
- 1
src/rebar_prv_packages.erl 查看文件

@ -27,7 +27,6 @@ init(State) ->
-spec do(rebar_state:t()) -> {ok, rebar_state:t()} | {error, string()}.
do(State) ->
rebar_packages:packages(State),
print_packages(),
{ok, State}.

+ 1
- 1
test/mock_pkg_resource.erl 查看文件

@ -117,7 +117,7 @@ mock_pkg_index(Opts) ->
meck:new(rebar_packages, [passthrough, no_link]),
meck:expect(rebar_packages, packages,
fun(_State) -> to_index(Deps, Dict) end),
meck:expect(rebar_packages, verify_table,
meck:expect(rebar_packages, load_and_verify_version,
fun(_State) -> to_index(Deps, Dict), true end).
%%%%%%%%%%%%%%%

Loading…
取消
儲存