It is not convenient for everyone to handle unmatched_returns and
underspecs warnings. Extra default warnings are removed to match
dialyzer's behaviour.
When dialyzer_plt_warnings is false no warnings should be returned when
updating a PLT. Previously any callgraph warnings would be returned when
updating a PLT regardless of the get_warnings option.
Match erl_first_files properly against all files needing
compilation and make sure the order of erl_first_files as specified in
rebar.config is preserved (rebar/rebar#445)
Apps that are no longer used are not automatically deleted, but we tell
users it can be done. This is safer while we're not sure of the
correctness of these messages.
Error messages are added for transient dependencies and dependencies not
found.
- Many apps is supported through and through
- Not mentioning any app upgrades all apps
- Locks are refreshed on disk and tested as such after an upgrade
Only the most complex case is failing, where cross-dependencies would
need to be refetched as an update clears an app of its dependencies and
a different subtree should override it.
Change mock_pkg_resource to use rebar_test_utils:create_empty_app so
that an ebin directory is created which is a good expectation for a
package. Also revert the check in rebar_fetch:download_source to check
for an ebin directory before adding it to the code path for package
installs. If a package does not have an ebin directory it is probably
a good for an exception to be thrown.
Fix a bug where packages are not added to the code path after
installation. Dependent applications that build from source are not
affected by this issue since the build_apps function in
rebar_prv_compiler takes care of the code path changes for them. It is
only the precompiled packages that suffer from this issue.
Add xref support for multi-app projects. Instead of only adding the
top-level ebin directory to the xref server use
rebar_state:project_apps/1 to enumerate the applications for the
project and add the ebin directory for each one.