In the spirit of Original Rebar's "require_min_otp_vsn", this adds
rebar_utils:check_min_otp_version/1 (taking a string containing the
minimum version) and rebar_utils:check_blacklisted_otp_versions/1
(taking a list of regular expression strings), as well as tests in
rebar_utils_SUITE. They're currently only called by the tests-
how/where to best place calls to them from non-test code needs to be
determined (at which point two corresponding rebar.config keys can be
supported). For example, the version probably shouldn't be enforced when
just running "rebar3 help".
The test works by using a parse transform that stamps modules with an
attribute as it runs them. It then compiles everything, loads the
module, and makes sure the stamps respect the defined order.
* 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.
Lock forwarding is what happens when the file on disk are on a different
version from what is specified in the lock file. Files on disk should be
updated to respect what's in the lock file.
A negative test has been added so that lock files that are outdated vis.
the underlying git and packages but match files on disk do not get
forwarded. This job is left to the `upgrade' command.
like `src_dirs`, `extra_src_dirs` are directories to be copied to
the `_build` dir and compiled. unlike `src_dirs` they are not added
to the .app specification