anchor.diff:  load_terms({include_src, IncludeSrc}, {ok, State0}) ->
       {ok, rlx_state:include_src(State0, IncludeSrc)};
   load_terms({release, {RelName, Vsn, {extend, RelName2}}, Applications}, {ok, State0}) ->
  -    Release0 = rlx_release:new(RelName, Vsn),
  -    ExtendRelease = rlx_state:get_configured_release(State0, RelName2, Vsn),
  +    NewVsn = parse_vsn(Vsn),
  +    Release0 = rlx_release:new(RelName, NewVsn),
  +    ExtendRelease = rlx_state:get_configured_release(State0, RelName2, NewVsn),
       Applications1 = rlx_release:goals(ExtendRelease),
       case rlx_release:goals(Release0,
                             lists:umerge(lists:usort(Applications),
  
positive.code:         end;
  load_terms({release, {RelName, Vsn}, {erts, ErtsVsn},
              Applications}, {ok, State}) ->
      Release0 = rlx_release:erts(rlx_release:new(RelName, Vsn), ErtsVsn),
      case rlx_release:goals(Release0, Applications) of
          E={error, _} ->
              E;
  
negative.code:         _ ->
              merge_configs(CliTerms, lists:keystore(Key, 1, ConfigTerms, {Key, Value}))
      end.
  
  parse_vsn(Vsn) when Vsn =:= semver ; Vsn =:= "semver" ->
      binary_to_list(ec_git_vsn:vsn([]));
  parse_vsn(Vsn) ->
      Vsn.
  