anchor.diff:                                                     {desc, "Upgrade project dependencies. Mentioning no application "
                                                             "will upgrade all dependencies. To upgrade specific dependencies, "
                                                             "their names can be listed in the command."},
  -                                                   {opts, [
  +                                                   {opts, [{all, $a, "all", undefined, "Upgrade all dependencies."},
                                                             {package, undefined, undefined, string,
  -                                                           "List of packages to upgrade. If not specified, all dependencies are upgraded."}
  +                                                           "List of packages to upgrade."}
                                                             ]}])),
       {ok, State1}.
   
  
positive.code:     end.
  
  do_(State) ->
      {Args, _} = rebar_state:command_parsed_args(State),
      Locks = rebar_state:get(State, {locks, default}, []),
      %% We have 3 sources of dependencies to upgrade from:
      %% 1. the top-level rebar.config (in `deps', dep name is an atom)
  
negative.code: format_error({checkout_dependency, Name}) ->
      io_lib:format("Dependency ~ts is a checkout dependency under _checkouts/ and checkouts cannot be upgraded.",
                    [Name]);
  format_error(no_arg) -> 
      "Specify a list of dependencies to unlock, or --all to unlock them all";
  format_error(Reason) ->
      io_lib:format("~p", [Reason]).
  
  handle_args(State) -> 
      {Args, _} = rebar_state:command_parsed_args(State),
      All = proplists:get_value(all, Args, false),
      Package = proplists:get_value(package, Args),
      {All, Package}.
  
  %% fetch updates for package deps that have been unlocked for upgrade
  update_pkg_deps([], _, _) ->
  