From 80671df57a06915a23493b9fc721d1ae8f493964 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Mon, 8 Jun 2020 09:44:44 -0600 Subject: [PATCH] set app_info:vsn from the app details during application discovery validate_app in rebar_otp_app does not need to set the vsn and original_vsn because they are set from the app details during discovery. The original_vsn was set here before becuase when there is no .app.src or .app.src.script the app file does not go through preprocess/3 and preprocess/3 is where vsn is set based on evaluating the vsn from .app.src. But if neither of these files exist it means the discovery vsn was the correct version and there is no need to update. --- src/rebar_app_discover.erl | 5 +++-- src/rebar_otp_app.erl | 5 ++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/rebar_app_discover.erl b/src/rebar_app_discover.erl index 0a5bede5..de6566bb 100644 --- a/src/rebar_app_discover.erl +++ b/src/rebar_app_discover.erl @@ -364,8 +364,9 @@ create_app_info(AppInfo, AppDir, AppFile) -> Applications = proplists:get_value(applications, AppDetails, []), IncludedApplications = proplists:get_value(included_applications, AppDetails, []), AppInfo1 = rebar_app_info:name( - rebar_app_info:original_vsn( - rebar_app_info:dir(AppInfo, AppDir), AppVsn), AppName), + rebar_app_info:vsn( + rebar_app_info:original_vsn( + rebar_app_info:dir(AppInfo, AppDir), AppVsn), AppVsn), AppName), AppInfo2 = rebar_app_info:applications( rebar_app_info:app_details(AppInfo1, AppDetails), Applications), AppInfo3 = rebar_app_info:included_applications(AppInfo2, IncludedApplications), diff --git a/src/rebar_otp_app.erl b/src/rebar_otp_app.erl index 892b22fe..a95cee8c 100644 --- a/src/rebar_otp_app.erl +++ b/src/rebar_otp_app.erl @@ -85,17 +85,16 @@ validate_app_modules(State, App, AppData) -> %% In general, the list of modules is an important thing to validate %% for compliance with OTP guidelines and upgrade procedures. %% However, some people prefer not to validate this list. - AppVsn = proplists:get_value(vsn, AppData), case rebar_state:get(State, validate_app_modules, true) of true -> case rebar_app_utils:validate_application_info(App, AppData) of true -> - {ok, rebar_app_info:original_vsn(rebar_app_info:vsn(App, AppVsn), AppVsn)}; + {ok, App}; Error -> Error end; false -> - {ok, rebar_app_info:original_vsn(rebar_app_info:vsn(App, AppVsn), AppVsn)} + {ok, App} end. preprocess(State, AppInfo, AppSrcFile) ->