diff --git a/BAZEL.md b/BAZEL.md index f67052252b58..d0eff0dd1caf 100644 --- a/BAZEL.md +++ b/BAZEL.md @@ -61,14 +61,13 @@ Note: This takes quite some time on a single machine. ## Add/update an external dependency from hex.pm -1. `bazel run gazelle -- update-repos --verbose --build_files_dir=bazel hex.pm/accept@0.3.5` to generate/update `bazel/BUILD.accept` - ~~`bazel run gazelle-update-repos -- -args hex.pm/accept@0.3.5`~~ +1. `bazel run gazelle-update-repos -- -args hex.pm/accept@0.3.5` to generate/update `bazel/BUILD.accept` 1. `git checkout WORKSPACE` to reset the workspace file 1. Add/update the entry in MODULE.bazel ## Add/update an external dependency from github -`bazel run gazelle -- update-repos --verbose --build_files_dir=bazel github.com/extend/ct_helper` +`bazel run gazelle-update-repos -- -args --testonly github.com/extend/ct_helper` ## Additional Useful Commands diff --git a/BUILD.bazel b/BUILD.bazel index 44e41ef76283..9b31143c6e7b 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -30,16 +30,17 @@ gazelle( gazelle = "@rules_erlang//gazelle:gazelle_erlang_binary", ) -# gazelle( -# name = "gazelle-update-repos", -# extra_args = [ -# "--verbose", -# "--build_files_dir=bazel", -# ], -# command = "update-repos", -# data = GAZELLE_ERLANG_RUNTIME_DEPS, -# gazelle = "@rules_erlang//gazelle:gazelle_erlang_binary", -# ) +gazelle( + name = "gazelle-update-repos", + command = "update-repos", + data = GAZELLE_ERLANG_RUNTIME_DEPS, + extra_args = [ + "--verbose", + "--build_files_dir=bazel", + "--recurse_with=gazelle-update-repos", + ], + gazelle = "@rules_erlang//gazelle:gazelle_erlang_binary", +) bool_flag( name = "enable_test_build", diff --git a/MODULE.bazel b/MODULE.bazel index 4201377d1a41..b846263d545b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -31,7 +31,7 @@ bazel_dep( bazel_dep( name = "rules_erlang", - version = "3.9.5", + version = "3.9.9", ) erlang_config = use_extension( @@ -160,12 +160,6 @@ erlang_package.hex_package( version = "3.2.0", ) -erlang_package.git_package( - branch = "master", - build_file = "@//:bazel/BUILD.ct_helper", - repository = "extend/ct_helper", -) - erlang_package.hex_package( name = "cuttlefish", build_file = "@rabbitmq-server//bazel:BUILD.cuttlefish", @@ -180,13 +174,6 @@ erlang_package.hex_package( version = "0.3.6", ) -erlang_package.git_package( - name = "emqtt", - build_file = "@rabbitmq-server//bazel:BUILD.emqtt", - repository = "emqx/emqtt", - tag = "1.8.2", -) - erlang_package.hex_package( name = "enough", build_file = "@rabbitmq-server//bazel:BUILD.enough", @@ -215,12 +202,6 @@ erlang_package.hex_package( version = "1.3.3", ) -erlang_package.git_package( - name = "inet_tcp_proxy_dist", - branch = "master", - repository = "rabbitmq/inet_tcp_proxy", -) - erlang_package.git_package( name = "jose", build_file = "@rabbitmq-server//bazel:BUILD.jose", @@ -235,12 +216,6 @@ erlang_package.hex_package( version = "1.0.0", ) -erlang_package.git_package( - branch = "master", - build_file = "@rabbitmq-server//bazel:BUILD.meck", - repository = "eproxus/meck", -) - erlang_package.hex_package( name = "observer_cli", build_file = "@rabbitmq-server//bazel:BUILD.observer_cli", @@ -260,12 +235,6 @@ erlang_package.hex_package( version = "4.10.0", ) -erlang_package.git_package( - branch = "master", - build_file = "@rabbitmq-server//bazel:BUILD.proper", - repository = "manopapad/proper", -) - erlang_package.hex_package( name = "quantile_estimator", build_file = "@rabbitmq-server//bazel:BUILD.quantile_estimator", @@ -342,20 +311,15 @@ use_repo( "cowboy", "cowlib", "credentials_obfuscation", - "ct_helper", "cuttlefish", "eetcd", - "emqtt", "gen_batch_server", "getopt", "gun", - "inet_tcp_proxy_dist", "jose", - "meck", "observer_cli", "osiris", "prometheus", - "proper", "ra", "ranch", "recon", @@ -368,6 +332,53 @@ use_repo( "thoas", ) +erlang_dev_package = use_extension( + "@rules_erlang//bzlmod:extensions.bzl", + "erlang_package", + dev_dependency = True, +) + +erlang_dev_package.git_package( + branch = "master", + build_file = "@//:bazel/BUILD.ct_helper", + repository = "extend/ct_helper", +) + +erlang_dev_package.git_package( + name = "emqtt", + build_file = "@rabbitmq-server//bazel:BUILD.emqtt", + repository = "emqx/emqtt", + tag = "1.8.2", +) + +erlang_dev_package.git_package( + name = "inet_tcp_proxy_dist", + branch = "master", + repository = "rabbitmq/inet_tcp_proxy", + testonly = True, +) + +erlang_dev_package.git_package( + branch = "master", + build_file = "@rabbitmq-server//bazel:BUILD.meck", + repository = "eproxus/meck", +) + +erlang_dev_package.git_package( + branch = "master", + build_file = "@rabbitmq-server//bazel:BUILD.proper", + repository = "manopapad/proper", +) + +use_repo( + erlang_dev_package, + "ct_helper", + "emqtt", + "inet_tcp_proxy_dist", + "meck", + "proper", +) + rbe = use_extension( "//bazel/bzlmod:extensions.bzl", "rbe", diff --git a/WORKSPACE b/WORKSPACE index d580e6772b88..959fea0e9ed0 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -4,7 +4,7 @@ load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_r git_repository( name = "rules_erlang", remote = "https://github.com/rabbitmq/rules_erlang.git", - tag = "3.9.5", + tag = "3.9.9", ) load("@rules_erlang//:internal_deps.bzl", "rules_erlang_internal_deps") diff --git a/bazel/BUILD.ct_helper b/bazel/BUILD.ct_helper index 435aebd6d469..a2d897798c14 100644 --- a/bazel/BUILD.ct_helper +++ b/bazel/BUILD.ct_helper @@ -17,6 +17,7 @@ erlc_opts( erlang_bytecode( name = "other_beam", + testonly = True, srcs = [ "src/ct_helper.erl", "src/ct_helper_error_h.erl", @@ -27,19 +28,19 @@ erlang_bytecode( "ebin/ct_helper_error_h.beam", "ebin/erl_make_certs.beam", ], - hdrs = [], app_name = "ct_helper", - beam = [], erlc_opts = "//:erlc_opts", ) filegroup( name = "beam_files", + testonly = True, srcs = [":other_beam"], ) filegroup( name = "srcs", + testonly = True, srcs = [ "src/ct_helper.app.src", "src/ct_helper.erl", @@ -50,26 +51,30 @@ filegroup( filegroup( name = "private_hdrs", - srcs = [], + testonly = True, ) filegroup( name = "public_hdrs", - srcs = [], + testonly = True, ) filegroup( name = "priv", - srcs = [], + testonly = True, ) filegroup( name = "licenses", - srcs = ["LICENSE"], + testonly = True, + srcs = [ + "LICENSE", + ], ) filegroup( name = "public_and_private_hdrs", + testonly = True, srcs = [ ":private_hdrs", ":public_hdrs", @@ -78,6 +83,7 @@ filegroup( filegroup( name = "all_srcs", + testonly = True, srcs = [ ":public_and_private_hdrs", ":srcs", @@ -86,6 +92,7 @@ filegroup( erlang_app( name = "erlang_app", + testonly = True, srcs = [":all_srcs"], app_name = "ct_helper", beam_files = [":beam_files"], diff --git a/bazel/BUILD.emqtt b/bazel/BUILD.emqtt index 80d86732105b..b5dec3480458 100644 --- a/bazel/BUILD.emqtt +++ b/bazel/BUILD.emqtt @@ -1,6 +1,8 @@ load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") load("@rules_erlang//:erlang_app.bzl", "erlang_app") +# gazelle:erlang_erlc_opt -DBUILD_WITHOUT_QUIC + erlc_opts( name = "erlc_opts", values = select({ @@ -11,7 +13,7 @@ erlc_opts( "+warn_shadow_vars", "+warn_unused_import", "+warn_unused_vars", - "-DBUILD_WITHOUT_QUIC", # keep + "-DBUILD_WITHOUT_QUIC", ], "//conditions:default": [ "+debug_info", @@ -21,7 +23,7 @@ erlc_opts( "+warn_shadow_vars", "+warn_unused_import", "+warn_unused_vars", - "-DBUILD_WITHOUT_QUIC", # keep + "-DBUILD_WITHOUT_QUIC", ], }), visibility = [":__subpackages__"], @@ -29,6 +31,7 @@ erlc_opts( erlang_bytecode( name = "other_beam", + testonly = True, srcs = [ "src/emqtt.erl", "src/emqtt_cli.erl", @@ -36,6 +39,8 @@ erlang_bytecode( "src/emqtt_inflight.erl", "src/emqtt_props.erl", "src/emqtt_quic.erl", + "src/emqtt_quic_connection.erl", + "src/emqtt_quic_stream.erl", "src/emqtt_secret.erl", "src/emqtt_sock.erl", "src/emqtt_ws.erl", @@ -47,6 +52,8 @@ erlang_bytecode( "ebin/emqtt_inflight.beam", "ebin/emqtt_props.beam", "ebin/emqtt_quic.beam", + "ebin/emqtt_quic_connection.beam", + "ebin/emqtt_quic_stream.beam", "ebin/emqtt_secret.beam", "ebin/emqtt_sock.beam", "ebin/emqtt_ws.beam", @@ -56,17 +63,18 @@ erlang_bytecode( "include/logger.hrl", ], app_name = "emqtt", - beam = [], erlc_opts = "//:erlc_opts", ) filegroup( name = "beam_files", + testonly = True, srcs = [":other_beam"], ) filegroup( name = "srcs", + testonly = True, srcs = [ "src/emqtt.app.src", "src/emqtt.erl", @@ -75,6 +83,8 @@ filegroup( "src/emqtt_inflight.erl", "src/emqtt_props.erl", "src/emqtt_quic.erl", + "src/emqtt_quic_connection.erl", + "src/emqtt_quic_stream.erl", "src/emqtt_secret.erl", "src/emqtt_sock.erl", "src/emqtt_ws.erl", @@ -83,11 +93,12 @@ filegroup( filegroup( name = "private_hdrs", - srcs = [], + testonly = True, ) filegroup( name = "public_hdrs", + testonly = True, srcs = [ "include/emqtt.hrl", "include/logger.hrl", @@ -96,16 +107,20 @@ filegroup( filegroup( name = "priv", - srcs = [], + testonly = True, ) filegroup( name = "licenses", - srcs = ["LICENSE"], + testonly = True, + srcs = [ + "LICENSE", + ], ) filegroup( name = "public_and_private_hdrs", + testonly = True, srcs = [ ":private_hdrs", ":public_hdrs", @@ -114,6 +129,7 @@ filegroup( filegroup( name = "all_srcs", + testonly = True, srcs = [ ":public_and_private_hdrs", ":srcs", @@ -122,6 +138,7 @@ filegroup( erlang_app( name = "erlang_app", + testonly = True, srcs = [":all_srcs"], hdrs = [":public_hdrs"], app_name = "emqtt", diff --git a/bazel/BUILD.getopt b/bazel/BUILD.getopt index e3a21b833d4a..820955c3e34d 100644 --- a/bazel/BUILD.getopt +++ b/bazel/BUILD.getopt @@ -20,7 +20,6 @@ erlc_opts( "+warn_unused_import", "+warn_unused_record", "+warn_unused_vars", - "+{platform_define,\"^2\",unicode_str}", ], "//conditions:default": [ "+debug_info", @@ -39,7 +38,6 @@ erlc_opts( "+warn_unused_import", "+warn_unused_record", "+warn_unused_vars", - "+{platform_define,\"^2\",unicode_str}", ], }), visibility = [":__subpackages__"], diff --git a/bazel/BUILD.meck b/bazel/BUILD.meck index 1b773079e810..885c1f8af400 100644 --- a/bazel/BUILD.meck +++ b/bazel/BUILD.meck @@ -17,6 +17,7 @@ erlc_opts( erlang_bytecode( name = "other_beam", + testonly = True, srcs = [ "src/meck.erl", "src/meck_args_matcher.erl", @@ -43,19 +44,22 @@ erlang_bytecode( "ebin/meck_ret_spec.beam", "ebin/meck_util.beam", ], - hdrs = ["src/meck.hrl"], + hdrs = [ + "src/meck.hrl", + ], app_name = "meck", - beam = [], erlc_opts = "//:erlc_opts", ) filegroup( name = "beam_files", + testonly = True, srcs = [":other_beam"], ) filegroup( name = "srcs", + testonly = True, srcs = [ "src/meck.app.src", "src/meck.erl", @@ -74,26 +78,33 @@ filegroup( filegroup( name = "private_hdrs", - srcs = ["src/meck.hrl"], + testonly = True, + srcs = [ + "src/meck.hrl", + ], ) filegroup( name = "public_hdrs", - srcs = [], + testonly = True, ) filegroup( name = "priv", - srcs = [], + testonly = True, ) filegroup( name = "licenses", - srcs = ["LICENSE"], + testonly = True, + srcs = [ + "LICENSE", + ], ) filegroup( name = "public_and_private_hdrs", + testonly = True, srcs = [ ":private_hdrs", ":public_hdrs", @@ -102,6 +113,7 @@ filegroup( filegroup( name = "all_srcs", + testonly = True, srcs = [ ":public_and_private_hdrs", ":srcs", @@ -110,6 +122,7 @@ filegroup( erlang_app( name = "erlang_app", + testonly = True, srcs = [":all_srcs"], app_name = "meck", beam_files = [":beam_files"], diff --git a/bazel/BUILD.observer_cli b/bazel/BUILD.observer_cli index 937e8fe44a08..7c77f4de96ae 100644 --- a/bazel/BUILD.observer_cli +++ b/bazel/BUILD.observer_cli @@ -20,7 +20,6 @@ erlc_opts( "+warn_unused_import", "+warn_unused_record", "+warn_unused_vars", - "+{src_dirs,[\"src\",\"test\"]}", ], "//conditions:default": [ "+debug_info", @@ -39,7 +38,6 @@ erlc_opts( "+warn_unused_import", "+warn_unused_record", "+warn_unused_vars", - "+{src_dirs,[\"src\",\"test\"]}", ], }), visibility = [":__subpackages__"], diff --git a/bazel/BUILD.prometheus b/bazel/BUILD.prometheus index f079fa941e32..06b4e8a627ee 100644 --- a/bazel/BUILD.prometheus +++ b/bazel/BUILD.prometheus @@ -19,7 +19,6 @@ erlc_opts( "+warn_unused_record", "+warn_unused_vars", "+warnings_as_errors", - "+{platform_define,\"^(2|3)\",recent_otp}", ], "//conditions:default": [ "+debug_info", @@ -37,7 +36,6 @@ erlc_opts( "+warn_unused_record", "+warn_unused_vars", "+warnings_as_errors", - "+{platform_define,\"^(2|3)\",recent_otp}", ], }), visibility = [":__subpackages__"], diff --git a/bazel/BUILD.proper b/bazel/BUILD.proper index ce93fc2a22c2..018c1f30c39a 100644 --- a/bazel/BUILD.proper +++ b/bazel/BUILD.proper @@ -33,8 +33,13 @@ erlc_opts( erlang_bytecode( name = "parse_transforms", - srcs = ["src/vararg.erl"], - outs = ["ebin/vararg.beam"], + testonly = True, + srcs = [ + "src/vararg.erl", + ], + outs = [ + "ebin/vararg.beam", + ], hdrs = [ "include/proper.hrl", "include/proper_common.hrl", @@ -47,8 +52,13 @@ erlang_bytecode( erlang_bytecode( name = "behaviours", - srcs = ["src/proper_target.erl"], - outs = ["ebin/proper_target.beam"], + testonly = True, + srcs = [ + "src/proper_target.erl", + ], + outs = [ + "ebin/proper_target.beam", + ], hdrs = [ "include/proper.hrl", "include/proper_common.hrl", @@ -62,6 +72,7 @@ erlang_bytecode( erlang_bytecode( name = "other_beam", + testonly = True, srcs = [ "src/proper.erl", "src/proper_arith.erl", @@ -130,6 +141,7 @@ erlang_bytecode( filegroup( name = "beam_files", + testonly = True, srcs = [ ":behaviours", ":other_beam", @@ -139,6 +151,7 @@ filegroup( filegroup( name = "srcs", + testonly = True, srcs = [ "src/proper.app.src", "src/proper.erl", @@ -172,11 +185,12 @@ filegroup( filegroup( name = "private_hdrs", - srcs = [], + testonly = True, ) filegroup( name = "public_hdrs", + testonly = True, srcs = [ "include/proper.hrl", "include/proper_common.hrl", @@ -187,16 +201,17 @@ filegroup( filegroup( name = "priv", - srcs = [], + testonly = True, ) filegroup( name = "licenses", - srcs = [], + testonly = True, ) filegroup( name = "public_and_private_hdrs", + testonly = True, srcs = [ ":private_hdrs", ":public_hdrs", @@ -205,6 +220,7 @@ filegroup( filegroup( name = "all_srcs", + testonly = True, srcs = [ ":public_and_private_hdrs", ":srcs", @@ -213,6 +229,7 @@ filegroup( erlang_app( name = "erlang_app", + testonly = True, srcs = [":all_srcs"], hdrs = [":public_hdrs"], app_name = "proper", diff --git a/deps/rabbitmq_ct_client_helpers/BUILD.bazel b/deps/rabbitmq_ct_client_helpers/BUILD.bazel index f1cc7fcaba71..6077bac4dcc0 100644 --- a/deps/rabbitmq_ct_client_helpers/BUILD.bazel +++ b/deps/rabbitmq_ct_client_helpers/BUILD.bazel @@ -1,6 +1,7 @@ load("@rules_erlang//:erlang_app.bzl", "erlang_app") erlang_app( + testonly = True, app_name = "rabbitmq_ct_client_helpers", app_version = "main", deps = [ diff --git a/deps/rabbitmq_ct_helpers/BUILD.bazel b/deps/rabbitmq_ct_helpers/BUILD.bazel index f323291a06a9..c17b45631bab 100644 --- a/deps/rabbitmq_ct_helpers/BUILD.bazel +++ b/deps/rabbitmq_ct_helpers/BUILD.bazel @@ -1,6 +1,7 @@ load("@rules_erlang//:erlang_app.bzl", "erlang_app") erlang_app( + testonly = True, app_name = "rabbitmq_ct_helpers", app_version = "main", extra_priv = [ diff --git a/deps/rabbitmq_trust_store/BUILD.bazel b/deps/rabbitmq_trust_store/BUILD.bazel index 13863ca3c90b..24150d50dd36 100644 --- a/deps/rabbitmq_trust_store/BUILD.bazel +++ b/deps/rabbitmq_trust_store/BUILD.bazel @@ -62,6 +62,7 @@ dialyze( rabbitmq_home( name = "broker-for-tests-home", + testonly = True, plugins = [ "//deps/rabbit:erlang_app", ":erlang_app", @@ -72,6 +73,7 @@ rabbitmq_home( rabbitmq_run( name = "rabbitmq-for-tests-run", + testonly = True, home = ":broker-for-tests-home", ) diff --git a/moduleindex.yaml b/moduleindex.yaml index 07be87d07767..f7ce13088d0d 100755 --- a/moduleindex.yaml +++ b/moduleindex.yaml @@ -135,6 +135,8 @@ emqtt: - emqtt_inflight - emqtt_props - emqtt_quic +- emqtt_quic_connection +- emqtt_quic_stream - emqtt_secret - emqtt_sock - emqtt_ws diff --git a/tools/BUILD.bazel b/tools/BUILD.bazel index ed4fb8e581e8..ab2b50615ab8 100644 --- a/tools/BUILD.bazel +++ b/tools/BUILD.bazel @@ -3,6 +3,7 @@ load(":erlang_ls.bzl", "deps_symlinks") deps_symlinks( name = "symlink_deps_for_erlang_ls", + testonly = True, apps = all_plugins( rabbitmq_workspace = "", ) + [