Releases: erlang/rebar3
3.10.0
- upgrade relx 3.31.0
- Update certifi, ssl_verify_fun, bbmustache
- support dialyzer plt location and prefix in cli args
- rebar3 eunit: Hide slowest tests profile output by default
- Enable parallel build
- Catch errors in writing the package cache
- Fix rebar3 deps command
- Attempt at support sys_config_src in shell
- Fix provider hook handling for escriptize
- Remove ignored hex_core artifact from repo
- Fix handling of transient locks during upgrade
3.9.1
- upgrade relx 3.29.0, containing various fixes to the extended start script and nodetool
- Fix fetching private packages from Hex orgs
- Abort when file:consult/1 returns an error in rebar3_hex_repos:auth_config/1
- switch documentation links to https where supported
- Display plugin versions in plugin list command
3.9.0
This is a release that both adds a few shell-related features, but more importantly fixes some significant bugs.
First the bugs:
- Fix performance regression in compiler around behaviours, which sometimes resulted in massive slowdowns
- Fix common test logging output with OTP-21.2 and logger when multiple crashes happen
- Fix handling of updated hrl files not triggering a recompile in tests when they are changed
- Unhang the logger when swapping the TTY in shell in OTP-21.1 and later
- Use double quotes in git shell command on Windows to prevent failures
- fix case clause handling when fetching hg dep
- Reorder rebar3 tree output on umbrella apps to be predictable
- update templates to remove deprecated maintainers field
The shell features are some workarounds and niceties related to known limitations:
3.8.0
A bunch of fixes, with some new minor features! The new features are:
- Add --generator option for eunit, which lets you run individual test cases
- implement mib_first_files support in rebar_compiler_mib
- Support ignoring entire modules in xref results
- Add a --fail_fast switch to common test which aborts the whole test run as soon as one of them fails -- this feature is experimental
And for the bug fixes:
- update relx to 3.28.0
- Update hex_core and add mirror_of repo config
- bump erlware_commons to 1.3.1
- re-expose download/3 for backwards compatibility in git deps-related plugins
- Fix pkg name during update by using pkg_name understood by hex
- Fix load order for custom project builders and parse transforms
3.7.5
3.7.4
3.7.3
3.7.2
3.7.1
3.7.0
Rebar 3.7.0 is a huge release, done with the help and support of the IEUG,
which is currently working towards a software foundation for the Erlang ecosystem.
These release notes contain all the changes since the last stable release (3.6.0),
and repeat information you might have read in changelogs of release candidates.
The big, huge, major new features include the following work, done with the help and
support from the IEUG, which is currently working towards establishing a software foundation
for the Erlang ecosystem:
- A full rework of how Hex packages are handled. We now support the Hex v2 protocol,
support their concept of private organisations. There is also added support
for layered hex indexes, allowing the usage of mirrors and self-hosted indexes,
and the local index cache is built lazily, meaning Rebar3 should be leaner
in its usage of local storage and memory regarding hex (#1884) - major rework of the plugin system around custom compilers and resource providers,
which allow the development of better resource handlers and file compilation. (#1893 and #1888)
This has allowed the development of a plugin, rebar_mix
which allows building of Elixir applications as dependencies within Rebar3 projects.
Documentation for the new features include:
- New hex mirrors and repositories handling: https://www.rebar3.org/v3/docs/configuration#section-hex-repos-and-indexes. If you were using the
rebar3_hexplugin to publish packages, don't forget to update it - The documentation for the new resource providers can be found at: https://www.rebar3.org/v3/docs/custom-dep-resources#section-resources-compatible-with-versions-370-and-above. A sample plugin already using the new API is Benoit Chesneau's rebar3_path_deps, which allows to specify relative vendored paths for dependency retrieval. The local paths should work even when the plugin is used for a dependency
- The new custom compiler interface, while unstable, can be found at: https://www.rebar3.org/v3/docs/custom-compiler-modules
- Documentation on building Elixir dependencies in Rebar3 can be found at rebar_mix's page
The following new features were also added:
- The ability to only compile dependencies, which is useful for docker images (#1888)
- Added support for breakpoints to be added in tests (or other arbitrary tasks). You can see the new documentation for breakpoints for usage instructions (#1924)
- Add support for a
REBAR_GIT_CLONE_OPTIONSenvironment variable which lets people set
up git caching of repositories for faster fetches across projects when calling it
with values such asREBAR_GIT_CLONE_OPTIONS="--reference ~/.cache/repos.reference"(#1844) - Support alias formats with namespaces ({Namespace, Cmd} and {Namespace, Cmd, Args}) (#1941)
Multiple bugfixes have also been included:
- reset default profile app plugins to empty if at the top level (#1885)
- properly support top level app erl_opts from REBAR_CONFIG os var (#1889)
- only print skip warning if dep version is different (#1886)
- warn if a matched package version is retired, and skip prereleases (#1897)
- upgrade relx and set base_dir in overlay_vars (#1902)
- Bump bbmustache and fix templates (#1862)
- Fix sample config punctuation (#1890)
- fix: only evaluate config scripts and apply overrides once per app (#1879)
- check last modified time on erl files for xrl and yrl files before compiling (#1938)
- Fix plugins list display to include project plugins (#1942)
- fix install output result (#1939)
- add emacs temp files to ignored lists in templates (#1929)
- Fix misleading config in app templates (#1927)
- check if git/hg is installed before fetching deps (#1921)
- Fallback when logging isn't initialized and a crash happens (#1920)
- Add reference to
rebar3 new helpinrebar3 help newsince the switch is non-obvious (#1949) - Fix shell hook variable expansion on windows (#1918)
- Major refactor of BEAM env path handling when loading modules for plugins and the compiler (#1907)
We've also updated the docs (some links were already present above), including a new workflow section that we hope to grow, and reupdated the manpages bundled with each version.
We encourage everyone to switch to the newer version.