Updates for rules_erlang 2.5.0
rabbitmq_cli uses some private rules_erlang apis that have changed in the upcoming release Additionally: - Avoid including both standard and test versions of amqp_client in integration test suites - Eliminate most of the compilation order hints (explicit first_srcs) in the bazel build - Fix an include statement - in bazel, an app is not available to itself as a library at compilation time
This commit is contained in:
parent
3ef09778f3
commit
a22234f6eb
19
BUILD.ranch
19
BUILD.ranch
|
@ -3,23 +3,10 @@ load("@rules_erlang//:erlang_app_info.bzl", "erlang_app_info")
|
|||
load("@rules_erlang//:erlang_app.bzl", "DEFAULT_ERLC_OPTS")
|
||||
load("@rules_erlang//:erlc.bzl", "erlc")
|
||||
|
||||
FIRST_SRCS = [
|
||||
"src/ranch_transport.erl",
|
||||
]
|
||||
|
||||
erlc(
|
||||
name = "first_beam_files",
|
||||
hdrs = glob(["include/**/*.hrl", "src/**/*.hrl"]),
|
||||
srcs = glob(FIRST_SRCS),
|
||||
erlc_opts = DEFAULT_ERLC_OPTS,
|
||||
dest = "ebin",
|
||||
)
|
||||
|
||||
erlc(
|
||||
name = "beam_files",
|
||||
hdrs = glob(["include/**/*.hrl", "src/**/*.hrl"]),
|
||||
srcs = glob(["src/**/*.erl"], exclude = FIRST_SRCS),
|
||||
beam = [":first_beam_files"],
|
||||
srcs = glob(["src/**/*.erl"]),
|
||||
erlc_opts = DEFAULT_ERLC_OPTS,
|
||||
dest = "ebin",
|
||||
)
|
||||
|
@ -35,7 +22,7 @@ app_file(
|
|||
name = "app_file",
|
||||
app_name = "ranch",
|
||||
app_version = "2.1.0",
|
||||
modules = [":first_beam_files", ":beam_files"],
|
||||
modules = [":beam_files"],
|
||||
)
|
||||
|
||||
erlang_app_info(
|
||||
|
@ -43,6 +30,6 @@ erlang_app_info(
|
|||
app_name = "ranch",
|
||||
app = ":app_file",
|
||||
hdrs = glob(["include/**/*.hrl"]),
|
||||
beam = [":first_beam_files", ":beam_files", ":appup"],
|
||||
beam = [":beam_files", ":appup"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
|
|
@ -59,7 +59,7 @@ rules_pkg_dependencies()
|
|||
|
||||
git_repository(
|
||||
name = "rules_erlang",
|
||||
commit = "04e49d17027b461864eab8dcc80ea6c298bfc331",
|
||||
commit = "a31781efbb39a7206ce0ae5ffbf64c588430d9f8",
|
||||
remote = "https://github.com/rabbitmq/rules_erlang.git",
|
||||
)
|
||||
|
||||
|
|
|
@ -16,6 +16,26 @@ APP_DESCRIPTION = "AMQP 1.0 client from the RabbitMQ Project"
|
|||
|
||||
APP_MODULE = "amqp10_client_app"
|
||||
|
||||
APP_EXTRA_KEYS = """%% Hex.pm package informations.
|
||||
{licenses, ["MPL-2.0"]},
|
||||
{links, [
|
||||
{"Website", "https://www.rabbitmq.com/"},
|
||||
{"GitHub", "https://github.com/rabbitmq/rabbitmq-server/deps/amqp10_client"}
|
||||
]},
|
||||
{build_tools, ["make", "rebar3"]},
|
||||
{files, [
|
||||
"erlang.mk",
|
||||
"git-revisions.txt",
|
||||
"include",
|
||||
"LICENSE*",
|
||||
"Makefile",
|
||||
"rabbitmq-components.mk",
|
||||
"README",
|
||||
"README.md",
|
||||
"src"
|
||||
]}
|
||||
"""
|
||||
|
||||
EXTRA_APPS = [
|
||||
"ssl",
|
||||
"inets",
|
||||
|
@ -32,6 +52,7 @@ DEPS = [
|
|||
|
||||
rabbitmq_app(
|
||||
app_description = APP_DESCRIPTION,
|
||||
app_extra_keys = APP_EXTRA_KEYS,
|
||||
app_module = APP_MODULE,
|
||||
app_name = APP_NAME,
|
||||
build_deps = BUILD_DEPS,
|
||||
|
|
|
@ -33,10 +33,6 @@ rabbitmq_app(
|
|||
"amqp_sup",
|
||||
],
|
||||
extra_apps = EXTRA_APPS,
|
||||
first_srcs = [
|
||||
"src/amqp_gen_connection.erl",
|
||||
"src/amqp_gen_consumer.erl",
|
||||
],
|
||||
deps = DEPS,
|
||||
)
|
||||
|
||||
|
|
|
@ -194,14 +194,6 @@ EXTRA_APPS = [
|
|||
"xmerl",
|
||||
]
|
||||
|
||||
FIRST_SRCS = [
|
||||
"src/rabbit_tracking.erl",
|
||||
"src/rabbit_queue_type.erl",
|
||||
"src/rabbit_credential_validator.erl",
|
||||
"src/rabbit_policy_merge_strategy.erl",
|
||||
"src/rabbit_queue_master_locator.erl",
|
||||
]
|
||||
|
||||
rabbitmq_app(
|
||||
app_description = "RabbitMQ",
|
||||
app_env = _APP_ENV,
|
||||
|
@ -209,7 +201,6 @@ rabbitmq_app(
|
|||
app_name = "rabbit",
|
||||
app_registered = APP_REGISTERED,
|
||||
extra_apps = EXTRA_APPS,
|
||||
first_srcs = FIRST_SRCS,
|
||||
runtime_deps = RUNTIME_DEPS,
|
||||
deps = DEPS,
|
||||
)
|
||||
|
|
|
@ -89,33 +89,13 @@ app_file(
|
|||
deps = DEPS + RUNTIME_DEPS,
|
||||
)
|
||||
|
||||
FIRST_SRCS = [
|
||||
"src/gen_server2.erl",
|
||||
"src/rabbit_authn_backend.erl",
|
||||
"src/rabbit_authz_backend.erl",
|
||||
"src/rabbit_registry_class.erl",
|
||||
]
|
||||
|
||||
erlc(
|
||||
name = "first_beam_files",
|
||||
srcs = glob(FIRST_SRCS),
|
||||
hdrs = HDRS,
|
||||
dest = "ebin",
|
||||
erlc_opts = RABBITMQ_ERLC_OPTS,
|
||||
deps = DEPS,
|
||||
)
|
||||
|
||||
erlc(
|
||||
name = "beam_files",
|
||||
srcs = glob(
|
||||
["src/*.erl"],
|
||||
exclude = FIRST_SRCS,
|
||||
) + [
|
||||
srcs = glob(["src/*.erl"]) + [
|
||||
"src/rabbit_framing_amqp_0_8.erl",
|
||||
"src/rabbit_framing_amqp_0_9_1.erl",
|
||||
],
|
||||
hdrs = HDRS,
|
||||
beam = [":first_beam_files"],
|
||||
dest = "ebin",
|
||||
erlc_opts = RABBITMQ_ERLC_OPTS,
|
||||
deps = DEPS,
|
||||
|
@ -126,36 +106,19 @@ erlang_app_info(
|
|||
hdrs = HDRS,
|
||||
app = ":app_file",
|
||||
app_name = APP_NAME,
|
||||
beam = [
|
||||
":first_beam_files",
|
||||
":beam_files",
|
||||
],
|
||||
beam = [":beam_files"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = DEPS + RUNTIME_DEPS,
|
||||
)
|
||||
|
||||
erlc(
|
||||
name = "first_test_beam_files",
|
||||
testonly = True,
|
||||
srcs = glob(FIRST_SRCS),
|
||||
hdrs = HDRS,
|
||||
dest = "src",
|
||||
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
|
||||
deps = DEPS,
|
||||
)
|
||||
|
||||
erlc(
|
||||
name = "test_beam_files",
|
||||
testonly = True,
|
||||
srcs = glob(
|
||||
["src/*.erl"],
|
||||
exclude = FIRST_SRCS,
|
||||
) + [
|
||||
srcs = glob(["src/*.erl"]) + [
|
||||
"src/rabbit_framing_amqp_0_8.erl",
|
||||
"src/rabbit_framing_amqp_0_9_1.erl",
|
||||
],
|
||||
hdrs = HDRS,
|
||||
beam = [":first_test_beam_files"],
|
||||
dest = "src",
|
||||
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
|
||||
deps = DEPS,
|
||||
|
@ -167,10 +130,7 @@ erlang_app_info(
|
|||
hdrs = HDRS,
|
||||
app = ":app_file",
|
||||
app_name = APP_NAME,
|
||||
beam = [
|
||||
":first_test_beam_files",
|
||||
":test_beam_files",
|
||||
],
|
||||
beam = [":test_beam_files"],
|
||||
visibility = ["//:__subpackages__"],
|
||||
deps = DEPS + RUNTIME_DEPS,
|
||||
)
|
||||
|
|
|
@ -32,16 +32,11 @@ RUNTIME_DEPS = [
|
|||
"//deps/rabbit:erlang_app",
|
||||
]
|
||||
|
||||
FIRST_SRCS = [
|
||||
"src/rabbit_auth_cache.erl",
|
||||
]
|
||||
|
||||
rabbitmq_app(
|
||||
app_description = APP_DESCRIPTION,
|
||||
app_env = APP_ENV,
|
||||
app_module = APP_MODULE,
|
||||
app_name = APP_NAME,
|
||||
first_srcs = FIRST_SRCS,
|
||||
runtime_deps = RUNTIME_DEPS,
|
||||
deps = DEPS,
|
||||
)
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
load("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
|
||||
load(
|
||||
"@rules_erlang//:erlang_home.bzl",
|
||||
"ErlangHomeProvider",
|
||||
"ErlangVersionProvider",
|
||||
)
|
||||
load(
|
||||
"@rules_erlang//:erlang_app_info.bzl",
|
||||
"ErlangAppInfo",
|
||||
|
@ -11,23 +15,26 @@ load(
|
|||
"windows_path",
|
||||
)
|
||||
load(
|
||||
"@rules_erlang//private:ct.bzl",
|
||||
"ERL_LIBS_DIR",
|
||||
"code_paths",
|
||||
"@rules_erlang//private:util.bzl",
|
||||
"erl_libs_contents",
|
||||
)
|
||||
load("//:elixir_home.bzl", "ElixirHomeProvider")
|
||||
load(
|
||||
"//:elixir_home.bzl",
|
||||
"ElixirHomeProvider",
|
||||
)
|
||||
|
||||
def _impl(ctx):
|
||||
erlang_version = ctx.attr._erlang_version[ErlangVersionProvider].version
|
||||
erlang_home = ctx.attr._erlang_home[ErlangHomeProvider].path
|
||||
elixir_home = ctx.attr._elixir_home[ElixirHomeProvider].path
|
||||
|
||||
erl_libs_files = erl_libs_contents(ctx, headers = True)
|
||||
erl_libs_dir = ctx.label.name + "_deps"
|
||||
|
||||
erl_libs_files = erl_libs_contents(ctx, headers = True, dir = erl_libs_dir)
|
||||
|
||||
package_dir = path_join(ctx.label.workspace_root, ctx.label.package)
|
||||
|
||||
erl_libs_path = path_join(package_dir, ERL_LIBS_DIR)
|
||||
erl_libs_path = path_join(package_dir, erl_libs_dir)
|
||||
|
||||
if not ctx.attr.is_windows:
|
||||
output = ctx.actions.declare_file(ctx.label.name)
|
||||
|
|
|
@ -38,10 +38,6 @@ APP_ENV = """[
|
|||
{content_security_policy, "script-src 'self' 'unsafe-eval' 'unsafe-inline'; object-src 'self'"}
|
||||
]"""
|
||||
|
||||
FIRST_SRCS = [
|
||||
"src/rabbit_mgmt_extension.erl",
|
||||
]
|
||||
|
||||
DEPS = [
|
||||
"//deps/amqp_client:erlang_app",
|
||||
"//deps/rabbit_common:erlang_app",
|
||||
|
@ -72,7 +68,6 @@ rabbitmq_app(
|
|||
app_name = APP_NAME,
|
||||
extra_apps = EXTRA_APPS,
|
||||
extra_priv = [":rabbitmqadmin"],
|
||||
first_srcs = FIRST_SRCS,
|
||||
runtime_deps = RUNTIME_DEPS,
|
||||
deps = DEPS,
|
||||
)
|
||||
|
|
|
@ -41,10 +41,6 @@ APP_ENV = """[
|
|||
{sparkplug, false}
|
||||
]"""
|
||||
|
||||
FIRST_SRCS = [
|
||||
"src/rabbit_mqtt_retained_msg_store.erl",
|
||||
]
|
||||
|
||||
BUILD_DEPS = [
|
||||
"//deps/rabbitmq_cli:rabbitmqctl",
|
||||
]
|
||||
|
@ -66,7 +62,6 @@ rabbitmq_app(
|
|||
app_module = APP_MODULE,
|
||||
app_name = APP_NAME,
|
||||
build_deps = BUILD_DEPS,
|
||||
first_srcs = FIRST_SRCS,
|
||||
runtime_deps = RUNTIME_DEPS,
|
||||
deps = DEPS,
|
||||
)
|
||||
|
|
|
@ -54,9 +54,6 @@ rabbitmq_app(
|
|||
app_name = APP_NAME,
|
||||
build_deps = BUILD_DEPS,
|
||||
extra_apps = EXTRA_APPS,
|
||||
first_srcs = [
|
||||
"src/rabbit_shovel_behaviour.erl",
|
||||
],
|
||||
runtime_deps = RUNTIME_DEPS,
|
||||
deps = DEPS,
|
||||
)
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
-behaviour(gen_server).
|
||||
|
||||
-include_lib("rabbitmq_stream/include/rabbit_stream_metrics.hrl").
|
||||
-include("rabbit_stream_metrics.hrl").
|
||||
|
||||
-record(state, {timer, interval}).
|
||||
|
||||
|
|
|
@ -41,9 +41,6 @@ rabbitmq_app(
|
|||
app_module = APP_MODULE,
|
||||
app_name = APP_NAME,
|
||||
extra_apps = EXTRA_APPS,
|
||||
first_srcs = [
|
||||
"src/rabbit_trust_store_certificate_provider.erl",
|
||||
],
|
||||
runtime_deps = RUNTIME_DEPS,
|
||||
deps = DEPS,
|
||||
)
|
||||
|
|
27
rabbitmq.bzl
27
rabbitmq.bzl
|
@ -100,9 +100,9 @@ def rabbitmq_app(
|
|||
app_description = "",
|
||||
app_module = "",
|
||||
app_registered = [],
|
||||
app_env = "[]",
|
||||
app_env = "",
|
||||
app_extra_keys = "",
|
||||
extra_apps = [],
|
||||
first_srcs = [],
|
||||
extra_priv = [],
|
||||
build_deps = [],
|
||||
deps = [],
|
||||
|
@ -114,13 +114,13 @@ def rabbitmq_app(
|
|||
app_module = app_module,
|
||||
app_registered = app_registered,
|
||||
app_env = app_env,
|
||||
app_extra = app_extra_keys,
|
||||
extra_apps = extra_apps,
|
||||
extra_priv = extra_priv,
|
||||
erlc_opts = select({
|
||||
"//:debug_build": without("+deterministic", RABBITMQ_ERLC_OPTS),
|
||||
"//conditions:default": RABBITMQ_ERLC_OPTS,
|
||||
}),
|
||||
first_srcs = first_srcs,
|
||||
build_deps = build_deps,
|
||||
deps = deps,
|
||||
runtime_deps = runtime_deps,
|
||||
|
@ -133,13 +133,13 @@ def rabbitmq_app(
|
|||
app_module = app_module,
|
||||
app_registered = app_registered,
|
||||
app_env = app_env,
|
||||
app_extra = app_extra_keys,
|
||||
extra_apps = extra_apps,
|
||||
extra_priv = extra_priv,
|
||||
erlc_opts = select({
|
||||
"//:debug_build": without("+deterministic", RABBITMQ_TEST_ERLC_OPTS),
|
||||
"//conditions:default": RABBITMQ_TEST_ERLC_OPTS,
|
||||
}),
|
||||
first_srcs = first_srcs,
|
||||
build_deps = with_test_versions(build_deps),
|
||||
deps = with_test_versions(deps),
|
||||
runtime_deps = with_test_versions(runtime_deps),
|
||||
|
@ -184,6 +184,13 @@ def rabbitmq_integration_suite(
|
|||
deps = [],
|
||||
runtime_deps = [],
|
||||
**kwargs):
|
||||
extra_deps = [
|
||||
"//deps/rabbit_common:erlang_app",
|
||||
"//deps/rabbitmq_ct_helpers:erlang_app",
|
||||
]
|
||||
if package != "deps/amqp_client":
|
||||
extra_deps.append("//deps/amqp_client:erlang_app")
|
||||
|
||||
ct_suite(
|
||||
name = name,
|
||||
suite_name = name,
|
||||
|
@ -211,11 +218,7 @@ def rabbitmq_integration_suite(
|
|||
"//deps/rabbitmq_cli:rabbitmqctl",
|
||||
"//deps/rabbitmq_ct_client_helpers:erlang_app",
|
||||
] + runtime_deps,
|
||||
deps = [
|
||||
"//deps/amqp_client:erlang_app",
|
||||
"//deps/rabbit_common:erlang_app",
|
||||
"//deps/rabbitmq_ct_helpers:erlang_app",
|
||||
] + deps,
|
||||
deps = extra_deps + deps,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
|
@ -242,11 +245,7 @@ def rabbitmq_integration_suite(
|
|||
"//deps/rabbitmq_cli:rabbitmqctl",
|
||||
"//deps/rabbitmq_ct_client_helpers:erlang_app",
|
||||
] + runtime_deps,
|
||||
deps = [
|
||||
"//deps/amqp_client:erlang_app",
|
||||
"//deps/rabbit_common:erlang_app",
|
||||
"//deps/rabbitmq_ct_helpers:erlang_app",
|
||||
] + deps,
|
||||
deps = extra_deps + deps,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
|
|
|
@ -35,11 +35,6 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
|
|||
|
||||
hex_pm_erlang_app(
|
||||
name = "cowboy",
|
||||
first_srcs = [
|
||||
"src/cowboy_stream.erl",
|
||||
"src/cowboy_middleware.erl",
|
||||
"src/cowboy_sub_protocol.erl",
|
||||
],
|
||||
version = "2.8.0",
|
||||
sha256 = "4643e4fba74ac96d4d152c75803de6fad0b3fa5df354c71afdd6cbeeb15fac8a",
|
||||
deps = [
|
||||
|
@ -114,9 +109,6 @@ erlang_app(
|
|||
name = "gun",
|
||||
version = "1.3.3",
|
||||
sha256 = "3106ce167f9c9723f849e4fb54ea4a4d814e3996ae243a1c828b256e749041e0",
|
||||
first_srcs = [
|
||||
"src/gun_content_handler.erl",
|
||||
],
|
||||
runtime_deps = [
|
||||
"@cowlib//:erlang_app",
|
||||
],
|
||||
|
@ -143,9 +135,6 @@ erlang_app(
|
|||
version = "2b1d66b5f4fbe33cb198149a8cb23895a2c877ea",
|
||||
first_srcs = [
|
||||
"src/jose_block_encryptor.erl",
|
||||
"src/jwk/jose_jwk_use_enc.erl",
|
||||
"src/jwk/jose_jwk_use_sig.erl",
|
||||
"src/jwk/jose_jwk_oct.erl",
|
||||
],
|
||||
sha256 = "7816f39d00655f2605cfac180755e97e268dba86c2f71037998ff63792ca727b",
|
||||
)
|
||||
|
@ -176,12 +165,6 @@ erlang_app(
|
|||
hex_pm_erlang_app(
|
||||
name = "prometheus",
|
||||
version = "4.8.2",
|
||||
first_srcs = [
|
||||
"src/prometheus_collector.erl",
|
||||
"src/prometheus_format.erl",
|
||||
"src/prometheus_instrumenter.erl",
|
||||
"src/prometheus_metric.erl",
|
||||
],
|
||||
deps = [
|
||||
"@quantile_estimator//:erlang_app",
|
||||
],
|
||||
|
@ -190,10 +173,6 @@ erlang_app(
|
|||
|
||||
github_erlang_app(
|
||||
name = "proper",
|
||||
first_srcs = [
|
||||
"src/vararg.erl",
|
||||
"src/proper_target.erl",
|
||||
],
|
||||
org = "manopapad",
|
||||
)
|
||||
|
||||
|
@ -255,9 +234,6 @@ erlang_app(
|
|||
sha256 = "01c31c31d4d28e564da0660bdb69725ba37173fca5b3228829b8f3f416f9e486",
|
||||
ref = "4.0.0",
|
||||
version = "4.0.0",
|
||||
first_srcs = [
|
||||
"src/syslog_logger.erl",
|
||||
],
|
||||
)
|
||||
|
||||
hex_pm_erlang_app(
|
||||
|
|
Loading…
Reference in New Issue