Erlang build tool that makes it easy to compile and test Erlang applications and releases.
New Features:
zsh
support for aliases in completion
invalid_contract
rebar3 alias
Bug fixes:
rebar_dir:src_dirs/1
options default to ["src"]
incremental
on Dialyzer analysis
rebar3 shell
in Erlang 26 when ShellArgs==undefined
This is a small patch release for some bugfixes:
This release most importantly contains patches to fix blocking issues on Windows:
shell
command to hang on windows
This release also contains an experimental and optional change that warrants a bit of explanation: Support rich compiler messages in errors and in warnings
Given the module:
-module(fake_mod).
-export([diagnostic/1]).
diagnostic(A) ->
X = add(5 / 0),
{X,X}.
add(X) -> X.
add(X, Y) -> X + Y.
Calling rebar3 compile can now yield:
...
===> Compiling apps/rebar/src/fake_mod.erl failed
┌─ apps/rebar/src/fake_mod.erl:
│
5 │ diagnostic(A) ->
│ ╰── variable 'A' is unused
┌─ apps/rebar/src/fake_mod.erl:
│
6 │ X = add(5 / 0),
│ ╰── evaluation of operator '/'/2 will fail with a 'badarith' exception
┌─ apps/rebar/src/fake_mod.erl:
│
11 │ add(X, Y) -> X + Y.
│ ╰── function add/2 is unused
and in a terminal supporting color output:
By default, this format is turned off, but can be turned on optionally by configuring values with
{compiler_error_format, rich}.
You can get this enabled. You may want to put it in your global rebar3 config file. That being said, this may break some tooling that could parse rebar3-specific output. The default value is {compiler_error_format, minimal}.
and putting that value back in should fix any breakage. We're also expecting color output to have a few bugs related to a rather naive heuristic used to delimit language constructs, but we wanted to make the feature available for feedback and this bug-fixing release was a decent opportunity.
This functionality relies on an expanded compiler API exposed by Rebar3, but since we're not yet quite sure what form we want it to take, we'll keep the new API undocumented in the short term.
New Features:
Various fixes:
?RTX_LOG
macro option to top-level rebar.config
_vendor
folder
This release took a while to build; OTP-25.1 had incompatibilities with EUnit that interrupted the CI process, and which are corrected in later releases.
New features:
This new vendor structure should be of no impact to anyone using Rebar3 as a built artifact, but should make the life of corporate users and package managers much easier by having pre-bundled in all dependencies and allowing effective offline builds. It also simplifies our bootstrap code and reduces security issues by not having to download a certificate bundle without certificates, at least until our oldest supported version can use Erlang's new built-in on-host certificate lookup mechanisms.
If you do rely on Rebar3 source for your tooling or any other mechanisms, then you will want to cd apps/rebar
before running other commands.
Other fixes:
New features:
Experimental features for which we promise no backwards compatibility in the near future:
Other changes:
erlexec
directly in relx helper functions
depth
parameter for SSL
--all
argument in unlock
--all
argument in upgrade
--all
argument in upgrade plugin
This release is mostly bug fixes, and repairs prior broken builds of elixir dependencies, but also includes a couple of useful features.
New Features:
Bug fixes:
rebar_file_utils:system_tmpdir/1
take TMPDIR
env var into account on *nix
Security release. See https://ferd.ca/you-ve-got-to-upgrade-rebar3.html
Major security fix around TLS validation. See https://ferd.ca/you-ve-got-to-upgrade-rebar3.html
Also: