Skip to content

Commit

Permalink
Merge pull request #248 from inaka/euen.238.https_as_default
Browse files Browse the repository at this point in the history
[Close #238] change https protocol as default for deps rule
  • Loading branch information
jfacorro committed Jul 3, 2015
2 parents ed33601 + dd361e6 commit 9c5bc00
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 21 deletions.
4 changes: 2 additions & 2 deletions config/elvis-test.config
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@
#{dirs => ["."],
filter => "Makefile",
rules => [{elvis_project, no_deps_master_erlang_mk, #{ignore => []}},
{elvis_project, git_for_deps_erlang_mk, #{ignore => []}}]
{elvis_project, protocol_for_deps_erlang_mk, #{ignore => []}}]
},
#{dirs => ["."],
filter => "rebar.config",
rules => [{elvis_project, no_deps_master_rebar, #{ignore => []}},
{elvis_project, git_for_deps_rebar, #{ignore => []}}]
{elvis_project, protocol_for_deps_rebar, #{ignore => []}}]
},
#{dirs => ["."],
filter => "elvis.config",
Expand Down
4 changes: 2 additions & 2 deletions config/elvis.config
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@
#{dirs => ["."],
filter => "Makefile",
rules => [{elvis_project, no_deps_master_erlang_mk, #{ignore => []}},
{elvis_project, git_for_deps_erlang_mk, #{ignore => []}}]
{elvis_project, protocol_for_deps_erlang_mk, #{ignore => []}}]
},
#{dirs => ["."],
filter => "rebar.config",
rules => [{elvis_project, no_deps_master_rebar, #{ignore => []}},
{elvis_project, git_for_deps_rebar, #{ignore => []}}]
{elvis_project, protocol_for_deps_rebar, #{ignore => []}}]
},
#{dirs => ["."],
filter => "elvis.config",
Expand Down
8 changes: 4 additions & 4 deletions config/old/elvis-test-rule-config-list.config
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,13 @@
},
#{dirs => ["."],
filter => "Makefile",
rules => [{elvis_project, no_deps_master_erlang_mk, #{ignore => []}},
{elvis_project, git_for_deps_erlang_mk, #{ignore => []}}]
rules => [{elvis_project, no_deps_master_erlang_mk, []},
{elvis_project, protocol_for_deps_erlang_mk, []}]
},
#{dirs => ["."],
filter => "rebar.config",
rules => [{elvis_project, no_deps_master_rebar, #{ignore => []}},
{elvis_project, git_for_deps_rebar, #{ignore => []}}]
rules => [{elvis_project, no_deps_master_rebar, []},
{elvis_project, protocol_for_deps_rebar, []}]
},
#{dirs => ["."],
filter => "elvis.config",
Expand Down
4 changes: 2 additions & 2 deletions config/test.config
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,12 @@
#{dirs => ["."],
filter => "Makefile",
rules => [{elvis_project, no_deps_master_erlang_mk, #{ignore => []}},
{elvis_project, git_for_deps_erlang_mk, #{ignore => []}}]
{elvis_project, protocol_for_deps_erlang_mk, #{ignore => []}}]
},
#{dirs => ["."],
filter => "rebar.config",
rules => [{elvis_project, no_deps_master_rebar, #{ignore => []}},
{elvis_project, git_for_deps_rebar, #{ignore => []}}]
{elvis_project, protocol_for_deps_rebar, #{ignore => []}}]
},
#{dirs => ["."],
filter => "elvis.config",
Expand Down
4 changes: 2 additions & 2 deletions elvis.config
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@
#{dirs => ["."],
filter => "Makefile",
rules => [{elvis_project, no_deps_master_erlang_mk, #{ignore => []}},
{elvis_project, git_for_deps_erlang_mk, #{ignore => []}}]
{elvis_project, protocol_for_deps_erlang_mk, #{ignore => []}}]
},
#{dirs => ["."],
filter => "rebar.config",
rules => [{elvis_project, no_deps_master_rebar, #{ignore => []}},
{elvis_project, git_for_deps_rebar, #{ignore => []}}]
{elvis_project, protocol_for_deps_rebar, #{ignore => []}}]
},
#{dirs => ["."],
filter => "elvis.config",
Expand Down
35 changes: 28 additions & 7 deletions src/elvis_project.erl
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
-export([
no_deps_master_erlang_mk/3,
no_deps_master_rebar/3,
protocol_for_deps_erlang_mk/3,
git_for_deps_erlang_mk/3,
protocol_for_deps_rebar/3,
git_for_deps_rebar/3,
old_configuration_format/3
]).
Expand All @@ -26,15 +28,25 @@
%% Rules
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

-type git_for_deps_erlang_mk_config() :: #{ignore => [module()]}.
-type protocol_for_deps_erlang_mk_config() :: #{ignore => [module()]}.

%% Deprecated
-spec git_for_deps_erlang_mk(elvis_config:config(),
elvis_file:file(),
git_for_deps_erlang_mk_config()) ->
protocol_for_deps_erlang_mk_config()) ->
[elvis_result:item()].
git_for_deps_erlang_mk(_Config, Target, RuleConfig) ->
git_for_deps_erlang_mk(Config, Target, RuleConfig) ->
elvis_utils:error_prn("This rule has been deprecated please use "
"'protocol_for_deps_erlang_mk'."),
protocol_for_deps_erlang_mk(Config, Target, RuleConfig).

-spec protocol_for_deps_erlang_mk(elvis_config:config(),
elvis_file:file(),
protocol_for_deps_erlang_mk_config()) ->
[elvis_result:item()].
protocol_for_deps_erlang_mk(_Config, Target, RuleConfig) ->
IgnoreDeps = maps:get(ignore, RuleConfig, []),
Regex = maps:get(regex, RuleConfig, "git://.*"),
Regex = maps:get(regex, RuleConfig, "https://.*"),
Deps = get_erlang_mk_deps(Target),
BadDeps = lists:filter(fun(Dep) -> is_erlang_mk_not_git_dep(Dep, Regex) end,
Deps),
Expand All @@ -43,13 +55,22 @@ git_for_deps_erlang_mk(_Config, Target, RuleConfig) ->
erlang_mk_dep_to_result(Line, ?DEP_NO_GIT, {IgnoreDeps, Regex})
end, BadDeps).

-type git_for_deps_rebar_config() :: #{ignore => [module()]}.
-type protocol_for_deps_rebar_config() :: #{ignore => [module()]}.

-spec git_for_deps_rebar(elvis_config:config(),
elvis_file:file(),
git_for_deps_rebar_config()) ->
protocol_for_deps_rebar_config()) ->
[elvis_result:item()].
git_for_deps_rebar(Config, Target, RuleConfig) ->
elvis_utils:error_prn("This rule has been deprecated please use "
"'protocol_for_deps_rebar'."),
protocol_for_deps_rebar(Config, Target, RuleConfig).

-spec protocol_for_deps_rebar(elvis_config:config(),
elvis_file:file(),
protocol_for_deps_rebar_config()) ->
[elvis_result:item()].
git_for_deps_rebar(_Config, Target, RuleConfig) ->
protocol_for_deps_rebar(_Config, Target, RuleConfig) ->
IgnoreDeps = maps:get(ignore, RuleConfig, []),
Regex = maps:get(regex, RuleConfig, "git://.*"),
Deps = get_rebar_deps(Target),
Expand Down
53 changes: 51 additions & 2 deletions test/project_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
verify_no_deps_master_erlang_mk/1,
verify_no_deps_master_rebar/1,
verify_git_for_deps_erlang_mk/1,
verify_protocol_for_deps_erlang_mk/1,
verify_git_for_deps_rebar/1,
verify_protocol_for_deps_rebar/1,
verify_old_config_format/1
]).

Expand Down Expand Up @@ -93,10 +95,11 @@ verify_git_for_deps_erlang_mk(_Config) ->
Filename = "Makefile.fail",
{ok, File} = elvis_test_utils:find_file(SrcDirs, Filename),

[_, _, _] = elvis_project:git_for_deps_erlang_mk(ElvisConfig, File, #{}),
[_, _, _, _, _, _] =
elvis_project:git_for_deps_erlang_mk(ElvisConfig, File, #{}),

RuleConfig = #{ignore => [sync]},
[_, _] = elvis_project:git_for_deps_erlang_mk(ElvisConfig,
[_, _, _, _, _] = elvis_project:git_for_deps_erlang_mk(ElvisConfig,
File,
RuleConfig),

Expand All @@ -110,6 +113,32 @@ verify_git_for_deps_erlang_mk(_Config) ->
File,
RuleConfig2).

-spec verify_protocol_for_deps_erlang_mk(config()) -> any().
verify_protocol_for_deps_erlang_mk(_Config) ->
ElvisConfig = elvis_config:default(),
SrcDirs = elvis_config:dirs(ElvisConfig),

Filename = "Makefile.fail",
{ok, File} = elvis_test_utils:find_file(SrcDirs, Filename),

[_, _, _, _, _, _] =
elvis_project:protocol_for_deps_erlang_mk(ElvisConfig, File, #{}),

RuleConfig = #{ignore => [sync]},
[_, _, _, _, _] = elvis_project:protocol_for_deps_erlang_mk(ElvisConfig,
File,
RuleConfig),

RuleConfig1 = #{ignore => [sync, meck], regex => "git://.*"},
[_] = elvis_project:protocol_for_deps_erlang_mk(ElvisConfig,
File,
RuleConfig1),

RuleConfig2 = #{ignore => [sync], regex => "https://.*"},
[_, _, _, _, _] = elvis_project:protocol_for_deps_erlang_mk(ElvisConfig,
File,
RuleConfig2).

-spec verify_git_for_deps_rebar(config()) -> any().
verify_git_for_deps_rebar(_Config) ->
ElvisConfig = elvis_config:default(),
Expand All @@ -130,6 +159,26 @@ verify_git_for_deps_rebar(_Config) ->
[_, _, _, _] =
elvis_project:git_for_deps_rebar(ElvisConfig, File, RuleConfig2).

-spec verify_protocol_for_deps_rebar(config()) -> any().
verify_protocol_for_deps_rebar(_Config) ->
ElvisConfig = elvis_config:default(),
SrcDirs = elvis_config:dirs(ElvisConfig),

Filename = "rebar.config.fail",
{ok, File} = elvis_test_utils:find_file(SrcDirs, Filename),

[_, _] = elvis_project:protocol_for_deps_rebar(ElvisConfig, File, #{}),

RuleConfig = #{ignore => [getopt]},
[_] = elvis_project:protocol_for_deps_rebar(ElvisConfig, File, RuleConfig),

RuleConfig1 = #{ignore => [getopt, lager]},
[] = elvis_project:protocol_for_deps_rebar(ElvisConfig, File, RuleConfig1),

RuleConfig2 = #{ignore => [meck], regex => "git@.*"},
[_, _, _, _] =
elvis_project:protocol_for_deps_rebar(ElvisConfig, File, RuleConfig2).

-spec verify_old_config_format(config()) -> any().
verify_old_config_format(_Config) ->
ElvisConfig = elvis_config:default(),
Expand Down

0 comments on commit 9c5bc00

Please sign in to comment.