Skip to content

3.7.0

Compare
Choose a tag to compare
@ferd ferd released this 23 Nov 18:03
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:

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_OPTIONS environment variable which lets people set
    up git caching of repositories for faster fetches across projects when calling it
    with values such as REBAR_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 help in rebar3 help new since 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.