Patches:
- Try to start epmd when distribution fails
- Allow non-default profile deps upgrade
- Switch default license in templates to Apache 2.0, and hook it up in
the .app file
- Fix git SHA comparisons for dep update
- Let relx know about rebar-specified erl_opts
- Use rm_rf instead of ec_file:delete, fixing some deps-related issues
on Windows
- Handle internal CT failures
- Fix profile merging of erl_first_files options
- Fix CT output in skipped test cases and failing end of function
hooks
- Officially drop R15 support, since its SSL libs can no longer talk
to hex.pm
- REBAR_COLOR supports all ec_cmd_log intensity options, allowing the
none value to disable all colors without dropping termcap support
- Bump relx to 3.22.4
The one new feature supported here is for the interactive shell:
- Support commands in the shell such as r3:Command(),
r3:Command("--args=as a string"), or r3:Command(Namespace, "--args=as a
string"), instead of just r3:do(Command).
Prevents showing false upgrade messages when upgrading in a non-default
profile. Also shows an info message explaining default deps don't get
updated in a non-default upgrade.
In contrast to `ec_file:delete`, `rebar_file_utils:rm_rf` will also delete
write-protected files on Windows which is needed for git object files.
Fixes#1483.
The default license created with rebar3 templates is a BSD 3 clause
license. However the .app.src file generated do not include the license
there.
This adds the license type, fixing #1447.
This fixes the output of end_per_testcase crash notifications when the
test passes.
This also detect an issue of the kind with rebar_pkg_SUITE which is now
fixed.
This is based on issue #1517 where out of nowhere, CT has returned a
user's error code directly. This in turn caused a crashdump in rebar3
itself.
This patch handles the unexpected cases by:
a) not trying to format them
b) converting them to an error whenever they happen
The execution flow is still interrupted, but we should fail with a
clearer error than a crashdump.
The order of the files listed in "erl_files_first" option is
important and should not be sorted. By handling the merge
similarly to mib_files_first, the sort order is preserved.
It can't even fetch packages from Hex anymore because of old SSL/TLS
libraries, and so it can't bootstrap anymore either. Plus R20 comes out
soon, and 5 major versions is quite enough.
This uses the very risky '$handle_undefined_function'/2 export from the
r3 and rebar_agent modules to allow meta-calls that can support plugins
and all other rebar3 extensions.
This is nasty but very tempting. Currently we only support:
- r3:do(Command)
- r3:do(Namespace, Command)
There is currently no way to pass arguments to the function such that we
can, for example, run cover analysis or tests on a subset of suites.
With the new abuse of '$handle_undefined_function'/2, we can detect the
unused commands (since they are not exported) and re-route them:
- r3:Command()
- r3:Command("--args=as a string")
- r3:Command(Namespace, "--args=as a string")
Of course, in doing so, we make it impossible to use the 'do' provider
(as in 'rebar3 do ct -c, cover') since the 'do' function is already
required for things to work.
Since the previous function had very strict guards, we can, without
conflict, add manual overrides that simulate the meta-calls fine.
Sample run:
https://gist.github.com/ferd/2c06d59c7083c146d25e4ee301de0073