Releases: rabbitmq/rules_erlang
rules_erlang 2.5.2
Fixes an incompatibility with bzlmod introduced in 2.5.0 (bazelbuild/bazel-central-registry#79)
Full Changelog: 2.5.1...2.5.2
rules_erlang 2.5.1
What's Changed
- Properly quote erlc_opts when passed to erlc in the erlc rule by @pjk25 in #38
Full Changelog: 2.5.0...2.5.1
rules_erlang 2.5.0
What's Changed
- Various enhancements by @pjk25 in #33
- Add the
erlang_packagemodule extension which allows for similar but
substantially improved functionality from ourhex_pm_erlang_appand
github_erlang_appworkspace macroserlang_package.hexbehaves likehex_pm_erlang_app, but can better infer package propertieserlang_package.hex_treewith fetch the package and it's dependencies from hex.pm, performing a certain amount of dependency resolutionerlang_package.gitbehaves likegithub_erlang_app, but can better infer package properties and is not strictly limited to github
- Automatically compile behaviours and parse transforms first in the
erlcmacro, so that first_srcs are usually no longer necessary in the
erlang_app macro - Generate/Update
.appfiles with erlang, rather than simple string substitutions, making things like updating of{modules, ...}work correctly regardless of whitespace. Additionally, this allows values on theerlang_appmacro, likeapp_descriptionto be injected overtop of whatever is insrc/*.app.src, if the file is present. Previously in this caseapp_descriptionwould have been silently ignored. - Allow stamping of
.appfiles with a version erlcno longer assumes that dependencies sit in
directories named after their erlang app name (as is no longer the
case when using bzlmod). Additionally, the :test_erlang_app now
includes private headers.This way test sources, like _SUITE.erl files,
can include_lib them. This wasn't necessary given prior assumptions,
but seems a reasonable way to keep everything working.
- Add the
- Add an internal rule for creating escripts by @pjk25 in #34
- Handle PROJECT_APP_EXTRA_KEYS when auto-importing erlang.mk apps by @pjk25 in #36
Full Changelog: 2.4.0...2.5.0
rules_erlang 2.4.0
What's Changed
- Improve the way that include paths are computed in erlc rule by @pjk25 in #28
- Add the helper function
without(item, elements)to util.bzl by @pjk25 in #29 - Remove -Wrace_conditions from the default dialyzer options by @pjk25 in #31
- Fix the handling of the xrefr dependency when used with bzlmod
Full Changelog: 2.3.0...2.4.0
rules_erlang 2.3.0
What's Changed
- Allow the shell rule to pass through arguments by @pjk25 in #26
Full Changelog: 2.2.1...2.3.0
rules_erlang 2.2.1
What's Changed
- The dialyze rule now only analyzes the target and not its deps by @pjk25 in #24
Full Changelog: 2.2.0...2.2.1
rules_erlang 2.2.0
What's Changed
- No longer ignore dialyzer warnings in dialyze/dialyze_test by @pjk25 in #23
Full Changelog: 2.1.0...2.2.0
rules_erlang 2.1.0
What's Changed
- Use subst as a workaround for long paths in tests by @pjk25 in #22
Full Changelog: 2.0.1...2.1.0
rules_erlang 2.0.1
rules_erlang 2.0.0
rules_erlang 2.0.0 is a substantial refactoring of bazel-erlang 1.x
Many names have changed, though since it works in mostly the same ways, upgrading should not be too difficult a task.
New Features
- Support for Windows
Bugfixes
- xref would not actually check the correct files if the rule was applied to the top level of a workspace (See #21)
Changes
bazel_erlang_libhas been renamed toerlang_apptest_bazel_erlang_libhas been renamed totest_erlang_app- the nominal label created by the
erlang_appmacro is:erlang_app, instead of:bazel_erlang_lib bazel_erlang_deps()has been renamed torules_erlang_dependencies()github_bazel_erlang_libhas been renamed togithub_erlang_apphex_pm_bazel_erlang_libhas been renamed tohex_pm_erlang_app- the
ct_suitemacro fromct.bzlno longer supports thematrixargument (it was introduced early on, andct_suite_variantis intended to replace it) erlc_optsare no longer deduplicated #16
Notes: Upgrading from bazel-erlang 1.x
- Replace
*:bazel_erlang_liblabels with*:erlang_app - Replace
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib", "test_erlang_lib")calls tobazel_erlang_libandtest_bazel_erlang_libwithload("@rules_erlang//:erlang_app.bzl", "erlang_app", "test_erlang_app"),erlang_appandtest_erlang_app, respectively. - Replace
load(":bazel_erlang.bzl", "bazel_erlang_deps")andbazel_erlang_deps()withload(":rules_erlang.bzl", "rules_erlang_dependencies")andrules_erlang_dependencies() - Reference this package as
@rules_erlanginstead of@bazel-erlang, adjusting load statements appropriately (i.e.load("@bazel-erlang//:xref.bzl", "xref")->load("@rules_erlang//:xref.bzl", "xref"). Adjust your.bazelrcfiles as well.
Notes: Windows
See https://docs.bazel.build/versions/main/windows.html
Additionally, we have tested these rules using symlink support (see https://docs.bazel.build/versions/main/windows.html#enable-symlink-support). Test rules probably do not work without symlink support.
Full Changelog: 1.4.0...2.0.0