anchor.diff:                   IncludedApplications++Applications),
       rebar_app_info:valid(AppInfo1, false).
   
  -maybe_upgrade(AppInfo, AppDir, false, State) ->
  -    Source = rebar_app_info:source(AppInfo),
  -    rebar_fetch:needs_update(AppDir, Source, State);
  -maybe_upgrade(AppInfo, AppDir, true, State) ->
  +maybe_upgrade(AppInfo, AppDir, Upgrade, State) ->
       Source = rebar_app_info:source(AppInfo),
       case rebar_fetch:needs_update(AppDir, Source, State) of
           true ->
  
positive.code:     {SrcDeps, PkgDeps} = parse_deps(DepsDir, Deps, S3, Locks, Level),
      {AppInfo2, SrcDeps, PkgDeps, Locks++NewLocks, State1}.
  
  -spec maybe_fetch(rebar_app_info:t(), atom(), boolean() | {true, binary(), integer()},
                    sets:set(binary()), rebar_state:t()) -> {boolean(), rebar_app_info:t()}.
  maybe_fetch(AppInfo, Profile, Upgrade, Seen, State) ->
      AppDir = ec_cnv:to_list(rebar_app_info:dir(AppInfo)),
  
negative.code:                     throw(Error)
              end;
          false ->
              case Upgrade of
                  true ->
                      ?INFO("No upgrade needed for ~s", [rebar_app_info:name(AppInfo)]),
                      false;
                  false ->
                      false
              end
      end.
  
  -spec parse_goal(binary(), binary()) -> pkg_dep().
  