anchor.diff:      Options = [{path, [RelDir | rlx_util:get_code_paths(Release, OutputDir)]},
                  {outdir, RelDir},
                  %% TODO: if dev_mode -> local,
  +               %% {exref, [relx_overlays]},
                  {variables, make_boot_script_variables(Release, State)},
                  silent | case {WarningsAsErrors, SrcTests andalso IncludeSrc} of
                               {true, true} -> [warnings_as_errors, src_tests];
  
positive.code: %% @doc copy config/sys.config or generate one to releases/VSN/sys.config
  -spec copy_or_generate_sys_config_file(rlx_state:t(), file:name()) -> ok.
  copy_or_generate_sys_config_file(State, RelDir) ->
      RelSysConfPath = filename:join([RelDir, "sys.config"]),
      RelSysConfSrcPath = filename:join([RelDir, "sys.config.src"]),
      case rlx_state:sys_config_src(State) of
          undefined ->
              case rlx_state:sys_config(State) of
                  false ->
                      ok;
                  undefined ->
                      unless_exists_write_default(RelSysConfPath, sys_config_file());
                  ConfigPath ->
                      case filelib:is_regular(ConfigPath) of
                          false ->
                              erlang:error(?RLX_ERROR({config_does_not_exist, ConfigPath}));
                          true ->
                              %% validate sys.config is valid Erlang terms
                              case file:consult(ConfigPath) of
                                  {ok, _} ->
                                      copy_or_symlink_config_file(State, ConfigPath, RelSysConfPath);
                                  {error, Reason} ->
                                      erlang:error(?RLX_ERROR({sys_config_parse_error, ConfigPath, Reason}))
                              end
                      end
              end;
  
negative.code:                     ?log_warn("Both sys_config_src and sys_config are set, sys_config will be ignored")
              end,
  
              include_sys_config_src(ConfigSrcPath, RelSysConfSrcPath, State)
      end.
  
  include_sys_config(ConfigPath, RelSysConfPath, State) ->
      %% validate sys.config is valid Erlang terms
      case file:consult(ConfigPath) of
          {ok, _} ->
              copy_or_symlink_config_file(State, ConfigPath, RelSysConfPath);
          {error, Reason} ->
              erlang:error(?RLX_ERROR({sys_config_parse_error, ConfigPath, Reason}))
      end.
  
  include_sys_config_src(ConfigSrcPath, RelSysConfSrcPath, State) ->
      case filelib:is_regular(ConfigSrcPath) of
          false ->
              erlang:error(?RLX_ERROR({config_src_does_not_exist, ConfigSrcPath}));
          true ->
              copy_or_symlink_config_file(State, ConfigSrcPath, RelSysConfSrcPath)
      end.
  
  %% @doc copy config/sys.config[.src] or generate one to releases/VSN/sys.config[.src]
  