rebar3
rebar3 copied to clipboard
{{rel_vsn}} empty
Environment
i am using gitbash on windows.
user@hostMINGW64 /c/src/erl/rel1/release1
$ rebar3 report
===> Expanded command sequence to be run: [{default,report}]
===> Provider: {default,report}
Rebar3 report
version 3.14.1
generated at 2020-10-09T11:24:47+00:00
=================
Please submit this along with your issue at https://github.com/erlang/rebar3/issues (and feel free to edit out private information, if any)
-----------------
Task:
Entered as:
-----------------
Operating System: win32
ERTS: Erlang/OTP 21 [erts-10.1] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1]
Root Directory: c:/Program Files/erl10.1
Library directory: c:/Program Files/erl10.1/lib
-----------------
Loaded Applications:
bbmustache: 1.10.0
certifi: 2.5.2
cf: 0.3.1
common_test: 1.16.1
compiler: 7.2.5
crypto: 4.3.3
cth_readable: 1.4.8
dialyzer: 3.3.1
edoc: 0.9.4
erlware_commons: 1.3.1
eunit: 2.3.7
eunit_formatters: 0.5.0
getopt: 1.0.1
hipe: 3.18.1
inets: 7.0.2
kernel: 6.1
providers: 1.8.1
public_key: 1.6.2
relx: 4.0.2
sasl: 3.2.1
snmp: 5.2.12
ssl_verify_fun: 1.1.6
stdlib: 3.6
syntax_tools: 2.1.6
tools: 3.0.1
-----------------
Escript path: c:/Program Files/erl10.1/bin/rebar3
Providers:
app_discovery as clean compile compile cover ct deps dialyzer do edoc escriptize eunit get-deps help install install_deps list lock new path pkgs release relup report repos shell state tar tree unlock update upgrade upgrade upgrade version xref
OS: windows 10 ent., ver 1909, build 18363.1082
Current behaviour
overlay command mkdir doesn't create directory correctly - does not include {{rel_vsn}}, this variable is EMPTY - see comments below:
part of rebar.config:
{overlay,[
{mkdir, "release_version_default-{{release_version}}"}, %% ok: create directory "release_version_default-0.1.0"
{mkdir, "release_version_default_x-\{\{release_version\}\}"}, %% ok: create directory "release_version_default_x-0.1.0"
{mkdir, "rel_vsn_default-{{rel_vsn}}"}, %% fail: only create directory "rel_vsn_default-" without release number included
{mkdir, "rel_vsn_default_x-\{\{rel_vsn\}\}"} %% fail : only create directory "rel_vsn_default_x-" without release number included
]}
$ rebar3 release
===> Expanded command sequence to be run: [{default,app_discovery},
{default,install_deps},
{default,lock},
{default,compile},
{default,release}]
===> Provider: {default,app_discovery}
===> Provider: {default,install_deps}
===> Verifying dependencies...
===> Provider: {default,lock}
===> Provider: {default,compile}
===> Compile (apps)
===> run_hooks("c:/src/erl/rel1/release1", pre_hooks, compile) -> no hooks defined
===> sh info:
cwd: "c:/src/erl/rel1/release1"
cmd: cmd /c mklink /j "c:\\src\\erl\\rel1\\release1\\_build\\default\\lib\\release1\\src" "c:\\src\\erl\\rel1\\release1\\apps\\release1\\src"
===> opts: [{use_stdout,false},return_on_error]
===> Port Cmd: cmd /q /c cmd /c mklink /j "c:\\src\\erl\\rel1\\release1\\_build\\default\\lib\\release1\\src" "c:\\src\\erl\\rel1\\release1\\apps\\release1\\src"
Port Opts: [exit_status,
{line,16384},
use_stdio,stderr_to_stdout,hide,eof,binary]
===> Compile (project_apps)
===> run_hooks("c:/src/erl/rel1/release1/apps/release1", pre_hooks, compile) -> no hooks defined
===> run_hooks("c:/src/erl/rel1/release1/apps/release1", pre_hooks, erlc_compile) -> no hooks defined
===> Analyzing applications...
===> Compiling release1
===> erlopts [debug_info]
===> files to compile ["c:/src/erl/rel1/release1/apps/release1/src/release1_sup.erl",
"c:/src/erl/rel1/release1/apps/release1/src/release1_app.erl"]
===> Starting 0 worker(s)
===> run_hooks("c:/src/erl/rel1/release1/apps/release1", post_hooks, erlc_compile) -> no hooks defined
===> run_hooks("c:/src/erl/rel1/release1/apps/release1", pre_hooks, app_compile) -> no hooks defined
===> run_hooks("c:/src/erl/rel1/release1/apps/release1", post_hooks, app_compile) -> no hooks defined
===> run_hooks("c:/src/erl/rel1/release1/apps/release1", post_hooks, compile) -> no hooks defined
===> run_hooks("c:/src/erl/rel1/release1", post_hooks, compile) -> no hooks defined
===> Provider: {default,release}
===> run_hooks("c:/src/erl/rel1/release1", pre_hooks, release) -> no hooks defined
===> run_hooks("c:/src/erl/rel1/release1", pre_hooks, release) -> no hooks defined
===> Solving Release release1-0.1.0
===> Resolved release1-0.1.0
===> release: release1-0.1.0
erts: 10.1
goals:
release1
sasl
applications:
{release1,"0.1.0"}
{sasl,"3.2.1"}
{kernel,"6.1"}
{stdlib,"3.6"}
===> Assembling release release1-0.1.0...
===> Release output dir c:/src/erl/rel1/release1/_build/default/rel/release1
===> release start script created
===> Release successfully assembled: _build/default/rel/release1
===> run_hooks("c:/src/erl/rel1/release1", post_hooks, release) -> no hooks defined
===> run_hooks("c:/src/erl/rel1/release1", post_hooks, release) -> no hooks defined
Expected behaviour
directories created by overlay should include {{rel_vsn}} in directory name.
according the documentation from https://github.com/erlware/relx/wiki/Overlays: Available Variables: ... rel_vsn : Same as release_version. Exists for backwards compatibility
also see comments in rebar.config above.
I experienced the same for default_release_version.
@jozefc Since rel_vsn is an alias for release_version try going with release_version. That var should still work
I checked all documented overlay variables and as far as I can see, the following are undefined:
log
overridden
goals
lib_dirs
config_file
providers
default_release_name
default_release_version
default_release
rel_vsn
release_applications
While these are defined as documented:
output_dir
target_dir
sys_config
root_dir
release_erts_version
erts_vsn
release_name
release_version
(If that's not easy to fix, maybe just remove the undefined variables from the docs for the moment?)