erlang / rebar3

Erlang build tool that makes it easy to compile and test Erlang applications and releases.
http://www.rebar3.org
Apache License 2.0
1.69k stars 516 forks source link

src_tests option for Relx could be very slow but enabled by default #2820

Open arcusfelis opened 1 year ago

arcusfelis commented 1 year ago

Description

rebar3 release runs 30 seconds faster for MongooseIM after setting src_tests option to false in relx. Detailed explanation https://github.com/esl/MongooseIM/pull/4099

{relx, [{release, { mongooseim, {cmd, "cat VERSION | tr -d '\r\n'"} }, []}, 
        %% Disable some warnings in systools:make_script/2 which are extremely slow (saves 30 seconds)
        {src_tests, false}
...

Expected behaviour

src_tests could be disabled by default. Or we can write in docs that it is very slow. We could alternatively add a warning suggesting that the option could be disabled, if making script file takes more than 5 seconds.

Maybe relx repo is the better place for this issue.

ferd commented 1 year ago

@tsloughter do you recall what that function plays? Validating source paths?

tsloughter commented 1 year ago

eeeek 30 seconds!?

Maybe rebar3 should set it to false by default and relx not?

My thinking there is that since rebar3 already does the compilation step its job is to ensure source and object files are up to date and not relx's, so it can be skipped in relx.

ferd commented 1 year ago

That's a good call out yeah, under that mechanism we could switch the default since we track it all.