Changelog since alpha-4:
- rebar3 now bootstraps itself
- app compile fixes on app info contents and config inheritance
- dropping ErlyDTL and going to Mustache for smaller executable sizes
and faster load time on small CPUs
- dropping `erlydtl compile` command, ErlyDTL task moved to a plugin
- default dependencies are always fetched in the right place and don't
need to be copied across profile runs
- escriptize fixes
- `unlock` command added
- resolving/avoiding clashes when a rebar3 dep and an application
dependency conflict together
- profile deduplication (`rebar3 as test,test,prod,test eunit` returns
the profile/directories for `prod+test`)
- `upgrade` command bugfixes to recognize promotion of transient deps to
top-level deps
- support template when rebar3 is run as an embedded library
- some optimizations
- parse transform support is better in erl_opts
- fixes to package handling
- fixes to `rebar3 deps`
Whenever files were being locked *and* provided in rebar.config
duplicates could be printed. This is taken care of.
Also whenever atom packages were being used, they would cause the merge
step to fail. The new format does proper name-based deduplication of
resources, giving priority to locks to work.
ModificatioN/needs-update support is still in.
This may also act as a fix for #341, if automation isn't required too
much.
When fetching dependencies for the first time using a profile (`rebar3
as prod release` or `rebar3 ct`), the dependencies get fetched into the
non-default profile. This has two consequences:
- the files get re-downloaded on follow-up runs
- the lock file includes incomplete or too many deps in its list
This patch forces dependencies in the default profile to be stored in
_build/default/lib even when running under other profiles, then symlinks
them to the correct one.
This makes it so common dependencies in 'default' be downloaded there
and avoids re-downloading them. Should also fix the lock issues.