* All configuration is moved to `{dialyzer, PropList}`
* `dialyzer_warnings` renamed `warnings`
* `dialyzer_plt_warnings` renamed `get_warnings`
* `dialyzer_plt_apps` renamed `plt_extra_apps`
* `dialyzer_plt_dir` renamed `plt_location`
* `{plt_location, local}` uses profile base directory
* `dialyzer_plt` removed
* `dialyzer_plt_prefix` sets prefix of PLT name (default "rebar3")
* `dialyzer_base_plt_apps` renamed `base_plt_apps`
* `dialyzer_base_plt_dir` renamed `base_plt_location`
* `{base_plt_location, global}` uses rebar3's global cache directory
* `dialyzer_base_plt` removed
* `base_plt_prefix` sets prefix of PLT name (default "rebar3")
PLT files are always named `<prefix>_<otp_version>_plt` to match rebar.
`plt_prefix` and `base_plt_prefix` are not available in rebar, where the
prefix is always set to the project's top level application.
* Only include direct dependencies + base plt
* Error on missing direct dependency
* Always use beams in ebin instead of reading .app file (copying rebar2)
* Remove fake unknown warnings (will clash with unknown warning in 18.0)
* Remove redundant search for .app file (code path includes deps)
When swapping handlers, if a custom shell has been installed, it's
possible it'll take over the tty and other options. This may break
common operations that work on an otherwise regular shell, so we ignore
failures and let things work with the custom shell only.
- Crashes in providers lib when no providers in a namespace are bare
- Making sure bareness matches semantics; i.e. a bare provider is
visible, a non-bare provider is hidden.
When setting up a shell some time elapses between listing the pids and setting
the group_leader. If the process exited during that time then
erlang:group_leader/2 will crash with badarg.
Config files from the command line would expect the wrong format:
{app1, [...]}.
{app2, [...]}.
Instead of the correct sys.config format:
[{app1, [...]},
{app2, [...]}]
Not supported yet: the recursive file references documented in
http://www.erlang.org/doc/man/config.html
While 'do' skips state updates between subcommands so that:
rebar3 do a, b == (rebar3 a && rebar3 b)
The final state of 'b' does not need to be discarded and might in fact
be useful to get when dealing with Rebar3 as an API.
This can be done without breaking the equality relation already
established.
- moved path addition, config loading and app boot to before the shell
is available
- apps successfully booting are in an INFO message, failed to boot into
an ERROR message
- A warning is printed when apps are booted informing to please use
releases for actual deployment, and is omitted otherwise.
- Some minor refactorings otherwise.