[erlang-questions] [ANN] Rebar3 3.7.0
Fred Hebert
mononcqc@REDACTED
Fri Nov 23 20:07:19 CET 2018
Rebar3 3.7.0 is out, and we have some amazing features to show you!
Thanks to work done by Tristan Sloughter (with some backing of the IEUG,
which is wokring on a transition towards a big foundation with a name
still up in the air), we've got some great stuff to announce:
- There's been a complete rework of how Hex packages and their indexes
are handled. We now support the Hex v2 protocol,
with their concept of private organisations. There is also added
support for layered hex indexes, allowing the usage of mirrors and
self-hosted indexes in a transparent manner within a project.
Documentation: https://www.rebar3.org/v3/docs/configuration#section-hex-repos-and-indexes
If you were using the rebar3_hex plugin, you'll need to upgrade it to
work with this new version.
- The local index cache is now built lazily, meaning Rebar3 should be
leaner in its usage of local storage and memory regarding hex, and
network lookups should be less frequent. This should help people
working towards hermetic builds as well
- There's been major rework around custom resource plugins and compilers
(old resources and plugins are still working, no worry). This has
allowed some real interesting stuff such as Benoit Chesneau's local
path dependencies plugin (https://github.com/benoitc/rebar3_path_deps)
Documentation (resources):
https://www.rebar3.org/v3/docs/custom-dep-resources#section-resources-compatible-with-versions-370-and-above
Documentation (compiler plugin):
https://www.rebar3.org/v3/docs/custom-compiler-modules
- Elixir dependencies are now supported through the rebar_mix plugin
(https://github.com/tsloughter/rebar_mix) thanks to these changes!
But as if that were not amazing enough, we've also got a few other
features, including:
- The ability to only compile dependencies, which is useful for docker images
(use the --deps_only or -d switches, as described in
http://erlware.org/rebar3-building-docker-images/)
- Added support for breakpoints to be added in tests (or other arbitrary
tasks) to let you debug them in rebar3's shell
Documentation:
https://www.rebar3.org/v3/docs/using-breakpoints-to-debug-tests
- 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"
- Support alias commands with namespaces
(declared as {Namespace, Cmd} and {Namespace, Cmd, Args} in the alias
option).
There is also a good bunch of nice bugfixes. You can get the full list
at https://github.com/erlang/rebar3/releases/tag/3.7.0
Have a great week-end, and thanks to all the contributors who opened
issues and submitted pull requests!
- Fred.
More information about the erlang-questions
mailing list