diff --git a/.bazelignore b/.bazelignore deleted file mode 100644 index 767a236c529b..000000000000 --- a/.bazelignore +++ /dev/null @@ -1,6 +0,0 @@ -# .bazelignore behaves differently than .gitignore -# https://github.com/bazelbuild/bazel/issues/7093 -.erlang.mk -deps/osiris -deps/ra -extra_deps diff --git a/.bazelrc b/.bazelrc deleted file mode 100644 index b21b7289af6a..000000000000 --- a/.bazelrc +++ /dev/null @@ -1,21 +0,0 @@ -build --enable_bzlmod - -build --registry=https://bcr.bazel.build/ -build --registry=https://raw.githubusercontent.com/rabbitmq/bazel-central-registry/erlang-packages/ - -build --incompatible_strict_action_env -build --local_test_jobs=1 - -build --flag_alias=erlang_home=@rules_erlang//:erlang_home -build --flag_alias=erlang_version=@rules_erlang//:erlang_version -build --flag_alias=elixir_home=@rules_elixir//:elixir_home -build --flag_alias=test_build=//:enable_test_build - -build --test_timeout=7200 - -build --combined_report=lcov - -# Try importing a user specific .bazelrc -# You can create your own by copying and editing the template-user.bazelrc template: -# cp template-user.bazelrc user.bazelrc -try-import %workspace%/user.bazelrc diff --git a/.bazelversion b/.bazelversion deleted file mode 100644 index 815da58b7a9e..000000000000 --- a/.bazelversion +++ /dev/null @@ -1 +0,0 @@ -7.4.1 diff --git a/.github/mergify.yml b/.github/mergify.yml index 8a2cda01950a..618f5fb42562 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -1,11 +1,4 @@ pull_request_rules: - - name: Add bazel label if a Bazel file is modified - conditions: - - files~=\.(bazel|bzl)$ - actions: - label: - add: - - bazel - name: Add make label if a Make file is modified conditions: - files~=(Makefile|\.mk)$ diff --git a/.github/workflows/check-build-system-equivalence-release-branches.yaml b/.github/workflows/check-build-system-equivalence-release-branches.yaml deleted file mode 100644 index 4b69e03bb3b6..000000000000 --- a/.github/workflows/check-build-system-equivalence-release-branches.yaml +++ /dev/null @@ -1,37 +0,0 @@ -name: Check Bazel/Erlang.mk Equivalence on Release Branches -on: - schedule: - - cron: '0 2 * * *' - workflow_dispatch: -jobs: - check-main: - uses: ./.github/workflows/check-build-system-equivalence.yaml - with: - ref: refs/heads/main - erlang_version: 26.2 - elixir_version: 1.17 - project_version: 4.0.0 - - check-v4_0_x: - uses: ./.github/workflows/check-build-system-equivalence.yaml - with: - ref: refs/heads/main - erlang_version: 26.2 - elixir_version: 1.17 - project_version: 4.0.0 - - check-v3_13_x: - uses: ./.github/workflows/check-build-system-equivalence.yaml - with: - ref: refs/heads/v3.13.x - erlang_version: 26.2 - elixir_version: 1.17 - project_version: 3.13.0 - - check-v3_12_x: - uses: ./.github/workflows/check-build-system-equivalence.yaml - with: - ref: refs/heads/v3.12.x - erlang_version: 26.1 - elixir_version: 1.17 - project_version: 3.12.0 diff --git a/.github/workflows/check-build-system-equivalence.yaml b/.github/workflows/check-build-system-equivalence.yaml deleted file mode 100644 index bcc4c16ac800..000000000000 --- a/.github/workflows/check-build-system-equivalence.yaml +++ /dev/null @@ -1,155 +0,0 @@ -name: Check Bazel/Erlang.mk Equivalence -on: - workflow_call: - inputs: - ref: - required: true - type: string - erlang_version: - required: true - type: string - elixir_version: - required: true - type: string - project_version: - required: true - type: string - workflow_dispatch: - inputs: - erlang_version: - description: 'OTP version to build with' - required: true - default: "26.2" - elixir_version: - description: 'Elixir version to build with' - required: true - default: "1.15" - project_version: - description: 'PROJECT_VERSION used for make' - required: true - default: "4.0.0" -env: - erlang_version: ${{ inputs.erlang_version || github.event.inputs.erlang_version }} - elixir_version: ${{ inputs.elixir_version || github.event.inputs.elixir_version }} - VERSION: ${{ inputs.project_version || github.event.inputs.project_version }} - PLUGINS: amqp10_common amqp10_client rabbitmq_amqp1_0 rabbitmq_auth_backend_cache rabbitmq_auth_backend_http rabbitmq_auth_backend_ldap rabbitmq_auth_backend_oauth2 rabbitmq_auth_mechanism_ssl rabbitmq_consistent_hash_exchange rabbitmq_event_exchange rabbitmq_federation rabbitmq_jms_topic_exchange rabbitmq_mqtt rabbitmq_random_exchange rabbitmq_recent_history_exchange rabbitmq_sharding rabbitmq_shovel rabbitmq_stomp rabbitmq_stream rabbitmq_trust_store rabbitmq_web_dispatch rabbitmq_management_agent rabbitmq_management rabbitmq_prometheus rabbitmq_federation_management rabbitmq_shovel_management rabbitmq_stream_management rabbitmq_top rabbitmq_tracing rabbitmq_web_mqtt rabbitmq_web_mqtt_examples rabbitmq_web_stomp rabbitmq_web_stomp_examples rabbitmq_aws rabbitmq_peer_discovery_common rabbitmq_peer_discovery_aws rabbitmq_peer_discovery_k8s rabbitmq_peer_discovery_consul rabbitmq_peer_discovery_etcd - EXTRA_PLUGINS: accept amqp_client aten base64url cowboy cowlib credentials_obfuscation cuttlefish eetcd enough gen_batch_server getopt gun jose observer_cli osiris prometheus quantile_estimator ra ranch recon redbug seshat stdout_formatter syslog sysmon_handler systemd thoas -jobs: - build-with-bazel: - name: bazel build package-generic-unix.tar.xz - runs-on: ubuntu-latest - timeout-minutes: 15 - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - with: - ref: ${{ inputs.ref || github.ref }} - - name: CONFIGURE ERLANG - uses: erlef/setup-beam@v1.17 - with: - otp-version: ${{ env.erlang_version }} - elixir-version: ${{ env.elixir_version }} - - name: CONFIGURE BAZEL - run: | - cat << EOF >> user.bazelrc - build --disk_cache= - build --color=yes - EOF - - name: BUILD package-generic-unix.tar.xz - run: | - bazelisk build //:package-generic-unix - - name: RESOLVE ARCHIVES_DIR - run: | - echo "archives_dir=$(readlink -f bazel-bin)" >> $GITHUB_ENV - - name: UPLOAD package-generic-unix.tar.xz - uses: actions/upload-artifact@v4.3.2 - with: - name: bazel-package-generic-unix-${{ env.VERSION }}.tar.xz - path: ${{ env.archives_dir }}/package-generic-unix.tar.xz - if-no-files-found: error - - build-with-make: - name: make package-generic-unix.tar.xz - runs-on: ubuntu-latest - timeout-minutes: 15 - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - with: - path: rabbitmq - ref: ${{ inputs.ref || github.ref }} - - name: CONFIGURE ERLANG - uses: erlef/setup-beam@v1.17 - with: - otp-version: ${{ env.erlang_version }} - elixir-version: ${{ env.elixir_version }} - - name: BUILD package-generic-unix.tar.xz - env: - MAKE: make - run: | - $MAKE -C rabbitmq \ - source-dist \ - PACKAGES_DIR="$PWD/PACKAGES" \ - PLUGINS="$PLUGINS" \ - PROJECT_VERSION="$VERSION" - $MAKE -C rabbitmq/packaging \ - package-generic-unix \ - PACKAGES_DIR="$PWD/PACKAGES" \ - VERSION="$VERSION" - - name: UPLOAD package-generic-unix.tar.xz - uses: actions/upload-artifact@v4.3.2 - with: - name: make-package-generic-unix-${{ env.VERSION }}.tar.xz - path: PACKAGES/rabbitmq-server-generic-unix-*.tar.xz - if-no-files-found: error - - compare: - needs: - - build-with-bazel - - build-with-make - name: Compare package-generic-unix.tar.xz - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - with: - path: rabbitmq-server - ref: ${{ inputs.ref || github.ref }} - - name: CONFIGURE ERLANG - uses: erlef/setup-beam@v1.17 - with: - otp-version: ${{ env.erlang_version }} - elixir-version: ${{ env.elixir_version }} - - name: DOWNLOAD bazel-package-generic-unix.tar.xz - uses: actions/download-artifact@v4 - with: - name: bazel-package-generic-unix-${{ env.VERSION }}.tar.xz - - name: DOWNLOAD make-package-generic-unix.tar.xz - uses: actions/download-artifact@v4 - with: - name: make-package-generic-unix-${{ env.VERSION }}.tar.xz - - name: EXPAND & COMPARE - run: | - mkdir bazel - pushd bazel - tar -xf ${{ github.workspace }}/package-generic-unix.tar.xz - find . | sort > ${{ github.workspace }}/bazel.manifest - popd - - mkdir make - pushd make - tar -xf ${{ github.workspace }}/rabbitmq-server-generic-unix-*.tar.xz - # delete an empty directory - rm -d rabbitmq_server-*/plugins/rabbitmq_random_exchange-*/include - find . | sort > ${{ github.workspace }}/make.manifest - popd - - tree -L 3 bazel - tree -L 3 make - - sleep 1 - - set -x - - ./rabbitmq-server/tools/compare_dist.sh make bazel diff --git a/.github/workflows/gazelle-scheduled.yaml b/.github/workflows/gazelle-scheduled.yaml deleted file mode 100644 index 3c4543dfa64d..000000000000 --- a/.github/workflows/gazelle-scheduled.yaml +++ /dev/null @@ -1,47 +0,0 @@ -name: Run gazelle (Scheduled) -on: - schedule: - - cron: '0 4 * * *' -jobs: - bazel-run-gazelle: - name: bazel run gazelle - runs-on: ubuntu-latest - strategy: - max-parallel: 1 - fail-fast: false - matrix: - target_branch: - - main - - v4.0.x - - v3.13.x - - v3.12.x - timeout-minutes: 10 - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - with: - ref: ${{ matrix.target_branch }} - - name: Configure Erlang - uses: erlef/setup-beam@v1 - with: - otp-version: 26.2 - elixir-version: 1.15 - - name: BAZEL RUN GAZELLE - run: | - bazel run gazelle - - name: CREATE PULL REQUEST - uses: peter-evans/create-pull-request@v7.0.8 - with: - token: ${{ secrets.REPO_SCOPED_TOKEN }} - committer: GitHub - author: GitHub - title: bazel run gazelle - body: > - Automated changes created by - ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - using the [create-pull-request](https://github.com/peter-evans/create-pull-request) - GitHub action in the ${{ github.workflow }} workflow. - commit-message: | - bazel run gazelle - branch: gazelle-${{ matrix.target_branch }} - delete-branch: true diff --git a/.github/workflows/gazelle.yaml b/.github/workflows/gazelle.yaml deleted file mode 100644 index 52796d519f60..000000000000 --- a/.github/workflows/gazelle.yaml +++ /dev/null @@ -1,42 +0,0 @@ -name: Run gazelle -on: - workflow_dispatch: - inputs: - target_branch: - description: Branch on which to run - required: true - default: main -jobs: - bazel-run-gazelle: - name: bazel run gazelle - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.target_branch }} - - name: Configure Erlang - uses: erlef/setup-beam@v1 - with: - otp-version: 26.2 - elixir-version: 1.15 - - name: BAZEL RUN GAZELLE - run: | - bazel run gazelle - - name: CREATE PULL REQUEST - uses: peter-evans/create-pull-request@v7.0.8 - with: - token: ${{ secrets.REPO_SCOPED_TOKEN }} - committer: GitHub - author: GitHub - title: bazel run gazelle - body: > - Automated changes created by - ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - using the [create-pull-request](https://github.com/peter-evans/create-pull-request) - GitHub action in the ${{ github.workflow }} workflow. - commit-message: | - bazel run gazelle - branch: gazelle-${{ github.event.inputs.target_branch }} - delete-branch: true diff --git a/.github/workflows/oci-make.yaml b/.github/workflows/oci-make.yaml index 72767c326cfd..51b120960342 100644 --- a/.github/workflows/oci-make.yaml +++ b/.github/workflows/oci-make.yaml @@ -6,12 +6,14 @@ name: OCI (make) on: push: - paths-ignore: - - '.github/workflows/secondary-umbrella.yaml' - - '.github/workflows/update-elixir-patches.yaml' - - '.github/workflows/update-otp-patches.yaml' - - '.github/workflows/release-alphas.yaml' - - '*.md' + paths: + - deps/** + - scripts/** + - Makefile + - plugins.mk + - rabbitmq-components.mk + - packaging/** + - .github/workflows/oci-make.yaml workflow_dispatch: inputs: otp_version: diff --git a/.github/workflows/templates/test-mixed-versions.template.yaml b/.github/workflows/templates/test-mixed-versions.template.yaml deleted file mode 100644 index 6328066c3178..000000000000 --- a/.github/workflows/templates/test-mixed-versions.template.yaml +++ /dev/null @@ -1,214 +0,0 @@ -#@ load("@ytt:data", "data") -#@yaml/text-templated-strings - -#@ def job_names(plugins): -#@ names = [] -#@ for p in plugins: -#@ names.append("test-"+p+"-mixed") -#@ end -#@ return names -#@ end - -#@ def sharded_job_names(plugin, shard_count): -#@ names = [] -#@ for shard_index in range(0, shard_count): -#@ names.append("test-"+plugin+"-"+str(shard_index)+"-mixed") -#@ end -#@ return names -#@ end - ---- -name: Test Mixed Version Clusters -on: - push: - branches: - - main - - v4.0.x - - v3.13.x - - bump-otp-* - - bump-elixir-* - - bump-rbe-* - - bump-rules_erlang - paths: - - 'deps/**' - - 'scripts/**' - - Makefile - - plugins.mk - - rabbitmq-components.mk - - .bazelrc - - .bazelversion - - BUILD.* - - '*.bzl' - - '*.bazel' - - .github/workflows/test-mixed-versions.yaml - pull_request: -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true -jobs: - ensure-mixed-version-archive: - runs-on: ubuntu-22.04 - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - with: - path: primary-umbrella - #! - name: Setup tmate session - #! uses: mxschmitt/action-tmate@v3 - - name: CHECK FOR ARCHIVE ON S3 - id: check - working-directory: primary-umbrella - run: | - set -u - - ARCHIVE_URL="$(grep -Eo 'https://rabbitmq-github-actions.s3.eu-west-1.amazonaws.com.*.tar.xz' bazel/bzlmod/secondary_umbrella.bzl)" - echo "ARCHIVE_URL: ${ARCHIVE_URL}" - - curl -LO "${ARCHIVE_URL}" - - if xzcat --test package-generic-unix-for-mixed-version-testing-v*.tar.xz; then - exists=true - else - exists=false - fi - echo "exists=${exists}" | tee $GITHUB_ENV - - OTP_VERSION=${ARCHIVE_URL#*secondary-umbrellas/} - OTP_VERSION=${OTP_VERSION%*/package-generic-unix-for-mixed-version-testing-v*.tar.xz} - echo "otp_version=${OTP_VERSION}" | tee -a $GITHUB_OUTPUT - - VERSION=${ARCHIVE_URL#*package-generic-unix-for-mixed-version-testing-v} - VERSION=${VERSION%*.tar.xz} - echo "version=${VERSION}" | tee -a $GITHUB_OUTPUT - - name: CHECKOUT REPOSITORY (MIXED VERSION) - if: env.exists != 'true' - uses: actions/checkout@v4 - with: - ref: v${{ steps.check.outputs.version }} - path: secondary-umbrella - - name: CONFIGURE OTP & ELIXIR - if: env.exists != 'true' - uses: erlef/setup-beam@v1.17 - with: - otp-version: ${{ steps.check.outputs.otp_version }} - elixir-version: 1.15 - hexpm-mirrors: | - https://builds.hex.pm - https://cdn.jsdelivr.net/hex - - name: AUTHENTICATE TO GOOGLE CLOUD - uses: google-github-actions/auth@v2.1.7 - with: - credentials_json: ${{ secrets.REMOTE_CACHE_CREDENTIALS_JSON }} - - name: BUILD SECONDARY UMBRELLA ARCHIVE - if: env.exists != 'true' - working-directory: secondary-umbrella - run: | - if [ -n "${{ secrets.REMOTE_CACHE_BUCKET_NAME_MIXED }}" ]; then - cat << EOF >> user.bazelrc - build --remote_cache=https://storage.googleapis.com/${{ secrets.REMOTE_CACHE_BUCKET_NAME_MIXED }} - build --google_default_credentials - - build --remote_download_toplevel - EOF - fi - - sed -i"_orig" -E "/APP_VERSION/ s/3\.[0-9]+\.[0-9]+/${{ steps.check.outputs.version }}/" rabbitmq.bzl - bazelisk build :package-generic-unix \ - --test_build \ - --verbose_failures - - OUTPUT_DIR=${{ github.workspace }}/output - mkdir -p ${OUTPUT_DIR}/${{ steps.check.outputs.otp_version }} - cp \ - bazel-bin/package-generic-unix.tar.xz \ - ${OUTPUT_DIR}/${{ steps.check.outputs.otp_version }}/package-generic-unix-for-mixed-version-testing-v${{ steps.check.outputs.version }}.tar.xz - - name: UPLOAD THE ARCHIVE TO S3 - if: env.exists != 'true' - uses: jakejarvis/s3-sync-action@v0.5.1 - with: - args: --acl public-read --follow-symlinks - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}} - AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} - AWS_REGION: ${{ secrets.AWS_REGION }} - SOURCE_DIR: output - DEST_DIR: secondary-umbrellas - - check-workflow: - needs: ensure-mixed-version-archive - runs-on: ubuntu-latest - outputs: - repo_cache_key: ${{ steps.repo-cache-key.outputs.value }} - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - - name: SETUP ERLANG/ELIXIR - uses: erlef/setup-beam@v1 - with: - otp-version: 26 - elixir-version: 1.15 - hexpm-mirrors: | - https://builds.hex.pm - https://cdn.jsdelivr.net/hex - - name: ENSURE WORKFLOWS ARE UP TO DATE - run: | - mkdir local-bin/ - curl -L https://carvel.dev/install.sh | K14SIO_INSTALL_BIN_DIR=local-bin bash - make actions-workflows YTT=$PWD/local-bin/ytt - git diff --exit-code - - name: COMPUTE REPO CACHE KEY - id: repo-cache-key - run: | - echo "value=bazel-repo-cache-${{ hashFiles('MODULE.bazel') }}" | tee -a $GITHUB_OUTPUT - -#@ for plugin in data.values.internal_deps: - test-(@= plugin @)-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: #@ plugin - secrets: inherit -#@ end - -#@ rabbit_shard_count = 10 -#@ for shard_index in range(0, rabbit_shard_count): - test-rabbit-(@= str(shard_index) @)-mixed: - needs: #@ ["check-workflow"] + job_names(data.values.internal_deps) - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: #@ shard_index - shard_count: #@ rabbit_shard_count - secrets: inherit -#@ end - - test-rabbitmq_cli-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_cli - secrets: inherit - -#@ for plugin in data.values.tier1_plugins: - test-(@= plugin @)-mixed: - needs: #@ ["check-workflow"] + sharded_job_names("rabbit", rabbit_shard_count) - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: #@ plugin - secrets: inherit -#@ end - - summary-test: - needs: #@ job_names(data.values.internal_deps + data.values.tier1_plugins) + sharded_job_names("rabbit", rabbit_shard_count) + ["test-rabbitmq_cli-mixed"] - runs-on: ubuntu-latest - steps: - - name: SUMMARY - run: | - cat << 'EOF' | jq -e 'map(.result == "success") | all(.)' - ${{ toJson(needs) }} - EOF diff --git a/.github/workflows/templates/test.template.yaml b/.github/workflows/templates/test.template.yaml deleted file mode 100644 index 533f1cebbf5f..000000000000 --- a/.github/workflows/templates/test.template.yaml +++ /dev/null @@ -1,152 +0,0 @@ -#@ load("@ytt:data", "data") -#@yaml/text-templated-strings - -#@ def job_names(plugins): -#@ names = [] -#@ for p in plugins: -#@ names.append("test-"+p) -#@ end -#@ return names -#@ end - -#@ def sharded_job_names(plugin, shard_count): -#@ names = [] -#@ for shard_index in range(0, shard_count): -#@ names.append("test-"+plugin+"-"+str(shard_index)) -#@ end -#@ return names -#@ end - ---- -name: Test -on: - push: - branches: -#! - main - - v4.0.x - - v3.13.x - - v3.12.x - - v3.11.x - - bump-otp-for-oci - - bump-rbe-* - - bump-rules_erlang - paths: - - 'deps/**' - - 'scripts/**' - - Makefile - - plugins.mk - - rabbitmq-components.mk - - .bazelrc - - .bazelversion - - BUILD.* - - '*.bzl' - - '*.bazel' - - .github/workflows/test.yaml -#! pull_request: -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true -jobs: - check-workflow: - runs-on: ubuntu-latest - outputs: - repo_cache_key: ${{ steps.repo-cache-key.outputs.value }} - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - - name: SETUP ERLANG/ELIXIR - uses: erlef/setup-beam@v1 - with: - otp-version: 26 - elixir-version: 1.15 - hexpm-mirrors: | - https://builds.hex.pm - https://cdn.jsdelivr.net/hex - - name: ENSURE WORKFLOWS ARE UP TO DATE - run: | - mkdir local-bin/ - curl -L https://carvel.dev/install.sh | K14SIO_INSTALL_BIN_DIR=local-bin bash - make actions-workflows YTT=$PWD/local-bin/ytt - git diff --exit-code - - name: COMPUTE REPO CACHE KEY - id: repo-cache-key - run: | - echo "value=bazel-repo-cache-${{ hashFiles('MODULE.bazel') }}" | tee -a $GITHUB_OUTPUT - - name: AUTHENTICATE TO GOOGLE CLOUD - uses: google-github-actions/auth@v2.1.7 - with: - credentials_json: ${{ secrets.REMOTE_CACHE_CREDENTIALS_JSON }} - - name: REPO CACHE - id: cache - uses: actions/cache@v4 - with: - key: ${{ steps.repo-cache-key.outputs.value }} - path: /home/runner/repo-cache/ - - name: PRIME CACHE - if: steps.cache.outputs.cache-hit != 'true' - run: | - if [ -n "${{ secrets.REMOTE_CACHE_BUCKET_NAME }}" ]; then - cat << EOF >> user.bazelrc - build --remote_cache=https://storage.googleapis.com/${{ secrets.REMOTE_CACHE_BUCKET_NAME }} - build --google_default_credentials - EOF - fi - cat << EOF >> user.bazelrc - build --repository_cache=/home/runner/repo-cache/ - build --color=yes - EOF - - bazelisk cquery \ - 'tests(//...) except attr("tags", "manual|mixed-version-cluster", //deps/...)' \ - --output=label - -#@ for plugin in data.values.internal_deps: - test-(@= plugin @): - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: #@ plugin - secrets: inherit -#@ end - -#@ rabbit_shard_count = 10 -#@ for shard_index in range(0, rabbit_shard_count): - test-rabbit-(@= str(shard_index) @): - needs: #@ ["check-workflow"] + job_names(data.values.internal_deps) - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: #@ shard_index - shard_count: #@ rabbit_shard_count - secrets: inherit -#@ end - - test-rabbitmq_cli: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_cli - secrets: inherit - -#@ for plugin in data.values.tier1_plugins: - test-(@= plugin @): - needs: #@ ["check-workflow"] + sharded_job_names("rabbit", rabbit_shard_count) - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: #@ plugin - secrets: inherit -#@ end - - summary-test: - needs: #@ job_names(data.values.internal_deps + data.values.tier1_plugins) + sharded_job_names("rabbit", rabbit_shard_count) + ["test-rabbitmq_cli"] - runs-on: ubuntu-latest - steps: - - name: SUMMARY - run: | - cat << 'EOF' | jq -e 'map(.result == "success") | all(.)' - ${{ toJson(needs) }} - EOF diff --git a/.github/workflows/test-authnz.yaml b/.github/workflows/test-authnz.yaml index 4f6dab5a0ef7..5be95166ab47 100644 --- a/.github/workflows/test-authnz.yaml +++ b/.github/workflows/test-authnz.yaml @@ -12,11 +12,6 @@ on: - 'deps/rabbitmq_management/priv/**' - 'deps/rabbitmq_management/selenium/**' - 'scripts/**' - - .bazelrc - - .bazelversion - - BUILD.* - - '*.bzl' - - '*.bazel' - .github/workflows/test-authnz.yaml pull_request: paths: @@ -35,11 +30,11 @@ jobs: fail-fast: false matrix: erlang_version: - - "26.2" + - "27.3" browser: - chrome include: - - erlang_version: "26.2" + - erlang_version: "27.3" elixir_version: 1.17.3 env: SELENIUM_DIR: selenium diff --git a/.github/workflows/test-make.yaml b/.github/workflows/test-make.yaml index fb043c613e01..eddf299b536c 100644 --- a/.github/workflows/test-make.yaml +++ b/.github/workflows/test-make.yaml @@ -62,8 +62,7 @@ jobs: fail-fast: false matrix: erlang_version: - - '26' -## - '27' + - '27' elixir_version: - '1.17' metadata_store: @@ -82,8 +81,7 @@ jobs: fail-fast: false matrix: erlang_version: - - '26' -## - '27' + - '27' elixir_version: - '1.17' metadata_store: diff --git a/.github/workflows/test-management-ui-for-pr.yaml b/.github/workflows/test-management-ui-for-pr.yaml index 06b7b209b3fa..73efdb8bb3c3 100644 --- a/.github/workflows/test-management-ui-for-pr.yaml +++ b/.github/workflows/test-management-ui-for-pr.yaml @@ -15,11 +15,11 @@ jobs: fail-fast: false matrix: erlang_version: - - "26.2" + - "27.3" browser: - chrome include: - - erlang_version: "26.2" + - erlang_version: "27.3" elixir_version: 1.17 env: SELENIUM_DIR: selenium diff --git a/.github/workflows/test-management-ui.yaml b/.github/workflows/test-management-ui.yaml index c54f2eaa1a89..f95fed276bb6 100644 --- a/.github/workflows/test-management-ui.yaml +++ b/.github/workflows/test-management-ui.yaml @@ -9,11 +9,6 @@ on: - 'deps/rabbitmq_management/priv/**' - 'deps/rabbitmq_web_dispatch/src/**' - 'scripts/**' - - .bazelrc - - .bazelversion - - BUILD.* - - '*.bzl' - - '*.bazel' - 'selenium/**' - .github/workflows/test-management-ui.yaml @@ -27,11 +22,11 @@ jobs: fail-fast: false matrix: erlang_version: - - "26.2" + - "27.3" browser: - chrome include: - - erlang_version: "26.2" + - erlang_version: "27.3" elixir_version: 1.17.3 env: SELENIUM_DIR: selenium diff --git a/.github/workflows/test-mixed-versions.yaml b/.github/workflows/test-mixed-versions.yaml deleted file mode 100644 index 9d7b4006285d..000000000000 --- a/.github/workflows/test-mixed-versions.yaml +++ /dev/null @@ -1,1206 +0,0 @@ -name: Test Mixed Version Clusters -on: - push: - branches: - - v4.0.x - - v3.13.x - - bump-otp-* - - bump-elixir-* - - bump-rbe-* - - bump-rules_erlang - paths: - - deps/** - - scripts/** - - Makefile - - plugins.mk - - rabbitmq-components.mk - - .bazelrc - - .bazelversion - - BUILD.* - - '*.bzl' - - '*.bazel' - - .github/workflows/test-mixed-versions.yaml -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true -jobs: - ensure-mixed-version-archive: - runs-on: ubuntu-22.04 - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - with: - path: primary-umbrella - - name: CHECK FOR ARCHIVE ON S3 - id: check - working-directory: primary-umbrella - run: | - set -u - - ARCHIVE_URL="$(grep -Eo 'https://rabbitmq-github-actions.s3.eu-west-1.amazonaws.com.*.tar.xz' bazel/bzlmod/secondary_umbrella.bzl)" - echo "ARCHIVE_URL: ${ARCHIVE_URL}" - - curl -LO "${ARCHIVE_URL}" - - if xzcat --test package-generic-unix-for-mixed-version-testing-v*.tar.xz; then - exists=true - else - exists=false - fi - echo "exists=${exists}" | tee $GITHUB_ENV - - OTP_VERSION=${ARCHIVE_URL#*secondary-umbrellas/} - OTP_VERSION=${OTP_VERSION%*/package-generic-unix-for-mixed-version-testing-v*.tar.xz} - echo "otp_version=${OTP_VERSION}" | tee -a $GITHUB_OUTPUT - - VERSION=${ARCHIVE_URL#*package-generic-unix-for-mixed-version-testing-v} - VERSION=${VERSION%*.tar.xz} - echo "version=${VERSION}" | tee -a $GITHUB_OUTPUT - - name: CHECKOUT REPOSITORY (MIXED VERSION) - if: env.exists != 'true' - uses: actions/checkout@v4 - with: - ref: v${{ steps.check.outputs.version }} - path: secondary-umbrella - - name: CONFIGURE OTP & ELIXIR - if: env.exists != 'true' - uses: erlef/setup-beam@v1.17 - with: - otp-version: ${{ steps.check.outputs.otp_version }} - elixir-version: 1.15 - hexpm-mirrors: | - https://builds.hex.pm - https://cdn.jsdelivr.net/hex - - name: AUTHENTICATE TO GOOGLE CLOUD - uses: google-github-actions/auth@v2.1.8 - with: - credentials_json: ${{ secrets.REMOTE_CACHE_CREDENTIALS_JSON }} - - name: BUILD SECONDARY UMBRELLA ARCHIVE - if: env.exists != 'true' - working-directory: secondary-umbrella - run: | - if [ -n "${{ secrets.REMOTE_CACHE_BUCKET_NAME_MIXED }}" ]; then - cat << EOF >> user.bazelrc - build --remote_cache=https://storage.googleapis.com/${{ secrets.REMOTE_CACHE_BUCKET_NAME_MIXED }} - build --google_default_credentials - - build --remote_download_toplevel - EOF - fi - - sed -i"_orig" -E "/APP_VERSION/ s/3\.[0-9]+\.[0-9]+/${{ steps.check.outputs.version }}/" rabbitmq.bzl - bazelisk build :package-generic-unix \ - --test_build \ - --verbose_failures - - OUTPUT_DIR=${{ github.workspace }}/output - mkdir -p ${OUTPUT_DIR}/${{ steps.check.outputs.otp_version }} - cp \ - bazel-bin/package-generic-unix.tar.xz \ - ${OUTPUT_DIR}/${{ steps.check.outputs.otp_version }}/package-generic-unix-for-mixed-version-testing-v${{ steps.check.outputs.version }}.tar.xz - - name: UPLOAD THE ARCHIVE TO S3 - if: env.exists != 'true' - uses: jakejarvis/s3-sync-action@v0.5.1 - with: - args: --acl public-read --follow-symlinks - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}} - AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} - AWS_REGION: ${{ secrets.AWS_REGION }} - SOURCE_DIR: output - DEST_DIR: secondary-umbrellas - check-workflow: - needs: ensure-mixed-version-archive - runs-on: ubuntu-latest - outputs: - repo_cache_key: ${{ steps.repo-cache-key.outputs.value }} - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - - name: SETUP ERLANG/ELIXIR - uses: erlef/setup-beam@v1 - with: - otp-version: 26 - elixir-version: 1.15 - hexpm-mirrors: | - https://builds.hex.pm - https://cdn.jsdelivr.net/hex - - name: ENSURE WORKFLOWS ARE UP TO DATE - run: | - mkdir local-bin/ - curl -L https://carvel.dev/install.sh | K14SIO_INSTALL_BIN_DIR=local-bin bash - make actions-workflows YTT=$PWD/local-bin/ytt - git diff --exit-code - - name: COMPUTE REPO CACHE KEY - id: repo-cache-key - run: | - echo "value=bazel-repo-cache-${{ hashFiles('MODULE.bazel') }}" | tee -a $GITHUB_OUTPUT - test-amqp10_client-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: amqp10_client - secrets: inherit - test-amqp10_common-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: amqp10_common - secrets: inherit - test-amqp_client-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: amqp_client - secrets: inherit - test-oauth2_client-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: oauth2_client - secrets: inherit - test-rabbit_common-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit_common - secrets: inherit - test-rabbitmq_ct_client_helpers-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_ct_client_helpers - secrets: inherit - test-rabbitmq_ct_helpers-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_ct_helpers - secrets: inherit - test-rabbitmq_stream_common-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_stream_common - secrets: inherit - test-trust_store_http-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: trust_store_http - secrets: inherit - test-rabbit-0-mixed: - needs: - - check-workflow - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 0 - shard_count: 10 - secrets: inherit - test-rabbit-1-mixed: - needs: - - check-workflow - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 1 - shard_count: 10 - secrets: inherit - test-rabbit-2-mixed: - needs: - - check-workflow - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 2 - shard_count: 10 - secrets: inherit - test-rabbit-3-mixed: - needs: - - check-workflow - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 3 - shard_count: 10 - secrets: inherit - test-rabbit-4-mixed: - needs: - - check-workflow - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 4 - shard_count: 10 - secrets: inherit - test-rabbit-5-mixed: - needs: - - check-workflow - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 5 - shard_count: 10 - secrets: inherit - test-rabbit-6-mixed: - needs: - - check-workflow - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 6 - shard_count: 10 - secrets: inherit - test-rabbit-7-mixed: - needs: - - check-workflow - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 7 - shard_count: 10 - secrets: inherit - test-rabbit-8-mixed: - needs: - - check-workflow - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 8 - shard_count: 10 - secrets: inherit - test-rabbit-9-mixed: - needs: - - check-workflow - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 9 - shard_count: 10 - secrets: inherit - test-rabbitmq_cli-mixed: - needs: check-workflow - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_cli - secrets: inherit - test-rabbitmq_amqp_client-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_amqp_client - secrets: inherit - test-rabbitmq_amqp1_0-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_amqp1_0 - secrets: inherit - test-rabbitmq_auth_backend_cache-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_auth_backend_cache - secrets: inherit - test-rabbitmq_auth_backend_http-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_auth_backend_http - secrets: inherit - test-rabbitmq_auth_backend_ldap-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_auth_backend_ldap - secrets: inherit - test-rabbitmq_auth_backend_oauth2-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_auth_backend_oauth2 - secrets: inherit - test-rabbitmq_auth_mechanism_ssl-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_auth_mechanism_ssl - secrets: inherit - test-rabbitmq_aws-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_aws - secrets: inherit - test-rabbitmq_consistent_hash_exchange-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_consistent_hash_exchange - secrets: inherit - test-rabbitmq_event_exchange-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_event_exchange - secrets: inherit - test-rabbitmq_federation-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_federation - secrets: inherit - test-rabbitmq_federation_management-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_federation_management - secrets: inherit - test-rabbitmq_federation_prometheus-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_federation_prometheus - secrets: inherit - test-rabbitmq_jms_topic_exchange-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_jms_topic_exchange - secrets: inherit - test-rabbitmq_management-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_management - secrets: inherit - test-rabbitmq_management_agent-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_management_agent - secrets: inherit - test-rabbitmq_mqtt-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_mqtt - secrets: inherit - test-rabbitmq_peer_discovery_aws-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_peer_discovery_aws - secrets: inherit - test-rabbitmq_peer_discovery_common-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_peer_discovery_common - secrets: inherit - test-rabbitmq_peer_discovery_consul-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_peer_discovery_consul - secrets: inherit - test-rabbitmq_peer_discovery_etcd-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_peer_discovery_etcd - secrets: inherit - test-rabbitmq_peer_discovery_k8s-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_peer_discovery_k8s - secrets: inherit - test-rabbitmq_prelaunch-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_prelaunch - secrets: inherit - test-rabbitmq_prometheus-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_prometheus - secrets: inherit - test-rabbitmq_random_exchange-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_random_exchange - secrets: inherit - test-rabbitmq_recent_history_exchange-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_recent_history_exchange - secrets: inherit - test-rabbitmq_sharding-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_sharding - secrets: inherit - test-rabbitmq_shovel-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_shovel - secrets: inherit - test-rabbitmq_shovel_management-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_shovel_management - secrets: inherit - test-rabbitmq_shovel_prometheus-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_shovel_prometheus - secrets: inherit - test-rabbitmq_stomp-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_stomp - secrets: inherit - test-rabbitmq_stream-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_stream - secrets: inherit - test-rabbitmq_stream_management-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_stream_management - secrets: inherit - test-rabbitmq_top-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_top - secrets: inherit - test-rabbitmq_tracing-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_tracing - secrets: inherit - test-rabbitmq_trust_store-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_trust_store - secrets: inherit - test-rabbitmq_web_dispatch-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_web_dispatch - secrets: inherit - test-rabbitmq_web_mqtt-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_web_mqtt - secrets: inherit - test-rabbitmq_web_mqtt_examples-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_web_mqtt_examples - secrets: inherit - test-rabbitmq_web_stomp-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_web_stomp - secrets: inherit - test-rabbitmq_web_stomp_examples-mixed: - needs: - - check-workflow - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - uses: ./.github/workflows/test-plugin-mixed.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_web_stomp_examples - secrets: inherit - summary-test: - needs: - - test-amqp10_client-mixed - - test-amqp10_common-mixed - - test-amqp_client-mixed - - test-oauth2_client-mixed - - test-rabbit_common-mixed - - test-rabbitmq_ct_client_helpers-mixed - - test-rabbitmq_ct_helpers-mixed - - test-rabbitmq_stream_common-mixed - - test-trust_store_http-mixed - - test-rabbitmq_amqp_client-mixed - - test-rabbitmq_amqp1_0-mixed - - test-rabbitmq_auth_backend_cache-mixed - - test-rabbitmq_auth_backend_http-mixed - - test-rabbitmq_auth_backend_ldap-mixed - - test-rabbitmq_auth_backend_oauth2-mixed - - test-rabbitmq_auth_mechanism_ssl-mixed - - test-rabbitmq_aws-mixed - - test-rabbitmq_consistent_hash_exchange-mixed - - test-rabbitmq_event_exchange-mixed - - test-rabbitmq_federation-mixed - - test-rabbitmq_federation_management-mixed - - test-rabbitmq_federation_prometheus-mixed - - test-rabbitmq_jms_topic_exchange-mixed - - test-rabbitmq_management-mixed - - test-rabbitmq_management_agent-mixed - - test-rabbitmq_mqtt-mixed - - test-rabbitmq_peer_discovery_aws-mixed - - test-rabbitmq_peer_discovery_common-mixed - - test-rabbitmq_peer_discovery_consul-mixed - - test-rabbitmq_peer_discovery_etcd-mixed - - test-rabbitmq_peer_discovery_k8s-mixed - - test-rabbitmq_prelaunch-mixed - - test-rabbitmq_prometheus-mixed - - test-rabbitmq_random_exchange-mixed - - test-rabbitmq_recent_history_exchange-mixed - - test-rabbitmq_sharding-mixed - - test-rabbitmq_shovel-mixed - - test-rabbitmq_shovel_management-mixed - - test-rabbitmq_shovel_prometheus-mixed - - test-rabbitmq_stomp-mixed - - test-rabbitmq_stream-mixed - - test-rabbitmq_stream_management-mixed - - test-rabbitmq_top-mixed - - test-rabbitmq_tracing-mixed - - test-rabbitmq_trust_store-mixed - - test-rabbitmq_web_dispatch-mixed - - test-rabbitmq_web_mqtt-mixed - - test-rabbitmq_web_mqtt_examples-mixed - - test-rabbitmq_web_stomp-mixed - - test-rabbitmq_web_stomp_examples-mixed - - test-rabbit-0-mixed - - test-rabbit-1-mixed - - test-rabbit-2-mixed - - test-rabbit-3-mixed - - test-rabbit-4-mixed - - test-rabbit-5-mixed - - test-rabbit-6-mixed - - test-rabbit-7-mixed - - test-rabbit-8-mixed - - test-rabbit-9-mixed - - test-rabbitmq_cli-mixed - runs-on: ubuntu-latest - steps: - - name: SUMMARY - run: | - cat << 'EOF' | jq -e 'map(.result == "success") | all(.)' - ${{ toJson(needs) }} - EOF diff --git a/.github/workflows/test-plugin-mixed.yaml b/.github/workflows/test-plugin-mixed.yaml deleted file mode 100644 index 0ad3fe80b8a4..000000000000 --- a/.github/workflows/test-plugin-mixed.yaml +++ /dev/null @@ -1,171 +0,0 @@ -name: Test Plugin Mixed Version Clusters -on: - workflow_call: - inputs: - repo_cache_key: - required: true - type: string - plugin: - required: true - type: string - shard_index: - default: 0 - type: number - shard_count: - default: 1 - type: number - secrets: - REMOTE_CACHE_BUCKET_NAME_MIXED: - required: true - REMOTE_CACHE_CREDENTIALS_JSON: - required: true -jobs: - test: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - erlang_version: - - 26 - metadata_store: - - mnesia - - khepri - include: - - erlang_version: 26 - elixir_version: 1.17 - timeout-minutes: 120 - steps: - - name: LOAD REPO CACHE - uses: actions/cache/restore@v4 - with: - key: ${{ inputs.repo_cache_key }} - path: /home/runner/repo-cache/ - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - - name: CONFIGURE OTP & ELIXIR - uses: erlef/setup-beam@v1.17 - with: - otp-version: ${{ matrix.erlang_version }} - elixir-version: ${{ matrix.elixir_version }} - hexpm-mirrors: | - https://builds.hex.pm - https://cdn.jsdelivr.net/hex - - name: AUTHENTICATE TO GOOGLE CLOUD - uses: google-github-actions/auth@v2.1.8 - with: - credentials_json: ${{ secrets.REMOTE_CACHE_CREDENTIALS_JSON }} - - name: CONFIGURE BAZEL - run: | - if [ -n "${{ secrets.REMOTE_CACHE_BUCKET_NAME_MIXED }}" ]; then - cat << EOF >> user.bazelrc - build --remote_cache=https://storage.googleapis.com/${{ secrets.REMOTE_CACHE_BUCKET_NAME_MIXED }} - build --google_default_credentials - - build --experimental_guard_against_concurrent_changes - EOF - fi - cat << EOF >> user.bazelrc - build --repository_cache=/home/runner/repo-cache/ - build --color=yes - EOF - - bazelisk info release - #! - name: Setup tmate session - #! uses: mxschmitt/action-tmate@v3 - - name: deps/amqp10_client SETUP - if: inputs.plugin == 'amqp10_client' - run: | - # reduce sandboxing so that activemq works - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbit SETUP - if: inputs.plugin == 'rabbit' - run: | - # reduce sandboxing so that maven works - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_auth_backend_ldap SETUP - if: inputs.plugin == 'rabbitmq_auth_backend_ldap' - run: | - sudo apt-get update && \ - sudo apt-get install -y \ - ldap-utils \ - slapd - - sudo systemctl is-active --quiet apparmor.service && sudo systemctl stop apparmor.service - sudo systemctl disable apparmor.service - - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_mqtt SETUP - if: inputs.plugin == 'rabbitmq_mqtt' - run: | - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_peer_discovery_consul SETUP - if: inputs.plugin == 'rabbitmq_peer_discovery_consul' - run: | - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_stream SETUP - if: inputs.plugin == 'rabbitmq_stream' - run: | - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_stream_management SETUP - if: inputs.plugin == 'rabbitmq_stream_management' - run: | - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_tracing SETUP - if: inputs.plugin == 'rabbitmq_tracing' - run: | - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: COMPUTE TESTS IN SHARD - id: shard - run: | - bazelisk cquery \ - 'attr("tags", "mixed-version-cluster", tests(//deps/${{ inputs.plugin }}/...)) except attr("tags", "manual", //deps/${{ inputs.plugin }}/...)' \ - --output=label \ - | awk '{print $1;}' > tests.log - if [[ $(wc -l < tests.log) != "0" ]]; then - split -da 3 -l $((`wc -l < tests.log`/${{ inputs.shard_count }})) tests.log shard - printf -v padded_index "%03d" ${{ inputs.shard_index }} - echo "file=shard$padded_index" | tee -a $GITHUB_OUTPUT - else - echo "No tests in this shard" - echo "file=" | tee -a $GITHUB_OUTPUT - fi - - name: RUN TESTS - if: steps.shard.outputs.file != '' && inputs.plugin != 'rabbitmq_peer_discovery_aws' - run: | - echo "Tests in shard:" - cat ${{ steps.shard.outputs.file }} - echo "" - - ## WARNING: - ## secrets must not be set in --test_env or --action_env, - ## or otherwise logs must not be saved as artifacts. - ## rabbit_ct_helpers or other code may log portions of the - ## env vars and leak them - - bazelisk test $(< ${{ steps.shard.outputs.file }}) \ - --test_env RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} \ - --build_tests_only \ - --verbose_failures - - name: UPLOAD TEST LOGS - if: always() - uses: actions/upload-artifact@v4 - with: - name: bazel-testlogs-${{ inputs.plugin }}-${{ inputs.shard_index }}-${{ matrix.erlang_version }}-${{ matrix.metadata_store }}-mixed - path: | - bazel-testlogs/deps/${{ inputs.plugin }}/* diff --git a/.github/workflows/test-plugin.yaml b/.github/workflows/test-plugin.yaml deleted file mode 100644 index 80f8c9c9c3ca..000000000000 --- a/.github/workflows/test-plugin.yaml +++ /dev/null @@ -1,172 +0,0 @@ -name: Test Plugin -on: - workflow_call: - inputs: - repo_cache_key: - required: true - type: string - plugin: - required: true - type: string - shard_index: - default: 0 - type: number - shard_count: - default: 1 - type: number - secrets: - REMOTE_CACHE_BUCKET_NAME: - required: true - REMOTE_CACHE_CREDENTIALS_JSON: - required: true -jobs: - test: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - erlang_version: - - 26 - metadata_store: - - mnesia - - khepri - include: - - erlang_version: 26 - elixir_version: 1.17 - timeout-minutes: 120 - steps: - - name: LOAD REPO CACHE - uses: actions/cache/restore@v4 - with: - key: ${{ inputs.repo_cache_key }} - path: /home/runner/repo-cache/ - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - - name: CONFIGURE OTP & ELIXIR - uses: erlef/setup-beam@v1.17 - with: - otp-version: ${{ matrix.erlang_version }} - elixir-version: ${{ matrix.elixir_version }} - hexpm-mirrors: | - https://builds.hex.pm - https://cdn.jsdelivr.net/hex - - name: AUTHENTICATE TO GOOGLE CLOUD - uses: google-github-actions/auth@v2.1.8 - with: - credentials_json: ${{ secrets.REMOTE_CACHE_CREDENTIALS_JSON }} - - name: CONFIGURE BAZEL - run: | - if [ -n "${{ secrets.REMOTE_CACHE_BUCKET_NAME }}" ]; then - cat << EOF >> user.bazelrc - build --remote_cache=https://storage.googleapis.com/${{ secrets.REMOTE_CACHE_BUCKET_NAME }} - build --google_default_credentials - - build --experimental_guard_against_concurrent_changes - EOF - fi - cat << EOF >> user.bazelrc - build --repository_cache=/home/runner/repo-cache/ - build --color=yes - EOF - - bazelisk info release - #! - name: Setup tmate session - #! uses: mxschmitt/action-tmate@v3 - - name: deps/amqp10_client SETUP - if: inputs.plugin == 'amqp10_client' - run: | - # reduce sandboxing so that activemq works - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbit SETUP - if: inputs.plugin == 'rabbit' - run: | - # reduce sandboxing so that maven works - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_auth_backend_ldap SETUP - if: inputs.plugin == 'rabbitmq_auth_backend_ldap' - run: | - sudo apt-get update && \ - sudo apt-get install -y \ - ldap-utils \ - slapd - - sudo systemctl is-active --quiet apparmor.service && sudo systemctl stop apparmor.service - sudo systemctl disable apparmor.service - - - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_mqtt SETUP - if: inputs.plugin == 'rabbitmq_mqtt' - run: | - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_peer_discovery_consul SETUP - if: inputs.plugin == 'rabbitmq_peer_discovery_consul' - run: | - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_stream SETUP - if: inputs.plugin == 'rabbitmq_stream' - run: | - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_stream_management SETUP - if: inputs.plugin == 'rabbitmq_stream_management' - run: | - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: deps/rabbitmq_tracing SETUP - if: inputs.plugin == 'rabbitmq_tracing' - run: | - cat << EOF >> user.bazelrc - build --strategy=TestRunner=local - EOF - - name: CLI COMPILE WARNINGS AS ERRORS - if: inputs.plugin == 'rabbitmq_cli' - run: | - bazel build //deps/rabbitmq_cli:compile_warnings_as_errors \ - --verbose_failures - - name: COMPUTE TESTS IN SHARD - id: shard - run: | - bazelisk cquery \ - 'tests(//deps/${{ inputs.plugin }}/...) except attr("tags", "manual|mixed-version-cluster", //deps/...)' \ - --output=label \ - | awk '{print $1;}' > tests.log - split -da 3 -l $((`wc -l < tests.log`/${{ inputs.shard_count }})) tests.log shard - printf -v padded_index "%03d" ${{ inputs.shard_index }} - echo "file=shard$padded_index" | tee -a $GITHUB_OUTPUT - - name: RUN TESTS - if: inputs.plugin != 'rabbitmq_peer_discovery_aws' - run: | - echo "Tests in shard:" - cat ${{ steps.shard.outputs.file }} - echo "" - - ## WARNING: - ## secrets must not be set in --test_env or --action_env, - ## or otherwise logs must not be saved as artifacts. - ## rabbit_ct_helpers or other code may log portions of the - ## env vars and leak them - - bazelisk test $(< ${{ steps.shard.outputs.file }}) \ - --test_env RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} \ - --build_tests_only \ - --verbose_failures - - name: UPLOAD TEST LOGS - if: always() - uses: actions/upload-artifact@v4 - with: - name: bazel-testlogs-${{ inputs.plugin }}-${{ inputs.shard_index }}-${{ matrix.erlang_version }}-${{ matrix.metadata_store }} - path: | - bazel-testlogs/deps/${{ inputs.plugin }}/* diff --git a/.github/workflows/test-windows.yaml b/.github/workflows/test-windows.yaml deleted file mode 100644 index 87e929ad8609..000000000000 --- a/.github/workflows/test-windows.yaml +++ /dev/null @@ -1,67 +0,0 @@ -name: Test Windows -on: - schedule: - - cron: '0 2 * * *' - workflow_dispatch: -jobs: - test: - name: Test Windows OTP26 - runs-on: windows-latest - strategy: - fail-fast: false - matrix: - include: - - erlang_version: "26.1" - elixir_version: "1.15.2" - metadata_store: - - mnesia - - khepri - timeout-minutes: 120 - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - - name: CONFIGURE ERLANG - uses: erlef/setup-beam@v1.17 - with: - otp-version: ${{ matrix.erlang_version }} - elixir-version: ${{ matrix.elixir_version }} - #! - name: MOUNT BAZEL CACHE - #! uses: actions/cache@v1 - #! with: - #! path: "/home/runner/repo-cache/" - #! key: repo-cache - - name: CONFIGURE BAZEL - id: configure - shell: bash - run: | - if [ -n "${{ secrets.REMOTE_CACHE_BUCKET_NAME }}" ]; then - cat << EOF >> user.bazelrc - build --remote_cache=https://storage.googleapis.com/${{ secrets.REMOTE_CACHE_BUCKET_NAME }} - build --google_default_credentials - EOF - fi - cat << EOF >> user.bazelrc - startup --output_user_root=C:/tmp - startup --windows_enable_symlinks - build --enable_runfiles - build --color=yes - EOF - - bazelisk info release - - name: RUN TESTS - shell: cmd - run: | - bazelisk test //... ^ - --config=buildbuddy ^ - --test_env RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} ^ - --test_tag_filters=-aws,-docker,-bats,-starts-background-broker,-dialyze ^ - --build_tests_only ^ - --verbose_failures - summary-windows: - needs: - - test - runs-on: ubuntu-latest - steps: - - name: SUMMARY - run: | - echo "SUCCESS" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml deleted file mode 100644 index 9c0de6db1873..000000000000 --- a/.github/workflows/test.yaml +++ /dev/null @@ -1,1147 +0,0 @@ -name: Test -on: - push: - branches: - - v4.0.x - - v3.13.x - - v3.12.x - - v3.11.x - - bump-otp-for-oci - - bump-rbe-* - - bump-rules_erlang - paths: - - deps/** - - scripts/** - - Makefile - - plugins.mk - - rabbitmq-components.mk - - .bazelrc - - .bazelversion - - BUILD.* - - '*.bzl' - - '*.bazel' - - .github/workflows/test.yaml -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true -jobs: - check-workflow: - runs-on: ubuntu-latest - outputs: - repo_cache_key: ${{ steps.repo-cache-key.outputs.value }} - steps: - - name: CHECKOUT REPOSITORY - uses: actions/checkout@v4 - - name: SETUP ERLANG/ELIXIR - uses: erlef/setup-beam@v1 - with: - otp-version: 26 - elixir-version: 1.15 - hexpm-mirrors: | - https://builds.hex.pm - https://cdn.jsdelivr.net/hex - - name: ENSURE WORKFLOWS ARE UP TO DATE - run: | - mkdir local-bin/ - curl -L https://carvel.dev/install.sh | K14SIO_INSTALL_BIN_DIR=local-bin bash - make actions-workflows YTT=$PWD/local-bin/ytt - git diff --exit-code - - name: COMPUTE REPO CACHE KEY - id: repo-cache-key - run: | - echo "value=bazel-repo-cache-${{ hashFiles('MODULE.bazel') }}" | tee -a $GITHUB_OUTPUT - - name: AUTHENTICATE TO GOOGLE CLOUD - uses: google-github-actions/auth@v2.1.8 - with: - credentials_json: ${{ secrets.REMOTE_CACHE_CREDENTIALS_JSON }} - - name: REPO CACHE - id: cache - uses: actions/cache@v4 - with: - key: ${{ steps.repo-cache-key.outputs.value }} - path: /home/runner/repo-cache/ - - name: PRIME CACHE - if: steps.cache.outputs.cache-hit != 'true' - run: | - if [ -n "${{ secrets.REMOTE_CACHE_BUCKET_NAME }}" ]; then - cat << EOF >> user.bazelrc - build --remote_cache=https://storage.googleapis.com/${{ secrets.REMOTE_CACHE_BUCKET_NAME }} - build --google_default_credentials - EOF - fi - cat << EOF >> user.bazelrc - build --repository_cache=/home/runner/repo-cache/ - build --color=yes - EOF - - bazelisk cquery \ - 'tests(//...) except attr("tags", "manual|mixed-version-cluster", //deps/...)' \ - --output=label - test-amqp10_client: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: amqp10_client - secrets: inherit - test-amqp10_common: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: amqp10_common - secrets: inherit - test-amqp_client: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: amqp_client - secrets: inherit - test-oauth2_client: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: oauth2_client - secrets: inherit - test-rabbit_common: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit_common - secrets: inherit - test-rabbitmq_ct_client_helpers: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_ct_client_helpers - secrets: inherit - test-rabbitmq_ct_helpers: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_ct_helpers - secrets: inherit - test-rabbitmq_stream_common: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_stream_common - secrets: inherit - test-trust_store_http: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: trust_store_http - secrets: inherit - test-rabbit-0: - needs: - - check-workflow - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 0 - shard_count: 10 - secrets: inherit - test-rabbit-1: - needs: - - check-workflow - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 1 - shard_count: 10 - secrets: inherit - test-rabbit-2: - needs: - - check-workflow - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 2 - shard_count: 10 - secrets: inherit - test-rabbit-3: - needs: - - check-workflow - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 3 - shard_count: 10 - secrets: inherit - test-rabbit-4: - needs: - - check-workflow - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 4 - shard_count: 10 - secrets: inherit - test-rabbit-5: - needs: - - check-workflow - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 5 - shard_count: 10 - secrets: inherit - test-rabbit-6: - needs: - - check-workflow - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 6 - shard_count: 10 - secrets: inherit - test-rabbit-7: - needs: - - check-workflow - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 7 - shard_count: 10 - secrets: inherit - test-rabbit-8: - needs: - - check-workflow - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 8 - shard_count: 10 - secrets: inherit - test-rabbit-9: - needs: - - check-workflow - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbit - shard_index: 9 - shard_count: 10 - secrets: inherit - test-rabbitmq_cli: - needs: check-workflow - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_cli - secrets: inherit - test-rabbitmq_amqp_client: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_amqp_client - secrets: inherit - test-rabbitmq_amqp1_0: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_amqp1_0 - secrets: inherit - test-rabbitmq_auth_backend_cache: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_auth_backend_cache - secrets: inherit - test-rabbitmq_auth_backend_http: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_auth_backend_http - secrets: inherit - test-rabbitmq_auth_backend_ldap: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_auth_backend_ldap - secrets: inherit - test-rabbitmq_auth_backend_oauth2: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_auth_backend_oauth2 - secrets: inherit - test-rabbitmq_auth_mechanism_ssl: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_auth_mechanism_ssl - secrets: inherit - test-rabbitmq_aws: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_aws - secrets: inherit - test-rabbitmq_consistent_hash_exchange: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_consistent_hash_exchange - secrets: inherit - test-rabbitmq_event_exchange: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_event_exchange - secrets: inherit - test-rabbitmq_federation: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_federation - secrets: inherit - test-rabbitmq_federation_management: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_federation_management - secrets: inherit - test-rabbitmq_federation_prometheus: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_federation_prometheus - secrets: inherit - test-rabbitmq_jms_topic_exchange: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_jms_topic_exchange - secrets: inherit - test-rabbitmq_management: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_management - secrets: inherit - test-rabbitmq_management_agent: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_management_agent - secrets: inherit - test-rabbitmq_mqtt: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_mqtt - secrets: inherit - test-rabbitmq_peer_discovery_aws: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_peer_discovery_aws - secrets: inherit - test-rabbitmq_peer_discovery_common: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_peer_discovery_common - secrets: inherit - test-rabbitmq_peer_discovery_consul: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_peer_discovery_consul - secrets: inherit - test-rabbitmq_peer_discovery_etcd: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_peer_discovery_etcd - secrets: inherit - test-rabbitmq_peer_discovery_k8s: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_peer_discovery_k8s - secrets: inherit - test-rabbitmq_prelaunch: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_prelaunch - secrets: inherit - test-rabbitmq_prometheus: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_prometheus - secrets: inherit - test-rabbitmq_random_exchange: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_random_exchange - secrets: inherit - test-rabbitmq_recent_history_exchange: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_recent_history_exchange - secrets: inherit - test-rabbitmq_sharding: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_sharding - secrets: inherit - test-rabbitmq_shovel: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_shovel - secrets: inherit - test-rabbitmq_shovel_management: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_shovel_management - secrets: inherit - test-rabbitmq_shovel_prometheus: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_shovel_prometheus - secrets: inherit - test-rabbitmq_stomp: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_stomp - secrets: inherit - test-rabbitmq_stream: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_stream - secrets: inherit - test-rabbitmq_stream_management: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_stream_management - secrets: inherit - test-rabbitmq_top: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_top - secrets: inherit - test-rabbitmq_tracing: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_tracing - secrets: inherit - test-rabbitmq_trust_store: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_trust_store - secrets: inherit - test-rabbitmq_web_dispatch: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_web_dispatch - secrets: inherit - test-rabbitmq_web_mqtt: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_web_mqtt - secrets: inherit - test-rabbitmq_web_mqtt_examples: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_web_mqtt_examples - secrets: inherit - test-rabbitmq_web_stomp: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_web_stomp - secrets: inherit - test-rabbitmq_web_stomp_examples: - needs: - - check-workflow - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - uses: ./.github/workflows/test-plugin.yaml - with: - repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }} - plugin: rabbitmq_web_stomp_examples - secrets: inherit - summary-test: - needs: - - test-amqp10_client - - test-amqp10_common - - test-amqp_client - - test-oauth2_client - - test-rabbit_common - - test-rabbitmq_ct_client_helpers - - test-rabbitmq_ct_helpers - - test-rabbitmq_stream_common - - test-trust_store_http - - test-rabbitmq_amqp_client - - test-rabbitmq_amqp1_0 - - test-rabbitmq_auth_backend_cache - - test-rabbitmq_auth_backend_http - - test-rabbitmq_auth_backend_ldap - - test-rabbitmq_auth_backend_oauth2 - - test-rabbitmq_auth_mechanism_ssl - - test-rabbitmq_aws - - test-rabbitmq_consistent_hash_exchange - - test-rabbitmq_event_exchange - - test-rabbitmq_federation - - test-rabbitmq_federation_management - - test-rabbitmq_federation_prometheus - - test-rabbitmq_jms_topic_exchange - - test-rabbitmq_management - - test-rabbitmq_management_agent - - test-rabbitmq_mqtt - - test-rabbitmq_peer_discovery_aws - - test-rabbitmq_peer_discovery_common - - test-rabbitmq_peer_discovery_consul - - test-rabbitmq_peer_discovery_etcd - - test-rabbitmq_peer_discovery_k8s - - test-rabbitmq_prelaunch - - test-rabbitmq_prometheus - - test-rabbitmq_random_exchange - - test-rabbitmq_recent_history_exchange - - test-rabbitmq_sharding - - test-rabbitmq_shovel - - test-rabbitmq_shovel_management - - test-rabbitmq_shovel_prometheus - - test-rabbitmq_stomp - - test-rabbitmq_stream - - test-rabbitmq_stream_management - - test-rabbitmq_top - - test-rabbitmq_tracing - - test-rabbitmq_trust_store - - test-rabbitmq_web_dispatch - - test-rabbitmq_web_mqtt - - test-rabbitmq_web_mqtt_examples - - test-rabbitmq_web_stomp - - test-rabbitmq_web_stomp_examples - - test-rabbit-0 - - test-rabbit-1 - - test-rabbit-2 - - test-rabbit-3 - - test-rabbit-4 - - test-rabbit-5 - - test-rabbit-6 - - test-rabbit-7 - - test-rabbit-8 - - test-rabbit-9 - - test-rabbitmq_cli - runs-on: ubuntu-latest - steps: - - name: SUMMARY - run: | - cat << 'EOF' | jq -e 'map(.result == "success") | all(.)' - ${{ toJson(needs) }} - EOF diff --git a/.gitignore b/.gitignore index a407ec2eb582..8031def96885 100644 --- a/.gitignore +++ b/.gitignore @@ -93,12 +93,6 @@ rebar.config !/deps/amqp10_common/rebar.config !/rebar.config -# Bazel. -.bazelrc -user.bazelrc -bazel-* -extra_deps/ - # Erlang/OTP unwanted files. .erlang.cookie erl_crash.dump diff --git a/BAZEL.md b/BAZEL.md deleted file mode 100644 index 856f0453c448..000000000000 --- a/BAZEL.md +++ /dev/null @@ -1,102 +0,0 @@ -# [Bazel](https://www.bazel.build/) build - -From https://docs.bazel.build/versions/master/bazel-overview.html -> Bazel is an open-source build and test tool similar to Make, Maven, and Gradle. It uses a human-readable, high-level build language. Bazel supports projects in multiple languages and builds outputs for multiple platforms. Bazel supports large codebases across multiple repositories, and large numbers of users. - -## Why RabbitMQ + Bazel? - -RabbitMQ, Tier1 plugins included, is a large codebase. The developer experience benefits from fast incremental compilation. - -More importantly, RabbitMQ's test suite is large and takes hours if run on a single machine. Bazel allows tests to be run in parallel on a large number of remote workers if needed, and furthermore uses cached test results when branches of the codebase remain unchanged. - -Bazel does not provide built in Erlang or Elixir support, nor is there an available library of bazel rules. Therefore, we have defined our own rules in https://github.com/rabbitmq/bazel-erlang. Elixir compilation is handled as a special case within this repository. To use these rules, the location of your Erlang and Elixir installations must be indicated to the build (see below). - -While most of work for running tests happens in Bazel, the suite still makes use of some external tools for commands, notably gnu `make` and `openssl`. Ideally we could bring all of these tools under bazel, so that the only tool needed would be `bazel` or `bazelisk`, but that will take some time. - -## Running Tests - -### Install Bazelisk - -On **macOS**: - -`brew install bazelisk` - -Otherwise: - -https://docs.bazel.build/versions/master/install-bazelisk.html - -### Create `user.bazelrc` - -Create a `user.bazelrc` by making a copy of `user-template.bazelrc` and updating the paths in the first few lines. - -### Run the broker - -`bazel run broker` - -You can set different environment variables to control some configuration aspects, like this: - -``` - RABBITMQ_CONFIG_FILES=/path/to/conf.d \ - RABBITMQ_NODENAME=@localhost \ - RABBITMQ_NODE_PORT=7000 \ - bazel run broker -``` - -This will start RabbitMQ with configs being read from the provided directory. It also will start a node with a given node name, and with all listening ports calculated from the given one - this way you can start non-conflicting rabbits even from different checkouts on a single machine. - - -### Running tests - -Many rabbit tests spawn single or clustered rabbit nodes, and therefore it's best to run test suites sequentially on a single machine. Hence the `build --local_test_jobs=1` flag used in `.bazelrc`. Additionally, it may be reasonable to disable test sharding and stream test output when running tests locally with `--test_output=streamed` as an additional argument (to just disable sharding, but not stream output, use `--test_sharding_strategy=disabled`). Naturally that restriction does not hold if utilizing remote execution (as is the case for RabbitMQ's CI pipelines). - -Erlang Common Test logs will not be placed in the logs directory when run with bazel. They can be found under `bazel-testlogs`. For instance, those of the rabbit application's backing_queue suite will be under `bazel-testlogs/deps/rabbit/backing_queue_SUITE/test.outputs/`. - -### Run all tests - -Note: This takes quite some time on a single machine. - -`bazel test //...` - -### Run tests in a 'package' and its 'subpackages' - -**rabbit** is an appropriate example because it encloses the **rabbitmq_prelaunch** application. - -`bazel test deps/rabbit/...` - -### Run tests for a specific 'package' - -`bazel test deps/rabbit_common:all` - -### Run an individual common test suite - -`bazel test //deps/rabbit:lazy_queue_SUITE` - -## Add/update an external dependency - -### from hex.pm - -1. `bazel run gazelle-update-repos -- hex.pm/accept@0.3.5` to generate/update `bazel/BUILD.accept` -1. Add/update the entry in MODULE.bazel - -### from github - -1. `bazel run gazelle-update-repos -- --testonly github.com/extend/ct_helper@master` -1. Add/update the entry in MODULE.bazel - -## Update BUILD files - -`bazel run gazelle` - -## Regenerate moduleindex.yaml - -`bazel run :moduleindex > moduleindex.yaml` - -## Additional Useful Commands - -- Format all bazel files consistently (requires [buildifier](https://github.com/bazelbuild/buildtools/blob/master/buildifier/README.md)): - - `buildifier -r .` - -- Remove unused load statements from BUILD.bazel files (requires [buildozer](https://github.com/bazelbuild/buildtools/blob/master/buildozer/README.md)): - - `buildozer 'fix unusedLoads' //...:__pkg__` diff --git a/BUILD.bats b/BUILD.bats deleted file mode 100644 index 1fe48bc1545d..000000000000 --- a/BUILD.bats +++ /dev/null @@ -1,8 +0,0 @@ -filegroup( - name = "bin_dir", - srcs = glob([ - "bin/**/*", - "libexec/**/*", - ]), - visibility = ["//visibility:public"], -) diff --git a/BUILD.bazel b/BUILD.bazel deleted file mode 100644 index 5572770617a0..000000000000 --- a/BUILD.bazel +++ /dev/null @@ -1,337 +0,0 @@ -load( - "@bazel_skylib//rules:common_settings.bzl", - "bool_flag", -) -load("@rules_pkg//pkg:mappings.bzl", "pkg_files") -load("@bazel_gazelle//:def.bzl", "gazelle") -load("@rules_erlang//gazelle:def.bzl", "GAZELLE_ERLANG_RUNTIME_DEPS") -load("@rules_erlang//:erlang_bytecode2.bzl", "erlc_opts") -load("@rules_erlang//:dialyze.bzl", "DEFAULT_PLT_APPS", "plt") -load("@rules_erlang//:shell.bzl", "shell") -load("@rules_erlang//:erl_eval.bzl", "erl_eval") -load("@rules_erlang//gazelle:moduleindex.bzl", "moduleindex") -load("@rules_elixir//:iex_eval.bzl", "iex_eval") -load(":rabbitmq_home.bzl", "rabbitmq_home") -load(":rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command") -load(":rabbitmqctl.bzl", "rabbitmqctl") -load(":dist.bzl", "package_generic_unix", "source_archive") -load( - ":rabbitmq.bzl", - "RABBITMQ_ERLC_OPTS", - "RABBITMQ_TEST_ERLC_OPTS", - "all_plugins", - "without", -) - -exports_files([ - "scripts/bazel/rabbitmq-run.sh", - "scripts/bazel/rabbitmq-run.bat", - "release-notes", -]) - -# gazelle:exclude .github -# gazelle:exclude .elixir_ls -# gazelle:exclude .erlang.mk -# gazelle:exclude bazel -# gazelle:exclude bazel-out -# gazelle:exclude deps/*/priv -# gazelle:exclude deps/accept -# gazelle:exclude deps/aten -# gazelle:exclude deps/base64url -# gazelle:exclude deps/cowboy -# gazelle:exclude deps/cowlib -# gazelle:exclude deps/credentials_obfuscation -# gazelle:exclude deps/csv -# gazelle:exclude deps/cth_styledout -# gazelle:exclude deps/cuttlefish -# gazelle:exclude deps/eetcd -# gazelle:exclude deps/elvis_mk -# gazelle:exclude deps/enough -# gazelle:exclude deps/gen_batch_server -# gazelle:exclude deps/getopt -# gazelle:exclude deps/gun -# gazelle:exclude deps/inet_tcp_proxy -# gazelle:exclude deps/jose -# gazelle:exclude deps/json -# gazelle:exclude deps/meck -# gazelle:exclude deps/observer_cli -# gazelle:exclude deps/osiris -# gazelle:exclude deps/prometheus -# gazelle:exclude deps/proper -# gazelle:exclude deps/quantile_estimator -# gazelle:exclude deps/ra -# gazelle:exclude deps/ranch -# gazelle:exclude deps/recon -# gazelle:exclude deps/redbug -# gazelle:exclude deps/seshat -# gazelle:exclude deps/stdout_formatter -# gazelle:exclude deps/syslog -# gazelle:exclude deps/sysmon_handler -# gazelle:exclude deps/systemd -# gazelle:exclude deps/thoas -# gazelle:exclude deps/*/deps -# gazelle:exclude deps/*/.erlang.mk -# gazelle:exclude deps/rabbitmq_cli/_build -# gazelle:exclude extra_deps -# gazelle:exclude packaging -# gazelle:exclude PACKAGES -# gazelle:exclude plugins -# gazelle:exclude release-notes -# gazelle:exclude logs -# gazelle:erlang_apps_dirs deps -# gazelle:erlang_skip_rules test_erlang_app -# gazelle:erlang_skip_rules ct_test -# gazelle:erlang_generate_beam_files_macro -# gazelle:erlang_generate_fewer_bytecode_rules -# gazelle:erlang_app_dep_exclude rabbitmq_cli -# gazelle:map_kind erlang_app rabbitmq_app //:rabbitmq.bzl -# gazelle:map_kind assert_suites2 assert_suites //:rabbitmq.bzl - -# gazelle:erlang_module_source_lib Elixir.RabbitMQ.CLI.CommandBehaviour:rabbitmq_cli - -gazelle( - name = "gazelle", - data = GAZELLE_ERLANG_RUNTIME_DEPS, - extra_args = [ - "--verbose", - ], - 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", - build_setting_default = False, - visibility = ["//visibility:public"], -) - -config_setting( - name = "test_build", - flag_values = { - "//:enable_test_build": "true", - }, -) - -plt( - name = "base_plt", - apps = DEFAULT_PLT_APPS + [ - "compiler", - "crypto", - ], # keep - visibility = ["//visibility:public"], -) - -PLUGINS = all_plugins( - rabbitmq_workspace = "", -) - -rabbitmq_home( - name = "broker-home", - plugins = PLUGINS, -) - -rabbitmq_run( - name = "rabbitmq-run", - home = ":broker-home", - visibility = ["//visibility:public"], -) - -# Allows us to `bazel run broker` -# for the equivalent of `make run-broker` -rabbitmq_run_command( - name = "broker", - rabbitmq_run = ":rabbitmq-run", - subcommand = "run-broker", -) - -# Allows us to `bazel run background-broker` -# to start a broker in the background -rabbitmq_run_command( - name = "background-broker", - rabbitmq_run = ":rabbitmq-run", - subcommand = "start-background-broker", -) - -# Allows us to `bazel run stop-broker` -# Useful is broker started in the background -rabbitmq_run_command( - name = "stop-broker", - rabbitmq_run = ":rabbitmq-run", - subcommand = "stop-node", -) - -# Allows us to `bazel run start-cluster` -# for the equivalent of `make start-cluster` -rabbitmq_run_command( - name = "start-cluster", - rabbitmq_run = ":rabbitmq-run", - subcommand = "start-cluster", -) - -# Allows us to `bazel run stop-cluster` -# for the equivalent of `make stop-cluster` -rabbitmq_run_command( - name = "stop-cluster", - rabbitmq_run = ":rabbitmq-run", - subcommand = "stop-cluster", -) - -# `bazel run rabbitmqctl` -rabbitmqctl( - name = "rabbitmqctl", - home = ":broker-home", - visibility = ["//visibility:public"], -) - -rabbitmqctl( - name = "rabbitmq-diagnostics", - home = ":broker-home", -) - -rabbitmqctl( - name = "rabbitmq-plugins", - home = ":broker-home", -) - -rabbitmqctl( - name = "rabbitmq-streams", - home = ":broker-home", -) - -rabbitmqctl( - name = "rabbitmq-queues", - home = ":broker-home", -) - -rabbitmqctl( - name = "rabbitmq-upgrade", - home = ":broker-home", -) - -shell( - name = "repl", - deps = PLUGINS, -) - -erl_eval( - name = "otp_version", - outs = ["otp_version.txt"], - expression = """{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), file:write_file(os:getenv("OUTS"), Version), halt().""", - visibility = ["//visibility:public"], -) - -iex_eval( - name = "elixir_version", - outs = ["elixir_version.txt"], - expression = """File.write!(System.get_env("OUTS"), System.version()); System.halt()""", - visibility = ["//visibility:public"], -) - -filegroup( - name = "root-licenses", - srcs = glob(["LICENSE*"]), - visibility = ["//visibility:public"], -) - -pkg_files( - name = "scripts-files", - srcs = [ - "scripts/bash_autocomplete.sh", - "scripts/rabbitmq-script-wrapper", - "scripts/rabbitmqctl-autocomplete.sh", - "scripts/zsh_autocomplete.sh", - ], - prefix = "scripts", - visibility = ["//visibility:public"], -) - -pkg_files( - name = "release-notes-files", - srcs = glob([ - "release-notes/*.md", - "release-notes/*.txt", - ]), - prefix = "release-notes", - visibility = ["//visibility:public"], -) - -package_generic_unix( - name = "package-generic-unix", - plugins = PLUGINS, -) - -source_archive( - name = "source_archive", - plugins = PLUGINS, -) - -moduleindex( - name = "moduleindex", - testonly = True, - apps = PLUGINS + [ - "@ct_helper//:erlang_app", - "@emqtt//:erlang_app", - "@inet_tcp_proxy_dist//:erlang_app", - "@meck//:erlang_app", - "@proper//:erlang_app", - "//deps/rabbitmq_ct_client_helpers:erlang_app", - "//deps/rabbitmq_ct_helpers:erlang_app", - "//deps/trust_store_http:erlang_app", - ], - tags = ["manual"], -) - -alias( - name = "test-logs", - actual = "//bazel/util:test-logs", -) - -alias( - name = "remote-test-logs", - actual = "//bazel/util:remote-test-logs", -) - -alias( - name = "test-node-data", - actual = "//bazel/util:test-node-data", -) - -alias( - name = "remote-test-node-data", - actual = "//bazel/util:remote-test-node-data", -) - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": without("+deterministic", RABBITMQ_ERLC_OPTS), - "//conditions:default": RABBITMQ_ERLC_OPTS, - }) + select({ - ":test_build": [ - "-DTEST=1", - "+nowarn_export_all", - ], - "//conditions:default": [], - }), # keep - visibility = [":__subpackages__"], -) - -erlc_opts( - name = "test_erlc_opts", - values = select({ - "@rules_erlang//:debug_build": without("+deterministic", RABBITMQ_TEST_ERLC_OPTS), - "//conditions:default": RABBITMQ_TEST_ERLC_OPTS, - }), # keep - visibility = [":__subpackages__"], -) diff --git a/BUILD.package_generic_unix b/BUILD.package_generic_unix deleted file mode 100644 index 4cc8056e7acf..000000000000 --- a/BUILD.package_generic_unix +++ /dev/null @@ -1,46 +0,0 @@ -load("@//:rabbitmq_package_generic_unix.bzl", "rabbitmq_package_generic_unix") -load("@//:rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command") -load("@//:rabbitmqctl.bzl", "rabbitmqctl") - -rabbitmq_package_generic_unix( - name = "broker-home", - additional_files = - glob( - [ - "sbin/*", - "escript/*", - ], - exclude = ["sbin/rabbitmqctl"], - ) + [ - "//plugins:standard_plugins", - "//plugins:inet_tcp_proxy_ez", - ], - rabbitmqctl = "sbin/rabbitmqctl", -) - -rabbitmq_run( - name = "rabbitmq-run", - home = ":broker-home", - visibility = ["//visibility:public"], -) - -rabbitmq_run_command( - name = "broker", - rabbitmq_run = ":rabbitmq-run", - subcommand = "run-broker", -) - -rabbitmqctl( - name = "rabbitmqctl", - home = ":broker-home", -) - -rabbitmqctl( - name = "rabbitmq-diagnostics", - home = ":broker-home", -) - -rabbitmqctl( - name = "rabbitmq-plugins", - home = ":broker-home", -) diff --git a/MODULE.bazel b/MODULE.bazel deleted file mode 100644 index 6c566557cd55..000000000000 --- a/MODULE.bazel +++ /dev/null @@ -1,442 +0,0 @@ -module( - name = "rabbitmq-server", - version = "4.0.0", -) - -bazel_dep( - name = "rules_pkg", - version = "0.10.1", -) - -bazel_dep( - name = "bazel_skylib", - version = "1.7.1", -) - -bazel_dep( - name = "aspect_bazel_lib", - version = "2.5.3", -) - -bazel_dep( - name = "platforms", - version = "0.0.8", -) - -bazel_dep( - name = "rules_cc", - version = "0.0.9", -) - -bazel_dep( - name = "rules_oci", - version = "1.7.4", -) - -bazel_dep( - name = "container_structure_test", - version = "1.16.0", -) - -bazel_dep( - name = "gazelle", - version = "0.33.0", - repo_name = "bazel_gazelle", -) - -bazel_dep( - name = "rules_erlang", - version = "3.16.0", -) - -bazel_dep( - name = "rules_elixir", - version = "1.1.0", -) - -bazel_dep( - name = "rabbitmq_osiris", - version = "1.8.6", - repo_name = "osiris", -) - -erlang_config = use_extension( - "@rules_erlang//bzlmod:extensions.bzl", - "erlang_config", -) - -use_repo( - erlang_config, - "erlang_config", -) - -elixir_config = use_extension( - "@rules_elixir//bzlmod:extensions.bzl", - "elixir_config", -) - -use_repo( - elixir_config, - "elixir_config", -) - -register_toolchains( - "@elixir_config//external:toolchain", -) - -erlang_package = use_extension( - "@rules_erlang//bzlmod:extensions.bzl", - "erlang_package", -) - -erlang_package.hex_package( - name = "accept", - build_file = "@rabbitmq-server//bazel:BUILD.accept", - sha256 = "11b18c220bcc2eab63b5470c038ef10eb6783bcb1fcdb11aa4137defa5ac1bb8", - version = "0.3.5", -) - -erlang_package.hex_package( - name = "aten", - build_file = "@rabbitmq-server//bazel:BUILD.aten", - sha256 = "5f39a164206ae3f211ef5880b1f7819415686436e3229d30b6a058564fbaa168", - version = "0.6.0", -) - -erlang_package.hex_package( - name = "base64url", - build_file = "@rabbitmq-server//bazel:BUILD.base64url", - sha256 = "f9b3add4731a02a9b0410398b475b33e7566a695365237a6bdee1bb447719f5c", - version = "1.0.1", -) - -erlang_package.hex_package( - name = "cowboy", - build_file = "@rabbitmq-server//bazel:BUILD.cowboy", - patch_cmds = [ - "rm ebin/cowboy.app", - ], - sha256 = "8a7abe6d183372ceb21caa2709bec928ab2b72e18a3911aa1771639bef82651e", - version = "2.12.0", -) - -erlang_package.hex_package( - name = "cowlib", - build_file = "@rabbitmq-server//bazel:BUILD.cowlib", - patch_cmds = [ - "rm ebin/cowlib.app", - ], - sha256 = "e1e1284dc3fc030a64b1ad0d8382ae7e99da46c3246b815318a4b848873800a4", - version = "2.13.0", -) - -erlang_package.hex_package( - name = "credentials_obfuscation", - build_file = "@rabbitmq-server//bazel:BUILD.credentials_obfuscation", - sha256 = "738ace0ed5545d2710d3f7383906fc6f6b582d019036e5269c4dbd85dbced566", - version = "3.4.0", -) - -erlang_package.hex_package( - name = "csv", - build_file = "@rabbitmq-server//bazel:BUILD.csv", - sha256 = "8f55a0524923ae49e97ff2642122a2ce7c61e159e7fe1184670b2ce847aee6c8", - version = "3.2.1", -) - -erlang_package.hex_package( - name = "cuttlefish", - build_file = "@rabbitmq-server//bazel:BUILD.cuttlefish", - sha256 = "43cadd7f34b3dbbab52a7f4110d1df276a13cff5e11afe0f5a774f69f012b76b", - version = "3.4.0", -) - -erlang_package.hex_package( - name = "eetcd", - build_file = "@rabbitmq-server//bazel:BUILD.eetcd", - sha256 = "66493bfd6698c1b6baa49679034c3def071ff329961ca1aa7b1dee061c2809af", - version = "0.3.6", -) - -erlang_package.hex_package( - name = "enough", - build_file = "@rabbitmq-server//bazel:BUILD.enough", - sha256 = "0460c7abda5f5e0ea592b12bc6976b8a5c4b96e42f332059cd396525374bf9a1", - version = "0.1.0", -) - -erlang_package.hex_package( - name = "gen_batch_server", - build_file = "@rabbitmq-server//bazel:BUILD.gen_batch_server", - sha256 = "c3e6a1a2a0fb62aee631a98cfa0fd8903e9562422cbf72043953e2fb1d203017", - version = "0.8.8", -) - -erlang_package.hex_package( - name = "getopt", - build_file = "@rabbitmq-server//bazel:BUILD.getopt", - sha256 = "a0029aea4322fb82a61f6876a6d9c66dc9878b6cb61faa13df3187384fd4ea26", - version = "1.0.2", -) - -erlang_package.hex_package( - name = "gun", - build_file = "@rabbitmq-server//bazel:BUILD.gun", - sha256 = "3106ce167f9c9723f849e4fb54ea4a4d814e3996ae243a1c828b256e749041e0", - version = "1.3.3", -) - -erlang_package.hex_package( - name = "horus", - build_file = "@rabbitmq-server//bazel:BUILD.horus", - sha256 = "d564d30ebc274f0d92c3d44a336d0b892f000be159912ae4e6838701e85495ec", - version = "0.3.1", -) - -erlang_package.hex_package( - name = "jose", - build_file = "@rabbitmq-server//bazel:BUILD.jose", - sha256 = "0d6cd36ff8ba174db29148fc112b5842186b68a90ce9fc2b3ec3afe76593e614", - version = "1.11.10", -) - -erlang_package.hex_package( - name = "json", - build_file = "@rabbitmq-server//bazel:BUILD.json", - sha256 = "9abf218dbe4ea4fcb875e087d5f904ef263d012ee5ed21d46e9dbca63f053d16", - version = "1.4.1", -) - -erlang_package.hex_package( - name = "khepri", - build_file = "@rabbitmq-server//bazel:BUILD.khepri", - sha256 = "feee8a0a1f3f78dd9f8860feacba63cc165c81af1b351600903e34a20676d5f6", - version = "0.16.0", -) - -erlang_package.hex_package( - name = "khepri_mnesia_migration", - build_file = "@rabbitmq-server//bazel:BUILD.khepri_mnesia_migration", - sha256 = "24b87e51b9e46eaeeadb898720e12a58d501cbb05c16e28ca27063e66d60e85c", - version = "0.7.1", -) - -erlang_package.hex_package( - name = "thoas", - build_file = "@rabbitmq-server//bazel:BUILD.thoas", - sha256 = "e38697edffd6e91bd12cea41b155115282630075c2a727e7a6b2947f5408b86a", - version = "1.2.1", -) - -erlang_package.hex_package( - name = "observer_cli", - build_file = "@rabbitmq-server//bazel:BUILD.observer_cli", - sha256 = "93ae523d42d566b176f7ae77a0bf36802dab8bb51a6086316cce66a7cfb5d81f", - version = "1.8.2", -) - -erlang_package.hex_package( - name = "prometheus", - build_file = "@rabbitmq-server//bazel:BUILD.prometheus", - sha256 = "719862351aabf4df7079b05dc085d2bbcbe3ac0ac3009e956671b1d5ab88247d", - version = "4.11.0", -) - -erlang_package.hex_package( - name = "quantile_estimator", - build_file = "@rabbitmq-server//bazel:BUILD.quantile_estimator", - sha256 = "282a8a323ca2a845c9e6f787d166348f776c1d4a41ede63046d72d422e3da946", - version = "0.2.1", -) - -erlang_package.hex_package( - name = "ra", - build_file = "@rabbitmq-server//bazel:BUILD.ra", - pkg = "ra", - sha256 = "4eeb135add249ae607d408f17f23ccf25b8f957edc523f5fbf20d7fc784532ca", - version = "2.16.2", -) - -erlang_package.git_package( - name = "seshat", - build_file = "@rabbitmq-server//bazel:BUILD.seshat", - repository = "rabbitmq/seshat", - tag = "v0.6.1", -) - -erlang_package.hex_package( - name = "ranch", - build_file = "@rabbitmq-server//bazel:BUILD.ranch", - patch_cmds = [ - "rm ebin/ranch.app", - ], - sha256 = "244ee3fa2a6175270d8e1fc59024fd9dbc76294a321057de8f803b1479e76916", - version = "2.1.0", -) - -erlang_package.hex_package( - name = "recon", - build_file = "@rabbitmq-server//bazel:BUILD.recon", - sha256 = "96c6799792d735cc0f0fd0f86267e9d351e63339cbe03df9d162010cefc26bb0", - version = "2.5.6", -) - -erlang_package.hex_package( - name = "redbug", - build_file = "@rabbitmq-server//bazel:BUILD.redbug", - sha256 = "3624feb7a4b78fd9ae0e66cc3158fe7422770ad6987a1ebf8df4d3303b1c4b0c", - version = "2.0.7", -) - -erlang_package.hex_package( - name = "stdout_formatter", - build_file = "@rabbitmq-server//bazel:BUILD.stdout_formatter", - sha256 = "51f1df921b0477275ea712763042155dbc74acc75d9648dbd54985c45c913b29", - version = "0.2.4", -) - -erlang_package.git_package( - build_file = "@rabbitmq-server//bazel:BUILD.syslog", - repository = "schlagert/syslog", - tag = "4.0.0", -) - -erlang_package.hex_package( - name = "sysmon_handler", - build_file = "@rabbitmq-server//bazel:BUILD.sysmon_handler", - sha256 = "922cf0dd558b9fdb1326168373315b52ed6a790ba943f6dcbd9ee22a74cebdef", - version = "1.3.0", -) - -erlang_package.hex_package( - name = "systemd", - build_file = "@rabbitmq-server//bazel:BUILD.systemd", - sha256 = "8ec5ed610a5507071cdb7423e663e2452a747a624bb8a58582acd9491ccad233", - version = "0.6.1", -) - -use_repo( - erlang_package, - "accept", - "aten", - "base64url", - "cowboy", - "cowlib", - "credentials_obfuscation", - "csv", - "cuttlefish", - "eetcd", - "gen_batch_server", - "getopt", - "gun", - "horus", - "jose", - "json", - "khepri", - "khepri_mnesia_migration", - "observer_cli", - "prometheus", - "ra", - "ranch", - "recon", - "redbug", - "seshat", - "stdout_formatter", - "syslog", - "sysmon_handler", - "systemd", - "thoas", -) - -erlang_dev_package = use_extension( - "@rules_erlang//bzlmod:extensions.bzl", - "erlang_package", -) - -erlang_dev_package.hex_package( - name = "amqp", - build_file = "@rabbitmq-server//bazel:BUILD.amqp", - patch_args = ["-p1"], - patches = ["@rabbitmq-server//bazel:amqp.patch"], - sha256 = "8d3ae139d2646c630d674a1b8d68c7f85134f9e8b2a1c3dd5621616994b10a8b", - version = "3.3.0", -) - -erlang_dev_package.git_package( - branch = "master", - build_file = "@//:bazel/BUILD.ct_helper", - repository = "ninenines/ct_helper", -) - -erlang_dev_package.git_package( - name = "emqtt", - tag = "1.11.0", - build_file = "@rabbitmq-server//bazel:BUILD.emqtt", - repository = "emqx/emqtt", -) - -erlang_dev_package.git_package( - name = "inet_tcp_proxy_dist", - testonly = True, - branch = "master", - repository = "rabbitmq/inet_tcp_proxy", -) - -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", -) - -erlang_dev_package.hex_package( - name = "temp", - build_file = "@rabbitmq-server//bazel:BUILD.temp", - sha256 = "6af19e7d6a85a427478be1021574d1ae2a1e1b90882586f06bde76c63cd03e0d", - version = "0.4.7", -) - -erlang_dev_package.hex_package( - name = "x509", - build_file = "@rabbitmq-server//bazel:BUILD.x509", - sha256 = "ccc3bff61406e5bb6a63f06d549f3dba3a1bbb456d84517efaaa210d8a33750f", - version = "0.8.8", -) - -use_repo( - erlang_dev_package, - "amqp", - "ct_helper", - "emqtt", - "inet_tcp_proxy_dist", - "meck", - "proper", - "temp", - "x509", -) - -secondary_umbrella = use_extension( - "//bazel/bzlmod:extensions.bzl", - "secondary_umbrella", - dev_dependency = True, -) - -use_repo( - secondary_umbrella, - "rabbitmq-server-generic-unix-4.0", -) - -hex = use_extension( - "//bazel/bzlmod:extensions.bzl", - "hex", -) - -use_repo( - hex, - "hex", -) diff --git a/Makefile b/Makefile index 01fcb368f96e..4e68e6f23796 100644 --- a/Makefile +++ b/Makefile @@ -31,10 +31,6 @@ DISABLE_DISTCLEAN = 1 ifeq ($(filter-out xref,$(MAKECMDGOALS)),) XREF_SCOPE = app deps -# We add all the applications that are in non-standard paths -# so they are included in the analyses as well. -XREF_EXTRA_APP_DIRS = $(filter-out deps/rabbitmq_cli/_build/dev/lib/rabbit_common/,$(wildcard deps/rabbitmq_cli/_build/dev/lib/*/)) deps/rabbitmq_prelaunch/ - # For Elixir protocols the right fix is to include the consolidated/ # folders in addition to ebin/. However this creates conflicts because # some modules are duplicated. So instead we ignore warnings from @@ -49,10 +45,6 @@ XREF_IGNORE = [ \ xref: ERL_LIBS := $(ERL_LIBS):$(CURDIR)/apps:$(CURDIR)/deps:$(dir $(shell elixir --eval ':io.format "~s~n", [:code.lib_dir :elixir ]')) endif -ifneq ($(wildcard deps/.hex/cache.erl),) -deps:: restore-hex-cache-ets-file -endif - include rabbitmq-components.mk # Set PROJECT_VERSION, calculated in rabbitmq-components.mk, @@ -76,7 +68,6 @@ endif include erlang.mk include mk/github-actions.mk -include mk/bazel.mk # If PLUGINS was set when we use run-broker we want to # fill in the enabled plugins list. PLUGINS is a more @@ -85,54 +76,6 @@ ifdef PLUGINS RABBITMQ_ENABLED_PLUGINS ?= $(call comma_list,$(PLUGINS)) endif -# -------------------------------------------------------------------- -# Mix Hex cache management. -# -------------------------------------------------------------------- - -# We restore the initial Hex cache.ets file from an Erlang term created -# at the time the source archive was prepared. -# -# See the `$(SOURCE_DIST)` recipe for the reason behind this step. - -restore-hex-cache-ets-file: deps/.hex/cache.ets - -deps/.hex/cache.ets: deps/.hex/cache.erl - $(gen_verbose) $(call erlang,$(call restore_hex_cache_from_erl_term,$<,$@)) - -define restore_hex_cache_from_erl_term - In = "$(1)", - Out = "$(2)", - {ok, [Props, Entries]} = file:consult(In), - Name = proplists:get_value(name, Props), - Type = proplists:get_value(type, Props), - Access = proplists:get_value(protection, Props), - NamedTable = proplists:get_bool(named_table, Props), - Keypos = proplists:get_value(keypos, Props), - Heir = proplists:get_value(heir, Props), - ReadConc = proplists:get_bool(read_concurrency, Props), - WriteConc = proplists:get_bool(write_concurrency, Props), - Compressed = proplists:get_bool(compressed, Props), - Options0 = [ - Type, - Access, - {keypos, Keypos}, - {heir, Heir}, - {read_concurrency, ReadConc}, - {write_concurrency, WriteConc}], - Options1 = case NamedTable of - true -> [named_table | Options0]; - false -> Options0 - end, - Options2 = case Compressed of - true -> [compressed | Options0]; - false -> Options0 - end, - Tab = ets:new(Name, Options2), - [true = ets:insert(Tab, Entry) || Entry <- Entries], - ok = ets:tab2file(Tab, Out), - init:stop(). -endef - # -------------------------------------------------------------------- # Distribution - common variables and generic functions. # -------------------------------------------------------------------- @@ -152,16 +95,10 @@ BASE_RSYNC_FLAGS += -a $(RSYNC_V) \ --exclude '.git*' \ --exclude '.hg*' \ --exclude '.*.plt' \ - --exclude '*.bzl' \ - --exclude '*.bazel' \ - --exclude '*.bazelrc' \ - --exclude 'moduleindex.yaml' \ - --exclude 'BUILD.*' \ --exclude 'erlang_ls.config' \ --exclude '$(notdir $(ERLANG_MK_TMP))' \ --exclude '_build/' \ --exclude '__pycache__/' \ - --exclude 'bazel*/' \ --exclude 'tools/' \ --exclude 'ci/' \ --exclude 'cover/' \ @@ -270,14 +207,6 @@ $(1): $(ERLANG_MK_RECURSIVE_DEPS_LIST) sed -E -i.bak "s|^[[:blank:]]*include[[:blank:]]+\.\./.*erlang.mk$$$$|include ../../erlang.mk|" \ $$@/deps/$$$$(basename $$$$dep)/Makefile && \ rm $$@/deps/$$$$(basename $$$$dep)/Makefile.bak; \ - mix_exs=$$@/deps/$$$$(basename $$$$dep)/mix.exs; \ - if test -f $$$$mix_exs; then \ - (cd $$$$(dirname "$$$$mix_exs") && \ - (test -d $$@/deps/.hex || env DEPS_DIR=$$@/deps MIX_HOME=$$@/deps/.mix HEX_HOME=$$@/deps/.hex MIX_ENV=prod FILL_HEX_CACHE=yes mix local.hex --force) && \ - env DEPS_DIR=$$@/deps MIX_HOME=$$@/deps/.mix HEX_HOME=$$@/deps/.hex MIX_ENV=prod FILL_HEX_CACHE=yes mix deps.get --only prod && \ - cp $(CURDIR)/mk/rabbitmq-mix.mk . && \ - rm -rf _build deps); \ - fi; \ if test -f "$$$$dep/license_info"; then \ cp "$$$$dep/license_info" "$$@/deps/licensing/license_info_$$$$(basename $$$$dep)"; \ cat "$$$$dep/license_info" >> $$@/LICENSE; \ @@ -302,7 +231,6 @@ $(1): $(ERLANG_MK_RECURSIVE_DEPS_LIST) done $${verbose} echo "PLUGINS := $(PLUGINS)" > $$@/plugins.mk $${verbose} sort -r < "$$@.git-times.txt" | head -n 1 > "$$@.git-time.txt" - $${verbose} $$(call erlang,$$(call dump_hex_cache_to_erl_term,$$(call core_native_path,$$@),$$(call core_native_path,$$@.git-time.txt))) $${verbose} find $$@ -print0 | xargs -0 touch -t "$$$$(cat $$@.git-time.txt)" $${verbose} rm "$$@.git-times.txt" "$$@.git-time.txt" @@ -344,47 +272,6 @@ clean-$(1): clean:: clean-$(1) endef -# Mix Hex component requires a cache file, otherwise it refuses to build -# offline... That cache is an ETS table with all the applications we -# depend on, plus some versioning informations and checksums. There -# are two problems with that: the table contains a date (`last_update` -# field) and `ets:tab2file()` produces a different file each time it's -# called. -# -# To make our source archive reproducible, we fix the time of the -# `last_update` field to the last Git commit and dump the content of the -# table as an Erlang term to a text file. -# -# The ETS file must be recreated before compiling RabbitMQ. See the -# `restore-hex-cache-ets-file` Make target. -define dump_hex_cache_to_erl_term - In = "$(1)/deps/.hex/cache.ets", - Out = "$(1)/deps/.hex/cache.erl", - {ok, DateStr} = file:read_file("$(2)"), - {match, Date} = re:run(DateStr, - "^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})\.([0-9]{2})", - [{capture, all_but_first, list}]), - [Year, Month, Day, Hour, Min, Sec] = [erlang:list_to_integer(V) || V <- Date], - {ok, Tab} = ets:file2tab(In), - true = ets:insert(Tab, {last_update, {{Year, Month, Day}, {Hour, Min, Sec}}}), - Props = [ - Prop - || {Key, _} = Prop <- ets:info(Tab), - Key =:= name orelse - Key =:= type orelse - Key =:= protection orelse - Key =:= named_table orelse - Key =:= keypos orelse - Key =:= heir orelse - Key =:= read_concurrency orelse - Key =:= write_concurrency orelse - Key =:= compressed], - Entries = ets:tab2list(Tab), - ok = file:write_file(Out, io_lib:format("~w.~n~w.~n", [Props, Entries])), - ok = file:delete(In), - init:stop(). -endef - # -------------------------------------------------------------------- # Distribution - public targets # -------------------------------------------------------------------- diff --git a/WORKSPACE b/WORKSPACE deleted file mode 100644 index 3bbed84e3656..000000000000 --- a/WORKSPACE +++ /dev/null @@ -1,50 +0,0 @@ -workspace(name = "rabbitmq-server") - -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_repository") -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") - -http_archive( - name = "rules_pkg", - sha256 = "d250924a2ecc5176808fc4c25d5cf5e9e79e6346d79d5ab1c493e289e722d1d0", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.10.1/rules_pkg-0.10.1.tar.gz", - "https://github.com/bazelbuild/rules_pkg/releases/download/0.10.1/rules_pkg-0.10.1.tar.gz", - ], -) - -load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies") - -rules_pkg_dependencies() - -git_repository( - name = "rules_erlang", - remote = "https://github.com/rabbitmq/rules_erlang.git", - tag = "3.15.1", -) - -load("@rules_erlang//:internal_deps.bzl", "rules_erlang_internal_deps") - -rules_erlang_internal_deps() - -load("@rules_erlang//:internal_setup.bzl", "rules_erlang_internal_setup") - -rules_erlang_internal_setup(go_repository_default_config = "//:WORKSPACE") - -load("@rules_erlang//gazelle:deps.bzl", "gazelle_deps") - -gazelle_deps() - -new_git_repository( - name = "bats", - build_file = "@//:BUILD.bats", - remote = "https://github.com/sstephenson/bats", - tag = "v0.4.0", -) - -load("//deps/amqp10_client:activemq.bzl", "activemq_archive") - -activemq_archive() - -load("//bazel/bzlmod:secondary_umbrella.bzl", "secondary_umbrella") - -secondary_umbrella() diff --git a/bazel/BUILD.accept b/bazel/BUILD.accept deleted file mode 100644 index 73696770d994..000000000000 --- a/bazel/BUILD.accept +++ /dev/null @@ -1,102 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/accept_encoding_header.erl", - "src/accept_header.erl", - "src/accept_neg.erl", - "src/accept_parser.erl", - ], - outs = [ - "ebin/accept_encoding_header.beam", - "ebin/accept_header.beam", - "ebin/accept_neg.beam", - "ebin/accept_parser.beam", - ], - hdrs = ["include/accept.hrl"], - app_name = "accept", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/accept.app.src", - "src/accept_encoding_header.erl", - "src/accept_header.erl", - "src/accept_neg.erl", - "src/accept_parser.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = ["include/accept.hrl"], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "accept", - beam_files = [":beam_files"], -) - -alias( - name = "accept", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.amqp b/bazel/BUILD.amqp deleted file mode 100644 index db8b68607714..000000000000 --- a/bazel/BUILD.amqp +++ /dev/null @@ -1,26 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlc_opts") - -filegroup( - name = "sources", - srcs = [ - "mix.exs", - ] + glob([ - "LICENSE*", - "lib/**/*", - ]), - visibility = ["//visibility:public"], -) - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) diff --git a/bazel/BUILD.aten b/bazel/BUILD.aten deleted file mode 100644 index 3c88dc96847a..000000000000 --- a/bazel/BUILD.aten +++ /dev/null @@ -1,118 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/aten.erl", - "src/aten_app.erl", - "src/aten_detect.erl", - "src/aten_detector.erl", - "src/aten_emitter.erl", - "src/aten_sink.erl", - "src/aten_sup.erl", - ], - outs = [ - "ebin/aten.beam", - "ebin/aten_app.beam", - "ebin/aten_detect.beam", - "ebin/aten_detector.beam", - "ebin/aten_emitter.beam", - "ebin/aten_sink.beam", - "ebin/aten_sup.beam", - ], - hdrs = [], - app_name = "aten", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/aten.app.src", - "src/aten.erl", - "src/aten_app.erl", - "src/aten_detect.erl", - "src/aten_detector.erl", - "src/aten_emitter.erl", - "src/aten_sink.erl", - "src/aten_sup.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = [], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL-RabbitMQ", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - app_name = "aten", - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - "sasl", - ], -) - -alias( - name = "aten", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.base64url b/bazel/BUILD.base64url deleted file mode 100644 index c9580eafc623..000000000000 --- a/bazel/BUILD.base64url +++ /dev/null @@ -1,96 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+warn_bif_clash", - "+warn_export_vars", - "+warn_format", - "+warn_obsolete_guard", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+warn_bif_clash", - "+warn_export_vars", - "+warn_format", - "+warn_obsolete_guard", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = ["src/base64url.erl"], - outs = ["ebin/base64url.beam"], - hdrs = [], - app_name = "base64url", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/base64url.app.src", - "src/base64url.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = [], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = ["LICENSE.txt"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - app_name = "base64url", - beam_files = [":beam_files"], -) - -alias( - name = "base64url", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/bazel/BUILD.cowboy b/bazel/BUILD.cowboy deleted file mode 100644 index bd5ec4fb0c85..000000000000 --- a/bazel/BUILD.cowboy +++ /dev/null @@ -1,175 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+warn_export_vars", - "+warn_missing_spec", - "+warn_obsolete_guard", - "+warn_shadow_vars", - "+warn_untyped_record", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+warn_export_vars", - "+warn_missing_spec", - "+warn_obsolete_guard", - "+warn_shadow_vars", - "+warn_untyped_record", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "behaviours", - srcs = [ - "src/cowboy_middleware.erl", - "src/cowboy_stream.erl", - "src/cowboy_sub_protocol.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "cowboy", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/cowboy.erl", - "src/cowboy_app.erl", - "src/cowboy_bstr.erl", - "src/cowboy_children.erl", - "src/cowboy_clear.erl", - "src/cowboy_clock.erl", - "src/cowboy_compress_h.erl", - "src/cowboy_constraints.erl", - "src/cowboy_decompress_h.erl", - "src/cowboy_handler.erl", - "src/cowboy_http.erl", - "src/cowboy_http2.erl", - "src/cowboy_loop.erl", - "src/cowboy_metrics_h.erl", - "src/cowboy_req.erl", - "src/cowboy_rest.erl", - "src/cowboy_router.erl", - "src/cowboy_static.erl", - "src/cowboy_stream_h.erl", - "src/cowboy_sup.erl", - "src/cowboy_tls.erl", - "src/cowboy_tracer_h.erl", - "src/cowboy_websocket.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "cowboy", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "@cowlib//:erlang_app", - "@ranch//:erlang_app", - ], -) - -filegroup( - name = "beam_files", - srcs = [ - ":behaviours", - ":other_beam", - ], -) - -filegroup( - name = "srcs", - srcs = [ - "src/cowboy.erl", - "src/cowboy_app.erl", - "src/cowboy_bstr.erl", - "src/cowboy_children.erl", - "src/cowboy_clear.erl", - "src/cowboy_clock.erl", - "src/cowboy_compress_h.erl", - "src/cowboy_constraints.erl", - "src/cowboy_decompress_h.erl", - "src/cowboy_handler.erl", - "src/cowboy_http.erl", - "src/cowboy_http2.erl", - "src/cowboy_loop.erl", - "src/cowboy_metrics_h.erl", - "src/cowboy_middleware.erl", - "src/cowboy_req.erl", - "src/cowboy_rest.erl", - "src/cowboy_router.erl", - "src/cowboy_static.erl", - "src/cowboy_stream.erl", - "src/cowboy_stream_h.erl", - "src/cowboy_sub_protocol.erl", - "src/cowboy_sup.erl", - "src/cowboy_tls.erl", - "src/cowboy_tracer_h.erl", - "src/cowboy_websocket.erl", - ], -) - -filegroup(name = "private_hdrs") - -filegroup(name = "public_hdrs") - -filegroup(name = "priv") - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = "Small, fast, modern HTTP server.", - app_name = "cowboy", - app_registered = ["cowboy_clock"], - app_version = "2.12.0", - beam_files = [":beam_files"], - extra_apps = ["crypto"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "@cowlib//:erlang_app", - "@ranch//:erlang_app", - ], -) - -alias( - name = "cowboy", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE", - ], -) diff --git a/bazel/BUILD.cowlib b/bazel/BUILD.cowlib deleted file mode 100644 index 130cb5b98bc0..000000000000 --- a/bazel/BUILD.cowlib +++ /dev/null @@ -1,144 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/cow_base64url.erl", - "src/cow_cookie.erl", - "src/cow_date.erl", - "src/cow_hpack.erl", - "src/cow_http.erl", - "src/cow_http2.erl", - "src/cow_http2_machine.erl", - "src/cow_http_hd.erl", - "src/cow_http_struct_hd.erl", - "src/cow_http_te.erl", - "src/cow_iolists.erl", - "src/cow_link.erl", - "src/cow_mimetypes.erl", - "src/cow_multipart.erl", - "src/cow_qs.erl", - "src/cow_spdy.erl", - "src/cow_sse.erl", - "src/cow_uri.erl", - "src/cow_uri_template.erl", - "src/cow_ws.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "cowlib", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/cow_base64url.erl", - "src/cow_cookie.erl", - "src/cow_date.erl", - "src/cow_hpack.erl", - "src/cow_http.erl", - "src/cow_http2.erl", - "src/cow_http2_machine.erl", - "src/cow_http_hd.erl", - "src/cow_http_struct_hd.erl", - "src/cow_http_te.erl", - "src/cow_iolists.erl", - "src/cow_link.erl", - "src/cow_mimetypes.erl", - "src/cow_multipart.erl", - "src/cow_qs.erl", - "src/cow_spdy.erl", - "src/cow_sse.erl", - "src/cow_uri.erl", - "src/cow_uri_template.erl", - "src/cow_ws.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [ - "src/cow_hpack_dec_huffman_lookup.hrl", - "src/cow_spdy.hrl", - ], -) - -filegroup( - name = "public_hdrs", - srcs = [ - "include/cow_inline.hrl", - "include/cow_parse.hrl", - ], -) - -filegroup(name = "priv") - -filegroup( - name = "licenses", - srcs = [ - "LICENSE", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = "Support library for manipulating Web protocols.", - app_name = "cowlib", - app_version = "2.13.0", - beam_files = [":beam_files"], - extra_apps = ["crypto"], - license_files = [":license_files"], - priv = [":priv"], -) - -alias( - name = "cowlib", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE", - ], -) diff --git a/bazel/BUILD.credentials_obfuscation b/bazel/BUILD.credentials_obfuscation deleted file mode 100644 index e3381d99bdc3..000000000000 --- a/bazel/BUILD.credentials_obfuscation +++ /dev/null @@ -1,111 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/credentials_obfuscation.erl", - "src/credentials_obfuscation_app.erl", - "src/credentials_obfuscation_pbe.erl", - "src/credentials_obfuscation_sup.erl", - "src/credentials_obfuscation_svc.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "credentials_obfuscation", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/credentials_obfuscation.app.src", - "src/credentials_obfuscation.erl", - "src/credentials_obfuscation_app.erl", - "src/credentials_obfuscation_pbe.erl", - "src/credentials_obfuscation_sup.erl", - "src/credentials_obfuscation_svc.erl", - ], -) - -filegroup(name = "private_hdrs") - -filegroup( - name = "public_hdrs", - srcs = [ - "include/credentials_obfuscation.hrl", - "include/otp_crypto.hrl", - ], -) - -filegroup(name = "priv") - -filegroup( - name = "licenses", - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL-RabbitMQ", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "credentials_obfuscation", - beam_files = [":beam_files"], - extra_apps = ["crypto"], - license_files = [":license_files"], - priv = [":priv"], -) - -alias( - name = "credentials_obfuscation", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL-RabbitMQ", - ], -) diff --git a/bazel/BUILD.csv b/bazel/BUILD.csv deleted file mode 100644 index db8b68607714..000000000000 --- a/bazel/BUILD.csv +++ /dev/null @@ -1,26 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlc_opts") - -filegroup( - name = "sources", - srcs = [ - "mix.exs", - ] + glob([ - "LICENSE*", - "lib/**/*", - ]), - visibility = ["//visibility:public"], -) - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) diff --git a/bazel/BUILD.ct_helper b/bazel/BUILD.ct_helper deleted file mode 100644 index e0040c36f815..000000000000 --- a/bazel/BUILD.ct_helper +++ /dev/null @@ -1,102 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - testonly = True, - srcs = [ - "src/ct_helper.erl", - "src/ct_helper_error_h.erl" - ], - outs = [ - "ebin/ct_helper.beam", - "ebin/ct_helper_error_h.beam" - ], - app_name = "ct_helper", - 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", - "src/ct_helper_error_h.erl" - ], -) - -filegroup( - name = "private_hdrs", - testonly = True, -) - -filegroup( - name = "public_hdrs", - testonly = True, -) - -filegroup( - name = "priv", - testonly = True, -) - -filegroup( - name = "licenses", - testonly = True, - srcs = [ - "LICENSE", - ], -) - -filegroup( - name = "public_and_private_hdrs", - testonly = True, - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - testonly = True, - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - testonly = True, - srcs = [":all_srcs"], - app_name = "ct_helper", - beam_files = [":beam_files"], -) - -alias( - name = "ct_helper", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.cuttlefish b/bazel/BUILD.cuttlefish deleted file mode 100644 index 220a15d2324c..000000000000 --- a/bazel/BUILD.cuttlefish +++ /dev/null @@ -1,163 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+warn_untyped_record", - "+warnings_as_errors", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+warn_untyped_record", - "+warnings_as_errors", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/conf_parse.erl", - "src/cuttlefish.erl", - "src/cuttlefish_advanced.erl", - "src/cuttlefish_bytesize.erl", - "src/cuttlefish_conf.erl", - "src/cuttlefish_datatypes.erl", - "src/cuttlefish_duration.erl", - "src/cuttlefish_duration_parse.erl", - "src/cuttlefish_effective.erl", - "src/cuttlefish_enum.erl", - "src/cuttlefish_error.erl", - "src/cuttlefish_escript.erl", - "src/cuttlefish_flag.erl", - "src/cuttlefish_generator.erl", - "src/cuttlefish_mapping.erl", - "src/cuttlefish_rebar_plugin.erl", - "src/cuttlefish_schema.erl", - "src/cuttlefish_translation.erl", - "src/cuttlefish_unit.erl", - "src/cuttlefish_util.erl", - "src/cuttlefish_validator.erl", - "src/cuttlefish_variable.erl", - "src/cuttlefish_vmargs.erl", - ], - outs = [ - "ebin/conf_parse.beam", - "ebin/cuttlefish.beam", - "ebin/cuttlefish_advanced.beam", - "ebin/cuttlefish_bytesize.beam", - "ebin/cuttlefish_conf.beam", - "ebin/cuttlefish_datatypes.beam", - "ebin/cuttlefish_duration.beam", - "ebin/cuttlefish_duration_parse.beam", - "ebin/cuttlefish_effective.beam", - "ebin/cuttlefish_enum.beam", - "ebin/cuttlefish_error.beam", - "ebin/cuttlefish_escript.beam", - "ebin/cuttlefish_flag.beam", - "ebin/cuttlefish_generator.beam", - "ebin/cuttlefish_mapping.beam", - "ebin/cuttlefish_rebar_plugin.beam", - "ebin/cuttlefish_schema.beam", - "ebin/cuttlefish_translation.beam", - "ebin/cuttlefish_unit.beam", - "ebin/cuttlefish_util.beam", - "ebin/cuttlefish_validator.beam", - "ebin/cuttlefish_variable.beam", - "ebin/cuttlefish_vmargs.beam", - ], - hdrs = ["src/cuttlefish_duration.hrl"], - app_name = "cuttlefish", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/conf_parse.erl", - "src/cuttlefish.app.src", - "src/cuttlefish.erl", - "src/cuttlefish_advanced.erl", - "src/cuttlefish_bytesize.erl", - "src/cuttlefish_conf.erl", - "src/cuttlefish_datatypes.erl", - "src/cuttlefish_duration.erl", - "src/cuttlefish_duration_parse.erl", - "src/cuttlefish_effective.erl", - "src/cuttlefish_enum.erl", - "src/cuttlefish_error.erl", - "src/cuttlefish_escript.erl", - "src/cuttlefish_flag.erl", - "src/cuttlefish_generator.erl", - "src/cuttlefish_mapping.erl", - "src/cuttlefish_rebar_plugin.erl", - "src/cuttlefish_schema.erl", - "src/cuttlefish_translation.erl", - "src/cuttlefish_unit.erl", - "src/cuttlefish_util.erl", - "src/cuttlefish_validator.erl", - "src/cuttlefish_variable.erl", - "src/cuttlefish_vmargs.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = ["src/cuttlefish_duration.hrl"], -) - -filegroup( - name = "public_hdrs", - srcs = [], -) - -filegroup( - name = "priv", - srcs = ["priv/erlang_vm.schema"], -) - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - app_name = "cuttlefish", - beam_files = [":beam_files"], - deps = ["@getopt//:erlang_app"], -) - -alias( - name = "cuttlefish", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.eetcd b/bazel/BUILD.eetcd deleted file mode 100644 index ee7441a4ca94..000000000000 --- a/bazel/BUILD.eetcd +++ /dev/null @@ -1,198 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/clients/eetcd_auth_gen.erl", - "src/clients/eetcd_cluster_gen.erl", - "src/clients/eetcd_election_gen.erl", - "src/clients/eetcd_health_gen.erl", - "src/clients/eetcd_kv_gen.erl", - "src/clients/eetcd_lease_gen.erl", - "src/clients/eetcd_lock_gen.erl", - "src/clients/eetcd_maintenance_gen.erl", - "src/clients/eetcd_watch_gen.erl", - "src/eetcd.erl", - "src/eetcd_app.erl", - "src/eetcd_auth.erl", - "src/eetcd_cluster.erl", - "src/eetcd_compare.erl", - "src/eetcd_conn.erl", - "src/eetcd_conn_sup.erl", - "src/eetcd_data_coercion.erl", - "src/eetcd_election.erl", - "src/eetcd_grpc.erl", - "src/eetcd_kv.erl", - "src/eetcd_lease.erl", - "src/eetcd_lease_sup.erl", - "src/eetcd_lock.erl", - "src/eetcd_maintenance.erl", - "src/eetcd_op.erl", - "src/eetcd_stream.erl", - "src/eetcd_sup.erl", - "src/eetcd_watch.erl", - "src/protos/auth_pb.erl", - "src/protos/gogo_pb.erl", - "src/protos/health_pb.erl", - "src/protos/kv_pb.erl", - "src/protos/router_pb.erl", - ], - outs = [ - "ebin/auth_pb.beam", - "ebin/eetcd.beam", - "ebin/eetcd_app.beam", - "ebin/eetcd_auth.beam", - "ebin/eetcd_auth_gen.beam", - "ebin/eetcd_cluster.beam", - "ebin/eetcd_cluster_gen.beam", - "ebin/eetcd_compare.beam", - "ebin/eetcd_conn.beam", - "ebin/eetcd_conn_sup.beam", - "ebin/eetcd_data_coercion.beam", - "ebin/eetcd_election.beam", - "ebin/eetcd_election_gen.beam", - "ebin/eetcd_grpc.beam", - "ebin/eetcd_health_gen.beam", - "ebin/eetcd_kv.beam", - "ebin/eetcd_kv_gen.beam", - "ebin/eetcd_lease.beam", - "ebin/eetcd_lease_gen.beam", - "ebin/eetcd_lease_sup.beam", - "ebin/eetcd_lock.beam", - "ebin/eetcd_lock_gen.beam", - "ebin/eetcd_maintenance.beam", - "ebin/eetcd_maintenance_gen.beam", - "ebin/eetcd_op.beam", - "ebin/eetcd_stream.beam", - "ebin/eetcd_sup.beam", - "ebin/eetcd_watch.beam", - "ebin/eetcd_watch_gen.beam", - "ebin/gogo_pb.beam", - "ebin/health_pb.beam", - "ebin/kv_pb.beam", - "ebin/router_pb.beam", - ], - hdrs = [ - "include/eetcd.hrl", - ], - app_name = "eetcd", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/clients/eetcd_auth_gen.erl", - "src/clients/eetcd_cluster_gen.erl", - "src/clients/eetcd_election_gen.erl", - "src/clients/eetcd_health_gen.erl", - "src/clients/eetcd_kv_gen.erl", - "src/clients/eetcd_lease_gen.erl", - "src/clients/eetcd_lock_gen.erl", - "src/clients/eetcd_maintenance_gen.erl", - "src/clients/eetcd_watch_gen.erl", - "src/eetcd.app.src", - "src/eetcd.erl", - "src/eetcd_app.erl", - "src/eetcd_auth.erl", - "src/eetcd_cluster.erl", - "src/eetcd_compare.erl", - "src/eetcd_conn.erl", - "src/eetcd_conn_sup.erl", - "src/eetcd_data_coercion.erl", - "src/eetcd_election.erl", - "src/eetcd_grpc.erl", - "src/eetcd_kv.erl", - "src/eetcd_lease.erl", - "src/eetcd_lease_sup.erl", - "src/eetcd_lock.erl", - "src/eetcd_maintenance.erl", - "src/eetcd_op.erl", - "src/eetcd_stream.erl", - "src/eetcd_sup.erl", - "src/eetcd_watch.erl", - "src/protos/auth_pb.erl", - "src/protos/gogo_pb.erl", - "src/protos/health_pb.erl", - "src/protos/kv_pb.erl", - "src/protos/router_pb.erl", - ], -) - -filegroup(name = "private_hdrs") - -filegroup( - name = "public_hdrs", - srcs = [ - "include/eetcd.hrl", - ], -) - -filegroup( - name = "priv", - srcs = [ - "priv/protos", - "priv/protos/auth.proto", - "priv/protos/gogo.proto", - "priv/protos/kv.proto", - "priv/protos/router.proto", - ], -) - -filegroup( - name = "licenses", - srcs = [ - "LICENSE", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "eetcd", - beam_files = [":beam_files"], - deps = ["@gun//:erlang_app"], -) - -alias( - name = "eetcd", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.emqtt b/bazel/BUILD.emqtt deleted file mode 100644 index e2c2ab025a4e..000000000000 --- a/bazel/BUILD.emqtt +++ /dev/null @@ -1,152 +0,0 @@ -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({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+warn_export_all", - "+warn_obsolete_guard", - "+warn_shadow_vars", - "+warn_unused_import", - "+warn_unused_vars", - "-DBUILD_WITHOUT_QUIC", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+warn_export_all", - "+warn_obsolete_guard", - "+warn_shadow_vars", - "+warn_unused_import", - "+warn_unused_vars", - "-DBUILD_WITHOUT_QUIC", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - testonly = True, - srcs = [ - "src/emqtt.erl", - "src/emqtt_cli.erl", - "src/emqtt_frame.erl", - "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", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "emqtt", - dest = "ebin", - 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", - "src/emqtt_cli.erl", - "src/emqtt_frame.erl", - "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", - ], -) - -filegroup( - name = "private_hdrs", - testonly = True, - srcs = glob(["src/**/*.hrl"]), -) - -filegroup( - name = "public_hdrs", - testonly = True, - srcs = [ - "include/emqtt.hrl", - "include/logger.hrl", - ], -) - -filegroup( - name = "priv", - testonly = True, - srcs = glob(["priv/**/*"]), -) - -filegroup( - name = "licenses", - testonly = True, - srcs = [ - "LICENSE", - ], -) - -filegroup( - name = "public_and_private_hdrs", - testonly = True, - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - testonly = True, - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - testonly = True, - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "emqtt", - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "@cowlib//:erlang_app", - "@getopt//:erlang_app", - "@gun//:erlang_app", - ], -) - -alias( - name = "emqtt", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - testonly = True, - srcs = glob(["LICENSE*"]), -) diff --git a/bazel/BUILD.enough b/bazel/BUILD.enough deleted file mode 100644 index 58a1037f3857..000000000000 --- a/bazel/BUILD.enough +++ /dev/null @@ -1,88 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = ["src/enough.erl"], - outs = ["ebin/enough.beam"], - hdrs = ["src/enough.hrl"], - app_name = "enough", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/enough.app.src", - "src/enough.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = ["src/enough.hrl"], -) - -filegroup( - name = "public_hdrs", - srcs = [], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - app_name = "enough", - beam_files = [":beam_files"], -) - -alias( - name = "enough", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.ex_doc b/bazel/BUILD.ex_doc deleted file mode 100644 index ad2e97bb0bd2..000000000000 --- a/bazel/BUILD.ex_doc +++ /dev/null @@ -1,10 +0,0 @@ -filegroup( - name = "sources", - srcs = [ - "mix.exs", - ] + glob([ - "LICENSE*", - "lib/**/*", - ]), - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.gen_batch_server b/bazel/BUILD.gen_batch_server deleted file mode 100644 index 342e93edb74d..000000000000 --- a/bazel/BUILD.gen_batch_server +++ /dev/null @@ -1,100 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+recv_opt_info", - "+warn_export_vars", - "+warn_obsolete_guard", - "+warn_shadow_vars", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+recv_opt_info", - "+warn_export_vars", - "+warn_obsolete_guard", - "+warn_shadow_vars", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = ["src/gen_batch_server.erl"], - outs = ["ebin/gen_batch_server.beam"], - hdrs = [], - app_name = "gen_batch_server", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/gen_batch_server.app.src", - "src/gen_batch_server.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = [], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL-RabbitMQ", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - app_name = "gen_batch_server", - beam_files = [":beam_files"], -) - -alias( - name = "gen_batch_server", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.getopt b/bazel/BUILD.getopt deleted file mode 100644 index 820955c3e34d..000000000000 --- a/bazel/BUILD.getopt +++ /dev/null @@ -1,116 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+strict_validation", - "+warn_bif_clash", - "+warn_deprecated_function", - "+warn_export_all", - "+warn_export_vars", - "+warn_exported_vars", - "+warn_missing_spec", - "+warn_obsolete_guard", - "+warn_shadow_vars", - "+warn_untyped_record", - "+warn_unused_function", - "+warn_unused_import", - "+warn_unused_record", - "+warn_unused_vars", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+strict_validation", - "+warn_bif_clash", - "+warn_deprecated_function", - "+warn_export_all", - "+warn_export_vars", - "+warn_exported_vars", - "+warn_missing_spec", - "+warn_obsolete_guard", - "+warn_shadow_vars", - "+warn_untyped_record", - "+warn_unused_function", - "+warn_unused_import", - "+warn_unused_record", - "+warn_unused_vars", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = ["src/getopt.erl"], - outs = ["ebin/getopt.beam"], - hdrs = [], - app_name = "getopt", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/getopt.app.src", - "src/getopt.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = [], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = ["LICENSE.txt"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - app_name = "getopt", - beam_files = [":beam_files"], -) - -alias( - name = "getopt", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.gun b/bazel/BUILD.gun deleted file mode 100644 index 500c6e5ad35b..000000000000 --- a/bazel/BUILD.gun +++ /dev/null @@ -1,143 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+warn_export_vars", - "+warn_obsolete_guard", - "+warn_shadow_vars", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+warn_export_vars", - "+warn_obsolete_guard", - "+warn_shadow_vars", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "behaviours", - srcs = ["src/gun_content_handler.erl"], - outs = ["ebin/gun_content_handler.beam"], - hdrs = [], - app_name = "gun", - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/gun.erl", - "src/gun_app.erl", - "src/gun_data_h.erl", - "src/gun_http.erl", - "src/gun_http2.erl", - "src/gun_sse_h.erl", - "src/gun_sup.erl", - "src/gun_tcp.erl", - "src/gun_tls.erl", - "src/gun_ws.erl", - "src/gun_ws_h.erl", - ], - outs = [ - "ebin/gun.beam", - "ebin/gun_app.beam", - "ebin/gun_data_h.beam", - "ebin/gun_http.beam", - "ebin/gun_http2.beam", - "ebin/gun_sse_h.beam", - "ebin/gun_sup.beam", - "ebin/gun_tcp.beam", - "ebin/gun_tls.beam", - "ebin/gun_ws.beam", - "ebin/gun_ws_h.beam", - ], - hdrs = [], - app_name = "gun", - beam = [":behaviours"], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [ - ":behaviours", - ":other_beam", - ], -) - -filegroup( - name = "srcs", - srcs = [ - "src/gun.app.src", - "src/gun.erl", - "src/gun_app.erl", - "src/gun_content_handler.erl", - "src/gun_data_h.erl", - "src/gun_http.erl", - "src/gun_http2.erl", - "src/gun_sse_h.erl", - "src/gun_sup.erl", - "src/gun_tcp.erl", - "src/gun_tls.erl", - "src/gun_ws.erl", - "src/gun_ws_h.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = [], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - app_name = "gun", - beam_files = [":beam_files"], - extra_apps = ["ssl"], - deps = ["@cowlib//:erlang_app"], -) - -alias( - name = "gun", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.horus b/bazel/BUILD.horus deleted file mode 100644 index e2fdb55e03eb..000000000000 --- a/bazel/BUILD.horus +++ /dev/null @@ -1,115 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+warn_export_vars", - "+warnings_as_errors", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+warn_export_vars", - "+warnings_as_errors", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/horus.erl", - "src/horus_cover.erl", - "src/horus_utils.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "horus", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/horus.app.src", - "src/horus.erl", - "src/horus_cover.erl", - "src/horus_utils.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [ - "src/horus_cover.hrl", - "src/horus_error.hrl", - "src/horus_fun.hrl", - ], -) - -filegroup( - name = "public_hdrs", - srcs = [ - "include/horus.hrl", - ], -) - -filegroup( - name = "priv", - srcs = [ - "priv/horus_cover_helper.erl", - ], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE-Apache-2.0", - "LICENSE-MPL-2.0", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "horus", - beam_files = [":beam_files"], - extra_apps = [ - "compiler", - "tools", - ], - license_files = [":license_files"], - priv = [":priv"], -) - -alias( - name = "horus", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.jose b/bazel/BUILD.jose deleted file mode 100644 index 50bca8223f68..000000000000 --- a/bazel/BUILD.jose +++ /dev/null @@ -1,367 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "parse_transforms", - srcs = ["src/base/jose_base.erl"], - outs = ["ebin/jose_base.beam"], - hdrs = [ - "include/jose.hrl", - "include/jose_base.hrl", - "include/jose_compat.hrl", - "include/jose_jwe.hrl", - "include/jose_jwk.hrl", - "include/jose_jws.hrl", - "include/jose_jwt.hrl", - "include/jose_public_key.hrl", - ], - app_name = "jose", - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "behaviours", - srcs = [ - "src/jose_block_encryptor.erl", - "src/json/jose_json.erl", - "src/jwa/chacha20_poly1305/jose_chacha20_poly1305.erl", - "src/jwa/curve25519/jose_curve25519.erl", - "src/jwa/curve448/jose_curve448.erl", - "src/jwa/sha3/jose_sha3.erl", - "src/jwa/xchacha20_poly1305/jose_xchacha20_poly1305.erl", - "src/jwe/jose_jwe.erl", - "src/jwe/jose_jwe_alg.erl", - "src/jwe/jose_jwe_enc.erl", - "src/jwk/jose_jwk.erl", - "src/jwk/jose_jwk_kty.erl", - "src/jwk/jose_jwk_oct.erl", - "src/jwk/jose_jwk_use_enc.erl", - "src/jwk/jose_jwk_use_sig.erl", - "src/jws/jose_jws.erl", - "src/jws/jose_jws_alg.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "jose", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/base/jose_base64.erl", - "src/base/jose_base64url.erl", - "src/jose.erl", - "src/jose_app.erl", - "src/jose_crypto_compat.erl", - "src/jose_public_key.erl", - "src/jose_server.erl", - "src/jose_sup.erl", - "src/json/jose_json_jason.erl", - "src/json/jose_json_jiffy.erl", - "src/json/jose_json_jsone.erl", - "src/json/jose_json_jsx.erl", - "src/json/jose_json_ojson.erl", - "src/json/jose_json_poison.erl", - "src/json/jose_json_poison_compat_encoder.erl", - "src/json/jose_json_poison_lexical_encoder.erl", - "src/json/jose_json_thoas.erl", - "src/json/jose_json_unsupported.erl", - "src/jwa/chacha20_poly1305/jose_chacha20_poly1305_crypto.erl", - "src/jwa/chacha20_poly1305/jose_chacha20_poly1305_libsodium.erl", - "src/jwa/chacha20_poly1305/jose_chacha20_poly1305_unsupported.erl", - "src/jwa/curve25519/jose_curve25519_crypto.erl", - "src/jwa/curve25519/jose_curve25519_fallback.erl", - "src/jwa/curve25519/jose_curve25519_libdecaf.erl", - "src/jwa/curve25519/jose_curve25519_libsodium.erl", - "src/jwa/curve25519/jose_curve25519_unsupported.erl", - "src/jwa/curve448/jose_curve448_crypto.erl", - "src/jwa/curve448/jose_curve448_fallback.erl", - "src/jwa/curve448/jose_curve448_libdecaf.erl", - "src/jwa/curve448/jose_curve448_unsupported.erl", - "src/jwa/jose_jwa.erl", - "src/jwa/jose_jwa_aes.erl", - "src/jwa/jose_jwa_aes_kw.erl", - "src/jwa/jose_jwa_base64url.erl", - "src/jwa/jose_jwa_bench.erl", - "src/jwa/jose_jwa_chacha20.erl", - "src/jwa/jose_jwa_chacha20_poly1305.erl", - "src/jwa/jose_jwa_concat_kdf.erl", - "src/jwa/jose_jwa_curve25519.erl", - "src/jwa/jose_jwa_curve448.erl", - "src/jwa/jose_jwa_ed25519.erl", - "src/jwa/jose_jwa_ed448.erl", - "src/jwa/jose_jwa_hchacha20.erl", - "src/jwa/jose_jwa_math.erl", - "src/jwa/jose_jwa_pkcs1.erl", - "src/jwa/jose_jwa_pkcs5.erl", - "src/jwa/jose_jwa_pkcs7.erl", - "src/jwa/jose_jwa_poly1305.erl", - "src/jwa/jose_jwa_sha3.erl", - "src/jwa/jose_jwa_unsupported.erl", - "src/jwa/jose_jwa_x25519.erl", - "src/jwa/jose_jwa_x448.erl", - "src/jwa/jose_jwa_xchacha20.erl", - "src/jwa/jose_jwa_xchacha20_poly1305.erl", - "src/jwa/sha3/jose_sha3_keccakf1600_driver.erl", - "src/jwa/sha3/jose_sha3_keccakf1600_nif.erl", - "src/jwa/sha3/jose_sha3_libdecaf.erl", - "src/jwa/sha3/jose_sha3_unsupported.erl", - "src/jwa/xchacha20_poly1305/jose_xchacha20_poly1305_crypto.erl", - "src/jwa/xchacha20_poly1305/jose_xchacha20_poly1305_libsodium.erl", - "src/jwa/xchacha20_poly1305/jose_xchacha20_poly1305_unsupported.erl", - "src/jwe/jose_jwe_alg_aes_kw.erl", - "src/jwe/jose_jwe_alg_c20p_kw.erl", - "src/jwe/jose_jwe_alg_dir.erl", - "src/jwe/jose_jwe_alg_ecdh_1pu.erl", - "src/jwe/jose_jwe_alg_ecdh_es.erl", - "src/jwe/jose_jwe_alg_ecdh_ss.erl", - "src/jwe/jose_jwe_alg_pbes2.erl", - "src/jwe/jose_jwe_alg_rsa.erl", - "src/jwe/jose_jwe_alg_xc20p_kw.erl", - "src/jwe/jose_jwe_enc_aes.erl", - "src/jwe/jose_jwe_enc_c20p.erl", - "src/jwe/jose_jwe_enc_xc20p.erl", - "src/jwe/jose_jwe_zip.erl", - "src/jwk/jose_jwk_der.erl", - "src/jwk/jose_jwk_kty_ec.erl", - "src/jwk/jose_jwk_kty_oct.erl", - "src/jwk/jose_jwk_kty_okp_ed25519.erl", - "src/jwk/jose_jwk_kty_okp_ed25519ph.erl", - "src/jwk/jose_jwk_kty_okp_ed448.erl", - "src/jwk/jose_jwk_kty_okp_ed448ph.erl", - "src/jwk/jose_jwk_kty_okp_x25519.erl", - "src/jwk/jose_jwk_kty_okp_x448.erl", - "src/jwk/jose_jwk_kty_rsa.erl", - "src/jwk/jose_jwk_openssh_key.erl", - "src/jwk/jose_jwk_pem.erl", - "src/jwk/jose_jwk_set.erl", - "src/jws/jose_jws_alg_ecdsa.erl", - "src/jws/jose_jws_alg_eddsa.erl", - "src/jws/jose_jws_alg_hmac.erl", - "src/jws/jose_jws_alg_none.erl", - "src/jws/jose_jws_alg_poly1305.erl", - "src/jws/jose_jws_alg_rsa_pkcs1_v1_5.erl", - "src/jws/jose_jws_alg_rsa_pss.erl", - "src/jwt/jose_jwt.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "jose", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [ - ":behaviours", - ":other_beam", - ], -) - -filegroup( - name = "srcs", - srcs = [ - "src/base/jose_base64.erl", - "src/base/jose_base64url.erl", - "src/jose.app.src", - "src/jose.erl", - "src/jose_app.erl", - "src/jose_block_encryptor.erl", - "src/jose_crypto_compat.erl", - "src/jose_public_key.erl", - "src/jose_server.erl", - "src/jose_sup.erl", - "src/json/jose_json.erl", - "src/json/jose_json_jason.erl", - "src/json/jose_json_jiffy.erl", - "src/json/jose_json_jsone.erl", - "src/json/jose_json_jsx.erl", - "src/json/jose_json_ojson.erl", - "src/json/jose_json_poison.erl", - "src/json/jose_json_poison_compat_encoder.erl", - "src/json/jose_json_poison_lexical_encoder.erl", - "src/json/jose_json_thoas.erl", - "src/json/jose_json_unsupported.erl", - "src/jwa/chacha20_poly1305/jose_chacha20_poly1305.erl", - "src/jwa/chacha20_poly1305/jose_chacha20_poly1305_crypto.erl", - "src/jwa/chacha20_poly1305/jose_chacha20_poly1305_libsodium.erl", - "src/jwa/chacha20_poly1305/jose_chacha20_poly1305_unsupported.erl", - "src/jwa/curve25519/jose_curve25519.erl", - "src/jwa/curve25519/jose_curve25519_crypto.erl", - "src/jwa/curve25519/jose_curve25519_fallback.erl", - "src/jwa/curve25519/jose_curve25519_libdecaf.erl", - "src/jwa/curve25519/jose_curve25519_libsodium.erl", - "src/jwa/curve25519/jose_curve25519_unsupported.erl", - "src/jwa/curve448/jose_curve448.erl", - "src/jwa/curve448/jose_curve448_crypto.erl", - "src/jwa/curve448/jose_curve448_fallback.erl", - "src/jwa/curve448/jose_curve448_libdecaf.erl", - "src/jwa/curve448/jose_curve448_unsupported.erl", - "src/jwa/jose_jwa.erl", - "src/jwa/jose_jwa_aes.erl", - "src/jwa/jose_jwa_aes_kw.erl", - "src/jwa/jose_jwa_base64url.erl", - "src/jwa/jose_jwa_bench.erl", - "src/jwa/jose_jwa_chacha20.erl", - "src/jwa/jose_jwa_chacha20_poly1305.erl", - "src/jwa/jose_jwa_concat_kdf.erl", - "src/jwa/jose_jwa_curve25519.erl", - "src/jwa/jose_jwa_curve448.erl", - "src/jwa/jose_jwa_ed25519.erl", - "src/jwa/jose_jwa_ed448.erl", - "src/jwa/jose_jwa_hchacha20.erl", - "src/jwa/jose_jwa_math.erl", - "src/jwa/jose_jwa_pkcs1.erl", - "src/jwa/jose_jwa_pkcs5.erl", - "src/jwa/jose_jwa_pkcs7.erl", - "src/jwa/jose_jwa_poly1305.erl", - "src/jwa/jose_jwa_sha3.erl", - "src/jwa/jose_jwa_unsupported.erl", - "src/jwa/jose_jwa_x25519.erl", - "src/jwa/jose_jwa_x448.erl", - "src/jwa/jose_jwa_xchacha20.erl", - "src/jwa/jose_jwa_xchacha20_poly1305.erl", - "src/jwa/sha3/jose_sha3.erl", - "src/jwa/sha3/jose_sha3_keccakf1600_driver.erl", - "src/jwa/sha3/jose_sha3_keccakf1600_nif.erl", - "src/jwa/sha3/jose_sha3_libdecaf.erl", - "src/jwa/sha3/jose_sha3_unsupported.erl", - "src/jwa/xchacha20_poly1305/jose_xchacha20_poly1305.erl", - "src/jwa/xchacha20_poly1305/jose_xchacha20_poly1305_crypto.erl", - "src/jwa/xchacha20_poly1305/jose_xchacha20_poly1305_libsodium.erl", - "src/jwa/xchacha20_poly1305/jose_xchacha20_poly1305_unsupported.erl", - "src/jwe/jose_jwe.erl", - "src/jwe/jose_jwe_alg.erl", - "src/jwe/jose_jwe_alg_aes_kw.erl", - "src/jwe/jose_jwe_alg_c20p_kw.erl", - "src/jwe/jose_jwe_alg_dir.erl", - "src/jwe/jose_jwe_alg_ecdh_1pu.erl", - "src/jwe/jose_jwe_alg_ecdh_es.erl", - "src/jwe/jose_jwe_alg_ecdh_ss.erl", - "src/jwe/jose_jwe_alg_pbes2.erl", - "src/jwe/jose_jwe_alg_rsa.erl", - "src/jwe/jose_jwe_alg_xc20p_kw.erl", - "src/jwe/jose_jwe_enc.erl", - "src/jwe/jose_jwe_enc_aes.erl", - "src/jwe/jose_jwe_enc_c20p.erl", - "src/jwe/jose_jwe_enc_xc20p.erl", - "src/jwe/jose_jwe_zip.erl", - "src/jwk/jose_jwk.erl", - "src/jwk/jose_jwk_der.erl", - "src/jwk/jose_jwk_kty.erl", - "src/jwk/jose_jwk_kty_ec.erl", - "src/jwk/jose_jwk_kty_oct.erl", - "src/jwk/jose_jwk_kty_okp_ed25519.erl", - "src/jwk/jose_jwk_kty_okp_ed25519ph.erl", - "src/jwk/jose_jwk_kty_okp_ed448.erl", - "src/jwk/jose_jwk_kty_okp_ed448ph.erl", - "src/jwk/jose_jwk_kty_okp_x25519.erl", - "src/jwk/jose_jwk_kty_okp_x448.erl", - "src/jwk/jose_jwk_kty_rsa.erl", - "src/jwk/jose_jwk_oct.erl", - "src/jwk/jose_jwk_openssh_key.erl", - "src/jwk/jose_jwk_pem.erl", - "src/jwk/jose_jwk_set.erl", - "src/jwk/jose_jwk_use_enc.erl", - "src/jwk/jose_jwk_use_sig.erl", - "src/jws/jose_jws.erl", - "src/jws/jose_jws_alg.erl", - "src/jws/jose_jws_alg_ecdsa.erl", - "src/jws/jose_jws_alg_eddsa.erl", - "src/jws/jose_jws_alg_hmac.erl", - "src/jws/jose_jws_alg_none.erl", - "src/jws/jose_jws_alg_poly1305.erl", - "src/jws/jose_jws_alg_rsa_pkcs1_v1_5.erl", - "src/jws/jose_jws_alg_rsa_pss.erl", - "src/jwt/jose_jwt.erl", - ], -) - -filegroup(name = "private_hdrs") - -filegroup( - name = "public_hdrs", - srcs = [ - "include/jose.hrl", - "include/jose_base.hrl", - "include/jose_compat.hrl", - "include/jose_jwe.hrl", - "include/jose_jwk.hrl", - "include/jose_jws.hrl", - "include/jose_jwt.hrl", - "include/jose_public_key.hrl", - ], -) - -filegroup( - name = "priv", - srcs = [ - "priv/.keep", - ], -) - -filegroup( - name = "licenses", - srcs = ["LICENSE.md"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "jose", - beam_files = [":beam_files"], - extra_apps = [ - "asn1", - "crypto", - "public_key", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = ["@thoas//:erlang_app"], -) - -alias( - name = "jose", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE.md", - ], -) diff --git a/bazel/BUILD.json b/bazel/BUILD.json deleted file mode 100644 index ad2e97bb0bd2..000000000000 --- a/bazel/BUILD.json +++ /dev/null @@ -1,10 +0,0 @@ -filegroup( - name = "sources", - srcs = [ - "mix.exs", - ] + glob([ - "LICENSE*", - "lib/**/*", - ]), - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.khepri b/bazel/BUILD.khepri deleted file mode 100644 index 1e4c6a294d8b..000000000000 --- a/bazel/BUILD.khepri +++ /dev/null @@ -1,182 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+warn_export_vars", - "+warnings_as_errors", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+warn_export_vars", - "+warnings_as_errors", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "behaviours", - srcs = [ - "src/khepri_import_export.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "khepri", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [ - ":behaviours", - ":other_beam", - ], -) - -filegroup( - name = "srcs", - srcs = [ - "src/khepri.app.src", - "src/khepri.erl", - "src/khepri_adv.erl", - "src/khepri_app.erl", - "src/khepri_cluster.erl", - "src/khepri_condition.erl", - "src/khepri_event_handler.erl", - "src/khepri_evf.erl", - "src/khepri_export_erlang.erl", - "src/khepri_import_export.erl", - "src/khepri_machine.erl", - "src/khepri_machine_v0.erl", - "src/khepri_path.erl", - "src/khepri_pattern_tree.erl", - "src/khepri_payload.erl", - "src/khepri_projection.erl", - "src/khepri_sproc.erl", - "src/khepri_sup.erl", - "src/khepri_tree.erl", - "src/khepri_tx.erl", - "src/khepri_tx_adv.erl", - "src/khepri_utils.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [ - "src/khepri_bang.hrl", - "src/khepri_cluster.hrl", - "src/khepri_error.hrl", - "src/khepri_evf.hrl", - "src/khepri_machine.hrl", - "src/khepri_payload.hrl", - "src/khepri_projection.hrl", - "src/khepri_ret.hrl", - "src/khepri_tree.hrl", - "src/khepri_tx.hrl", - ], -) - -filegroup( - name = "public_hdrs", - srcs = [ - "include/khepri.hrl", - ], -) - -filegroup(name = "priv") - -filegroup( - name = "licenses", - srcs = [ - "LICENSE-Apache-2.0", - "LICENSE-MPL-2.0", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "khepri", - beam_files = [":beam_files"], - extra_apps = ["compiler"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "@horus//:erlang_app", - "@ra//:erlang_app", - "@seshat//:erlang_app", - ], -) - -alias( - name = "khepri", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/khepri.erl", - "src/khepri_adv.erl", - "src/khepri_app.erl", - "src/khepri_cluster.erl", - "src/khepri_condition.erl", - "src/khepri_event_handler.erl", - "src/khepri_evf.erl", - "src/khepri_export_erlang.erl", - "src/khepri_machine.erl", - "src/khepri_machine_v0.erl", - "src/khepri_path.erl", - "src/khepri_pattern_tree.erl", - "src/khepri_payload.erl", - "src/khepri_projection.erl", - "src/khepri_sproc.erl", - "src/khepri_sup.erl", - "src/khepri_tree.erl", - "src/khepri_tx.erl", - "src/khepri_tx_adv.erl", - "src/khepri_utils.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "khepri", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "@horus//:erlang_app", - "@ra//:erlang_app", - "@seshat//:erlang_app", - ], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE-Apache-2.0", - "LICENSE-MPL-2.0", - ], -) diff --git a/bazel/BUILD.khepri_mnesia_migration b/bazel/BUILD.khepri_mnesia_migration deleted file mode 100644 index b01afc3951c6..000000000000 --- a/bazel/BUILD.khepri_mnesia_migration +++ /dev/null @@ -1,146 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+warn_export_vars", - "+warnings_as_errors", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+warn_export_vars", - "+warnings_as_errors", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/khepri_mnesia_migration_app.erl", - "src/khepri_mnesia_migration_sup.erl", - "src/kmm_utils.erl", - "src/m2k_cluster_sync.erl", - "src/m2k_cluster_sync_sup.erl", - "src/m2k_export.erl", - "src/m2k_subscriber.erl", - "src/m2k_table_copy.erl", - "src/m2k_table_copy_sup.erl", - "src/m2k_table_copy_sup_sup.erl", - "src/mnesia_to_khepri.erl", - "src/mnesia_to_khepri_example_converter.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "khepri_mnesia_migration", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["@khepri//:erlang_app"], -) - -filegroup( - name = "beam_files", - srcs = [ - ":behaviours", - ":other_beam", - ], -) - -filegroup( - name = "srcs", - srcs = [ - "src/khepri_mnesia_migration.app.src", - "src/khepri_mnesia_migration_app.erl", - "src/khepri_mnesia_migration_sup.erl", - "src/kmm_utils.erl", - "src/m2k_cluster_sync.erl", - "src/m2k_cluster_sync_sup.erl", - "src/m2k_export.erl", - "src/m2k_subscriber.erl", - "src/m2k_table_copy.erl", - "src/m2k_table_copy_sup.erl", - "src/m2k_table_copy_sup_sup.erl", - "src/mnesia_to_khepri.erl", - "src/mnesia_to_khepri_example_converter.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [ - "src/kmm_error.hrl", - # "src/kmm_logging.hrl", # keep - ], -) - -filegroup( - name = "public_hdrs", - srcs = ["src/kmm_logging.hrl"] + glob(["include/**/*.hrl"]), # keep -) - -filegroup( - name = "priv", - srcs = glob(["priv/**/*"]), -) - -filegroup( - name = "licenses", - srcs = [ - "LICENSE-Apache-2.0", - "LICENSE-MPL-2.0", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "khepri_mnesia_migration", - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = ["@khepri//:erlang_app"], -) - -alias( - name = "khepri_mnesia_migration", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -erlang_bytecode( - name = "behaviours", - srcs = [ - "src/mnesia_to_khepri_converter.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "khepri_mnesia_migration", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "license_files", - srcs = glob(["LICENSE*"]), -) diff --git a/bazel/BUILD.meck b/bazel/BUILD.meck deleted file mode 100644 index 885c1f8af400..000000000000 --- a/bazel/BUILD.meck +++ /dev/null @@ -1,139 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - testonly = True, - srcs = [ - "src/meck.erl", - "src/meck_args_matcher.erl", - "src/meck_code.erl", - "src/meck_code_gen.erl", - "src/meck_cover.erl", - "src/meck_expect.erl", - "src/meck_history.erl", - "src/meck_matcher.erl", - "src/meck_proc.erl", - "src/meck_ret_spec.erl", - "src/meck_util.erl", - ], - outs = [ - "ebin/meck.beam", - "ebin/meck_args_matcher.beam", - "ebin/meck_code.beam", - "ebin/meck_code_gen.beam", - "ebin/meck_cover.beam", - "ebin/meck_expect.beam", - "ebin/meck_history.beam", - "ebin/meck_matcher.beam", - "ebin/meck_proc.beam", - "ebin/meck_ret_spec.beam", - "ebin/meck_util.beam", - ], - hdrs = [ - "src/meck.hrl", - ], - app_name = "meck", - 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", - "src/meck_args_matcher.erl", - "src/meck_code.erl", - "src/meck_code_gen.erl", - "src/meck_cover.erl", - "src/meck_expect.erl", - "src/meck_history.erl", - "src/meck_matcher.erl", - "src/meck_proc.erl", - "src/meck_ret_spec.erl", - "src/meck_util.erl", - ], -) - -filegroup( - name = "private_hdrs", - testonly = True, - srcs = [ - "src/meck.hrl", - ], -) - -filegroup( - name = "public_hdrs", - testonly = True, -) - -filegroup( - name = "priv", - testonly = True, -) - -filegroup( - name = "licenses", - testonly = True, - srcs = [ - "LICENSE", - ], -) - -filegroup( - name = "public_and_private_hdrs", - testonly = True, - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - testonly = True, - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - testonly = True, - srcs = [":all_srcs"], - app_name = "meck", - beam_files = [":beam_files"], - extra_apps = [ - "compiler", - "tools", - ], -) - -alias( - name = "meck", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.observer_cli b/bazel/BUILD.observer_cli deleted file mode 100644 index 7c77f4de96ae..000000000000 --- a/bazel/BUILD.observer_cli +++ /dev/null @@ -1,158 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+strict_validation", - "+warn_bif_clash", - "+warn_deprecated_function", - "+warn_export_all", - "+warn_export_vars", - "+warn_exported_vars", - "+warn_missing_spec", - "+warn_obsolete_guard", - "+warn_shadow_vars", - "+warn_untyped_record", - "+warn_unused_function", - "+warn_unused_import", - "+warn_unused_record", - "+warn_unused_vars", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+strict_validation", - "+warn_bif_clash", - "+warn_deprecated_function", - "+warn_export_all", - "+warn_export_vars", - "+warn_exported_vars", - "+warn_missing_spec", - "+warn_obsolete_guard", - "+warn_shadow_vars", - "+warn_untyped_record", - "+warn_unused_function", - "+warn_unused_import", - "+warn_unused_record", - "+warn_unused_vars", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/observer_cli.erl", - "src/observer_cli_application.erl", - "src/observer_cli_escriptize.erl", - "src/observer_cli_ets.erl", - "src/observer_cli_help.erl", - "src/observer_cli_inet.erl", - "src/observer_cli_lib.erl", - "src/observer_cli_mnesia.erl", - "src/observer_cli_plugin.erl", - "src/observer_cli_port.erl", - "src/observer_cli_process.erl", - "src/observer_cli_store.erl", - "src/observer_cli_system.erl", - ], - outs = [ - "ebin/observer_cli.beam", - "ebin/observer_cli_application.beam", - "ebin/observer_cli_escriptize.beam", - "ebin/observer_cli_ets.beam", - "ebin/observer_cli_help.beam", - "ebin/observer_cli_inet.beam", - "ebin/observer_cli_lib.beam", - "ebin/observer_cli_mnesia.beam", - "ebin/observer_cli_plugin.beam", - "ebin/observer_cli_port.beam", - "ebin/observer_cli_process.beam", - "ebin/observer_cli_store.beam", - "ebin/observer_cli_system.beam", - ], - hdrs = ["include/observer_cli.hrl"], - app_name = "observer_cli", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/observer_cli.app.src", - "src/observer_cli.erl", - "src/observer_cli_application.erl", - "src/observer_cli_escriptize.erl", - "src/observer_cli_ets.erl", - "src/observer_cli_help.erl", - "src/observer_cli_inet.erl", - "src/observer_cli_lib.erl", - "src/observer_cli_mnesia.erl", - "src/observer_cli_plugin.erl", - "src/observer_cli_port.erl", - "src/observer_cli_process.erl", - "src/observer_cli_store.erl", - "src/observer_cli_system.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = ["include/observer_cli.hrl"], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "observer_cli", - beam_files = [":beam_files"], - deps = ["@recon//:erlang_app"], -) - -alias( - name = "observer_cli", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.prometheus b/bazel/BUILD.prometheus deleted file mode 100644 index 06b4e8a627ee..000000000000 --- a/bazel/BUILD.prometheus +++ /dev/null @@ -1,231 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+strict_validation", - "+warn_bif_clash", - "+warn_deprecated_function", - "+warn_export_all", - "+warn_export_vars", - "+warn_exported_vars", - "+warn_obsolete_guard", - "+warn_shadow_vars", - "+warn_unused_function", - "+warn_unused_import", - "+warn_unused_record", - "+warn_unused_vars", - "+warnings_as_errors", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+strict_validation", - "+warn_bif_clash", - "+warn_deprecated_function", - "+warn_export_all", - "+warn_export_vars", - "+warn_exported_vars", - "+warn_obsolete_guard", - "+warn_shadow_vars", - "+warn_unused_function", - "+warn_unused_import", - "+warn_unused_record", - "+warn_unused_vars", - "+warnings_as_errors", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "behaviours", - srcs = [ - "src/prometheus_collector.erl", - "src/prometheus_format.erl", - "src/prometheus_instrumenter.erl", - "src/prometheus_metric.erl", - ], - outs = [ - "ebin/prometheus_collector.beam", - "ebin/prometheus_format.beam", - "ebin/prometheus_instrumenter.beam", - "ebin/prometheus_metric.beam", - ], - hdrs = [ - "include/prometheus.hrl", - "include/prometheus_model.hrl", - ], - app_name = "prometheus", - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/collectors/mnesia/prometheus_mnesia_collector.erl", - "src/collectors/vm/prometheus_vm_dist_collector.erl", - "src/collectors/vm/prometheus_vm_memory_collector.erl", - "src/collectors/vm/prometheus_vm_msacc_collector.erl", - "src/collectors/vm/prometheus_vm_statistics_collector.erl", - "src/collectors/vm/prometheus_vm_system_info_collector.erl", - "src/contrib/prometheus_http.erl", - "src/contrib/prometheus_mnesia.erl", - "src/contrib/prometheus_test_instrumenter.erl", - "src/formats/prometheus_protobuf_format.erl", - "src/formats/prometheus_text_format.erl", - "src/metrics/prometheus_boolean.erl", - "src/metrics/prometheus_counter.erl", - "src/metrics/prometheus_gauge.erl", - "src/metrics/prometheus_histogram.erl", - "src/metrics/prometheus_quantile_summary.erl", - "src/metrics/prometheus_summary.erl", - "src/model/prometheus_model.erl", - "src/model/prometheus_model_helpers.erl", - "src/prometheus.erl", - "src/prometheus_buckets.erl", - "src/prometheus_metric_spec.erl", - "src/prometheus_misc.erl", - "src/prometheus_registry.erl", - "src/prometheus_sup.erl", - "src/prometheus_time.erl", - ], - outs = [ - "ebin/prometheus.beam", - "ebin/prometheus_boolean.beam", - "ebin/prometheus_buckets.beam", - "ebin/prometheus_counter.beam", - "ebin/prometheus_gauge.beam", - "ebin/prometheus_histogram.beam", - "ebin/prometheus_http.beam", - "ebin/prometheus_metric_spec.beam", - "ebin/prometheus_misc.beam", - "ebin/prometheus_mnesia.beam", - "ebin/prometheus_mnesia_collector.beam", - "ebin/prometheus_model.beam", - "ebin/prometheus_model_helpers.beam", - "ebin/prometheus_protobuf_format.beam", - "ebin/prometheus_quantile_summary.beam", - "ebin/prometheus_registry.beam", - "ebin/prometheus_summary.beam", - "ebin/prometheus_sup.beam", - "ebin/prometheus_test_instrumenter.beam", - "ebin/prometheus_text_format.beam", - "ebin/prometheus_time.beam", - "ebin/prometheus_vm_dist_collector.beam", - "ebin/prometheus_vm_memory_collector.beam", - "ebin/prometheus_vm_msacc_collector.beam", - "ebin/prometheus_vm_statistics_collector.beam", - "ebin/prometheus_vm_system_info_collector.beam", - ], - hdrs = [ - "include/prometheus.hrl", - "include/prometheus_model.hrl", - ], - app_name = "prometheus", - beam = [":behaviours"], - erlc_opts = "//:erlc_opts", - deps = ["@quantile_estimator//:erlang_app"], -) - -filegroup( - name = "beam_files", - srcs = [ - ":behaviours", - ":other_beam", - ], -) - -filegroup( - name = "srcs", - srcs = [ - "src/collectors/mnesia/prometheus_mnesia_collector.erl", - "src/collectors/vm/prometheus_vm_dist_collector.erl", - "src/collectors/vm/prometheus_vm_memory_collector.erl", - "src/collectors/vm/prometheus_vm_msacc_collector.erl", - "src/collectors/vm/prometheus_vm_statistics_collector.erl", - "src/collectors/vm/prometheus_vm_system_info_collector.erl", - "src/contrib/prometheus_http.erl", - "src/contrib/prometheus_mnesia.erl", - "src/contrib/prometheus_test_instrumenter.erl", - "src/formats/prometheus_protobuf_format.erl", - "src/formats/prometheus_text_format.erl", - "src/metrics/prometheus_boolean.erl", - "src/metrics/prometheus_counter.erl", - "src/metrics/prometheus_gauge.erl", - "src/metrics/prometheus_histogram.erl", - "src/metrics/prometheus_quantile_summary.erl", - "src/metrics/prometheus_summary.erl", - "src/model/prometheus_model.erl", - "src/model/prometheus_model_helpers.erl", - "src/prometheus.app.src", - "src/prometheus.erl", - "src/prometheus_buckets.erl", - "src/prometheus_collector.erl", - "src/prometheus_format.erl", - "src/prometheus_instrumenter.erl", - "src/prometheus_metric.erl", - "src/prometheus_metric_spec.erl", - "src/prometheus_misc.erl", - "src/prometheus_registry.erl", - "src/prometheus_sup.erl", - "src/prometheus_time.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = [ - "include/prometheus.hrl", - "include/prometheus_model.hrl", - ], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "prometheus", - beam_files = [":beam_files"], - deps = ["@quantile_estimator//:erlang_app"], -) - -alias( - name = "prometheus", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.proper b/bazel/BUILD.proper deleted file mode 100644 index 018c1f30c39a..000000000000 --- a/bazel/BUILD.proper +++ /dev/null @@ -1,244 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+report_warnings", - "+warn_export_vars", - "+warn_missing_spec", - "+warn_obsolete_guard", - "+warn_untyped_record", - "+warn_unused_import", - "+warn_unused_vars", - "+{warn_format,1}", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+report_warnings", - "+warn_export_vars", - "+warn_missing_spec", - "+warn_obsolete_guard", - "+warn_untyped_record", - "+warn_unused_import", - "+warn_unused_vars", - "+{warn_format,1}", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "parse_transforms", - testonly = True, - srcs = [ - "src/vararg.erl", - ], - outs = [ - "ebin/vararg.beam", - ], - hdrs = [ - "include/proper.hrl", - "include/proper_common.hrl", - "include/proper_internal.hrl", - "include/proper_param_adts.hrl", - ], - app_name = "proper", - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "behaviours", - testonly = True, - srcs = [ - "src/proper_target.erl", - ], - outs = [ - "ebin/proper_target.beam", - ], - hdrs = [ - "include/proper.hrl", - "include/proper_common.hrl", - "include/proper_internal.hrl", - "include/proper_param_adts.hrl", - ], - app_name = "proper", - beam = [":parse_transforms"], - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "other_beam", - testonly = True, - srcs = [ - "src/proper.erl", - "src/proper_arith.erl", - "src/proper_array.erl", - "src/proper_dict.erl", - "src/proper_erlang_abstract_code.erl", - "src/proper_fsm.erl", - "src/proper_gb_sets.erl", - "src/proper_gb_trees.erl", - "src/proper_gen.erl", - "src/proper_gen_next.erl", - "src/proper_orddict.erl", - "src/proper_ordsets.erl", - "src/proper_prop_remover.erl", - "src/proper_queue.erl", - "src/proper_sa.erl", - "src/proper_sets.erl", - "src/proper_shrink.erl", - "src/proper_statem.erl", - "src/proper_symb.erl", - "src/proper_transformer.erl", - "src/proper_types.erl", - "src/proper_typeserver.erl", - "src/proper_unicode.erl", - "src/proper_unused_imports_remover.erl", - ], - outs = [ - "ebin/proper.beam", - "ebin/proper_arith.beam", - "ebin/proper_array.beam", - "ebin/proper_dict.beam", - "ebin/proper_erlang_abstract_code.beam", - "ebin/proper_fsm.beam", - "ebin/proper_gb_sets.beam", - "ebin/proper_gb_trees.beam", - "ebin/proper_gen.beam", - "ebin/proper_gen_next.beam", - "ebin/proper_orddict.beam", - "ebin/proper_ordsets.beam", - "ebin/proper_prop_remover.beam", - "ebin/proper_queue.beam", - "ebin/proper_sa.beam", - "ebin/proper_sets.beam", - "ebin/proper_shrink.beam", - "ebin/proper_statem.beam", - "ebin/proper_symb.beam", - "ebin/proper_transformer.beam", - "ebin/proper_types.beam", - "ebin/proper_typeserver.beam", - "ebin/proper_unicode.beam", - "ebin/proper_unused_imports_remover.beam", - ], - hdrs = [ - "include/proper.hrl", - "include/proper_common.hrl", - "include/proper_internal.hrl", - "include/proper_param_adts.hrl", - ], - app_name = "proper", - beam = [ - ":parse_transforms", - ":behaviours", - ], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - testonly = True, - srcs = [ - ":behaviours", - ":other_beam", - ":parse_transforms", - ], -) - -filegroup( - name = "srcs", - testonly = True, - srcs = [ - "src/proper.app.src", - "src/proper.erl", - "src/proper_arith.erl", - "src/proper_array.erl", - "src/proper_dict.erl", - "src/proper_erlang_abstract_code.erl", - "src/proper_fsm.erl", - "src/proper_gb_sets.erl", - "src/proper_gb_trees.erl", - "src/proper_gen.erl", - "src/proper_gen_next.erl", - "src/proper_orddict.erl", - "src/proper_ordsets.erl", - "src/proper_prop_remover.erl", - "src/proper_queue.erl", - "src/proper_sa.erl", - "src/proper_sets.erl", - "src/proper_shrink.erl", - "src/proper_statem.erl", - "src/proper_symb.erl", - "src/proper_target.erl", - "src/proper_transformer.erl", - "src/proper_types.erl", - "src/proper_typeserver.erl", - "src/proper_unicode.erl", - "src/proper_unused_imports_remover.erl", - "src/vararg.erl", - ], -) - -filegroup( - name = "private_hdrs", - testonly = True, -) - -filegroup( - name = "public_hdrs", - testonly = True, - srcs = [ - "include/proper.hrl", - "include/proper_common.hrl", - "include/proper_internal.hrl", - "include/proper_param_adts.hrl", - ], -) - -filegroup( - name = "priv", - testonly = True, -) - -filegroup( - name = "licenses", - testonly = True, -) - -filegroup( - name = "public_and_private_hdrs", - testonly = True, - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - testonly = True, - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - testonly = True, - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "proper", - beam_files = [":beam_files"], - extra_apps = ["compiler"], -) - -alias( - name = "proper", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.quantile_estimator b/bazel/BUILD.quantile_estimator deleted file mode 100644 index 9967ec017050..000000000000 --- a/bazel/BUILD.quantile_estimator +++ /dev/null @@ -1,96 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/quantile.erl", - "src/quantile_estimator.erl", - ], - outs = [ - "ebin/quantile.beam", - "ebin/quantile_estimator.beam", - ], - hdrs = ["include/quantile_estimator.hrl"], - app_name = "quantile_estimator", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/quantile.erl", - "src/quantile_estimator.app.src", - "src/quantile_estimator.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = ["include/quantile_estimator.hrl"], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = [], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "quantile_estimator", - beam_files = [":beam_files"], -) - -alias( - name = "quantile_estimator", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.ra b/bazel/BUILD.ra deleted file mode 100644 index 47f3d0e5dbc3..000000000000 --- a/bazel/BUILD.ra +++ /dev/null @@ -1,220 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+warn_export_vars", - "+warn_obsolete_guard", - "+warn_shadow_vars", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+warn_export_vars", - "+warn_obsolete_guard", - "+warn_shadow_vars", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "behaviours", - srcs = [ - "src/ra_machine.erl", - "src/ra_snapshot.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "ra", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/ra.erl", - "src/ra_app.erl", - "src/ra_aux.erl", - "src/ra_bench.erl", - "src/ra_counters.erl", - "src/ra_dbg.erl", - "src/ra_directory.erl", - "src/ra_env.erl", - "src/ra_ets_queue.erl", - "src/ra_file.erl", - "src/ra_file_handle.erl", - "src/ra_flru.erl", - "src/ra_leaderboard.erl", - "src/ra_lib.erl", - "src/ra_log.erl", - "src/ra_log_ets.erl", - "src/ra_log_meta.erl", - "src/ra_log_pre_init.erl", - "src/ra_log_read_plan.erl", - "src/ra_log_reader.erl", - "src/ra_log_segment.erl", - "src/ra_log_segment_writer.erl", - "src/ra_log_snapshot.erl", - "src/ra_log_sup.erl", - "src/ra_log_wal.erl", - "src/ra_log_wal_sup.erl", - "src/ra_lol.erl", - "src/ra_machine_ets.erl", - "src/ra_machine_simple.erl", - "src/ra_metrics_ets.erl", - "src/ra_monitors.erl", - "src/ra_mt.erl", - "src/ra_range.erl", - "src/ra_server.erl", - "src/ra_server_proc.erl", - "src/ra_server_sup.erl", - "src/ra_server_sup_sup.erl", - "src/ra_sup.erl", - "src/ra_system.erl", - "src/ra_system_recover.erl", - "src/ra_system_sup.erl", - "src/ra_systems_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "ra", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "@gen_batch_server//:erlang_app", - ], -) - -filegroup( - name = "beam_files", - srcs = [ - ":behaviours", - ":other_beam", - ], -) - -filegroup( - name = "srcs", - srcs = [ - "src/ra.app.src", - "src/ra.erl", - "src/ra_app.erl", - "src/ra_aux.erl", - "src/ra_bench.erl", - "src/ra_counters.erl", - "src/ra_dbg.erl", - "src/ra_directory.erl", - "src/ra_env.erl", - "src/ra_ets_queue.erl", - "src/ra_file.erl", - "src/ra_file_handle.erl", - "src/ra_flru.erl", - "src/ra_leaderboard.erl", - "src/ra_lib.erl", - "src/ra_log.erl", - "src/ra_log_ets.erl", - "src/ra_log_meta.erl", - "src/ra_log_pre_init.erl", - "src/ra_log_read_plan.erl", - "src/ra_log_reader.erl", - "src/ra_log_segment.erl", - "src/ra_log_segment_writer.erl", - "src/ra_log_snapshot.erl", - "src/ra_log_sup.erl", - "src/ra_log_wal.erl", - "src/ra_log_wal_sup.erl", - "src/ra_lol.erl", - "src/ra_machine.erl", - "src/ra_machine_ets.erl", - "src/ra_machine_simple.erl", - "src/ra_metrics_ets.erl", - "src/ra_monitors.erl", - "src/ra_mt.erl", - "src/ra_range.erl", - "src/ra_server.erl", - "src/ra_server_proc.erl", - "src/ra_server_sup.erl", - "src/ra_server_sup_sup.erl", - "src/ra_snapshot.erl", - "src/ra_sup.erl", - "src/ra_system.erl", - "src/ra_system_recover.erl", - "src/ra_system_sup.erl", - "src/ra_systems_sup.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [ - "src/ra.hrl", - "src/ra_server.hrl", - ], -) - -filegroup(name = "public_hdrs") - -filegroup(name = "priv") - -filegroup( - name = "licenses", - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL-RabbitMQ", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "ra", - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - "sasl", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "@aten//:erlang_app", - "@gen_batch_server//:erlang_app", - "@seshat//:erlang_app", - ], -) - -alias( - name = "ra", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL-RabbitMQ", - ], -) diff --git a/bazel/BUILD.ranch b/bazel/BUILD.ranch deleted file mode 100644 index 09bf62408b5f..000000000000 --- a/bazel/BUILD.ranch +++ /dev/null @@ -1,139 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "behaviours", - srcs = [ - "src/ranch_transport.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "ranch", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/ranch.erl", - "src/ranch_acceptor.erl", - "src/ranch_acceptors_sup.erl", - "src/ranch_app.erl", - "src/ranch_conns_sup.erl", - "src/ranch_conns_sup_sup.erl", - "src/ranch_crc32c.erl", - "src/ranch_embedded_sup.erl", - "src/ranch_listener_sup.erl", - "src/ranch_protocol.erl", - "src/ranch_proxy_header.erl", - "src/ranch_server.erl", - "src/ranch_server_proxy.erl", - "src/ranch_ssl.erl", - "src/ranch_sup.erl", - "src/ranch_tcp.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "ranch", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [ - ":behaviours", - ":other_beam", - ], -) - -filegroup( - name = "srcs", - srcs = [ - "src/ranch.erl", - "src/ranch_acceptor.erl", - "src/ranch_acceptors_sup.erl", - "src/ranch_app.erl", - "src/ranch_conns_sup.erl", - "src/ranch_conns_sup_sup.erl", - "src/ranch_crc32c.erl", - "src/ranch_embedded_sup.erl", - "src/ranch_listener_sup.erl", - "src/ranch_protocol.erl", - "src/ranch_proxy_header.erl", - "src/ranch_server.erl", - "src/ranch_server_proxy.erl", - "src/ranch_ssl.erl", - "src/ranch_sup.erl", - "src/ranch_tcp.erl", - "src/ranch_transport.erl", - ], -) - -filegroup(name = "private_hdrs") - -filegroup(name = "public_hdrs") - -filegroup(name = "priv") - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "ranch", - app_description = "Socket acceptor pool for TCP protocols.", - app_version = "2.1.0", - app_registered = ["ranch_server"], - beam_files = [":beam_files"], - extra_apps = ["ssl"], - license_files = [":license_files"], - priv = [":priv"], -) - -alias( - name = "ranch", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE", - ], -) diff --git a/bazel/BUILD.recon b/bazel/BUILD.recon deleted file mode 100644 index 35d78a04b4de..000000000000 --- a/bazel/BUILD.recon +++ /dev/null @@ -1,101 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/recon.erl", - "src/recon_alloc.erl", - "src/recon_lib.erl", - "src/recon_map.erl", - "src/recon_rec.erl", - "src/recon_trace.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "recon", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/recon.app.src", - "src/recon.erl", - "src/recon_alloc.erl", - "src/recon_lib.erl", - "src/recon_map.erl", - "src/recon_rec.erl", - "src/recon_trace.erl", - ], -) - -filegroup(name = "private_hdrs") - -filegroup(name = "public_hdrs") - -filegroup(name = "priv") - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "recon", - beam_files = [":beam_files"], - extra_apps = ["syntax_tools"], - license_files = [":license_files"], - priv = [":priv"], -) - -alias( - name = "recon", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE", - ], -) diff --git a/bazel/BUILD.redbug b/bazel/BUILD.redbug deleted file mode 100644 index 53aa6a3275cc..000000000000 --- a/bazel/BUILD.redbug +++ /dev/null @@ -1,101 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), # keep - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/redbug.erl", - "src/redbug_compiler.erl", - "src/redbug_dtop.erl", - "src/redbug_lexer.erl", - "src/redbug_parser.erl", - "src/redbug_targ.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "redbug", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/redbug.app.src", - "src/redbug.erl", - "src/redbug_compiler.erl", - "src/redbug_dtop.erl", - "src/redbug_lexer.erl", - "src/redbug_parser.erl", - "src/redbug_targ.erl", - ], -) - -filegroup(name = "private_hdrs") - -filegroup(name = "public_hdrs") - -filegroup(name = "priv") - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "redbug", - beam_files = [":beam_files"], - extra_apps = ["runtime_tools"], - license_files = [":license_files"], - priv = [":priv"], -) - -alias( - name = "redbug", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE", - ], -) diff --git a/bazel/BUILD.seshat b/bazel/BUILD.seshat deleted file mode 100644 index cadd091dd45f..000000000000 --- a/bazel/BUILD.seshat +++ /dev/null @@ -1,117 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+recv_opt_info", - "+warn_export_vars", - "+warn_obsolete_guard", - "+warn_shadow_vars", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+recv_opt_info", - "+warn_export_vars", - "+warn_obsolete_guard", - "+warn_shadow_vars", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/seshat.erl", - "src/seshat_app.erl", - "src/seshat_counters_server.erl", - "src/seshat_sup.erl", - ], - outs = [ - "ebin/seshat.beam", - "ebin/seshat_app.beam", - "ebin/seshat_counters_server.beam", - "ebin/seshat_sup.beam", - ], - hdrs = [], - app_name = "seshat", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/seshat.app.src", - "src/seshat.erl", - "src/seshat_app.erl", - "src/seshat_counters_server.erl", - "src/seshat_sup.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = [], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL-RabbitMQ", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - app_name = "seshat", - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - "sasl", - ], -) - -alias( - name = "seshat", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.stdout_formatter b/bazel/BUILD.stdout_formatter deleted file mode 100644 index b93c5977e44c..000000000000 --- a/bazel/BUILD.stdout_formatter +++ /dev/null @@ -1,106 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/stdout_formatter.erl", - "src/stdout_formatter_paragraph.erl", - "src/stdout_formatter_table.erl", - "src/stdout_formatter_utils.erl", - ], - outs = [ - "ebin/stdout_formatter.beam", - "ebin/stdout_formatter_paragraph.beam", - "ebin/stdout_formatter_table.beam", - "ebin/stdout_formatter_utils.beam", - ], - hdrs = ["include/stdout_formatter.hrl"], - app_name = "stdout_formatter", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/stdout_formatter.app.src", - "src/stdout_formatter.erl", - "src/stdout_formatter_paragraph.erl", - "src/stdout_formatter_table.erl", - "src/stdout_formatter_utils.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = ["include/stdout_formatter.hrl"], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "stdout_formatter", - beam_files = [":beam_files"], -) - -alias( - name = "stdout_formatter", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.syslog b/bazel/BUILD.syslog deleted file mode 100644 index 29b209be79d7..000000000000 --- a/bazel/BUILD.syslog +++ /dev/null @@ -1,121 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "behaviours", - srcs = [ - "src/syslog_logger.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "syslog", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/syslog.erl", - "src/syslog_error_h.erl", - "src/syslog_lager_backend.erl", - "src/syslog_lib.erl", - "src/syslog_logger_h.erl", - "src/syslog_monitor.erl", - "src/syslog_rfc3164.erl", - "src/syslog_rfc5424.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "syslog", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [ - ":behaviours", - ":other_beam", - ], -) - -filegroup( - name = "srcs", - srcs = [ - "src/syslog.app.src", - "src/syslog.erl", - "src/syslog_error_h.erl", - "src/syslog_lager_backend.erl", - "src/syslog_lib.erl", - "src/syslog_logger.erl", - "src/syslog_logger_h.erl", - "src/syslog_monitor.erl", - "src/syslog_rfc3164.erl", - "src/syslog_rfc5424.erl", - ], -) - -filegroup(name = "private_hdrs") - -filegroup( - name = "public_hdrs", - srcs = [ - "include/syslog.hrl", - ], -) - -filegroup(name = "priv") - -filegroup( - name = "license_files", - srcs = [ - "LICENSE", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "syslog", - beam_files = [":beam_files"], - extra_apps = ["sasl"], - license_files = [":license_files"], - priv = [":priv"], -) - -alias( - name = "syslog", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.sysmon_handler b/bazel/BUILD.sysmon_handler deleted file mode 100644 index 283f0f6395ef..000000000000 --- a/bazel/BUILD.sysmon_handler +++ /dev/null @@ -1,110 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/sysmon_handler_app.erl", - "src/sysmon_handler_example_handler.erl", - "src/sysmon_handler_filter.erl", - "src/sysmon_handler_sup.erl", - "src/sysmon_handler_testhandler.erl", - ], - outs = [ - "ebin/sysmon_handler_app.beam", - "ebin/sysmon_handler_example_handler.beam", - "ebin/sysmon_handler_filter.beam", - "ebin/sysmon_handler_sup.beam", - "ebin/sysmon_handler_testhandler.beam", - ], - hdrs = ["include/sysmon_handler.hrl"], - app_name = "sysmon_handler", - beam = [], - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/sysmon_handler.app.src", - "src/sysmon_handler_app.erl", - "src/sysmon_handler_example_handler.erl", - "src/sysmon_handler_filter.erl", - "src/sysmon_handler_sup.erl", - "src/sysmon_handler_testhandler.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = [], -) - -filegroup( - name = "public_hdrs", - srcs = ["include/sysmon_handler.hrl"], -) - -filegroup( - name = "priv", - srcs = ["priv/sysmon_handler.schema"], -) - -filegroup( - name = "licenses", - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL-RabbitMQ", - ], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "sysmon_handler", - beam_files = [":beam_files"], - extra_apps = ["sasl"], -) - -alias( - name = "sysmon_handler", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.systemd b/bazel/BUILD.systemd deleted file mode 100644 index 9ba011545102..000000000000 --- a/bazel/BUILD.systemd +++ /dev/null @@ -1,121 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - "+warnings_as_errors", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - "+warnings_as_errors", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/systemd.erl", - "src/systemd_app.erl", - "src/systemd_journal_h.erl", - "src/systemd_kmsg_formatter.erl", - "src/systemd_protocol.erl", - "src/systemd_socket.erl", - "src/systemd_sup.erl", - "src/systemd_watchdog.erl", - ], - outs = [ - "ebin/systemd.beam", - "ebin/systemd_app.beam", - "ebin/systemd_journal_h.beam", - "ebin/systemd_kmsg_formatter.beam", - "ebin/systemd_protocol.beam", - "ebin/systemd_socket.beam", - "ebin/systemd_sup.beam", - "ebin/systemd_watchdog.beam", - ], - hdrs = [ - "include/systemd.hrl", - "src/systemd_internal.hrl", - ], - app_name = "systemd", - beam = [], - erlc_opts = "//:erlc_opts", - deps = ["@enough//:erlang_app"], -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/systemd.app.src", - "src/systemd.erl", - "src/systemd_app.erl", - "src/systemd_journal_h.erl", - "src/systemd_kmsg_formatter.erl", - "src/systemd_protocol.erl", - "src/systemd_socket.erl", - "src/systemd_sup.erl", - "src/systemd_watchdog.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = ["src/systemd_internal.hrl"], -) - -filegroup( - name = "public_hdrs", - srcs = ["include/systemd.hrl"], -) - -filegroup( - name = "priv", - srcs = [], -) - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "systemd", - beam_files = [":beam_files"], - deps = ["@enough//:erlang_app"], -) - -alias( - name = "systemd", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.temp b/bazel/BUILD.temp deleted file mode 100644 index ad2e97bb0bd2..000000000000 --- a/bazel/BUILD.temp +++ /dev/null @@ -1,10 +0,0 @@ -filegroup( - name = "sources", - srcs = [ - "mix.exs", - ] + glob([ - "LICENSE*", - "lib/**/*", - ]), - visibility = ["//visibility:public"], -) diff --git a/bazel/BUILD.thoas b/bazel/BUILD.thoas deleted file mode 100644 index bd56cf881b18..000000000000 --- a/bazel/BUILD.thoas +++ /dev/null @@ -1,94 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts") -load("@rules_erlang//:erlang_app.bzl", "erlang_app") - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/thoas.erl", - "src/thoas_decode.erl", - "src/thoas_encode.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "thoas", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/thoas.app.src", - "src/thoas.erl", - "src/thoas_decode.erl", - "src/thoas_encode.erl", - ], -) - -filegroup(name = "private_hdrs") - -filegroup(name = "public_hdrs") - -filegroup(name = "priv") - -filegroup( - name = "licenses", - srcs = ["LICENSE"], -) - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -erlang_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "thoas", - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], -) - -alias( - name = "thoas", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - srcs = [ - "LICENSE", - ], -) diff --git a/bazel/BUILD.x509 b/bazel/BUILD.x509 deleted file mode 100644 index db8b68607714..000000000000 --- a/bazel/BUILD.x509 +++ /dev/null @@ -1,26 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlc_opts") - -filegroup( - name = "sources", - srcs = [ - "mix.exs", - ] + glob([ - "LICENSE*", - "lib/**/*", - ]), - visibility = ["//visibility:public"], -) - -erlc_opts( - name = "erlc_opts", - values = select({ - "@rules_erlang//:debug_build": [ - "+debug_info", - ], - "//conditions:default": [ - "+debug_info", - "+deterministic", - ], - }), - visibility = [":__subpackages__"], -) diff --git a/bazel/amqp.patch b/bazel/amqp.patch deleted file mode 100644 index 50069ae1cdd7..000000000000 --- a/bazel/amqp.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/lib/amqp/core.ex b/lib/amqp/core.ex -index a7302aa..abf2be6 100644 ---- a/lib/amqp/core.ex -+++ b/lib/amqp/core.ex -@@ -3,6 +3,10 @@ defmodule AMQP.Core do - - require Record - -+ # Elixir 1.15 compiler optimizations require that we explicitly -+ # add the rabbit_common code path -+ true = :code.add_path(:filename.join(:os.getenv(~c"DEPS_DIR"), ~c"rabbit_common/ebin")) -+ - Record.defrecord( - :p_basic, - :P_basic, diff --git a/bazel/bzlmod/BUILD.bazel b/bazel/bzlmod/BUILD.bazel deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/bazel/bzlmod/extensions.bzl b/bazel/bzlmod/extensions.bzl deleted file mode 100644 index f721bf37d449..000000000000 --- a/bazel/bzlmod/extensions.bzl +++ /dev/null @@ -1,42 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load( - ":secondary_umbrella.bzl", - fetch_secondary_umbrella = "secondary_umbrella", -) - -def _secondary_umbrella(_ctx): - fetch_secondary_umbrella() - -secondary_umbrella = module_extension( - implementation = _secondary_umbrella, -) - -def _hex(_ctx): - http_archive( - name = "hex", - sha256 = "0e3e3290d0fcbdc6bb0526b73ca174d68dcff4d53ee86015c49ad0493e39ee65", - strip_prefix = "hex-2.0.5", - urls = ["https://github.com/hexpm/hex/archive/refs/tags/v2.0.5.zip"], - build_file_content = """\ -load( - "@rabbitmq-server//bazel/elixir:mix_archive_build.bzl", - "mix_archive_build", -) - -mix_archive_build( - name = "archive", - srcs = [ - "mix.exs", - ] + glob([ - "lib/**/*", - ]), - out = "hex.ez", - visibility = ["//visibility:public"], -) -""", - ) - -hex = module_extension( - implementation = _hex, -) diff --git a/bazel/bzlmod/secondary_umbrella.bzl b/bazel/bzlmod/secondary_umbrella.bzl deleted file mode 100644 index 7c8b9b9cb7b0..000000000000 --- a/bazel/bzlmod/secondary_umbrella.bzl +++ /dev/null @@ -1,36 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -ADD_PLUGINS_DIR_BUILD_FILE = """set -euo pipefail - -cat << EOF > plugins/BUILD.bazel -load("@rules_pkg//:pkg.bzl", "pkg_zip") - -pkg_zip( - name = "inet_tcp_proxy_ez", - package_dir = "inet_tcp_proxy/ebin", - srcs = [ - "@inet_tcp_proxy_dist//:erlang_app", - ], - package_file_name = "inet_tcp_proxy-0.1.0.ez", - visibility = ["//visibility:public"], -) - -filegroup( - name = "standard_plugins", - srcs = glob(["**/*"]), - visibility = ["//visibility:public"], -) -EOF -""" - -def secondary_umbrella(): - http_archive( - name = "rabbitmq-server-generic-unix-4.0", - build_file = "@//:BUILD.package_generic_unix", - patch_cmds = [ADD_PLUGINS_DIR_BUILD_FILE], - strip_prefix = "rabbitmq_server-4.0.0", - # This file is produced just in time by the test-mixed-versions.yaml GitHub Actions workflow. - urls = [ - "https://rabbitmq-github-actions.s3.eu-west-1.amazonaws.com/secondary-umbrellas/26.1/package-generic-unix-for-mixed-version-testing-v4.0.2.tar.xz", - ], - ) diff --git a/bazel/elixir/BUILD.bazel b/bazel/elixir/BUILD.bazel deleted file mode 100644 index e6ca258ecc6e..000000000000 --- a/bazel/elixir/BUILD.bazel +++ /dev/null @@ -1 +0,0 @@ -exports_files(["elixir_escript_main.exs"]) diff --git a/bazel/elixir/elixir_escript_main.bzl b/bazel/elixir/elixir_escript_main.bzl deleted file mode 100644 index e65780c50d12..000000000000 --- a/bazel/elixir/elixir_escript_main.bzl +++ /dev/null @@ -1,94 +0,0 @@ -load( - "@rules_elixir//private:elixir_toolchain.bzl", - "elixir_dirs", - "erlang_dirs", - "maybe_install_erlang", -) -load( - "@rules_erlang//:erlang_app_info.bzl", - "ErlangAppInfo", -) - -def _impl(ctx): - (erlang_home, _, erlang_runfiles) = erlang_dirs(ctx) - (elixir_home, elixir_runfiles) = elixir_dirs(ctx) - - app_info = ctx.attr.app[ErlangAppInfo] - - env = "\n".join([ - "export {}={}".format(k, v) - for k, v in ctx.attr.env.items() - ]) - - config_path = "" - if ctx.file.mix_config != None: - config_path = ctx.file.mix_config.path - - command = """set -euo pipefail - -{maybe_install_erlang} - -if [[ "{elixir_home}" == /* ]]; then - ABS_ELIXIR_HOME="{elixir_home}" -else - ABS_ELIXIR_HOME=$PWD/{elixir_home} -fi - -export OUT="{out}" -export CONFIG_PATH="{config_path}" -export APP="{app}" -export MAIN_MODULE="Elixir.{main_module}" - -{env} - -export PATH="{erlang_home}/bin:$PATH" -set -x -"{elixir_home}"/bin/elixir {script} -""".format( - maybe_install_erlang = maybe_install_erlang(ctx), - erlang_home = erlang_home, - elixir_home = elixir_home, - env = env, - script = ctx.file._script.path, - out = ctx.outputs.out.path, - config_path = config_path, - app = app_info.app_name, - main_module = ctx.attr.main_module, - ) - - inputs = depset( - direct = ctx.files._script + ctx.files.mix_config, - transitive = [ - erlang_runfiles.files, - elixir_runfiles.files, - ], - ) - - ctx.actions.run_shell( - inputs = inputs, - outputs = [ctx.outputs.out], - command = command, - mnemonic = "ELIXIR", - ) - -elixir_escript_main = rule( - implementation = _impl, - attrs = { - "_script": attr.label( - allow_single_file = True, - default = Label(":elixir_escript_main.exs"), - ), - "app": attr.label( - providers = [ErlangAppInfo], - ), - "env": attr.string_dict(), - "main_module": attr.string(), - "mix_config": attr.label( - allow_single_file = [".exs"], - ), - "out": attr.output(), - }, - toolchains = [ - "@rules_elixir//:toolchain_type", - ], -) diff --git a/bazel/elixir/elixir_escript_main.exs b/bazel/elixir/elixir_escript_main.exs deleted file mode 100644 index 0b8511e12a04..000000000000 --- a/bazel/elixir/elixir_escript_main.exs +++ /dev/null @@ -1,130 +0,0 @@ -defmodule ElixirEscriptMain do - # https://github.com/elixir-lang/elixir/blob/99785cc16be096d02012ad889ca51b5045b599a4/lib/mix/lib/mix/tasks/escript.build.ex#L327 - def gen_main(project, name, module, app, language) do - config_path = project[:config_path] - - compile_config = - if File.regular?(config_path) do - config = Config.Reader.read!(config_path, env: Mix.env(), target: Mix.target()) - Macro.escape(config) - else - [] - end - - runtime_path = config_path |> Path.dirname() |> Path.join("runtime.exs") - - runtime_config = - if File.regular?(runtime_path) do - File.read!(runtime_path) - end - - module_body = - quote do - @spec main(OptionParser.argv()) :: any - def main(args) do - unquote(main_body_for(language, module, app, compile_config, runtime_config)) - end - - defp load_config(config) do - each_fun = fn {app, kw} -> - set_env_fun = fn {k, v} -> :application.set_env(app, k, v, persistent: true) end - :lists.foreach(set_env_fun, kw) - end - - :lists.foreach(each_fun, config) - :ok - end - - defp start_app(nil) do - :ok - end - - defp start_app(app) do - case :application.ensure_all_started(app) do - {:ok, _} -> - :ok - - {:error, {app, reason}} -> - formatted_error = - case :code.ensure_loaded(Application) do - {:module, Application} -> Application.format_error(reason) - {:error, _} -> :io_lib.format(~c"~p", [reason]) - end - - error_message = [ - "ERROR! Could not start application ", - :erlang.atom_to_binary(app, :utf8), - ": ", - formatted_error, - ?\n - ] - - io_error(error_message) - :erlang.halt(1) - end - end - - defp io_error(message) do - :io.put_chars(:standard_error, message) - end - end - - {:module, ^name, binary, _} = Module.create(name, module_body, Macro.Env.location(__ENV__)) - [{~c"#{name}.beam", binary}] - end - - defp main_body_for(:elixir, module, app, compile_config, runtime_config) do - config = - if runtime_config do - quote do - runtime_config = - Config.Reader.eval!( - "config/runtime.exs", - unquote(runtime_config), - env: unquote(Mix.env()), - target: unquote(Mix.target()), - imports: :disabled - ) - - Config.Reader.merge(unquote(compile_config), runtime_config) - end - else - compile_config - end - - quote do - case :application.ensure_all_started(:elixir) do - {:ok, _} -> - args = Enum.map(args, &List.to_string(&1)) - System.argv(args) - load_config(unquote(config)) - start_app(unquote(app)) - Kernel.CLI.run(fn _ -> unquote(module).main(args) end) - - error -> - io_error(["ERROR! Failed to start Elixir.\n", :io_lib.format(~c"error: ~p~n", [error])]) - :erlang.halt(1) - end - end - end -end - -output = System.get_env("OUT") -IO.puts("Will write to " <> output) - -project = [ - config_path: System.get_env("CONFIG_PATH", "config/config.exs"), -] -app = String.to_atom(System.get_env("APP")) -name = String.to_atom(Atom.to_string(app) <> "_escript") -module = String.to_atom(System.get_env("MAIN_MODULE")) - -:application.ensure_all_started(:mix) -Mix.State.start_link(:none) -[{_, bytecode}] = ElixirEscriptMain.gen_main(project, name, module, app, :elixir) - -{:ok, file} = File.open(output, [:write]) -IO.binwrite(file, bytecode) -File.close(file) - -IO.puts("done.") diff --git a/bazel/elixir/mix_archive_build.bzl b/bazel/elixir/mix_archive_build.bzl deleted file mode 100644 index 621a43748fa8..000000000000 --- a/bazel/elixir/mix_archive_build.bzl +++ /dev/null @@ -1,175 +0,0 @@ -load("@bazel_skylib//lib:shell.bzl", "shell") -load( - "@rules_elixir//private:elixir_toolchain.bzl", - "elixir_dirs", - "erlang_dirs", - "maybe_install_erlang", -) -load( - "@rules_erlang//:erlang_app_info.bzl", - "ErlangAppInfo", - "flat_deps", -) -load( - "@rules_erlang//:util.bzl", - "path_join", -) -load( - "@rules_erlang//private:util.bzl", - "additional_file_dest_relative_path", - "erl_libs_contents", -) - -def _impl(ctx): - (erlang_home, _, erlang_runfiles) = erlang_dirs(ctx) - (elixir_home, elixir_runfiles) = elixir_dirs(ctx) - - out = ctx.actions.declare_file(ctx.attr.out.name) - mix_invocation_dir = ctx.actions.declare_directory("{}_mix".format(ctx.label.name)) - - erl_libs_dir = ctx.label.name + "_deps" - - erl_libs_files = erl_libs_contents( - ctx, - target_info = None, - headers = True, - dir = erl_libs_dir, - deps = flat_deps(ctx.attr.deps), - ez_deps = ctx.files.ez_deps, - expand_ezs = True, - ) - - erl_libs_path = "" - if len(erl_libs_files) > 0: - erl_libs_path = path_join( - ctx.bin_dir.path, - ctx.label.workspace_root, - ctx.label.package, - erl_libs_dir, - ) - - copy_srcs_commands = [] - for src in ctx.attr.srcs: - for src_file in src[DefaultInfo].files.to_list(): - dest = additional_file_dest_relative_path(src.label, src_file) - copy_srcs_commands.extend([ - 'mkdir -p "$(dirname ${{MIX_INVOCATION_DIR}}/{dest})"'.format( - dest = dest, - ), - 'cp {flags}"{src}" "${{MIX_INVOCATION_DIR}}/{dest}"'.format( - flags = "-r " if src_file.is_directory else "", - src = src_file.path, - dest = dest, - ), - ]) - - script = """set -euo pipefail - -{maybe_install_erlang} - -if [ -n "{erl_libs_path}" ]; then - export ERL_LIBS=$PWD/{erl_libs_path} -fi - -if [[ "{elixir_home}" == /* ]]; then - ABS_ELIXIR_HOME="{elixir_home}" -else - ABS_ELIXIR_HOME=$PWD/{elixir_home} -fi - -ABS_OUT_PATH="$PWD/{out}" - -export PATH="$ABS_ELIXIR_HOME"/bin:"{erlang_home}"/bin:${{PATH}} - -export LANG="en_US.UTF-8" -export LC_ALL="en_US.UTF-8" - -MIX_INVOCATION_DIR="{mix_invocation_dir}" - -{copy_srcs_commands} - -ORIGINAL_DIR=$PWD -cd "${{MIX_INVOCATION_DIR}}" -export HOME="${{PWD}}" -export MIX_ENV=prod -export ERL_COMPILER_OPTIONS=deterministic -for archive in {archives}; do - "${{ABS_ELIXIR_HOME}}"/bin/mix archive.install --force $ORIGINAL_DIR/$archive -done -if [[ -n "{erl_libs_path}" ]]; then - mkdir -p _build/${{MIX_ENV}}/lib - for dep in "$ERL_LIBS"/*; do - ln -s $dep _build/${{MIX_ENV}}/lib - done -fi - -{setup} - -"${{ABS_ELIXIR_HOME}}"/bin/mix archive.build \\ - --no-deps-check \\ - -o "${{ABS_OUT_PATH}}" - -# remove symlinks from the _build directory since it -# is an unused output, and bazel does not allow them -find . -type l -delete -""".format( - maybe_install_erlang = maybe_install_erlang(ctx), - erl_libs_path = erl_libs_path, - erlang_home = erlang_home, - elixir_home = elixir_home, - mix_invocation_dir = mix_invocation_dir.path, - copy_srcs_commands = "\n".join(copy_srcs_commands), - archives = " ".join([shell.quote(a.path) for a in ctx.files.archives]), - setup = ctx.attr.setup, - out = out.path, - ) - - inputs = depset( - direct = ctx.files.srcs, - transitive = [ - erlang_runfiles.files, - elixir_runfiles.files, - depset(ctx.files.archives), - depset(erl_libs_files), - ], - ) - - ctx.actions.run_shell( - inputs = inputs, - outputs = [ - out, - mix_invocation_dir, - ], - command = script, - mnemonic = "MIX", - ) - - return [ - DefaultInfo( - files = depset([out]), - ), - ] - -mix_archive_build = rule( - implementation = _impl, - attrs = { - "srcs": attr.label_list( - mandatory = True, - allow_files = True, - ), - "archives": attr.label_list( - allow_files = [".ez"], - ), - "setup": attr.string(), - "ez_deps": attr.label_list( - allow_files = [".ez"], - ), - "deps": attr.label_list( - providers = [ErlangAppInfo], - ), - "out": attr.output(), - }, - toolchains = [ - "@rules_elixir//:toolchain_type", - ], -) diff --git a/bazel/elixir/mix_archive_extract.bzl b/bazel/elixir/mix_archive_extract.bzl deleted file mode 100644 index 8683da3c6e46..000000000000 --- a/bazel/elixir/mix_archive_extract.bzl +++ /dev/null @@ -1,67 +0,0 @@ -load( - "@rules_erlang//:erlang_app_info.bzl", - "ErlangAppInfo", - "flat_deps", -) -load( - "@rules_erlang//:util.bzl", - "path_join", -) - -def _impl(ctx): - ebin = ctx.actions.declare_directory(path_join(ctx.attr.app_name, "ebin")) - - script = """set -euo pipefail - -DEST="$(mktemp -d)" -unzip -q -d "$DEST" {archive} -cp "$DEST"/{app_name}/ebin/* {ebin} -""".format( - archive = ctx.file.archive.path, - app_name = ctx.attr.app_name, - ebin = ebin.path, -) - - ctx.actions.run_shell( - inputs = ctx.files.archive, - outputs = [ebin], - command = script, - mnemonic = "MixArchiveExtract", - ) - - deps = flat_deps(ctx.attr.deps) - - runfiles = ctx.runfiles([ebin]) - for dep in ctx.attr.deps: - runfiles = runfiles.merge(dep[DefaultInfo].default_runfiles) - - return [ - DefaultInfo( - files = depset([ebin]), - runfiles = runfiles, - ), - ErlangAppInfo( - app_name = ctx.attr.app_name, - extra_apps = ctx.attr.extra_apps, - include = [], - beam = [ebin], - priv = [], - license_files = [], - srcs = ctx.files.srcs, - deps = deps, - ) - ] - -mix_archive_extract = rule( - implementation = _impl, - attrs = { - "app_name": attr.string(mandatory = True), - "extra_apps": attr.string_list(), - "deps": attr.label_list(providers = [ErlangAppInfo]), - "archive": attr.label( - allow_single_file = [".ez"], - ), - "srcs": attr.label_list(), - }, - provides = [ErlangAppInfo], -) diff --git a/bazel/util/BUILD.bazel b/bazel/util/BUILD.bazel deleted file mode 100644 index 471121e751ed..000000000000 --- a/bazel/util/BUILD.bazel +++ /dev/null @@ -1,177 +0,0 @@ -load(":ct_logdir_vars.bzl", "ct_logdir_vars") - -package( - default_visibility = ["//visibility:public"], -) - -ct_logdir_vars( - name = "ct_logdir_vars", -) - -genrule( - name = "test-logs", - outs = ["open-test-logs.sh"], - cmd = """set -euo pipefail -cat << 'EOF' > $@ -#!/usr/bin/env bash -set -euo pipefail - -if [ -n "$(CT_LOGDIR)" ]; then - open "$(CT_LOGDIR)/index.html" - exit 0 -fi - -if [ $$# -eq 0 ]; then - echo "Usage: bazel run test-logs TEST_LABEL [shard_index]" - exit 1 -fi - -RELATIVE=$${1#//} -PACKAGE=$${RELATIVE%%:*} -SUITE=$${RELATIVE##*:} -OUTPUT_DIR=test.outputs - -if [ $$# -gt 1 ]; then - OUTPUT_DIR=shard_$$2_of_*/test.outputs -fi - -if [ ! -d "bazel-testlogs/$$PACKAGE/$$SUITE/"$$OUTPUT_DIR ]; then - echo "Test output dir not found, perhaps shard_index needed?" - echo "Usage: bazel run test-logs TEST_LABEL [shard_index]" - exit 1 -fi - -cd "bazel-testlogs/$$PACKAGE/$$SUITE/"$$OUTPUT_DIR -if [ -f outputs.zip ]; then - unzip -u outputs.zip -fi -set +e -open index.html -rc=$$? -set -e -if [[ $$rc -eq 3 ]]; then - # For xdg-open exit code 3 means "A required tool could not be found." That is, there is no browser. - echo "Open your browser at http://$$(hostname -s):8000/index.html" - python -m http.server 8000 -fi -EOF -""", - executable = True, - toolchains = [":ct_logdir_vars"], -) - -genrule( - name = "remote-test-logs", - outs = ["open-remote-test-logs.sh"], - cmd = """set -euo pipefail -cat << 'EOF' > $@ -#!/usr/bin/env bash -set -euo pipefail -if [ $$# -eq 0 ]; then - echo "Usage: bazel run remote-test-logs TEST_LABEL [shard_index]" - exit 1 -fi - -RELATIVE=$${1#//} -PACKAGE=$${RELATIVE%%:*} -SUITE=$${RELATIVE##*:} -OUTPUT_DIR=test.outputs -if [ $$# -gt 1 ]; then - OUTPUT_DIR=shard_$$2_of_*/test.outputs -fi - -TESTLOGS=$$(echo $$(bazel info output_path)/k8-*/testlogs) - -if [ ! -d "$$TESTLOGS/$$PACKAGE/$$SUITE/$$OUTPUT_DIR" ]; then - echo "Test output dir not found, perhaps shard_index needed?" - echo "Usage: bazel run remote-test-logs TEST_LABEL [shard_index]" - exit 1 -fi - -cd "$$TESTLOGS/$$PACKAGE/$$SUITE/$$OUTPUT_DIR" && unzip -u outputs.zip -open index.html -EOF -""", - executable = True, -) - -genrule( - name = "test-node-data", - outs = ["open-test-node-data.sh"], - cmd = """set -euo pipefail -cat << 'EOF' > $@ -set -euo pipefail - -if [ -n "$(CT_LOGDIR)" ]; then - open "$(CT_LOGDIR)/index.html" - exit 0 -fi - -if [ $$# -eq 0 ]; then - echo "Usage: bazel run test-node-data TEST_LABEL [shard_index]" - exit 1 -fi - -RELATIVE=$${1#//} -PACKAGE=$${RELATIVE%%:*} -SUITE=$${RELATIVE##*:} -OUTPUT_DIR=test.outputs -if [ $$# -gt 1 ]; then - OUTPUT_DIR=shard_$$2_of_*/test.outputs -fi - -if [ ! -d "bazel-testlogs/$$PACKAGE/$$SUITE/"$$OUTPUT_DIR ]; then - echo "Test output dir not found, perhaps shard_index needed?" - echo "Usage: bazel run test-node-data TEST_LABEL [shard_index]" - exit 1 -fi - -cd bazel-testlogs/$$PACKAGE/$$SUITE/$$OUTPUT_DIR -if [ -f outputs.zip ]; then - unzip -u outputs.zip -fi -open index.html -open ct_run.*/deps.*/run.*/log_private -EOF -""", - executable = True, - toolchains = [":ct_logdir_vars"], -) - -# NOTE: this rule may not work properly if --remote_download_minimal has been used, -# which is currently the default for remote runs -genrule( - name = "remote-test-node-data", - outs = ["open-remote-test-node-data.sh"], - cmd = """set -euo pipefail -cat << 'EOF' > $@ -set -euo pipefail -if [ $$# -eq 0 ]; then - echo "Usage: bazel run remote-test-node-data TEST_LABEL [shard_index]" - exit 1 -fi - -RELATIVE=$${1#//} -PACKAGE=$${RELATIVE%%:*} -SUITE=$${RELATIVE##*:} -OUTPUT_DIR=test.outputs - -if [ $$# -gt 1 ]; then - OUTPUT_DIR=shard_$$2_of_*/test.outputs -fi - -TESTLOGS=$$(echo $$(bazel info output_path)/k8-*/testlogs) - -if [ ! -d $$TESTLOGS/$$PACKAGE/$$SUITE/$$OUTPUT_DIR ]; then - echo "Test output dir not found, perhaps shard_index needed?" - echo "Usage: bazel run remote-test-node-data TEST_LABEL [shard_index]" - exit 1 -fi - -cd $$TESTLOGS/$$PACKAGE/$$SUITE/$$OUTPUT_DIR && unzip -u outputs.zip -open index.html -open ct_run.*/deps.*/run.*/log_private -EOF -""", - executable = True, -) diff --git a/bazel/util/ct_logdir_vars.bzl b/bazel/util/ct_logdir_vars.bzl deleted file mode 100644 index 527159c1226f..000000000000 --- a/bazel/util/ct_logdir_vars.bzl +++ /dev/null @@ -1,23 +0,0 @@ -load( - "@bazel_skylib//rules:common_settings.bzl", - "BuildSettingInfo", -) - -def _impl(ctx): - vars = { - "CT_LOGDIR": ctx.attr._ct_logdir[BuildSettingInfo].value, - } - - return [platform_common.TemplateVariableInfo(vars)] - -ct_logdir_vars = rule( - implementation = _impl, - attrs = { - "_ct_logdir": attr.label( - default = Label("@rules_erlang//:ct_logdir"), - ), - }, - provides = [ - platform_common.TemplateVariableInfo, - ], -) diff --git a/deps/amqp10_client/BUILD.bazel b/deps/amqp10_client/BUILD.bazel deleted file mode 100644 index a31b855ed2b3..000000000000 --- a/deps/amqp10_client/BUILD.bazel +++ /dev/null @@ -1,147 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "amqp10_client" - -APP_DESCRIPTION = "AMQP 1.0 client" - -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/tree/main/deps/amqp10_client"} - ]}, - {build_tools, ["make", "rebar3"]}, - {files, [ - "erlang.mk", - "git-revisions.txt", - "include", - "LICENSE*", - "Makefile", - "rabbitmq-components.mk", - "README", - "README.md", - "src" - ]} -""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app ssl -# gazelle:erlang_app_extra_app inets -# gazelle:erlang_app_extra_app crypto -# gazelle:erlang_app_extra_app public_key - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_extra_keys = APP_EXTRA_KEYS, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - "inets", - "ssl", - "public_key", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit_common:erlang_app", - "@credentials_obfuscation//:erlang_app", - "@gun//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -broker_for_integration_suites( -) - -TEST_DEPS = [ - "//deps/amqp10_common:erlang_app", -] - -rabbitmq_suite( - name = "msg_SUITE", - deps = TEST_DEPS, -) - -rabbitmq_integration_suite( - name = "system_SUITE", - size = "medium", - additional_beam = [ - "test/activemq_ct_helpers.beam", - "test/mock_server.beam", - ], - data = [ - "@activemq//:exec_dir", - ], - test_env = { - "ACTIVEMQ": "$TEST_SRCDIR/$TEST_WORKSPACE/external/activemq/bin/activemq", - }, - deps = TEST_DEPS, -) - -assert_suites() - -alias( - name = "amqp10_client", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -eunit( - name = "eunit", - compiled_suites = [ - ":test_activemq_ct_helpers_beam", - ":test_mock_server_beam", - ], - target = ":test_erlang_app", -) diff --git a/deps/amqp10_client/Makefile b/deps/amqp10_client/Makefile index e080eb583d00..561a8c2ff253 100644 --- a/deps/amqp10_client/Makefile +++ b/deps/amqp10_client/Makefile @@ -1,6 +1,5 @@ PROJECT = amqp10_client PROJECT_DESCRIPTION = AMQP 1.0 client -PROJECT_MOD = amqp10_client_app define PROJECT_APP_EXTRA_KEYS %% Hex.pm package informations. diff --git a/deps/amqp10_client/activemq.bzl b/deps/amqp10_client/activemq.bzl deleted file mode 100644 index 7cffe4dea891..000000000000 --- a/deps/amqp10_client/activemq.bzl +++ /dev/null @@ -1,19 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -ACTIVEMQ_VERSION = "5.18.3" -ACTIVEMQ_URL = "https://archive.apache.org/dist/activemq/{version}/apache-activemq-{version}-bin.tar.gz".format(version = ACTIVEMQ_VERSION) -SHA_256 = "943381aa6d340707de6c42eadbf7b41b7fdf93df604156d972d50c4da783544f" - -def activemq_archive(): - http_archive( - name = "activemq", - urls = [ACTIVEMQ_URL], - sha256 = SHA_256, - strip_prefix = "apache-activemq-{}".format(ACTIVEMQ_VERSION), - build_file_content = """filegroup( - name = "exec_dir", - srcs = glob(["bin/**/*", "lib/**/*", "conf/**/*", "activemq-all-*.jar"]), - visibility = ["//visibility:public"], -) -""", - ) diff --git a/deps/amqp10_client/app.bzl b/deps/amqp10_client/app.bzl deleted file mode 100644 index 2532ce775220..000000000000 --- a/deps/amqp10_client/app.bzl +++ /dev/null @@ -1,139 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/amqp10_client.erl", - "src/amqp10_client_app.erl", - "src/amqp10_client_connection.erl", - "src/amqp10_client_connection_sup.erl", - "src/amqp10_client_frame_reader.erl", - "src/amqp10_client_session.erl", - "src/amqp10_client_sessions_sup.erl", - "src/amqp10_client_socket.erl", - "src/amqp10_client_sup.erl", - "src/amqp10_client_types.erl", - "src/amqp10_msg.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "amqp10_client", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/amqp10_common:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/amqp10_client.erl", - "src/amqp10_client_app.erl", - "src/amqp10_client_connection.erl", - "src/amqp10_client_connection_sup.erl", - "src/amqp10_client_frame_reader.erl", - "src/amqp10_client_session.erl", - "src/amqp10_client_sessions_sup.erl", - "src/amqp10_client_socket.erl", - "src/amqp10_client_sup.erl", - "src/amqp10_client_types.erl", - "src/amqp10_msg.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "amqp10_client", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/amqp10_client.erl", - "src/amqp10_client_app.erl", - "src/amqp10_client_connection.erl", - "src/amqp10_client_connection_sup.erl", - "src/amqp10_client_frame_reader.erl", - "src/amqp10_client_session.erl", - "src/amqp10_client_sessions_sup.erl", - "src/amqp10_client_socket.erl", - "src/amqp10_client_sup.erl", - "src/amqp10_client_types.erl", - "src/amqp10_msg.erl", - ], - ) - filegroup( - name = "private_hdrs", - srcs = ["src/amqp10_client.hrl"], - ) - filegroup( - name = "public_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "msg_SUITE_beam_files", - testonly = True, - srcs = ["test/msg_SUITE.erl"], - outs = ["test/msg_SUITE.beam"], - app_name = "amqp10_client", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app"], - ) - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - app_name = "amqp10_client", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app"], - ) - erlang_bytecode( - name = "test_activemq_ct_helpers_beam", - testonly = True, - srcs = ["test/activemq_ct_helpers.erl"], - outs = ["test/activemq_ct_helpers.beam"], - app_name = "amqp10_client", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_mock_server_beam", - testonly = True, - srcs = ["test/mock_server.erl"], - outs = ["test/mock_server.beam"], - hdrs = ["src/amqp10_client.hrl"], - app_name = "amqp10_client", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/amqp10_client/src/amqp10_client.erl b/deps/amqp10_client/src/amqp10_client.erl index 8605c7eabafb..b2926a545172 100644 --- a/deps/amqp10_client/src/amqp10_client.erl +++ b/deps/amqp10_client/src/amqp10_client.erl @@ -339,7 +339,7 @@ flow_link_credit(#link_ref{role = receiver, session = Session, RenewWhenBelow =< Credit) -> Flow = #'v1_0.flow'{link_credit = {uint, Credit}, drain = Drain}, - ok = amqp10_client_session:flow(Session, Handle, Flow, RenewWhenBelow). + ok = amqp10_client_session:flow_link(Session, Handle, Flow, RenewWhenBelow). %% @doc Stop a receiving link. %% See AMQP 1.0 spec §2.6.10. @@ -348,7 +348,7 @@ stop_receiver_link(#link_ref{role = receiver, link_handle = Handle}) -> Flow = #'v1_0.flow'{link_credit = {uint, 0}, echo = true}, - ok = amqp10_client_session:flow(Session, Handle, Flow, never). + ok = amqp10_client_session:flow_link(Session, Handle, Flow, never). %%% messages diff --git a/deps/amqp10_client/src/amqp10_client_session.erl b/deps/amqp10_client/src/amqp10_client_session.erl index 435cce8aed61..b0dc4ab44548 100644 --- a/deps/amqp10_client/src/amqp10_client_session.erl +++ b/deps/amqp10_client/src/amqp10_client_session.erl @@ -20,10 +20,13 @@ attach/2, detach/2, transfer/3, - flow/4, - disposition/5 + disposition/5, + flow_link/4 ]). +%% Manual session flow control is currently only used in tests. +-export([flow/3]). + %% Private API -export([start_link/4, socket_ready/2 @@ -51,7 +54,8 @@ [add/2, diff/2]). --define(MAX_SESSION_WINDOW_SIZE, 65535). +%% By default, we want to keep the server's remote-incoming-window large at all times. +-define(DEFAULT_MAX_INCOMING_WINDOW, 100_000). -define(UINT_OUTGOING_WINDOW, {uint, ?UINT_MAX}). -define(INITIAL_OUTGOING_DELIVERY_ID, ?UINT_MAX). %% "The next-outgoing-id MAY be initialized to an arbitrary value" [2.5.6] @@ -129,7 +133,8 @@ available = 0 :: non_neg_integer(), drain = false :: boolean(), partial_transfers :: undefined | {#'v1_0.transfer'{}, [binary()]}, - auto_flow :: never | {auto, RenewWhenBelow :: pos_integer(), Credit :: pos_integer()}, + auto_flow :: never | {RenewWhenBelow :: pos_integer(), + Credit :: pos_integer()}, incoming_unsettled = #{} :: #{delivery_number() => ok}, footer_opt :: footer_opt() | undefined }). @@ -140,7 +145,10 @@ %% session flow control, see section 2.5.6 next_incoming_id :: transfer_number() | undefined, - incoming_window = ?MAX_SESSION_WINDOW_SIZE :: non_neg_integer(), + %% Can become negative if the peer overshoots our window. + incoming_window :: integer(), + auto_flow :: never | {RenewWhenBelow :: pos_integer(), + NewWindowSize :: pos_integer()}, next_outgoing_id = ?INITIAL_OUTGOING_TRANSFER_ID :: transfer_number(), remote_incoming_window = 0 :: non_neg_integer(), remote_outgoing_window = 0 :: non_neg_integer(), @@ -200,7 +208,17 @@ transfer(Session, Amqp10Msg, Timeout) -> [Transfer | Sections] = amqp10_msg:to_amqp_records(Amqp10Msg), gen_statem:call(Session, {transfer, Transfer, Sections}, Timeout). -flow(Session, Handle, Flow, RenewWhenBelow) -> +-spec flow(pid(), non_neg_integer(), never | pos_integer()) -> ok. +flow(Session, IncomingWindow, RenewWhenBelow) when + %% Check that the RenewWhenBelow value make sense. + RenewWhenBelow =:= never orelse + is_integer(RenewWhenBelow) andalso + RenewWhenBelow > 0 andalso + RenewWhenBelow =< IncomingWindow -> + gen_statem:cast(Session, {flow_session, IncomingWindow, RenewWhenBelow}). + +-spec flow_link(pid(), link_handle(), #'v1_0.flow'{}, never | pos_integer()) -> ok. +flow_link(Session, Handle, Flow, RenewWhenBelow) -> gen_statem:cast(Session, {flow_link, Handle, Flow, RenewWhenBelow}). %% Sending a disposition on a sender link (with receiver-settle-mode = second) @@ -239,6 +257,9 @@ init([FromPid, Channel, Reader, ConnConfig]) -> channel = Channel, reader = Reader, connection_config = ConnConfig, + incoming_window = ?DEFAULT_MAX_INCOMING_WINDOW, + auto_flow = {?DEFAULT_MAX_INCOMING_WINDOW div 2, + ?DEFAULT_MAX_INCOMING_WINDOW}, early_attach_requests = []}, {ok, unmapped, State}. @@ -282,15 +303,15 @@ mapped(cast, 'end', State) -> mapped(cast, {flow_link, OutHandle, Flow0, RenewWhenBelow}, State0) -> State = send_flow_link(OutHandle, Flow0, RenewWhenBelow, State0), {keep_state, State}; -mapped(cast, {flow_session, Flow0 = #'v1_0.flow'{incoming_window = {uint, IncomingWindow}}}, - #state{next_incoming_id = NII, - next_outgoing_id = NOI} = State) -> - Flow = Flow0#'v1_0.flow'{ - next_incoming_id = maybe_uint(NII), - next_outgoing_id = uint(NOI), - outgoing_window = ?UINT_OUTGOING_WINDOW}, - ok = send(Flow, State), - {keep_state, State#state{incoming_window = IncomingWindow}}; +mapped(cast, {flow_session, IncomingWindow, RenewWhenBelow}, State0) -> + AutoFlow = case RenewWhenBelow of + never -> never; + _ -> {RenewWhenBelow, IncomingWindow} + end, + State = State0#state{incoming_window = IncomingWindow, + auto_flow = AutoFlow}, + send_flow_session(State), + {keep_state, State}; mapped(cast, #'v1_0.end'{} = End, State) -> %% We receive the first end frame, reply and terminate. _ = send_end(State), @@ -656,35 +677,44 @@ is_bare_message_section(_Section) -> send_flow_link(OutHandle, #'v1_0.flow'{link_credit = {uint, Credit}} = Flow0, RenewWhenBelow, - #state{links = Links, - next_incoming_id = NII, - next_outgoing_id = NOI, - incoming_window = InWin} = State) -> + #state{links = Links} = State) -> AutoFlow = case RenewWhenBelow of never -> never; - Limit -> {auto, Limit, Credit} + _ -> {RenewWhenBelow, Credit} end, #{OutHandle := #link{output_handle = H, role = receiver, delivery_count = DeliveryCount, available = Available} = Link} = Links, - Flow = Flow0#'v1_0.flow'{ - handle = uint(H), - %% "This value MUST be set if the peer has received the begin - %% frame for the session, and MUST NOT be set if it has not." [2.7.4] - next_incoming_id = maybe_uint(NII), - next_outgoing_id = uint(NOI), - outgoing_window = ?UINT_OUTGOING_WINDOW, - incoming_window = uint(InWin), - %% "In the event that the receiving link endpoint has not yet seen the - %% initial attach frame from the sender this field MUST NOT be set." [2.7.4] - delivery_count = maybe_uint(DeliveryCount), - available = uint(Available)}, + Flow1 = Flow0#'v1_0.flow'{ + handle = uint(H), + %% "In the event that the receiving link endpoint has not yet seen the + %% initial attach frame from the sender this field MUST NOT be set." [2.7.4] + delivery_count = maybe_uint(DeliveryCount), + available = uint(Available)}, + Flow = set_flow_session_fields(Flow1, State), ok = send(Flow, State), State#state{links = Links#{OutHandle => Link#link{link_credit = Credit, auto_flow = AutoFlow}}}. +send_flow_session(State) -> + Flow = set_flow_session_fields(#'v1_0.flow'{}, State), + ok = send(Flow, State). + +set_flow_session_fields(Flow, #state{next_incoming_id = NID, + incoming_window = IW, + next_outgoing_id = NOI}) -> + Flow#'v1_0.flow'{ + %% "This value MUST be set if the peer has received the begin + %% frame for the session, and MUST NOT be set if it has not." [2.7.4] + next_incoming_id = maybe_uint(NID), + %% IncomingWindow0 can be negative when the sending server overshoots our window. + %% We must set a floor of 0 in the FLOW frame because field incoming-window is an uint. + incoming_window = uint(max(0, IW)), + next_outgoing_id = uint(NOI), + outgoing_window = ?UINT_OUTGOING_WINDOW}. + build_frames(Channel, Trf, Bin, MaxPayloadSize, Acc) when byte_size(Bin) =< MaxPayloadSize -> T = amqp10_framing:encode_bin(Trf#'v1_0.transfer'{more = false}), @@ -1059,17 +1089,21 @@ book_transfer_send(Num, #link{output_handle = Handle} = Link, links = Links#{Handle => book_link_transfer_send(Link)}}. book_partial_transfer_received(#state{next_incoming_id = NID, - remote_outgoing_window = ROW} = State) -> - State#state{next_incoming_id = add(NID, 1), - remote_outgoing_window = ROW - 1}. + incoming_window = IW, + remote_outgoing_window = ROW} = State0) -> + State = State0#state{next_incoming_id = add(NID, 1), + incoming_window = IW - 1, + remote_outgoing_window = ROW - 1}, + maybe_widen_incoming_window(State). book_transfer_received(State = #state{connection_config = #{transfer_limit_margin := Margin}}, #link{link_credit = Margin} = Link) -> {transfer_limit_exceeded, Link, State}; book_transfer_received(#state{next_incoming_id = NID, + incoming_window = IW, remote_outgoing_window = ROW, - links = Links} = State, + links = Links} = State0, #link{output_handle = OutHandle, delivery_count = DC, link_credit = LC, @@ -1079,19 +1113,31 @@ book_transfer_received(#state{next_incoming_id = NID, %% "the receiver MUST maintain a floor of zero in its %% calculation of the value of available" [2.6.7] available = max(0, Avail - 1)}, - State1 = State#state{links = Links#{OutHandle => Link1}, - next_incoming_id = add(NID, 1), - remote_outgoing_window = ROW - 1}, + State1 = State0#state{links = Links#{OutHandle => Link1}, + next_incoming_id = add(NID, 1), + incoming_window = IW - 1, + remote_outgoing_window = ROW - 1}, + State = maybe_widen_incoming_window(State1), case Link1 of #link{link_credit = 0, auto_flow = never} -> - {credit_exhausted, Link1, State1}; + {credit_exhausted, Link1, State}; _ -> - {ok, Link1, State1} + {ok, Link1, State} end. +maybe_widen_incoming_window( + State0 = #state{incoming_window = IncomingWindow, + auto_flow = {RenewWhenBelow, NewWindowSize}}) + when IncomingWindow < RenewWhenBelow -> + State = State0#state{incoming_window = NewWindowSize}, + send_flow_session(State), + State; +maybe_widen_incoming_window(State) -> + State. + auto_flow(#link{link_credit = LC, - auto_flow = {auto, RenewWhenBelow, Credit}, + auto_flow = {RenewWhenBelow, Credit}, output_handle = OutHandle, incoming_unsettled = Unsettled}, State) @@ -1230,6 +1276,7 @@ format_status(Status = #{data := Data0}) -> remote_channel = RemoteChannel, next_incoming_id = NextIncomingId, incoming_window = IncomingWindow, + auto_flow = SessionAutoFlow, next_outgoing_id = NextOutgoingId, remote_incoming_window = RemoteIncomingWindow, remote_outgoing_window = RemoteOutgoingWindow, @@ -1294,6 +1341,7 @@ format_status(Status = #{data := Data0}) -> remote_channel => RemoteChannel, next_incoming_id => NextIncomingId, incoming_window => IncomingWindow, + auto_flow => SessionAutoFlow, next_outgoing_id => NextOutgoingId, remote_incoming_window => RemoteIncomingWindow, remote_outgoing_window => RemoteOutgoingWindow, diff --git a/deps/amqp10_common/BUILD.bazel b/deps/amqp10_common/BUILD.bazel deleted file mode 100644 index dfe65bc2d31b..000000000000 --- a/deps/amqp10_common/BUILD.bazel +++ /dev/null @@ -1,144 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -py_binary( - name = "codegen", - srcs = [ - "codegen.py", - ], - imports = ["../../deps/rabbitmq_codegen"], - deps = [ - "//deps/rabbitmq_codegen:amqp_codegen", - ], -) - -AMQP_SPEC_1_0 = [ - "//deps/rabbitmq_codegen:amqp-1.0/messaging.xml", - "//deps/rabbitmq_codegen:amqp-1.0/security.xml", - "//deps/rabbitmq_codegen:amqp-1.0/transport.xml", - "//deps/rabbitmq_codegen:amqp-1.0/transactions.xml", -] - -genrule( - name = "generated_headers", - srcs = AMQP_SPEC_1_0, - outs = ["include/amqp10_framing.hrl"], - cmd = "$(location :codegen) hrl $(SRCS) > $@", - tools = [":codegen"], -) - -genrule( - name = "generated_sources", - srcs = AMQP_SPEC_1_0, - outs = ["src/amqp10_framing0.erl"], - cmd = "$(location :codegen) erl $(SRCS) > $@", - tools = [":codegen"], -) - -APP_EXTRA_KEYS = """%% Hex.pm package informations. - {licenses, ["MPL-2.0"]}, - {links, [ - {"Website", "https://www.rabbitmq.com/"}, - {"GitHub", "https://github.com/rabbitmq/rabbitmq-server/tree/main/deps/amqp10_common"} - ]}, - {build_tools, ["make", "rebar3"]}, - {files, [ - "erlang.mk", - "git-revisions.txt", - "include", - "LICENSE*", - "Makefile", - "rabbitmq-components.mk", - "README", - "README.md", - "src" - ]} -""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = "Modules shared by rabbitmq-amqp1.0 and rabbitmq-amqp1.0-client", - app_extra_keys = APP_EXTRA_KEYS, - app_name = "amqp10_common", - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -rabbitmq_suite( - name = "binary_generator_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "binary_parser_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "serial_number_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "prop_SUITE", - deps = [ - "//deps/rabbitmq_ct_helpers:erlang_app", - ], -) - -assert_suites() - -alias( - name = "amqp10_common", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) diff --git a/deps/amqp10_common/app.bzl b/deps/amqp10_common/app.bzl deleted file mode 100644 index 5e41032a8eb3..000000000000 --- a/deps/amqp10_common/app.bzl +++ /dev/null @@ -1,122 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/amqp10_binary_generator.erl", - "src/amqp10_binary_parser.erl", - "src/amqp10_framing.erl", - "src/amqp10_framing0.erl", - "src/amqp10_util.erl", - "src/serial_number.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "amqp10_common", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/amqp10_binary_generator.erl", - "src/amqp10_binary_parser.erl", - "src/amqp10_framing.erl", - "src/amqp10_framing0.erl", - "src/amqp10_util.erl", - "src/serial_number.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "amqp10_common", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/amqp10_binary_generator.erl", - "src/amqp10_binary_parser.erl", - "src/amqp10_framing.erl", - "src/amqp10_framing0.erl", - "src/amqp10_util.erl", - "src/serial_number.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/amqp10_filtex.hrl", "include/amqp10_framing.hrl", "include/amqp10_types.hrl"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "binary_generator_SUITE_beam_files", - testonly = True, - srcs = ["test/binary_generator_SUITE.erl"], - outs = ["test/binary_generator_SUITE.beam"], - app_name = "amqp10_common", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "binary_parser_SUITE_beam_files", - testonly = True, - srcs = ["test/binary_parser_SUITE.erl"], - outs = ["test/binary_parser_SUITE.beam"], - app_name = "amqp10_common", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "serial_number_SUITE_beam_files", - testonly = True, - srcs = ["test/serial_number_SUITE.erl"], - outs = ["test/serial_number_SUITE.beam"], - app_name = "amqp10_common", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "prop_SUITE_beam_files", - testonly = True, - srcs = ["test/prop_SUITE.erl"], - outs = ["test/prop_SUITE.beam"], - hdrs = ["include/amqp10_framing.hrl"], - app_name = "amqp10_common", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) diff --git a/deps/amqp_client/BUILD.bazel b/deps/amqp_client/BUILD.bazel deleted file mode 100644 index ed36ed8b6b79..000000000000 --- a/deps/amqp_client/BUILD.bazel +++ /dev/null @@ -1,147 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_ENV = """[ - {prefer_ipv6, false}, - {ssl_options, []}, - {writer_gc_threshold, 1000000000} - ]""" - -APP_EXTRA_KEYS = """%% Hex.pm package informations. - {licenses, ["MPL-2.0"]}, - {links, [ - {"Website", "https://www.rabbitmq.com/"}, - {"GitHub", "https://github.com/rabbitmq/rabbitmq-server/tree/main/deps/amqp_client"}, - {"User guide", "https://www.rabbitmq.com/erlang-client-user-guide.html"} - ]}, - {build_tools, ["make", "rebar3"]}, - {files, [ - "erlang.mk", - "git-revisions.txt", - "include", - "LICENSE*", - "Makefile", - "rabbitmq-components.mk", - "README", - "README.md", - "src" - ]} -""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app xmerl -# gazelle:erlang_app_extra_app ssl -# gazelle:erlang_app_extra_app public_key - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = "RabbitMQ AMQP Client", - app_env = APP_ENV, - app_extra_keys = APP_EXTRA_KEYS, - app_module = "amqp_client", - app_name = "amqp_client", - app_registered = [ - "amqp_sup", - ], - beam_files = [":beam_files"], - extra_apps = [ - "xmerl", - "public_key", - "ssl", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit_common:erlang_app", - "@credentials_obfuscation//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -rabbitmq_home( - name = "broker-for-tests-home", - plugins = [ - "//deps/rabbit:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-tests-run", - home = ":broker-for-tests-home", -) - -rabbitmq_integration_suite( - name = "system_SUITE", - size = "large", - deps = [ - "@meck//:erlang_app", - ], -) - -rabbitmq_suite( - name = "unit_SUITE", - size = "small", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -assert_suites() - -alias( - name = "amqp_client", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) diff --git a/deps/amqp_client/app.bzl b/deps/amqp_client/app.bzl deleted file mode 100644 index 11ded2ce4e2b..000000000000 --- a/deps/amqp_client/app.bzl +++ /dev/null @@ -1,192 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":behaviours", ":other_beam"], - ) - erlang_bytecode( - name = "behaviours", - srcs = [ - "src/amqp_gen_connection.erl", - "src/amqp_gen_consumer.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "amqp_client", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/amqp_auth_mechanisms.erl", - "src/amqp_channel.erl", - "src/amqp_channel_sup.erl", - "src/amqp_channel_sup_sup.erl", - "src/amqp_channels_manager.erl", - "src/amqp_client.erl", - "src/amqp_connection.erl", - "src/amqp_connection_sup.erl", - "src/amqp_connection_type_sup.erl", - "src/amqp_direct_connection.erl", - "src/amqp_direct_consumer.erl", - "src/amqp_main_reader.erl", - "src/amqp_network_connection.erl", - "src/amqp_rpc_client.erl", - "src/amqp_rpc_server.erl", - "src/amqp_selective_consumer.erl", - "src/amqp_ssl.erl", - "src/amqp_sup.erl", - "src/amqp_uri.erl", - "src/amqp_util.erl", - "src/rabbit_routing_util.erl", - "src/uri_parser.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "amqp_client", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_behaviours", ":test_other_beam"], - ) - erlang_bytecode( - name = "test_behaviours", - testonly = True, - srcs = [ - "src/amqp_gen_connection.erl", - "src/amqp_gen_consumer.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "amqp_client", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/amqp_auth_mechanisms.erl", - "src/amqp_channel.erl", - "src/amqp_channel_sup.erl", - "src/amqp_channel_sup_sup.erl", - "src/amqp_channels_manager.erl", - "src/amqp_client.erl", - "src/amqp_connection.erl", - "src/amqp_connection_sup.erl", - "src/amqp_connection_type_sup.erl", - "src/amqp_direct_connection.erl", - "src/amqp_direct_consumer.erl", - "src/amqp_main_reader.erl", - "src/amqp_network_connection.erl", - "src/amqp_rpc_client.erl", - "src/amqp_rpc_server.erl", - "src/amqp_selective_consumer.erl", - "src/amqp_ssl.erl", - "src/amqp_sup.erl", - "src/amqp_uri.erl", - "src/amqp_util.erl", - "src/rabbit_routing_util.erl", - "src/uri_parser.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "amqp_client", - beam = [":test_behaviours"], - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/amqp_auth_mechanisms.erl", - "src/amqp_channel.erl", - "src/amqp_channel_sup.erl", - "src/amqp_channel_sup_sup.erl", - "src/amqp_channels_manager.erl", - "src/amqp_client.erl", - "src/amqp_connection.erl", - "src/amqp_connection_sup.erl", - "src/amqp_connection_type_sup.erl", - "src/amqp_direct_connection.erl", - "src/amqp_direct_consumer.erl", - "src/amqp_gen_connection.erl", - "src/amqp_gen_consumer.erl", - "src/amqp_main_reader.erl", - "src/amqp_network_connection.erl", - "src/amqp_rpc_client.erl", - "src/amqp_rpc_server.erl", - "src/amqp_selective_consumer.erl", - "src/amqp_ssl.erl", - "src/amqp_sup.erl", - "src/amqp_uri.erl", - "src/amqp_util.erl", - "src/rabbit_routing_util.erl", - "src/uri_parser.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = [ - "include/amqp_client.hrl", - "include/amqp_client_internal.hrl", - "include/amqp_gen_consumer_spec.hrl", - "include/rabbit_routing_prefixes.hrl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - hdrs = ["include/amqp_client.hrl", "include/amqp_client_internal.hrl"], - app_name = "amqp_client", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - hdrs = ["include/amqp_client.hrl"], - app_name = "amqp_client", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) diff --git a/deps/oauth2_client/BUILD.bazel b/deps/oauth2_client/BUILD.bazel deleted file mode 100644 index 491ea1e4da3c..000000000000 --- a/deps/oauth2_client/BUILD.bazel +++ /dev/null @@ -1,126 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "oauth2_client" - -APP_DESCRIPTION = "OAuth 2.0 client from the RabbitMQ Project" - -APP_MODULE = "oauth2_client_app" - -# gazelle:erlang_app_extra_app ssl -# gazelle:erlang_app_extra_app inets -# gazelle:erlang_app_extra_app crypto -# gazelle:erlang_app_extra_app public_key - -# gazelle:erlang_app_dep_exclude rabbit - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - "inets", - "ssl", - "public_key", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit_common:erlang_app", - "@jose//:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbit:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", - deps = [ - "//deps/rabbit:erlang_app", # keep - ], -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [ - ":test_oauth_http_mock_beam", - ":test_oauth2_client_test_util_beam", - ], - target = ":test_erlang_app", -) - -all_srcs(name = "all_srcs") - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -test_suite_beam_files(name = "test_suite_beam_files") - -alias( - name = "oauth2_client", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "system_SUITE", - size = "small", - additional_beam = [ - "test/oauth_http_mock.beam", - "test/oauth2_client_test_util.beam", - ], - runtime_deps = [ - "@cowboy//:erlang_app", - ], -) - -rabbitmq_suite( - name = "unit_SUITE", - size = "small", - additional_beam = [ - "test/oauth2_client_test_util.beam", - ], -) - -assert_suites() diff --git a/deps/oauth2_client/Makefile b/deps/oauth2_client/Makefile index 6dcf2cbaf7c6..2f0a4f52e9b2 100644 --- a/deps/oauth2_client/Makefile +++ b/deps/oauth2_client/Makefile @@ -1,6 +1,5 @@ PROJECT = oauth2_client PROJECT_DESCRIPTION = OAuth2 client from the RabbitMQ Project -PROJECT_MOD = oauth2_client_app BUILD_DEPS = rabbit DEPS = rabbit_common jose @@ -12,5 +11,8 @@ PLT_APPS = rabbit DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk +# Required to properly autopatch jose. +ELIXIR = system + include rabbitmq-components.mk include erlang.mk diff --git a/deps/oauth2_client/app.bzl b/deps/oauth2_client/app.bzl deleted file mode 100644 index 3ddba5d9a082..000000000000 --- a/deps/oauth2_client/app.bzl +++ /dev/null @@ -1,111 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/jwt_helper.erl", - "src/oauth2_client.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "oauth2_client", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["@jose//:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/jwt_helper.erl", - "src/oauth2_client.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "oauth2_client", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["@jose//:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/jwt_helper.erl", - "src/oauth2_client.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "public_hdrs", - srcs = ["include/oauth2_client.hrl", "include/types.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "test_oauth_http_mock_beam", - testonly = True, - srcs = ["test/oauth_http_mock.erl"], - outs = ["test/oauth_http_mock.beam"], - app_name = "oauth2_client", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - hdrs = ["include/oauth2_client.hrl", "include/types.hrl"], - app_name = "oauth2_client", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - hdrs = ["include/oauth2_client.hrl", "include/types.hrl"], - app_name = "oauth2_client", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_oauth2_client_test_util_beam", - testonly = True, - srcs = ["test/oauth2_client_test_util.erl"], - outs = ["test/oauth2_client_test_util.beam"], - app_name = "oauth2_client", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbit/BUILD.bazel b/deps/rabbit/BUILD.bazel deleted file mode 100644 index a240cb9c43c0..000000000000 --- a/deps/rabbit/BUILD.bazel +++ /dev/null @@ -1,1383 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", - "without", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) -load(":bats.bzl", "bats") - -exports_files(glob([ - "scripts/**", -]) + ["INSTALL"]) - -_APP_ENV = """[ - %% See https://www.rabbitmq.com/docs/consumers#acknowledgement-timeout - %% 30 minutes - {consumer_timeout, 1800000}, - {tcp_listeners, [5672]}, - {num_tcp_acceptors, 10}, - {ssl_listeners, []}, - {num_ssl_acceptors, 10}, - {ssl_options, []}, - {vm_memory_high_watermark, 0.6}, - {vm_memory_calculation_strategy, rss}, - {disk_free_limit, 50000000}, %% 50MB - {backing_queue_module, rabbit_variable_queue}, - %% 0 ("no limit") would make a better default, but that - %% breaks the QPid Java client - {frame_max, 131072}, - %% see rabbitmq-server#1593 - {channel_max, 2047}, - {session_max_per_connection, 64}, - {link_max_per_session, 256}, - {ranch_connection_max, infinity}, - {heartbeat, 60}, - {msg_store_file_size_limit, 16777216}, - {msg_store_shutdown_timeout, 600000}, - {fhc_write_buffering, true}, - {fhc_read_buffering, false}, - {queue_index_max_journal_entries, 32768}, - {queue_index_embed_msgs_below, 4096}, - {default_user, <<"guest">>}, - {default_pass, <<"guest">>}, - {default_user_tags, [administrator]}, - {default_vhost, <<"/">>}, - {default_permissions, [<<".*">>, <<".*">>, <<".*">>]}, - {loopback_users, [<<"guest">>]}, - {password_hashing_module, rabbit_password_hashing_sha256}, - {server_properties, []}, - {collect_statistics, none}, - {collect_statistics_interval, 5000}, - {mnesia_table_loading_retry_timeout, 30000}, - {mnesia_table_loading_retry_limit, 10}, - {anonymous_login_user, <<"guest">>}, - {anonymous_login_pass, <<"guest">>}, - {auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'ANONYMOUS']}, - {auth_backends, [rabbit_auth_backend_internal]}, - {delegate_count, 16}, - {trace_vhosts, []}, - {ssl_cert_login_from, distinguished_name}, - {ssl_handshake_timeout, 5000}, - {ssl_allow_poodle_attack, false}, - {handshake_timeout, 10000}, - {reverse_dns_lookups, false}, - {cluster_partition_handling, ignore}, - {cluster_keepalive_interval, 10000}, - {autoheal_state_transition_timeout, 60000}, - {tcp_listen_options, [{backlog, 128}, - {nodelay, true}, - {linger, {true, 0}}, - {exit_on_close, false} - ]}, - {ssl_apps, [asn1, crypto, public_key, ssl]}, - %% see rabbitmq-server#114 - {classic_queue_flow_control, true}, - %% see rabbitmq-server#227 and related tickets. - %% msg_store_credit_disc_bound only takes effect when - %% messages are persisted to the message store. If messages - %% are embedded on the queue index, then modifying this - %% setting has no effect because credit_flow is not used when - %% writing to the queue index. See the setting - %% queue_index_embed_msgs_below above. - {msg_store_credit_disc_bound, {4000, 800}}, - %% see rabbitmq-server#143, - %% rabbitmq-server#949, rabbitmq-server#1098 - {credit_flow_default_credit, {400, 200}}, - {quorum_commands_soft_limit, 32}, - {quorum_cluster_size, 3}, - %% see rabbitmq-server#248 - %% and rabbitmq-server#667 - {channel_operation_timeout, 15000}, - - %% used by rabbit_peer_discovery_classic_config - {cluster_nodes, {[], disc}}, - - {config_entry_decoder, [{passphrase, undefined}]}, - {background_gc_enabled, false}, - {background_gc_target_interval, 60000}, - %% rabbitmq-server#589 - {proxy_protocol, false}, - {disk_monitor_failure_retries, 10}, - {disk_monitor_failure_retry_interval, 120000}, - %% either "stop_node" or "continue". - %% by default we choose to not terminate the entire node if one - %% vhost had to shut down, see server#1158 and server#1280 - {vhost_restart_strategy, continue}, - %% {global, prefetch count} - {default_consumer_prefetch, {false, 0}}, - %% interval at which the channel can perform periodic actions - {channel_tick_interval, 60000}, - %% Default max message size is 16 MB - {max_message_size, 16777216}, - %% Socket writer will run GC every 1 GB of outgoing data - {writer_gc_threshold, 1000000000}, - %% interval at which connection/channel tracking executes post operations - {tracking_execution_timeout, 15000}, - {stream_messages_soft_limit, 256}, - {track_auth_attempt_source, false}, - {credentials_obfuscation_fallback_secret, <<"nocookie">>}, - {dead_letter_worker_consumer_prefetch, 32}, - {dead_letter_worker_publisher_confirm_timeout, 180000}, - {vhost_process_reconciliation_run_interval, 30}, - %% for testing - {vhost_process_reconciliation_enabled, true}, - {license_line, "Licensed under the MPL 2.0. Website: https://rabbitmq.com"} - ] -""" - -APP_MODULE = "rabbit" - -APP_REGISTERED = [ - "rabbit_amqqueue_sup", - "rabbit_direct_client_sup", - "rabbit_log", - "rabbit_node_monitor", - "rabbit_router", -] - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_apps_dirs apps - -# gazelle:erlang_app_extra_app sasl -# gazelle:erlang_app_extra_app os_mon -# gazelle:erlang_app_extra_app inets -# gazelle:erlang_app_extra_app compiler -# gazelle:erlang_app_extra_app crypto -# gazelle:erlang_app_extra_app public_key -# gazelle:erlang_app_extra_app ssl -# gazelle:erlang_app_extra_app syntax_tools -# gazelle:erlang_app_extra_app xmerl - -# gazelle:erlang_app_dep cuttlefish -# gazelle:erlang_app_dep syslog -# gazelle:erlang_app_dep observer_cli -# gazelle:erlang_app_dep redbug -# gazelle:erlang_app_dep sysmon_handler -# gazelle:erlang_app_dep systemd - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = "RabbitMQ", - app_env = _APP_ENV, - app_module = APP_MODULE, - app_name = "rabbit", - app_registered = APP_REGISTERED, - beam_files = [":beam_files"], - extra_apps = [ - "compiler", - "inets", - "os_mon", - "public_key", - "sasl", - "ssl", - "syntax_tools", - "xmerl", - "crypto", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_prelaunch:erlang_app", - "@cowlib//:erlang_app", - "@cuttlefish//:erlang_app", - "@gen_batch_server//:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - "@observer_cli//:erlang_app", - "@osiris//:erlang_app", - "@ra//:erlang_app", - "@ranch//:erlang_app", - "@recon//:erlang_app", - "@redbug//:erlang_app", - "@seshat//:erlang_app", - "@stdout_formatter//:erlang_app", - "@syslog//:erlang_app", - "@sysmon_handler//:erlang_app", - "@systemd//:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - apps = [ - "mnesia", # keep - "runtime_tools", # keep - ], - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", - deps = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -bats( - srcs = glob(["test/**/*.bats"]), - data = glob( - ["scripts/*"], - exclude = ["scripts/*.bat"], - ), - tags = ["bats"], -) - -rabbitmq_home( - name = "broker-for-tests-home", - testonly = True, - plugins = [ - ":test_erlang_app", - "//deps/rabbitmq_ct_client_helpers:erlang_app", - "//deps/rabbitmq_amqp1_0:erlang_app", - "@inet_tcp_proxy_dist//:erlang_app", - "@meck//:erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-tests-run", - testonly = True, - home = ":broker-for-tests-home", -) - -rabbitmq_suite( - name = "amqqueue_backward_compatibility_SUITE", - size = "small", -) - -rabbitmq_integration_suite( - name = "backing_queue_SUITE", - size = "large", -) - -rabbitmq_integration_suite( - name = "channel_interceptor_SUITE", - size = "medium", - additional_beam = [ - "test/dummy_interceptor.beam", - "test/failing_dummy_interceptor.beam", - ], -) - -rabbitmq_integration_suite( - name = "channel_operation_timeout_SUITE", - size = "medium", - additional_beam = [ - "test/channel_operation_timeout_test_queue.beam", - ], -) - -rabbitmq_integration_suite( - name = "classic_queue_prop_SUITE", - size = "large", - deps = [ - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "cluster_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "clustering_events_SUITE", - size = "medium", - additional_beam = [ - ":test_event_recorder_beam", - ], -) - -rabbitmq_integration_suite( - name = "quorum_queue_member_reconciliation_SUITE", - size = "medium", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "cluster_limit_SUITE", - size = "medium", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "clustering_management_SUITE", - size = "large", - additional_beam = [ - ":test_clustering_utils_beam", - ], - shard_count = 45, - sharding_method = "case", -) - -rabbitmq_integration_suite( - name = "clustering_recovery_SUITE", - size = "medium", - additional_beam = [ - ":test_clustering_utils_beam", - ], - shard_count = 8, - sharding_method = "case", -) - -rabbitmq_integration_suite( - name = "config_schema_SUITE", - size = "medium", - data = [ - "test/definition_import_SUITE_data/case1.json", - ], -) - -rabbitmq_integration_suite( - name = "confirms_rejects_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "consumer_timeout_SUITE", - size = "medium", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "crashing_queues_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "dead_lettering_SUITE", - size = "large", - additional_beam = [ - ":test_queue_utils_beam", - ], - shard_count = 6, -) - -rabbitmq_integration_suite( - name = "amqpl_consumer_ack_SUITE", -) - -rabbitmq_integration_suite( - name = "message_containers_deaths_v2_SUITE", - size = "medium", - shard_count = 1, -) - -rabbitmq_integration_suite( - name = "definition_import_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "deprecated_features_SUITE", - size = "medium", - additional_beam = [ - ":feature_flags_v2_SUITE_beam_files", - ], -) - -rabbitmq_integration_suite( - name = "disconnect_detected_during_alarm_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "disk_monitor_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "dynamic_qq_SUITE", - size = "large", - additional_beam = [ - ":test_queue_utils_beam", - ], - deps = [ - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "feature_flags_SUITE", - size = "large", - additional_beam = [ - ":test_clustering_utils_beam", - ], - flaky = True, - shard_count = 5, - runtime_deps = [ - "//deps/rabbit/test/feature_flags_SUITE_data/my_plugin:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "feature_flags_v2_SUITE", - size = "large", -) - -rabbitmq_integration_suite( - name = "msg_size_metrics_SUITE", - runtime_deps = [ - "//deps/rabbitmq_amqp_client:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "list_consumers_sanity_check_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "list_queues_online_and_offline_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "logging_SUITE", - runtime_deps = [ - "@syslog//:erlang_app", - ], -) - -rabbitmq_suite( - name = "lqueue_SUITE", - size = "small", - deps = [ - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "maintenance_mode_SUITE", - size = "medium", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "rabbit_message_interceptor_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "message_size_limit_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "per_node_limit_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "metrics_SUITE", - size = "medium", - deps = [ - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "mirrored_supervisor_SUITE", - size = "small", - additional_beam = [ - "test/mirrored_supervisor_SUITE_gs.beam", - ], -) - -rabbitmq_integration_suite( - name = "peer_discovery_classic_config_SUITE", - size = "large", -) - -rabbitmq_integration_suite( - name = "peer_discovery_dns_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "peer_discovery_tmp_hidden_node_SUITE", - size = "large", -) - -rabbitmq_integration_suite( - name = "per_user_connection_channel_limit_partitions_SUITE", - size = "large", -) - -rabbitmq_integration_suite( - name = "per_user_connection_channel_limit_SUITE", - size = "medium", - shard_count = 4, -) - -rabbitmq_integration_suite( - name = "per_user_connection_channel_tracking_SUITE", - size = "medium", - shard_count = 4, -) - -rabbitmq_integration_suite( - name = "per_user_connection_tracking_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "per_vhost_connection_limit_partitions_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "per_vhost_connection_limit_SUITE", - size = "medium", - shard_count = 5, -) - -rabbitmq_integration_suite( - name = "per_vhost_msg_store_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "per_vhost_queue_limit_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "policy_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "priority_queue_recovery_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "priority_queue_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "product_info_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "proxy_protocol_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "publisher_confirms_parallel_SUITE", - size = "medium", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "queue_length_limits_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "queue_parallel_SUITE", - size = "large", - additional_beam = [ - ":test_queue_utils_beam", - ], - shard_count = 3, -) - -rabbitmq_integration_suite( - name = "queue_type_SUITE", - size = "medium", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "quorum_queue_SUITE", - size = "large", - additional_beam = [ - ":test_queue_utils_beam", - ":test_clustering_utils_beam", - ], - shard_count = 6, -) - -rabbitmq_integration_suite( - name = "classic_queue_SUITE", - size = "medium", -) - -rabbitmq_suite( - name = "rabbit_confirms_SUITE", - size = "small", - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "rabbit_core_metrics_gc_SUITE", - size = "medium", -) - -rabbitmq_suite( - name = "rabbit_cuttlefish_SUITE", -) - -rabbitmq_suite( - name = "rabbit_fifo_int_SUITE", - size = "medium", - additional_beam = [ - ":test_test_util_beam", - ], - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_ct_helpers:erlang_app", - "@aten//:erlang_app", - "@gen_batch_server//:erlang_app", - "@meck//:erlang_app", - "@ra//:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_fifo_prop_SUITE", - size = "large", - additional_beam = [ - ":test_test_util_beam", - ], - deps = [ - "//deps/rabbit_common:erlang_app", - "@meck//:erlang_app", - "@proper//:erlang_app", - "@ra//:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_fifo_dlx_SUITE", - size = "small", - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_fifo_q_SUITE", - size = "small", - deps = [ - "//deps/rabbit_common:erlang_app", - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "rabbit_fifo_dlx_integration_SUITE", - size = "medium", - additional_beam = [ - ":test_test_util_beam", - ":test_queue_utils_beam", - ":quorum_queue_SUITE_beam_files", - ], - deps = [ - "@proper//:erlang_app", - "@ra//:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_fifo_SUITE", - size = "medium", - additional_beam = [ - ":test_test_util_beam", - ":rabbit_fifo_v0_SUITE_beam_files", - ], - deps = [ - "//deps/rabbit_common:erlang_app", - "@meck//:erlang_app", - "@ra//:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_fifo_v0_SUITE", - size = "medium", - additional_beam = [ - ":test_test_util_beam", - ], - deps = [ - "//deps/rabbit_common:erlang_app", - "@meck//:erlang_app", - "@ra//:erlang_app", - ], -) - -rabbitmq_suite( - name = "mc_unit_SUITE", - size = "small", - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_stream_coordinator_SUITE", - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_stream_sac_coordinator_SUITE", - runtime_deps = [ - "@meck//:erlang_app", - ], - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_access_control_SUITE", - runtime_deps = [ - "@meck//:erlang_app", - ], - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "rabbit_stream_queue_SUITE", - size = "large", - additional_beam = [ - ":test_queue_utils_beam", - ], - shard_count = 20, - deps = [ - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "rabbitmq_4_0_deprecations_SUITE", - size = "large", -) - -rabbitmq_integration_suite( - name = "rabbitmq_queues_cli_integration_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "rabbitmqctl_integration_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "rabbitmqctl_shutdown_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "signal_handling_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "single_active_consumer_SUITE", - size = "medium", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "term_to_binary_compat_prop_SUITE", - deps = [ - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "topic_permission_SUITE", - size = "medium", - additional_beam = [ - ":test_amqp_utils_beam", - ], - runtime_deps = [ - "//deps/rabbitmq_amqp_client:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "transactions_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "unit_access_control_authn_authz_context_propagation_SUITE", - size = "medium", - additional_beam = [ - "test/rabbit_auth_backend_context_propagation_mock.beam", - "test/rabbit_foo_protocol_connection_info.beam", - ], -) - -rabbitmq_integration_suite( - name = "unit_access_control_credential_validation_SUITE", - size = "medium", - deps = [ - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "unit_access_control_SUITE", - size = "medium", - additional_beam = [ - "test/rabbit_dummy_protocol_connection_info.beam", - ], -) - -rabbitmq_suite( - name = "unit_amqp091_content_framing_SUITE", - size = "small", - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "unit_amqp091_server_properties_SUITE", - size = "medium", -) - -rabbitmq_suite( - name = "unit_quorum_queue_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "unit_app_management_SUITE", - size = "medium", -) - -rabbitmq_suite( - name = "unit_cluster_formation_locking_mocks_SUITE", - size = "small", - deps = [ - "@meck//:erlang_app", - ], -) - -rabbitmq_suite( - name = "unit_cluster_formation_sort_nodes_SUITE", - size = "small", - deps = [ - "@meck//:erlang_app", - ], -) - -rabbitmq_suite( - name = "unit_collections_SUITE", - size = "small", - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_suite( - name = "unit_config_value_encryption_SUITE", - size = "medium", - deps = [ - "//deps/rabbit_common:test_erlang_app", - "//deps/rabbitmq_prelaunch:test_erlang_app", - "@credentials_obfuscation//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "unit_connection_tracking_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "unit_credit_flow_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "unit_disk_monitor_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "unit_file_handle_cache_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "unit_gen_server2_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "unit_log_management_SUITE", - size = "medium", -) - -rabbitmq_suite( - name = "unit_msg_size_metrics_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "unit_operator_policy_SUITE", - size = "small", - deps = [ - "//deps/rabbit_common:test_erlang_app", - ], -) - -rabbitmq_suite( - name = "unit_pg_local_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "unit_plugin_directories_SUITE", - size = "small", - deps = [ - "//deps/rabbit_common:test_erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "unit_plugin_versioning_SUITE", - size = "small", -) - -rabbitmq_integration_suite( - name = "unit_policy_validators_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "unit_priority_queue_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "unit_queue_consumers_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "unit_queue_location_SUITE", - size = "small", - deps = [ - "@meck//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "unit_stats_and_metrics_SUITE", - size = "medium", - additional_beam = [ - "test/dummy_event_receiver.beam", - ], -) - -rabbitmq_suite( - name = "unit_supervisor2_SUITE", - size = "small", - additional_beam = [ - "test/dummy_supervisor2.beam", - ], -) - -rabbitmq_integration_suite( - name = "unit_vm_memory_monitor_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "upgrade_preparation_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "vhost_SUITE", - size = "medium", - additional_beam = [ - "test/test_rabbit_event_handler.beam", - ], -) - -rabbitmq_integration_suite( - name = "direct_exchange_routing_v2_SUITE", - size = "medium", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "rabbit_local_random_exchange_SUITE", - size = "small", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "rabbit_direct_reply_to_prop_SUITE", - size = "medium", - deps = [ - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "unicode_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "exchanges_SUITE", - size = "medium", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "bindings_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "rabbit_db_queue_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "rabbit_db_maintenance_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "rabbit_db_topic_exchange_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "rabbit_db_exchange_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "rabbit_db_binding_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "rabbit_db_msup_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "rabbit_db_policy_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "runtime_parameters_SUITE", - size = "small", - additional_beam = [ - "test/dummy_runtime_parameters.beam", - ], -) - -rabbitmq_integration_suite( - name = "metadata_store_clustering_SUITE", - size = "large", - shard_count = 19, - sharding_method = "case", -) - -rabbitmq_integration_suite( - name = "metadata_store_phase1_SUITE", - size = "small", - deps = [ - "@khepri//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "metadata_store_migration_SUITE", - size = "small", -) - -rabbitmq_integration_suite( - name = "routing_SUITE", - size = "large", -) - -rabbitmq_integration_suite( - name = "cli_forget_cluster_node_SUITE", - size = "medium", - additional_beam = [ - ":test_clustering_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "cluster_minority_SUITE", - size = "medium", - additional_beam = [ - ":test_clustering_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "cluster_upgrade_SUITE", - size = "medium", - additional_beam = [ - ":test_queue_utils_beam", - ], -) - -rabbitmq_integration_suite( - name = "amqp_client_SUITE", - size = "large", - additional_beam = [ - ":test_amqp_utils_beam", - ":test_event_recorder_beam", - ], - shard_count = 3, - runtime_deps = [ - "//deps/rabbitmq_amqp_client:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "amqp_filtex_SUITE", - additional_beam = [ - ":test_amqp_utils_beam", - ], - runtime_deps = [ - "//deps/rabbitmq_amqp_client:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "amqp_proxy_protocol_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "amqp_system_SUITE", - flaky = True, - shard_count = 2, - tags = [ - "dotnet", - ], - test_env = { - "TMPDIR": "$TEST_TMPDIR", - }, -) - -rabbitmq_integration_suite( - name = "amqp_auth_SUITE", - additional_beam = [ - ":test_amqp_utils_beam", - ":test_event_recorder_beam", - ], - shard_count = 2, - runtime_deps = [ - "//deps/rabbitmq_amqp_client:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "amqp_address_SUITE", - additional_beam = [ - ":test_amqp_utils_beam", - ], - shard_count = 2, - runtime_deps = [ - "//deps/rabbitmq_amqp_client:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "amqp_credit_api_v2_SUITE", - runtime_deps = [ - "//deps/rabbitmq_amqp_client:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "amqpl_direct_reply_to_SUITE", -) - -assert_suites() - -filegroup( - name = "manpages", - srcs = glob([ - "docs/*.1", - "docs/*.2", - "docs/*.3", - "docs/*.4", - "docs/*.5", - "docs/*.6", - "docs/*.7", - "docs/*.8", - "docs/*.9", - ]), -) - -genrule( - name = "manpages-dir", - srcs = [":manpages"], - outs = ["manpages.tar"], - cmd = """set -euo pipefail - -DESTDIR=share/man -mkdir -p $${DESTDIR} -for mp in $(SRCS); do - section=$${mp##*.} - mkdir -p $${DESTDIR}/man$$section - gzip < $$mp \\ - > $${DESTDIR}/man$$section/$$(basename $$mp).gz -done -tar -cf $@ share -rm -dr share -""", - visibility = ["//visibility:public"], -) - -genrule( - name = "web-manpages", - srcs = [":manpages"], - outs = ["web-manpages.tar"], - cmd = """set -euo pipefail - -mkdir web-manpages-tmp -for mp in $(SRCS); do - d=web-manpages-tmp/$$(basename $${mp}).html - echo "Converting $$mp to $$d..." - mandoc -T html -O 'fragment,man=%N.%S.html' "$$mp" | \\ - awk '\\ - /^$$/ { remove_table=1; next; } \\ - /^
$$/ { remove_table=1; next; } \\ - /^<\\/table>$$/ { if (remove_table) { remove_table=0; next; } } \\ - { if (!remove_table) { \\ - line=$$0; \\ - gsub(/

/, "

", line); \\ - gsub(/

/, "

", line); \\ - gsub(/class="D1"/, "class=\"D1 lang-bash\"", line); \\ - gsub(/class="Bd Bd-indent"/, "class=\"Bd Bd-indent lang-bash\"", line); \\ - gsub(/&#[xX]201[cCdD];/, "\\"", line); \\ - print line; \\ - } } \\ - ' > "$$d" -done -tar --strip-components 1 -cf $@ web-manpages-tmp/* -rm -dr web-manpages-tmp -""", - visibility = ["//visibility:public"], -) - -alias( - name = "rabbit", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -eunit( - name = "eunit", - compiled_suites = [ - ":test_channel_operation_timeout_test_queue_beam", - ":test_dummy_event_receiver_beam", - ":test_dummy_interceptor_beam", - ":test_dummy_runtime_parameters_beam", - ":test_dummy_supervisor2_beam", - ":test_failing_dummy_interceptor_beam", - ":test_mirrored_supervisor_SUITE_gs_beam", - ":test_queue_utils_beam", - ":test_rabbit_auth_backend_context_propagation_mock_beam", - ":test_rabbit_dummy_protocol_connection_info_beam", - ":test_rabbit_foo_protocol_connection_info_beam", - ":test_test_util_beam", - ":test_test_rabbit_event_handler_beam", - ":test_clustering_utils_beam", - ":test_event_recorder_beam", - ":test_rabbit_ct_hook_beam", - ":test_amqp_utils_beam", - ":test_rabbit_list_test_event_handler_beam", - ], - target = ":test_erlang_app", - test_env = { - "COVERDATA_TO_LCOV_APPS_DIRS": "deps:deps/rabbit/apps", - }, -) diff --git a/deps/rabbit/Makefile b/deps/rabbit/Makefile index 8045ec69834e..8326990d9e11 100644 --- a/deps/rabbit/Makefile +++ b/deps/rabbit/Makefile @@ -328,6 +328,7 @@ tpl_parallel_ct_test_spec_set_$1 = $$(call tpl_parallel_ct_test_spec,$(PARALLEL_ parallel-ct-set-$(1): test-build $(verbose) mkdir -p $(CT_LOGS_DIR) $(verbose) $$(call core_render,tpl_parallel_ct_test_spec_set_$(1),ct.set-$(1).spec) + $$(eval ERL := erl -noinput -boot no_dot_erlang) $$(call erlang,$$(call ct_master.erl,ct.set-$(1).spec),-sname parallel_ct_$(PROJECT)@localhost -hidden -kernel net_ticktime 5) endef @@ -337,6 +338,7 @@ $(foreach set,1 2 3 4,$(eval $(call parallel_ct_set_target,$(set)))) parallel-ct: test-build $(verbose) mkdir -p $(CT_LOGS_DIR) + $(eval ERL := erl -noinput -boot no_dot_erlang) $(call erlang,$(call ct_master.erl,ct.test.spec),-sname parallel_ct_$(PROJECT)@localhost -hidden -kernel net_ticktime 5) # -------------------------------------------------------------------- diff --git a/deps/rabbit/app.bzl b/deps/rabbit/app.bzl deleted file mode 100644 index 9d3c41909699..000000000000 --- a/deps/rabbit/app.bzl +++ /dev/null @@ -1,2229 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":behaviours", ":other_beam"], - ) - erlang_bytecode( - name = "behaviours", - srcs = [ - "src/mc.erl", - "src/rabbit_backing_queue.erl", - "src/rabbit_credential_validator.erl", - "src/rabbit_exchange_type.erl", - "src/rabbit_policy_merge_strategy.erl", - "src/rabbit_queue_type.erl", - "src/rabbit_tracking.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbit", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/amqqueue.erl", - "src/background_gc.erl", - "src/code_server_cache.erl", - "src/gatherer.erl", - "src/gm.erl", - "src/internal_user.erl", - "src/lqueue.erl", - "src/mc_amqp.erl", - "src/mc_amqpl.erl", - "src/mc_compat.erl", - "src/mc_util.erl", - "src/mirrored_supervisor.erl", - "src/mirrored_supervisor_sups.erl", - "src/pg_local.erl", - "src/pid_recomposition.erl", - "src/rabbit.erl", - "src/rabbit_access_control.erl", - "src/rabbit_alarm.erl", - "src/rabbit_amqp1_0.erl", - "src/rabbit_amqp_filtex.erl", - "src/rabbit_amqp_management.erl", - "src/rabbit_amqp_reader.erl", - "src/rabbit_amqp_session.erl", - "src/rabbit_amqp_session_sup.erl", - "src/rabbit_amqp_util.erl", - "src/rabbit_amqp_writer.erl", - "src/rabbit_amqqueue.erl", - "src/rabbit_amqqueue_control.erl", - "src/rabbit_amqqueue_process.erl", - "src/rabbit_amqqueue_sup.erl", - "src/rabbit_amqqueue_sup_sup.erl", - "src/rabbit_auth_backend_internal.erl", - "src/rabbit_auth_mechanism_amqplain.erl", - "src/rabbit_auth_mechanism_anonymous.erl", - "src/rabbit_auth_mechanism_cr_demo.erl", - "src/rabbit_auth_mechanism_plain.erl", - "src/rabbit_autoheal.erl", - "src/rabbit_basic.erl", - "src/rabbit_binding.erl", - "src/rabbit_boot_steps.erl", - "src/rabbit_channel.erl", - "src/rabbit_channel_interceptor.erl", - "src/rabbit_channel_sup.erl", - "src/rabbit_channel_sup_sup.erl", - "src/rabbit_channel_tracking.erl", - "src/rabbit_channel_tracking_handler.erl", - "src/rabbit_classic_queue.erl", - "src/rabbit_classic_queue_index_v2.erl", - "src/rabbit_classic_queue_store_v2.erl", - "src/rabbit_client_sup.erl", - "src/rabbit_config.erl", - "src/rabbit_confirms.erl", - "src/rabbit_connection_helper_sup.erl", - "src/rabbit_connection_sup.erl", - "src/rabbit_connection_tracking.erl", - "src/rabbit_connection_tracking_handler.erl", - "src/rabbit_control_pbe.erl", - "src/rabbit_core_ff.erl", - "src/rabbit_core_metrics_gc.erl", - "src/rabbit_credential_validation.erl", - "src/rabbit_credential_validator_accept_everything.erl", - "src/rabbit_credential_validator_min_password_length.erl", - "src/rabbit_credential_validator_password_regexp.erl", - "src/rabbit_cuttlefish.erl", - "src/rabbit_db.erl", - "src/rabbit_db_binding.erl", - "src/rabbit_db_binding_m2k_converter.erl", - "src/rabbit_db_cluster.erl", - "src/rabbit_db_exchange.erl", - "src/rabbit_db_exchange_m2k_converter.erl", - "src/rabbit_db_m2k_converter.erl", - "src/rabbit_db_maintenance.erl", - "src/rabbit_db_maintenance_m2k_converter.erl", - "src/rabbit_db_msup.erl", - "src/rabbit_db_msup_m2k_converter.erl", - "src/rabbit_db_policy.erl", - "src/rabbit_db_queue.erl", - "src/rabbit_db_queue_m2k_converter.erl", - "src/rabbit_db_rtparams.erl", - "src/rabbit_db_rtparams_m2k_converter.erl", - "src/rabbit_db_topic_exchange.erl", - "src/rabbit_db_user.erl", - "src/rabbit_db_user_m2k_converter.erl", - "src/rabbit_db_vhost.erl", - "src/rabbit_db_vhost_defaults.erl", - "src/rabbit_db_vhost_m2k_converter.erl", - "src/rabbit_dead_letter.erl", - "src/rabbit_definitions.erl", - "src/rabbit_definitions_hashing.erl", - "src/rabbit_definitions_import_https.erl", - "src/rabbit_definitions_import_local_filesystem.erl", - "src/rabbit_depr_ff_extra.erl", - "src/rabbit_deprecated_features.erl", - "src/rabbit_diagnostics.erl", - "src/rabbit_direct.erl", - "src/rabbit_direct_reply_to.erl", - "src/rabbit_disk_monitor.erl", - "src/rabbit_epmd_monitor.erl", - "src/rabbit_event_consumer.erl", - "src/rabbit_exchange.erl", - "src/rabbit_exchange_decorator.erl", - "src/rabbit_exchange_parameters.erl", - "src/rabbit_exchange_type_direct.erl", - "src/rabbit_exchange_type_fanout.erl", - "src/rabbit_exchange_type_headers.erl", - "src/rabbit_exchange_type_invalid.erl", - "src/rabbit_exchange_type_local_random.erl", - "src/rabbit_exchange_type_topic.erl", - "src/rabbit_feature_flags.erl", - "src/rabbit_ff_controller.erl", - "src/rabbit_ff_extra.erl", - "src/rabbit_ff_registry.erl", - "src/rabbit_ff_registry_factory.erl", - "src/rabbit_ff_registry_wrapper.erl", - "src/rabbit_fhc_helpers.erl", - "src/rabbit_fifo.erl", - "src/rabbit_fifo_client.erl", - "src/rabbit_fifo_dlx.erl", - "src/rabbit_fifo_dlx_client.erl", - "src/rabbit_fifo_dlx_sup.erl", - "src/rabbit_fifo_dlx_worker.erl", - "src/rabbit_fifo_index.erl", - "src/rabbit_fifo_q.erl", - "src/rabbit_fifo_v0.erl", - "src/rabbit_fifo_v1.erl", - "src/rabbit_fifo_v3.erl", - "src/rabbit_file.erl", - "src/rabbit_global_counters.erl", - "src/rabbit_guid.erl", - "src/rabbit_health_check.erl", - "src/rabbit_khepri.erl", - "src/rabbit_limiter.erl", - "src/rabbit_log_channel.erl", - "src/rabbit_log_connection.erl", - "src/rabbit_log_mirroring.erl", - "src/rabbit_log_prelaunch.erl", - "src/rabbit_log_queue.erl", - "src/rabbit_log_tail.erl", - "src/rabbit_logger_exchange_h.erl", - "src/rabbit_maintenance.erl", - "src/rabbit_message_interceptor.erl", - "src/rabbit_metrics.erl", - "src/rabbit_mirror_queue_misc.erl", - "src/rabbit_mnesia.erl", - "src/rabbit_msg_size_metrics.erl", - "src/rabbit_msg_store.erl", - "src/rabbit_msg_store_gc.erl", - "src/rabbit_networking.erl", - "src/rabbit_networking_store.erl", - "src/rabbit_node_monitor.erl", - "src/rabbit_nodes.erl", - "src/rabbit_observer_cli.erl", - "src/rabbit_observer_cli_classic_queues.erl", - "src/rabbit_observer_cli_quorum_queues.erl", - "src/rabbit_osiris_metrics.erl", - "src/rabbit_parameter_validation.erl", - "src/rabbit_peer_discovery.erl", - "src/rabbit_peer_discovery_classic_config.erl", - "src/rabbit_peer_discovery_dns.erl", - "src/rabbit_plugins.erl", - "src/rabbit_policies.erl", - "src/rabbit_policy.erl", - "src/rabbit_prelaunch_cluster.erl", - "src/rabbit_prelaunch_enabled_plugins_file.erl", - "src/rabbit_prelaunch_feature_flags.erl", - "src/rabbit_prelaunch_logging.erl", - "src/rabbit_priority_queue.erl", - "src/rabbit_process.erl", - "src/rabbit_process_flag.erl", - "src/rabbit_queue_consumers.erl", - "src/rabbit_queue_decorator.erl", - "src/rabbit_queue_index.erl", - "src/rabbit_queue_location.erl", - "src/rabbit_queue_type_util.erl", - "src/rabbit_quorum_memory_manager.erl", - "src/rabbit_quorum_queue.erl", - "src/rabbit_quorum_queue_periodic_membership_reconciliation.erl", - "src/rabbit_ra_registry.erl", - "src/rabbit_ra_systems.erl", - "src/rabbit_reader.erl", - "src/rabbit_recovery_terms.erl", - "src/rabbit_release_series.erl", - "src/rabbit_restartable_sup.erl", - "src/rabbit_router.erl", - "src/rabbit_runtime_parameters.erl", - "src/rabbit_ssl.erl", - "src/rabbit_stream_coordinator.erl", - "src/rabbit_stream_queue.erl", - "src/rabbit_stream_sac_coordinator.erl", - "src/rabbit_sup.erl", - "src/rabbit_sysmon_handler.erl", - "src/rabbit_sysmon_minder.erl", - "src/rabbit_table.erl", - "src/rabbit_time_travel_dbg.erl", - "src/rabbit_trace.erl", - "src/rabbit_tracking_store.erl", - "src/rabbit_upgrade_preparation.erl", - "src/rabbit_variable_queue.erl", - "src/rabbit_version.erl", - "src/rabbit_vhost.erl", - "src/rabbit_vhost_limit.erl", - "src/rabbit_vhost_msg_store.erl", - "src/rabbit_vhost_process.erl", - "src/rabbit_vhost_sup.erl", - "src/rabbit_vhost_sup_sup.erl", - "src/rabbit_vhost_sup_wrapper.erl", - "src/rabbit_vhosts.erl", - "src/rabbit_vm.erl", - "src/supervised_lifecycle.erl", - "src/tcp_listener.erl", - "src/tcp_listener_sup.erl", - "src/term_to_binary_compat.erl", - "src/vhost.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbit", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit_common:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - "@ra//:erlang_app", - "@ranch//:erlang_app", - "@stdout_formatter//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_behaviours", ":test_other_beam"], - ) - erlang_bytecode( - name = "test_behaviours", - testonly = True, - srcs = [ - "src/mc.erl", - "src/rabbit_backing_queue.erl", - "src/rabbit_credential_validator.erl", - "src/rabbit_exchange_type.erl", - "src/rabbit_policy_merge_strategy.erl", - "src/rabbit_queue_type.erl", - "src/rabbit_tracking.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbit", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/amqqueue.erl", - "src/background_gc.erl", - "src/code_server_cache.erl", - "src/gatherer.erl", - "src/gm.erl", - "src/internal_user.erl", - "src/lqueue.erl", - "src/mc_amqp.erl", - "src/mc_amqpl.erl", - "src/mc_compat.erl", - "src/mc_util.erl", - "src/mirrored_supervisor.erl", - "src/mirrored_supervisor_sups.erl", - "src/pg_local.erl", - "src/pid_recomposition.erl", - "src/rabbit.erl", - "src/rabbit_access_control.erl", - "src/rabbit_alarm.erl", - "src/rabbit_amqp1_0.erl", - "src/rabbit_amqp_filtex.erl", - "src/rabbit_amqp_management.erl", - "src/rabbit_amqp_reader.erl", - "src/rabbit_amqp_session.erl", - "src/rabbit_amqp_session_sup.erl", - "src/rabbit_amqp_util.erl", - "src/rabbit_amqp_writer.erl", - "src/rabbit_amqqueue.erl", - "src/rabbit_amqqueue_control.erl", - "src/rabbit_amqqueue_process.erl", - "src/rabbit_amqqueue_sup.erl", - "src/rabbit_amqqueue_sup_sup.erl", - "src/rabbit_auth_backend_internal.erl", - "src/rabbit_auth_mechanism_amqplain.erl", - "src/rabbit_auth_mechanism_anonymous.erl", - "src/rabbit_auth_mechanism_cr_demo.erl", - "src/rabbit_auth_mechanism_plain.erl", - "src/rabbit_autoheal.erl", - "src/rabbit_basic.erl", - "src/rabbit_binding.erl", - "src/rabbit_boot_steps.erl", - "src/rabbit_channel.erl", - "src/rabbit_channel_interceptor.erl", - "src/rabbit_channel_sup.erl", - "src/rabbit_channel_sup_sup.erl", - "src/rabbit_channel_tracking.erl", - "src/rabbit_channel_tracking_handler.erl", - "src/rabbit_classic_queue.erl", - "src/rabbit_classic_queue_index_v2.erl", - "src/rabbit_classic_queue_store_v2.erl", - "src/rabbit_client_sup.erl", - "src/rabbit_config.erl", - "src/rabbit_confirms.erl", - "src/rabbit_connection_helper_sup.erl", - "src/rabbit_connection_sup.erl", - "src/rabbit_connection_tracking.erl", - "src/rabbit_connection_tracking_handler.erl", - "src/rabbit_control_pbe.erl", - "src/rabbit_core_ff.erl", - "src/rabbit_core_metrics_gc.erl", - "src/rabbit_credential_validation.erl", - "src/rabbit_credential_validator_accept_everything.erl", - "src/rabbit_credential_validator_min_password_length.erl", - "src/rabbit_credential_validator_password_regexp.erl", - "src/rabbit_cuttlefish.erl", - "src/rabbit_db.erl", - "src/rabbit_db_binding.erl", - "src/rabbit_db_binding_m2k_converter.erl", - "src/rabbit_db_cluster.erl", - "src/rabbit_db_exchange.erl", - "src/rabbit_db_exchange_m2k_converter.erl", - "src/rabbit_db_m2k_converter.erl", - "src/rabbit_db_maintenance.erl", - "src/rabbit_db_maintenance_m2k_converter.erl", - "src/rabbit_db_msup.erl", - "src/rabbit_db_msup_m2k_converter.erl", - "src/rabbit_db_policy.erl", - "src/rabbit_db_queue.erl", - "src/rabbit_db_queue_m2k_converter.erl", - "src/rabbit_db_rtparams.erl", - "src/rabbit_db_rtparams_m2k_converter.erl", - "src/rabbit_db_topic_exchange.erl", - "src/rabbit_db_user.erl", - "src/rabbit_db_user_m2k_converter.erl", - "src/rabbit_db_vhost.erl", - "src/rabbit_db_vhost_defaults.erl", - "src/rabbit_db_vhost_m2k_converter.erl", - "src/rabbit_dead_letter.erl", - "src/rabbit_definitions.erl", - "src/rabbit_definitions_hashing.erl", - "src/rabbit_definitions_import_https.erl", - "src/rabbit_definitions_import_local_filesystem.erl", - "src/rabbit_depr_ff_extra.erl", - "src/rabbit_deprecated_features.erl", - "src/rabbit_diagnostics.erl", - "src/rabbit_direct.erl", - "src/rabbit_direct_reply_to.erl", - "src/rabbit_disk_monitor.erl", - "src/rabbit_epmd_monitor.erl", - "src/rabbit_event_consumer.erl", - "src/rabbit_exchange.erl", - "src/rabbit_exchange_decorator.erl", - "src/rabbit_exchange_parameters.erl", - "src/rabbit_exchange_type_direct.erl", - "src/rabbit_exchange_type_fanout.erl", - "src/rabbit_exchange_type_headers.erl", - "src/rabbit_exchange_type_invalid.erl", - "src/rabbit_exchange_type_local_random.erl", - "src/rabbit_exchange_type_topic.erl", - "src/rabbit_feature_flags.erl", - "src/rabbit_ff_controller.erl", - "src/rabbit_ff_extra.erl", - "src/rabbit_ff_registry.erl", - "src/rabbit_ff_registry_factory.erl", - "src/rabbit_ff_registry_wrapper.erl", - "src/rabbit_fhc_helpers.erl", - "src/rabbit_fifo.erl", - "src/rabbit_fifo_client.erl", - "src/rabbit_fifo_dlx.erl", - "src/rabbit_fifo_dlx_client.erl", - "src/rabbit_fifo_dlx_sup.erl", - "src/rabbit_fifo_dlx_worker.erl", - "src/rabbit_fifo_index.erl", - "src/rabbit_fifo_q.erl", - "src/rabbit_fifo_v0.erl", - "src/rabbit_fifo_v1.erl", - "src/rabbit_fifo_v3.erl", - "src/rabbit_file.erl", - "src/rabbit_global_counters.erl", - "src/rabbit_guid.erl", - "src/rabbit_health_check.erl", - "src/rabbit_khepri.erl", - "src/rabbit_limiter.erl", - "src/rabbit_log_channel.erl", - "src/rabbit_log_connection.erl", - "src/rabbit_log_mirroring.erl", - "src/rabbit_log_prelaunch.erl", - "src/rabbit_log_queue.erl", - "src/rabbit_log_tail.erl", - "src/rabbit_logger_exchange_h.erl", - "src/rabbit_maintenance.erl", - "src/rabbit_message_interceptor.erl", - "src/rabbit_metrics.erl", - "src/rabbit_mirror_queue_misc.erl", - "src/rabbit_mnesia.erl", - "src/rabbit_msg_size_metrics.erl", - "src/rabbit_msg_store.erl", - "src/rabbit_msg_store_gc.erl", - "src/rabbit_networking.erl", - "src/rabbit_networking_store.erl", - "src/rabbit_node_monitor.erl", - "src/rabbit_nodes.erl", - "src/rabbit_observer_cli.erl", - "src/rabbit_observer_cli_classic_queues.erl", - "src/rabbit_observer_cli_quorum_queues.erl", - "src/rabbit_osiris_metrics.erl", - "src/rabbit_parameter_validation.erl", - "src/rabbit_peer_discovery.erl", - "src/rabbit_peer_discovery_classic_config.erl", - "src/rabbit_peer_discovery_dns.erl", - "src/rabbit_plugins.erl", - "src/rabbit_policies.erl", - "src/rabbit_policy.erl", - "src/rabbit_prelaunch_cluster.erl", - "src/rabbit_prelaunch_enabled_plugins_file.erl", - "src/rabbit_prelaunch_feature_flags.erl", - "src/rabbit_prelaunch_logging.erl", - "src/rabbit_priority_queue.erl", - "src/rabbit_process.erl", - "src/rabbit_process_flag.erl", - "src/rabbit_queue_consumers.erl", - "src/rabbit_queue_decorator.erl", - "src/rabbit_queue_index.erl", - "src/rabbit_queue_location.erl", - "src/rabbit_queue_type_util.erl", - "src/rabbit_quorum_memory_manager.erl", - "src/rabbit_quorum_queue.erl", - "src/rabbit_quorum_queue_periodic_membership_reconciliation.erl", - "src/rabbit_ra_registry.erl", - "src/rabbit_ra_systems.erl", - "src/rabbit_reader.erl", - "src/rabbit_recovery_terms.erl", - "src/rabbit_release_series.erl", - "src/rabbit_restartable_sup.erl", - "src/rabbit_router.erl", - "src/rabbit_runtime_parameters.erl", - "src/rabbit_ssl.erl", - "src/rabbit_stream_coordinator.erl", - "src/rabbit_stream_queue.erl", - "src/rabbit_stream_sac_coordinator.erl", - "src/rabbit_sup.erl", - "src/rabbit_sysmon_handler.erl", - "src/rabbit_sysmon_minder.erl", - "src/rabbit_table.erl", - "src/rabbit_time_travel_dbg.erl", - "src/rabbit_trace.erl", - "src/rabbit_tracking_store.erl", - "src/rabbit_upgrade_preparation.erl", - "src/rabbit_variable_queue.erl", - "src/rabbit_version.erl", - "src/rabbit_vhost.erl", - "src/rabbit_vhost_limit.erl", - "src/rabbit_vhost_msg_store.erl", - "src/rabbit_vhost_process.erl", - "src/rabbit_vhost_sup.erl", - "src/rabbit_vhost_sup_sup.erl", - "src/rabbit_vhost_sup_wrapper.erl", - "src/rabbit_vhosts.erl", - "src/rabbit_vm.erl", - "src/supervised_lifecycle.erl", - "src/tcp_listener.erl", - "src/tcp_listener_sup.erl", - "src/term_to_binary_compat.erl", - "src/vhost.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbit", - beam = [":test_behaviours"], - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit_common:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - "@ra//:erlang_app", - "@ranch//:erlang_app", - "@stdout_formatter//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - filegroup( - name = "public_hdrs", - srcs = [ - "include/amqqueue.hrl", - "include/amqqueue_v2.hrl", - "include/internal_user.hrl", - "include/mc.hrl", - "include/rabbit_amqp.hrl", - "include/rabbit_amqp_metrics.hrl", - "include/rabbit_amqp_reader.hrl", - "include/rabbit_global_counters.hrl", - "include/rabbit_khepri.hrl", - "include/vhost.hrl", - "include/vhost_v2.hrl", - ], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbit.schema"], #keep - ) - filegroup( - name = "private_hdrs", - srcs = [ - "src/mirrored_supervisor.hrl", - "src/rabbit_feature_flags.hrl", - "src/rabbit_ff_registry.hrl", - "src/rabbit_fifo.hrl", - "src/rabbit_fifo_dlx.hrl", - "src/rabbit_fifo_v0.hrl", - "src/rabbit_fifo_v1.hrl", - "src/rabbit_fifo_v3.hrl", - "src/rabbit_stream_coordinator.hrl", - "src/rabbit_stream_sac_coordinator.hrl", - ], - ) - filegroup( - name = "srcs", - srcs = [ - "src/amqqueue.erl", - "src/background_gc.erl", - "src/code_server_cache.erl", - "src/gatherer.erl", - "src/gm.erl", - "src/internal_user.erl", - "src/lqueue.erl", - "src/mc.erl", - "src/mc_amqp.erl", - "src/mc_amqpl.erl", - "src/mc_compat.erl", - "src/mc_util.erl", - "src/mirrored_supervisor.erl", - "src/mirrored_supervisor_sups.erl", - "src/pg_local.erl", - "src/pid_recomposition.erl", - "src/rabbit.erl", - "src/rabbit_access_control.erl", - "src/rabbit_alarm.erl", - "src/rabbit_amqp1_0.erl", - "src/rabbit_amqp_filtex.erl", - "src/rabbit_amqp_management.erl", - "src/rabbit_amqp_reader.erl", - "src/rabbit_amqp_session.erl", - "src/rabbit_amqp_session_sup.erl", - "src/rabbit_amqp_util.erl", - "src/rabbit_amqp_writer.erl", - "src/rabbit_amqqueue.erl", - "src/rabbit_amqqueue_control.erl", - "src/rabbit_amqqueue_process.erl", - "src/rabbit_amqqueue_sup.erl", - "src/rabbit_amqqueue_sup_sup.erl", - "src/rabbit_auth_backend_internal.erl", - "src/rabbit_auth_mechanism_amqplain.erl", - "src/rabbit_auth_mechanism_anonymous.erl", - "src/rabbit_auth_mechanism_cr_demo.erl", - "src/rabbit_auth_mechanism_plain.erl", - "src/rabbit_autoheal.erl", - "src/rabbit_backing_queue.erl", - "src/rabbit_basic.erl", - "src/rabbit_binding.erl", - "src/rabbit_boot_steps.erl", - "src/rabbit_channel.erl", - "src/rabbit_channel_interceptor.erl", - "src/rabbit_channel_sup.erl", - "src/rabbit_channel_sup_sup.erl", - "src/rabbit_channel_tracking.erl", - "src/rabbit_channel_tracking_handler.erl", - "src/rabbit_classic_queue.erl", - "src/rabbit_classic_queue_index_v2.erl", - "src/rabbit_classic_queue_store_v2.erl", - "src/rabbit_client_sup.erl", - "src/rabbit_config.erl", - "src/rabbit_confirms.erl", - "src/rabbit_connection_helper_sup.erl", - "src/rabbit_connection_sup.erl", - "src/rabbit_connection_tracking.erl", - "src/rabbit_connection_tracking_handler.erl", - "src/rabbit_control_pbe.erl", - "src/rabbit_core_ff.erl", - "src/rabbit_core_metrics_gc.erl", - "src/rabbit_credential_validation.erl", - "src/rabbit_credential_validator.erl", - "src/rabbit_credential_validator_accept_everything.erl", - "src/rabbit_credential_validator_min_password_length.erl", - "src/rabbit_credential_validator_password_regexp.erl", - "src/rabbit_cuttlefish.erl", - "src/rabbit_db.erl", - "src/rabbit_db_binding.erl", - "src/rabbit_db_binding_m2k_converter.erl", - "src/rabbit_db_cluster.erl", - "src/rabbit_db_exchange.erl", - "src/rabbit_db_exchange_m2k_converter.erl", - "src/rabbit_db_m2k_converter.erl", - "src/rabbit_db_maintenance.erl", - "src/rabbit_db_maintenance_m2k_converter.erl", - "src/rabbit_db_msup.erl", - "src/rabbit_db_msup_m2k_converter.erl", - "src/rabbit_db_policy.erl", - "src/rabbit_db_queue.erl", - "src/rabbit_db_queue_m2k_converter.erl", - "src/rabbit_db_rtparams.erl", - "src/rabbit_db_rtparams_m2k_converter.erl", - "src/rabbit_db_topic_exchange.erl", - "src/rabbit_db_user.erl", - "src/rabbit_db_user_m2k_converter.erl", - "src/rabbit_db_vhost.erl", - "src/rabbit_db_vhost_defaults.erl", - "src/rabbit_db_vhost_m2k_converter.erl", - "src/rabbit_dead_letter.erl", - "src/rabbit_definitions.erl", - "src/rabbit_definitions_hashing.erl", - "src/rabbit_definitions_import_https.erl", - "src/rabbit_definitions_import_local_filesystem.erl", - "src/rabbit_depr_ff_extra.erl", - "src/rabbit_deprecated_features.erl", - "src/rabbit_diagnostics.erl", - "src/rabbit_direct.erl", - "src/rabbit_direct_reply_to.erl", - "src/rabbit_disk_monitor.erl", - "src/rabbit_epmd_monitor.erl", - "src/rabbit_event_consumer.erl", - "src/rabbit_exchange.erl", - "src/rabbit_exchange_decorator.erl", - "src/rabbit_exchange_parameters.erl", - "src/rabbit_exchange_type.erl", - "src/rabbit_exchange_type_direct.erl", - "src/rabbit_exchange_type_fanout.erl", - "src/rabbit_exchange_type_headers.erl", - "src/rabbit_exchange_type_invalid.erl", - "src/rabbit_exchange_type_local_random.erl", - "src/rabbit_exchange_type_topic.erl", - "src/rabbit_feature_flags.erl", - "src/rabbit_ff_controller.erl", - "src/rabbit_ff_extra.erl", - "src/rabbit_ff_registry.erl", - "src/rabbit_ff_registry_factory.erl", - "src/rabbit_ff_registry_wrapper.erl", - "src/rabbit_fhc_helpers.erl", - "src/rabbit_fifo.erl", - "src/rabbit_fifo_client.erl", - "src/rabbit_fifo_dlx.erl", - "src/rabbit_fifo_dlx_client.erl", - "src/rabbit_fifo_dlx_sup.erl", - "src/rabbit_fifo_dlx_worker.erl", - "src/rabbit_fifo_index.erl", - "src/rabbit_fifo_q.erl", - "src/rabbit_fifo_v0.erl", - "src/rabbit_fifo_v1.erl", - "src/rabbit_fifo_v3.erl", - "src/rabbit_file.erl", - "src/rabbit_global_counters.erl", - "src/rabbit_guid.erl", - "src/rabbit_health_check.erl", - "src/rabbit_khepri.erl", - "src/rabbit_limiter.erl", - "src/rabbit_log_channel.erl", - "src/rabbit_log_connection.erl", - "src/rabbit_log_mirroring.erl", - "src/rabbit_log_prelaunch.erl", - "src/rabbit_log_queue.erl", - "src/rabbit_log_tail.erl", - "src/rabbit_logger_exchange_h.erl", - "src/rabbit_maintenance.erl", - "src/rabbit_message_interceptor.erl", - "src/rabbit_metrics.erl", - "src/rabbit_mirror_queue_misc.erl", - "src/rabbit_mnesia.erl", - "src/rabbit_msg_size_metrics.erl", - "src/rabbit_msg_store.erl", - "src/rabbit_msg_store_gc.erl", - "src/rabbit_networking.erl", - "src/rabbit_networking_store.erl", - "src/rabbit_node_monitor.erl", - "src/rabbit_nodes.erl", - "src/rabbit_observer_cli.erl", - "src/rabbit_observer_cli_classic_queues.erl", - "src/rabbit_observer_cli_quorum_queues.erl", - "src/rabbit_osiris_metrics.erl", - "src/rabbit_parameter_validation.erl", - "src/rabbit_peer_discovery.erl", - "src/rabbit_peer_discovery_classic_config.erl", - "src/rabbit_peer_discovery_dns.erl", - "src/rabbit_plugins.erl", - "src/rabbit_policies.erl", - "src/rabbit_policy.erl", - "src/rabbit_policy_merge_strategy.erl", - "src/rabbit_prelaunch_cluster.erl", - "src/rabbit_prelaunch_enabled_plugins_file.erl", - "src/rabbit_prelaunch_feature_flags.erl", - "src/rabbit_prelaunch_logging.erl", - "src/rabbit_priority_queue.erl", - "src/rabbit_process.erl", - "src/rabbit_process_flag.erl", - "src/rabbit_queue_consumers.erl", - "src/rabbit_queue_decorator.erl", - "src/rabbit_queue_index.erl", - "src/rabbit_queue_location.erl", - "src/rabbit_queue_type.erl", - "src/rabbit_queue_type_util.erl", - "src/rabbit_quorum_memory_manager.erl", - "src/rabbit_quorum_queue.erl", - "src/rabbit_quorum_queue_periodic_membership_reconciliation.erl", - "src/rabbit_ra_registry.erl", - "src/rabbit_ra_systems.erl", - "src/rabbit_reader.erl", - "src/rabbit_recovery_terms.erl", - "src/rabbit_release_series.erl", - "src/rabbit_restartable_sup.erl", - "src/rabbit_router.erl", - "src/rabbit_runtime_parameters.erl", - "src/rabbit_ssl.erl", - "src/rabbit_stream_coordinator.erl", - "src/rabbit_stream_queue.erl", - "src/rabbit_stream_sac_coordinator.erl", - "src/rabbit_sup.erl", - "src/rabbit_sysmon_handler.erl", - "src/rabbit_sysmon_minder.erl", - "src/rabbit_table.erl", - "src/rabbit_time_travel_dbg.erl", - "src/rabbit_trace.erl", - "src/rabbit_tracking.erl", - "src/rabbit_tracking_store.erl", - "src/rabbit_upgrade_preparation.erl", - "src/rabbit_variable_queue.erl", - "src/rabbit_version.erl", - "src/rabbit_vhost.erl", - "src/rabbit_vhost_limit.erl", - "src/rabbit_vhost_msg_store.erl", - "src/rabbit_vhost_process.erl", - "src/rabbit_vhost_sup.erl", - "src/rabbit_vhost_sup_sup.erl", - "src/rabbit_vhost_sup_wrapper.erl", - "src/rabbit_vhosts.erl", - "src/rabbit_vm.erl", - "src/supervised_lifecycle.erl", - "src/tcp_listener.erl", - "src/tcp_listener_sup.erl", - "src/term_to_binary_compat.erl", - "src/vhost.erl", - ], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "amqqueue_backward_compatibility_SUITE_beam_files", - testonly = True, - srcs = ["test/amqqueue_backward_compatibility_SUITE.erl"], - outs = ["test/amqqueue_backward_compatibility_SUITE.beam"], - hdrs = ["include/amqqueue.hrl", "include/amqqueue_v2.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "backing_queue_SUITE_beam_files", - testonly = True, - srcs = ["test/backing_queue_SUITE.erl"], - outs = ["test/backing_queue_SUITE.beam"], - hdrs = ["include/amqqueue.hrl", "include/amqqueue_v2.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "channel_interceptor_SUITE_beam_files", - testonly = True, - srcs = ["test/channel_interceptor_SUITE.erl"], - outs = ["test/channel_interceptor_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "channel_operation_timeout_SUITE_beam_files", - testonly = True, - srcs = ["test/channel_operation_timeout_SUITE.erl"], - outs = ["test/channel_operation_timeout_SUITE.beam"], - hdrs = ["include/amqqueue.hrl", "include/amqqueue_v2.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "classic_queue_prop_SUITE_beam_files", - testonly = True, - srcs = ["test/classic_queue_prop_SUITE.erl"], - outs = ["test/classic_queue_prop_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "@proper//:erlang_app"], - ) - erlang_bytecode( - name = "cluster_SUITE_beam_files", - testonly = True, - srcs = ["test/cluster_SUITE.erl"], - outs = ["test/cluster_SUITE.beam"], - hdrs = ["include/amqqueue.hrl", "include/amqqueue_v2.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "clustering_events_SUITE_beam_files", - testonly = True, - srcs = ["test/clustering_events_SUITE.erl"], - outs = ["test/clustering_events_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - - erlang_bytecode( - name = "clustering_management_SUITE_beam_files", - testonly = True, - srcs = ["test/clustering_management_SUITE.erl"], - outs = ["test/clustering_management_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "test_clustering_utils_beam", - testonly = True, - srcs = ["test/clustering_utils.erl"], - outs = ["test/clustering_utils.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "clustering_recovery_SUITE_beam_files", - testonly = True, - srcs = ["test/clustering_recovery_SUITE.erl"], - outs = ["test/clustering_recovery_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "confirms_rejects_SUITE_beam_files", - testonly = True, - srcs = ["test/confirms_rejects_SUITE.erl"], - outs = ["test/confirms_rejects_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "consumer_timeout_SUITE_beam_files", - testonly = True, - srcs = ["test/consumer_timeout_SUITE.erl"], - outs = ["test/consumer_timeout_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "crashing_queues_SUITE_beam_files", - testonly = True, - srcs = ["test/crashing_queues_SUITE.erl"], - outs = ["test/crashing_queues_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "dead_lettering_SUITE_beam_files", - testonly = True, - srcs = ["test/dead_lettering_SUITE.erl"], - outs = ["test/dead_lettering_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "definition_import_SUITE_beam_files", - testonly = True, - srcs = ["test/definition_import_SUITE.erl"], - outs = ["test/definition_import_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "deprecated_features_SUITE_beam_files", - testonly = True, - srcs = ["test/deprecated_features_SUITE.erl"], - outs = ["test/deprecated_features_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "direct_exchange_routing_v2_SUITE_beam_files", - testonly = True, - srcs = ["test/direct_exchange_routing_v2_SUITE.erl"], - outs = ["test/direct_exchange_routing_v2_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "disconnect_detected_during_alarm_SUITE_beam_files", - testonly = True, - srcs = ["test/disconnect_detected_during_alarm_SUITE.erl"], - outs = ["test/disconnect_detected_during_alarm_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "disk_monitor_SUITE_beam_files", - testonly = True, - srcs = ["test/disk_monitor_SUITE.erl"], - outs = ["test/disk_monitor_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "dynamic_qq_SUITE_beam_files", - testonly = True, - srcs = ["test/dynamic_qq_SUITE.erl"], - outs = ["test/dynamic_qq_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "feature_flags_SUITE_beam_files", - testonly = True, - srcs = ["test/feature_flags_SUITE.erl"], - outs = ["test/feature_flags_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "feature_flags_v2_SUITE_beam_files", - testonly = True, - srcs = ["test/feature_flags_v2_SUITE.erl"], - outs = ["test/feature_flags_v2_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "list_consumers_sanity_check_SUITE_beam_files", - testonly = True, - srcs = ["test/list_consumers_sanity_check_SUITE.erl"], - outs = ["test/list_consumers_sanity_check_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "list_queues_online_and_offline_SUITE_beam_files", - testonly = True, - srcs = ["test/list_queues_online_and_offline_SUITE.erl"], - outs = ["test/list_queues_online_and_offline_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "logging_SUITE_beam_files", - testonly = True, - srcs = ["test/logging_SUITE.erl"], - outs = ["test/logging_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "lqueue_SUITE_beam_files", - testonly = True, - srcs = ["test/lqueue_SUITE.erl"], - outs = ["test/lqueue_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) - erlang_bytecode( - name = "maintenance_mode_SUITE_beam_files", - testonly = True, - srcs = ["test/maintenance_mode_SUITE.erl"], - outs = ["test/maintenance_mode_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "message_size_limit_SUITE_beam_files", - testonly = True, - srcs = ["test/message_size_limit_SUITE.erl"], - outs = ["test/message_size_limit_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "metrics_SUITE_beam_files", - testonly = True, - srcs = ["test/metrics_SUITE.erl"], - outs = ["test/metrics_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app", "@proper//:erlang_app"], - ) - erlang_bytecode( - name = "mirrored_supervisor_SUITE_beam_files", - testonly = True, - srcs = ["test/mirrored_supervisor_SUITE.erl"], - outs = ["test/mirrored_supervisor_SUITE.beam"], - app_name = "rabbit", - beam = ["ebin/mirrored_supervisor.beam"], - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "peer_discovery_classic_config_SUITE_beam_files", - testonly = True, - srcs = ["test/peer_discovery_classic_config_SUITE.erl"], - outs = ["test/peer_discovery_classic_config_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "peer_discovery_dns_SUITE_beam_files", - testonly = True, - srcs = ["test/peer_discovery_dns_SUITE.erl"], - outs = ["test/peer_discovery_dns_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "peer_discovery_tmp_hidden_node_SUITE_beam_files", - testonly = True, - srcs = ["test/peer_discovery_tmp_hidden_node_SUITE.erl"], - outs = ["test/peer_discovery_tmp_hidden_node_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "per_user_connection_channel_limit_SUITE_beam_files", - testonly = True, - srcs = ["test/per_user_connection_channel_limit_SUITE.erl"], - outs = ["test/per_user_connection_channel_limit_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "per_user_connection_channel_limit_partitions_SUITE_beam_files", - testonly = True, - srcs = ["test/per_user_connection_channel_limit_partitions_SUITE.erl"], - outs = ["test/per_user_connection_channel_limit_partitions_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "per_user_connection_channel_tracking_SUITE_beam_files", - testonly = True, - srcs = ["test/per_user_connection_channel_tracking_SUITE.erl"], - outs = ["test/per_user_connection_channel_tracking_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "per_user_connection_tracking_SUITE_beam_files", - testonly = True, - srcs = ["test/per_user_connection_tracking_SUITE.erl"], - outs = ["test/per_user_connection_tracking_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "per_vhost_connection_limit_SUITE_beam_files", - testonly = True, - srcs = ["test/per_vhost_connection_limit_SUITE.erl"], - outs = ["test/per_vhost_connection_limit_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "per_vhost_connection_limit_partitions_SUITE_beam_files", - testonly = True, - srcs = ["test/per_vhost_connection_limit_partitions_SUITE.erl"], - outs = ["test/per_vhost_connection_limit_partitions_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "per_vhost_msg_store_SUITE_beam_files", - testonly = True, - srcs = ["test/per_vhost_msg_store_SUITE.erl"], - outs = ["test/per_vhost_msg_store_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "per_vhost_queue_limit_SUITE_beam_files", - testonly = True, - srcs = ["test/per_vhost_queue_limit_SUITE.erl"], - outs = ["test/per_vhost_queue_limit_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "policy_SUITE_beam_files", - testonly = True, - srcs = ["test/policy_SUITE.erl"], - outs = ["test/policy_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "priority_queue_SUITE_beam_files", - testonly = True, - srcs = ["test/priority_queue_SUITE.erl"], - outs = ["test/priority_queue_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "priority_queue_recovery_SUITE_beam_files", - testonly = True, - srcs = ["test/priority_queue_recovery_SUITE.erl"], - outs = ["test/priority_queue_recovery_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "product_info_SUITE_beam_files", - testonly = True, - srcs = ["test/product_info_SUITE.erl"], - outs = ["test/product_info_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "proxy_protocol_SUITE_beam_files", - testonly = True, - srcs = ["test/proxy_protocol_SUITE.erl"], - outs = ["test/proxy_protocol_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "publisher_confirms_parallel_SUITE_beam_files", - testonly = True, - srcs = ["test/publisher_confirms_parallel_SUITE.erl"], - outs = ["test/publisher_confirms_parallel_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "queue_length_limits_SUITE_beam_files", - testonly = True, - srcs = ["test/queue_length_limits_SUITE.erl"], - outs = ["test/queue_length_limits_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "queue_parallel_SUITE_beam_files", - testonly = True, - srcs = ["test/queue_parallel_SUITE.erl"], - outs = ["test/queue_parallel_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "queue_type_SUITE_beam_files", - testonly = True, - srcs = ["test/queue_type_SUITE.erl"], - outs = ["test/queue_type_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "quorum_queue_SUITE_beam_files", - testonly = True, - srcs = ["test/quorum_queue_SUITE.erl"], - outs = ["test/quorum_queue_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_confirms_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_confirms_SUITE.erl"], - outs = ["test/rabbit_confirms_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_core_metrics_gc_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_core_metrics_gc_SUITE.erl"], - outs = ["test/rabbit_core_metrics_gc_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_direct_reply_to_prop_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_direct_reply_to_prop_SUITE.erl"], - outs = ["test/rabbit_direct_reply_to_prop_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_fifo_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_fifo_SUITE.erl"], - outs = ["test/rabbit_fifo_SUITE.beam"], - hdrs = [ - "src/rabbit_fifo.hrl", - "src/rabbit_fifo_dlx.hrl", - ], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_fifo_dlx_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_fifo_dlx_SUITE.erl"], - outs = ["test/rabbit_fifo_dlx_SUITE.beam"], - hdrs = ["src/rabbit_fifo.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_fifo_dlx_integration_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_fifo_dlx_integration_SUITE.erl"], - outs = ["test/rabbit_fifo_dlx_integration_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_fifo_int_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_fifo_int_SUITE.erl"], - outs = ["test/rabbit_fifo_int_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_fifo_prop_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_fifo_prop_SUITE.erl"], - outs = ["test/rabbit_fifo_prop_SUITE.beam"], - hdrs = ["src/rabbit_fifo.hrl", "src/rabbit_fifo_dlx.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app", "@proper//:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_fifo_v0_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_fifo_v0_SUITE.erl"], - outs = ["test/rabbit_fifo_v0_SUITE.beam"], - hdrs = ["src/rabbit_fifo_v0.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - - erlang_bytecode( - name = "rabbit_stream_coordinator_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_stream_coordinator_SUITE.erl"], - outs = ["test/rabbit_stream_coordinator_SUITE.beam"], - hdrs = ["src/rabbit_stream_coordinator.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_stream_queue_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_stream_queue_SUITE.erl"], - outs = ["test/rabbit_stream_queue_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app", "@proper//:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_stream_sac_coordinator_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_stream_sac_coordinator_SUITE.erl"], - outs = ["test/rabbit_stream_sac_coordinator_SUITE.beam"], - hdrs = ["src/rabbit_stream_sac_coordinator.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_access_control_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_access_control_SUITE.erl"], - outs = ["test/rabbit_access_control_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbitmq_queues_cli_integration_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbitmq_queues_cli_integration_SUITE.erl"], - outs = ["test/rabbitmq_queues_cli_integration_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbitmqctl_integration_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbitmqctl_integration_SUITE.erl"], - outs = ["test/rabbitmqctl_integration_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "rabbitmqctl_shutdown_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbitmqctl_shutdown_SUITE.erl"], - outs = ["test/rabbitmqctl_shutdown_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "signal_handling_SUITE_beam_files", - testonly = True, - srcs = ["test/signal_handling_SUITE.erl"], - outs = ["test/signal_handling_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "single_active_consumer_SUITE_beam_files", - testonly = True, - srcs = ["test/single_active_consumer_SUITE.erl"], - outs = ["test/single_active_consumer_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "term_to_binary_compat_prop_SUITE_beam_files", - testonly = True, - srcs = ["test/term_to_binary_compat_prop_SUITE.erl"], - outs = ["test/term_to_binary_compat_prop_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) - erlang_bytecode( - name = "test_channel_operation_timeout_test_queue_beam", - testonly = True, - srcs = ["test/channel_operation_timeout_test_queue.erl"], - outs = ["test/channel_operation_timeout_test_queue.beam"], - app_name = "rabbit", - beam = ["ebin/rabbit_backing_queue.beam"], - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_dummy_event_receiver_beam", - testonly = True, - srcs = ["test/dummy_event_receiver.erl"], - outs = ["test/dummy_event_receiver.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_dummy_interceptor_beam", - testonly = True, - srcs = ["test/dummy_interceptor.erl"], - outs = ["test/dummy_interceptor.beam"], - app_name = "rabbit", - beam = ["ebin/rabbit_channel_interceptor.beam"], - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_dummy_runtime_parameters_beam", - testonly = True, - srcs = ["test/dummy_runtime_parameters.erl"], - outs = ["test/dummy_runtime_parameters.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_dummy_supervisor2_beam", - testonly = True, - srcs = ["test/dummy_supervisor2.erl"], - outs = ["test/dummy_supervisor2.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_failing_dummy_interceptor_beam", - testonly = True, - srcs = ["test/failing_dummy_interceptor.erl"], - outs = ["test/failing_dummy_interceptor.beam"], - app_name = "rabbit", - beam = ["ebin/rabbit_channel_interceptor.beam"], - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_mirrored_supervisor_SUITE_gs_beam", - testonly = True, - srcs = ["test/mirrored_supervisor_SUITE_gs.erl"], - outs = ["test/mirrored_supervisor_SUITE_gs.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_queue_utils_beam", - testonly = True, - srcs = ["test/queue_utils.erl"], - outs = ["test/queue_utils.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbit_auth_backend_context_propagation_mock_beam", - testonly = True, - srcs = ["test/rabbit_auth_backend_context_propagation_mock.erl"], - outs = ["test/rabbit_auth_backend_context_propagation_mock.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_rabbit_dummy_protocol_connection_info_beam", - testonly = True, - srcs = ["test/rabbit_dummy_protocol_connection_info.erl"], - outs = ["test/rabbit_dummy_protocol_connection_info.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbit_foo_protocol_connection_info_beam", - testonly = True, - srcs = ["test/rabbit_foo_protocol_connection_info.erl"], - outs = ["test/rabbit_foo_protocol_connection_info.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_test_util_beam", - testonly = True, - srcs = ["test/test_util.erl"], - outs = ["test/test_util.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "topic_permission_SUITE_beam_files", - testonly = True, - srcs = ["test/topic_permission_SUITE.erl"], - outs = ["test/topic_permission_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "transactions_SUITE_beam_files", - testonly = True, - srcs = ["test/transactions_SUITE.erl"], - outs = ["test/transactions_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_access_control_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_access_control_SUITE.erl"], - outs = ["test/unit_access_control_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_access_control_authn_authz_context_propagation_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_access_control_authn_authz_context_propagation_SUITE.erl"], - outs = ["test/unit_access_control_authn_authz_context_propagation_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_access_control_credential_validation_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_access_control_credential_validation_SUITE.erl"], - outs = ["test/unit_access_control_credential_validation_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) - erlang_bytecode( - name = "unit_amqp091_content_framing_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_amqp091_content_framing_SUITE.erl"], - outs = ["test/unit_amqp091_content_framing_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "unit_amqp091_server_properties_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_amqp091_server_properties_SUITE.erl"], - outs = ["test/unit_amqp091_server_properties_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_quorum_queue_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_quorum_queue_SUITE.erl"], - outs = ["test/unit_quorum_queue_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_app_management_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_app_management_SUITE.erl"], - outs = ["test/unit_app_management_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_cluster_formation_locking_mocks_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_cluster_formation_locking_mocks_SUITE.erl"], - outs = ["test/unit_cluster_formation_locking_mocks_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_cluster_formation_sort_nodes_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_cluster_formation_sort_nodes_SUITE.erl"], - outs = ["test/unit_cluster_formation_sort_nodes_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_collections_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_collections_SUITE.erl"], - outs = ["test/unit_collections_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_config_value_encryption_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_config_value_encryption_SUITE.erl"], - outs = ["test/unit_config_value_encryption_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_connection_tracking_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_connection_tracking_SUITE.erl"], - outs = ["test/unit_connection_tracking_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_credit_flow_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_credit_flow_SUITE.erl"], - outs = ["test/unit_credit_flow_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_disk_monitor_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_disk_monitor_SUITE.erl"], - outs = ["test/unit_disk_monitor_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_file_handle_cache_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_file_handle_cache_SUITE.erl"], - outs = ["test/unit_file_handle_cache_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_gen_server2_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_gen_server2_SUITE.erl"], - outs = ["test/unit_gen_server2_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_log_management_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_log_management_SUITE.erl"], - outs = ["test/unit_log_management_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "unit_msg_size_metrics_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_msg_size_metrics_SUITE.erl"], - outs = ["test/unit_msg_size_metrics_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_operator_policy_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_operator_policy_SUITE.erl"], - outs = ["test/unit_operator_policy_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "unit_pg_local_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_pg_local_SUITE.erl"], - outs = ["test/unit_pg_local_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_plugin_directories_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_plugin_directories_SUITE.erl"], - outs = ["test/unit_plugin_directories_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "unit_plugin_versioning_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_plugin_versioning_SUITE.erl"], - outs = ["test/unit_plugin_versioning_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_policy_validators_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_policy_validators_SUITE.erl"], - outs = ["test/unit_policy_validators_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_priority_queue_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_priority_queue_SUITE.erl"], - outs = ["test/unit_priority_queue_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_queue_consumers_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_queue_consumers_SUITE.erl"], - outs = ["test/unit_queue_consumers_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_stats_and_metrics_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_stats_and_metrics_SUITE.erl"], - outs = ["test/unit_stats_and_metrics_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_supervisor2_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_supervisor2_SUITE.erl"], - outs = ["test/unit_supervisor2_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_vm_memory_monitor_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_vm_memory_monitor_SUITE.erl"], - outs = ["test/unit_vm_memory_monitor_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "upgrade_preparation_SUITE_beam_files", - testonly = True, - srcs = ["test/upgrade_preparation_SUITE.erl"], - outs = ["test/upgrade_preparation_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "vhost_SUITE_beam_files", - testonly = True, - srcs = ["test/vhost_SUITE.erl"], - outs = ["test/vhost_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_cuttlefish_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_cuttlefish_SUITE.erl"], - outs = ["test/rabbit_cuttlefish_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unicode_SUITE_beam_files", - testonly = True, - srcs = ["test/unicode_SUITE.erl"], - outs = ["test/unicode_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "bindings_SUITE_beam_files", - testonly = True, - srcs = ["test/bindings_SUITE.erl"], - outs = ["test/bindings_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "exchanges_SUITE_beam_files", - testonly = True, - srcs = ["test/exchanges_SUITE.erl"], - outs = ["test/exchanges_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_db_binding_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_db_binding_SUITE.erl"], - outs = ["test/rabbit_db_binding_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_db_exchange_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_db_exchange_SUITE.erl"], - outs = ["test/rabbit_db_exchange_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_db_maintenance_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_db_maintenance_SUITE.erl"], - outs = ["test/rabbit_db_maintenance_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_db_msup_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_db_msup_SUITE.erl"], - outs = ["test/rabbit_db_msup_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_db_policy_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_db_policy_SUITE.erl"], - outs = ["test/rabbit_db_policy_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_db_queue_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_db_queue_SUITE.erl"], - outs = ["test/rabbit_db_queue_SUITE.beam"], - hdrs = ["include/amqqueue.hrl", "include/amqqueue_v2.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_db_topic_exchange_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_db_topic_exchange_SUITE.erl"], - outs = ["test/rabbit_db_topic_exchange_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_test_rabbit_event_handler_beam", - testonly = True, - srcs = ["test/test_rabbit_event_handler.erl"], - outs = ["test/test_rabbit_event_handler.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "per_node_limit_SUITE_beam_files", - testonly = True, - srcs = ["test/per_node_limit_SUITE.erl"], - outs = ["test/per_node_limit_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "runtime_parameters_SUITE_beam_files", - testonly = True, - srcs = ["test/runtime_parameters_SUITE.erl"], - outs = ["test/runtime_parameters_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_message_interceptor_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_message_interceptor_SUITE.erl"], - outs = ["test/rabbit_message_interceptor_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbitmq_4_0_deprecations_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbitmq_4_0_deprecations_SUITE.erl"], - outs = ["test/rabbitmq_4_0_deprecations_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "quorum_queue_member_reconciliation_SUITE_beam_files", - testonly = True, - srcs = ["test/quorum_queue_member_reconciliation_SUITE.erl"], - outs = ["test/quorum_queue_member_reconciliation_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - - erlang_bytecode( - name = "cluster_limit_SUITE_beam_files", - testonly = True, - srcs = ["test/cluster_limit_SUITE.erl"], - outs = ["test/cluster_limit_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "metadata_store_clustering_SUITE_beam_files", - testonly = True, - srcs = ["test/metadata_store_clustering_SUITE.erl"], - outs = ["test/metadata_store_clustering_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "metadata_store_migration_SUITE_beam_files", - testonly = True, - srcs = ["test/metadata_store_migration_SUITE.erl"], - outs = ["test/metadata_store_migration_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - - erlang_bytecode( - name = "routing_SUITE_beam_files", - testonly = True, - srcs = ["test/routing_SUITE.erl"], - outs = ["test/routing_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "metadata_store_phase1_SUITE_beam_files", - testonly = True, - srcs = ["test/metadata_store_phase1_SUITE.erl"], - outs = ["test/metadata_store_phase1_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app", "@khepri//:erlang_app"], - ) - erlang_bytecode( - name = "mc_unit_SUITE_beam_files", - testonly = True, - srcs = ["test/mc_unit_SUITE.erl"], - outs = ["test/mc_unit_SUITE.beam"], - hdrs = ["include/mc.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "cli_forget_cluster_node_SUITE_beam_files", - testonly = True, - srcs = ["test/cli_forget_cluster_node_SUITE.erl"], - outs = ["test/cli_forget_cluster_node_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "cluster_minority_SUITE_beam_files", - testonly = True, - srcs = ["test/cluster_minority_SUITE.erl"], - outs = ["test/cluster_minority_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "test_event_recorder_beam", - testonly = True, - srcs = ["test/event_recorder.erl"], - outs = ["test/event_recorder.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "amqp_auth_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp_auth_SUITE.erl"], - outs = ["test/amqp_auth_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "amqp_client_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp_client_SUITE.erl"], - outs = ["test/amqp_client_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "amqp_credit_api_v2_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp_credit_api_v2_SUITE.erl"], - outs = ["test/amqp_credit_api_v2_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "amqp_proxy_protocol_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp_proxy_protocol_SUITE.erl"], - outs = ["test/amqp_proxy_protocol_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - - erlang_bytecode( - name = "amqp_address_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp_address_SUITE.erl"], - outs = ["test/amqp_address_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/rabbitmq_amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "message_containers_deaths_v2_SUITE_beam_files", - testonly = True, - srcs = ["test/message_containers_deaths_v2_SUITE.erl"], - outs = ["test/message_containers_deaths_v2_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "amqpl_direct_reply_to_SUITE_beam_files", - testonly = True, - srcs = ["test/amqpl_direct_reply_to_SUITE.erl"], - outs = ["test/amqpl_direct_reply_to_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_local_random_exchange_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_local_random_exchange_SUITE.erl"], - outs = ["test/rabbit_local_random_exchange_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "amqpl_consumer_ack_SUITE_beam_files", - testonly = True, - srcs = ["test/amqpl_consumer_ack_SUITE.erl"], - outs = ["test/amqpl_consumer_ack_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_queue_location_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_queue_location_SUITE.erl"], - outs = ["test/unit_queue_location_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "classic_queue_SUITE_beam_files", - testonly = True, - srcs = ["test/classic_queue_SUITE.erl"], - outs = ["test/classic_queue_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_fifo_q_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_fifo_q_SUITE.erl"], - outs = ["test/rabbit_fifo_q_SUITE.beam"], - hdrs = ["src/rabbit_fifo.hrl"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) - erlang_bytecode( - name = "cluster_upgrade_SUITE_beam_files", - testonly = True, - srcs = ["test/cluster_upgrade_SUITE.erl"], - outs = ["test/cluster_upgrade_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "test_rabbit_ct_hook_beam", - testonly = True, - srcs = ["test/rabbit_ct_hook.erl"], - outs = ["test/rabbit_ct_hook.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "msg_size_metrics_SUITE_beam_files", - testonly = True, - srcs = ["test/msg_size_metrics_SUITE.erl"], - outs = ["test/msg_size_metrics_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "amqp_filtex_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp_filtex_SUITE.erl"], - outs = ["test/amqp_filtex_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app"], - ) - erlang_bytecode( - name = "test_amqp_utils_beam", - testonly = True, - srcs = ["test/amqp_utils.erl"], - outs = ["test/amqp_utils.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app"], - ) - erlang_bytecode( - name = "test_rabbit_list_test_event_handler_beam", - testonly = True, - srcs = ["test/rabbit_list_test_event_handler.erl"], - outs = ["test/rabbit_list_test_event_handler.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "amqp_dotnet_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp_dotnet_SUITE.erl"], - outs = ["test/amqp_dotnet_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "amqp_jms_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp_jms_SUITE.erl"], - outs = ["test/amqp_jms_SUITE.beam"], - app_name = "rabbit", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app"], - ) diff --git a/deps/rabbit/bats.bzl b/deps/rabbit/bats.bzl deleted file mode 100644 index b86e04c79088..000000000000 --- a/deps/rabbit/bats.bzl +++ /dev/null @@ -1,36 +0,0 @@ -def _impl(ctx): - script = """set -euo pipefail - -external/bats/libexec/bats {test_files} -""".format( - package_dir = ctx.label.package, - test_files = " ".join([t.short_path for t in ctx.files.srcs]), - ) - - ctx.actions.write( - output = ctx.outputs.executable, - content = script, - ) - - runfiles = ctx.runfiles(ctx.files.bats + ctx.files.srcs + ctx.files.data) - return [DefaultInfo(runfiles = runfiles)] - -bats_test = rule( - implementation = _impl, - attrs = { - "bats": attr.label(), - "srcs": attr.label_list( - allow_files = [".bats"], - mandatory = True, - ), - "data": attr.label_list(allow_files = True), - }, - test = True, -) - -def bats(**kwargs): - bats_test( - name = "bats", - bats = "@bats//:bin_dir", - **kwargs - ) diff --git a/deps/rabbit/src/amqqueue.erl b/deps/rabbit/src/amqqueue.erl index 88518a0b8ad6..4d95dc81908e 100644 --- a/deps/rabbit/src/amqqueue.erl +++ b/deps/rabbit/src/amqqueue.erl @@ -520,9 +520,14 @@ internal_owner(#amqqueue{options = #{internal := true, internal_owner(#amqqueue{}) -> undefined. +-spec make_internal(amqqueue()) -> amqqueue(). + make_internal(Q = #amqqueue{options = Options}) when is_map(Options) -> Q#amqqueue{options = maps:merge(Options, #{internal => true, internal_owner => undefined})}. + +-spec make_internal(amqqueue(), rabbit_types:r(queue | exchange)) -> amqqueue(). + make_internal(Q = #amqqueue{options = Options}, Owner) when is_map(Options) andalso is_record(Owner, resource) -> Q#amqqueue{options = maps:merge(Options, #{internal => true, diff --git a/deps/rabbit/src/rabbit_khepri.erl b/deps/rabbit/src/rabbit_khepri.erl index 537021efa341..5424917ee00c 100644 --- a/deps/rabbit/src/rabbit_khepri.erl +++ b/deps/rabbit/src/rabbit_khepri.erl @@ -288,12 +288,6 @@ retry_timeout() -> undefined -> 300_000 end. -retry_limit() -> - case application:get_env(rabbit, khepri_leader_wait_retry_limit) of - {ok, T} -> T; - undefined -> 10 - end. - %% @private -spec init(IsVirgin) -> Ret when @@ -333,22 +327,13 @@ init(IsVirgin) -> end. await_replication() -> - await_replication(retry_timeout(), retry_limit()). - -await_replication(_Timeout, 0) -> - {error, timeout}; -await_replication(Timeout, Retries) -> + Timeout = retry_timeout(), ?LOG_DEBUG( "Khepri-based " ?RA_FRIENDLY_NAME " waiting to catch up on replication " - "to the Raft cluster leader. Waiting for ~tb ms, ~tb retries left", - [Timeout, Retries], + "to the Raft cluster leader. Waiting for ~tb ms", + [Timeout], #{domain => ?RMQLOG_DOMAIN_DB}), - case fence(Timeout) of - ok -> - ok; - {error, timeout} -> - await_replication(Timeout, Retries -1) - end. + fence(Timeout). %% @private diff --git a/deps/rabbit/src/rabbit_reader.erl b/deps/rabbit/src/rabbit_reader.erl index 276b6fa03ffc..c4f3110d3812 100644 --- a/deps/rabbit/src/rabbit_reader.erl +++ b/deps/rabbit/src/rabbit_reader.erl @@ -394,60 +394,69 @@ log_connection_exception(Name, ConnectedAt, Ex) -> connection_closed_abruptly -> warning; _ -> error end, - log_connection_exception(Severity, Name, ConnectedAt, Ex). + Duration = connection_duration(ConnectedAt), + log_connection_exception(Severity, Name, Duration, Ex). -log_connection_exception(Severity, Name, ConnectedAt, {heartbeat_timeout, TimeoutSec}) -> - ConnDuration = connection_duration(ConnectedAt), +log_connection_exception(Severity, Name, Duration, {heartbeat_timeout, TimeoutSec}) -> Fmt = "closing AMQP connection ~tp (~ts, duration: '~ts'):~n" "missed heartbeats from client, timeout: ~ps", %% Long line to avoid extra spaces and line breaks in log log_connection_exception_with_severity(Severity, Fmt, - [self(), Name, ConnDuration, TimeoutSec]); -log_connection_exception(Severity, Name, _ConnectedAt, + [self(), Name, Duration, TimeoutSec]); +log_connection_exception(Severity, Name, _Duration, {connection_closed_abruptly, #v1{connection = #connection{user = #user{username = Username}, vhost = VHost, connected_at = ConnectedAt}}}) -> - ConnDuration = connection_duration(ConnectedAt), + Duration = connection_duration(ConnectedAt), Fmt = "closing AMQP connection ~tp (~ts, vhost: '~ts', user: '~ts', duration: '~ts'):~n" "client unexpectedly closed TCP connection", log_connection_exception_with_severity(Severity, Fmt, - [self(), Name, VHost, Username, ConnDuration]); + [self(), Name, VHost, Username, Duration]); %% when client abruptly closes connection before connection.open/authentication/authorization %% succeeded, don't log username and vhost as 'none' -log_connection_exception(Severity, Name, ConnectedAt, {connection_closed_abruptly, _}) -> - ConnDuration = connection_duration(ConnectedAt), +log_connection_exception(Severity, Name, Duration, {connection_closed_abruptly, _}) -> Fmt = "closing AMQP connection ~tp (~ts, duration: '~ts'):~n" "client unexpectedly closed TCP connection", log_connection_exception_with_severity(Severity, Fmt, - [self(), Name, ConnDuration]); + [self(), Name, Duration]); %% failed connection.tune negotiations -log_connection_exception(Severity, Name, ConnectedAt, {handshake_error, tuning, - {exit, #amqp_error{explanation = Explanation}, - _Method, _Stacktrace}}) -> - ConnDuration = connection_duration(ConnectedAt), +log_connection_exception(Severity, Name, Duration, {handshake_error, tuning, + {exit, #amqp_error{explanation = Explanation}, + _Method, _Stacktrace}}) -> Fmt = "closing AMQP connection ~tp (~ts):~n" "failed to negotiate connection parameters: ~ts", - log_connection_exception_with_severity(Severity, Fmt, [self(), Name, ConnDuration, Explanation]); -log_connection_exception(Severity, Name, ConnectedAt, {sasl_required, ProtocolId}) -> - ConnDuration = connection_duration(ConnectedAt), + log_connection_exception_with_severity(Severity, Fmt, [self(), Name, Duration, Explanation]); +log_connection_exception(Severity, Name, Duration, {sasl_required, ProtocolId}) -> Fmt = "closing AMQP 1.0 connection (~ts, duration: '~ts'): RabbitMQ requires SASL " "security layer (expected protocol ID 3, but client sent protocol ID ~b)", log_connection_exception_with_severity(Severity, Fmt, - [Name, ConnDuration, ProtocolId]); + [Name, Duration, ProtocolId]); %% old exception structure -log_connection_exception(Severity, Name, ConnectedAt, connection_closed_abruptly) -> - ConnDuration = connection_duration(ConnectedAt), +log_connection_exception(Severity, Name, Duration, connection_closed_abruptly) -> Fmt = "closing AMQP connection ~tp (~ts, duration: '~ts'):~n" "client unexpectedly closed TCP connection", log_connection_exception_with_severity(Severity, Fmt, - [self(), Name, ConnDuration]); -log_connection_exception(Severity, Name, ConnectedAt, Ex) -> - ConnDuration = connection_duration(ConnectedAt), + [self(), Name, Duration]); +log_connection_exception(Severity, Name, Duration, {bad_header, detected_tls}) -> + Fmt = "closing AMQP connection ~ts (duration: '~ts'):~n" + "TLS client detected on non-TLS AMQP port. " + "Ensure the client is connecting to the correct port.", + log_connection_exception_with_severity(Severity, Fmt, [Name, Duration]); +log_connection_exception(Severity, Name, Duration, {bad_header, detected_http_get}) -> + Fmt = "closing AMQP connection ~ts (duration: '~ts'):~n" + "HTTP GET request detected on AMQP port. " + "Ensure the client is connecting to the correct port.", + log_connection_exception_with_severity(Severity, Fmt, [Name, Duration]); +log_connection_exception(Severity, Name, Duration, {bad_header, Other}) -> + Fmt = "closing AMQP connection ~ts (duration: '~ts'):~n" + "client did not start with AMQP protocol header: ~p", + log_connection_exception_with_severity(Severity, Fmt, [Name, Duration, Other]); +log_connection_exception(Severity, Name, Duration, Ex) -> Fmt = "closing AMQP connection ~tp (~ts, duration: '~ts'):~n" "~tp", log_connection_exception_with_severity(Severity, Fmt, - [self(), Name, ConnDuration, Ex]). + [self(), Name, Duration, Ex]). log_connection_exception_with_severity(Severity, Fmt, Args) -> case Severity of @@ -1118,6 +1127,14 @@ handle_input({frame_payload, Type, Channel, PayloadSize}, Data, State) -> end; handle_input(handshake, <<"AMQP", A, B, C, D, Rest/binary>>, State) -> {Rest, version_negotiation({A, B, C, D}, State)}; +handle_input(handshake, <<"GET ", _URL/binary>>, #v1{sock = Sock}) -> + %% Looks like an HTTP request. + refuse_connection(Sock, {bad_header, detected_http_get}); +handle_input(handshake, + <<16#16, 16#03, _Ver2, _Len1, _Len2, 16#01, _/binary>>, + #v1{sock = Sock}) -> + %% Looks like a TLS client hello. + refuse_connection(Sock, {bad_header, detected_tls}); handle_input(handshake, <>, #v1{sock = Sock}) -> refuse_connection(Sock, {bad_header, Other}); handle_input(Callback, Data, _State) -> @@ -1862,8 +1879,8 @@ get_client_value_detail(_Field, _ClientValue) -> "". connection_duration(ConnectedAt) -> - Now = os:system_time(milli_seconds), - DurationMillis = Now - ConnectedAt, + Now = os:system_time(millisecond), + DurationMillis = max(0, Now - ConnectedAt), if DurationMillis >= 1000 -> DurationSecs = DurationMillis div 1000, diff --git a/deps/rabbit/src/rabbit_variable_queue.erl b/deps/rabbit/src/rabbit_variable_queue.erl index 115a56e3e797..4f23dbf8f92a 100644 --- a/deps/rabbit/src/rabbit_variable_queue.erl +++ b/deps/rabbit/src/rabbit_variable_queue.erl @@ -1880,6 +1880,7 @@ determine_persist_to(Msg, %% via the direct client), we make a guess based on the number of %% headers. + %% @todo We can probably simplify this. {MetaSize, _BodySize} = mc:size(Msg), case BodySize >= IndexMaxSize of true -> msg_store; diff --git a/deps/rabbit/test/amqp_client_SUITE.erl b/deps/rabbit/test/amqp_client_SUITE.erl index 6e75e9a8f1fe..35f7c9d5c198 100644 --- a/deps/rabbit/test/amqp_client_SUITE.erl +++ b/deps/rabbit/test/amqp_client_SUITE.erl @@ -163,6 +163,8 @@ groups() -> incoming_window_closed_rabbitmq_internal_flow_quorum_queue, tcp_back_pressure_rabbitmq_internal_flow_classic_queue, tcp_back_pressure_rabbitmq_internal_flow_quorum_queue, + session_flow_control_default_max_frame_size, + session_flow_control_small_max_frame_size, session_max_per_connection, link_max_per_session, reserved_annotation, @@ -1644,7 +1646,7 @@ server_closes_link(QType, Config) -> receive {amqp10_msg, Receiver, Msg} -> ?assertEqual([Body], amqp10_msg:body(Msg)) - after 30000 -> ct:fail("missing msg") + after 9000 -> ct:fail({missing_msg, ?LINE}) end, [SessionPid] = rpc(Config, rabbit_amqp_session, list_local, []), @@ -2994,7 +2996,7 @@ detach_requeues_two_connections(QType, Config) -> {ok, LinkPair} = rabbitmq_amqp_client:attach_management_link_pair_sync(Session1, <<"my link pair">>), QProps = #{arguments => #{<<"x-queue-type">> => {utf8, QType}}}, {ok, #{type := QType}} = rabbitmq_amqp_client:declare_queue(LinkPair, QName, QProps), - flush(link_pair_attached), + flush(queue_declared), %% Attach 1 sender and 2 receivers. {ok, Sender} = amqp10_client:attach_sender_link(Session0, <<"sender">>, Address, settled), @@ -3004,7 +3006,7 @@ detach_requeues_two_connections(QType, Config) -> receive {amqp10_event, {link, Receiver0, attached}} -> ok after 30000 -> ct:fail({missing_event, ?LINE}) end, - ok = gen_statem:cast(Session0, {flow_session, #'v1_0.flow'{incoming_window = {uint, 1}}}), + ok = amqp10_client_session:flow(Session0, 1, never), ok = amqp10_client:flow_link_credit(Receiver0, 50, never), %% Wait for credit being applied to the queue. timer:sleep(100), @@ -4319,7 +4321,7 @@ available_messages(QType, Config) -> link_credit = {uint, 1}, %% Request sending queue to send us a FLOW including available messages. echo = true}, - ok = amqp10_client_session:flow(Session, OutputHandle, Flow0, never), + ok = amqp10_client_session:flow_link(Session, OutputHandle, Flow0, never), receive_messages(Receiver, 1), receive {amqp10_event, {link, Receiver, credit_exhausted}} -> ok after 30000 -> ct:fail({missing_event, ?LINE}) @@ -4360,8 +4362,8 @@ available_messages(QType, Config) -> link_credit = {uint, 1}, echo = true}, %% Send both FLOW frames in sequence. - ok = amqp10_client_session:flow(Session, OutputHandle, Flow1, never), - ok = amqp10_client_session:flow(Session, OutputHandle, Flow2, never), + ok = amqp10_client_session:flow_link(Session, OutputHandle, Flow1, never), + ok = amqp10_client_session:flow_link(Session, OutputHandle, Flow2, never), receive_messages(Receiver, 1), receive {amqp10_event, {link, Receiver, credit_exhausted}} -> ok after 30000 -> ct:fail({missing_event, ?LINE}) @@ -5916,7 +5918,7 @@ incoming_window_closed_transfer_flow_order(Config) -> end, %% Open our incoming window - gen_statem:cast(Session, {flow_session, #'v1_0.flow'{incoming_window = {uint, 5}}}), + ok = amqp10_client_session:flow(Session, 5, never), %% Important: We should first receive the TRANSFER, %% and only thereafter the FLOW (and hence the credit_exhausted notification). receive First -> @@ -5969,7 +5971,7 @@ incoming_window_closed_stop_link(Config) -> end, %% Open our incoming window - gen_statem:cast(Session, {flow_session, #'v1_0.flow'{incoming_window = {uint, 5}}}), + ok = amqp10_client_session:flow(Session, 5, never), %% Since we decreased link credit dynamically, we may or may not receive the 1st message. receive {amqp10_msg, Receiver, Msg1} -> @@ -6015,7 +6017,7 @@ incoming_window_closed_close_link(Config) -> %% Close the link while our session incoming-window is closed. ok = detach_link_sync(Receiver), %% Open our incoming window. - gen_statem:cast(Session, {flow_session, #'v1_0.flow'{incoming_window = {uint, 5}}}), + ok = amqp10_client_session:flow(Session, 5, never), %% Given that both endpoints have now destroyed the link, we do not %% expect to receive any TRANSFER or FLOW frame referencing the destroyed link. receive Unexpected2 -> ct:fail({unexpected, Unexpected2}) @@ -6069,7 +6071,7 @@ incoming_window_closed_rabbitmq_internal_flow(QType, Config) -> ?assert(MsgsReady > 0), %% Open our incoming window. - gen_statem:cast(Session, {flow_session, #'v1_0.flow'{incoming_window = {uint, Num}}}), + ok = amqp10_client_session:flow(Session, 100, 50), receive_messages(Receiver, Num), ok = detach_link_sync(Receiver), @@ -6168,6 +6170,122 @@ tcp_back_pressure_rabbitmq_internal_flow(QType, Config) -> {ok, #{message_count := 0}} = rabbitmq_amqp_client:delete_queue(LinkPair, QName), ok = close({Connection, Session, LinkPair}). +session_flow_control_default_max_frame_size(Config) -> + QName = atom_to_binary(?FUNCTION_NAME), + Address = rabbitmq_amqp_address:queue(QName), + {_, Session, LinkPair} = Init = init(Config), + {ok, _} = rabbitmq_amqp_client:declare_queue(LinkPair, QName, #{}), + {ok, Sender} = amqp10_client:attach_sender_link_sync(Session, <<"sender">>, Address), + ok = wait_for_credit(Sender), + {ok, Receiver} = amqp10_client:attach_receiver_link(Session, <<"receiver">>, Address), + receive {amqp10_event, {link, Receiver, attached}} -> ok + after 9000 -> ct:fail({missing_event, ?LINE}) + end, + + Num = 1000, + ok = send_messages(Sender, Num, false), + ok = wait_for_accepts(Num), + + ok = amqp10_client_session:flow(Session, 2, never), + %% Grant link credit worth of all messages that we are going to receive + %% in this test case. + ok = amqp10_client:flow_link_credit(Receiver, Num * 2, never), + + [Msg1000, Msg999] = receive_messages(Receiver, 2), + ?assertEqual(<<"1000">>, amqp10_msg:body_bin(Msg1000)), + ?assertEqual(<<"999">>, amqp10_msg:body_bin(Msg999)), + receive {amqp10_msg, _, _} = Unexpected0 -> + ct:fail({unexpected_msg, Unexpected0, ?LINE}) + after 50 -> ok + end, + + ok = amqp10_client_session:flow(Session, 1, never), + [Msg998] = receive_messages(Receiver, 1), + ?assertEqual(<<"998">>, amqp10_msg:body_bin(Msg998)), + receive {amqp10_msg, _, _} = Unexpected1 -> + ct:fail({unexpected_msg, Unexpected1, ?LINE}) + after 50 -> ok + end, + + ok = amqp10_client_session:flow(Session, 0, never), + receive {amqp10_msg, _, _} = Unexpected2 -> + ct:fail({unexpected_msg, Unexpected2, ?LINE}) + after 50 -> ok + end, + + %% When the client automatically widens the session window, + %% we should receive all remaining messages. + ok = amqp10_client_session:flow(Session, 2, 1), + receive_messages(Receiver, Num - 3), + + %% Let's test with a different auto renew session flow config (100, 100). + ok = amqp10_client_session:flow(Session, 0, never), + ok = send_messages(Sender, Num, false), + ok = wait_for_accepts(Num), + receive {amqp10_msg, _, _} = Unexpected3 -> + ct:fail({unexpected_msg, Unexpected3, ?LINE}) + after 50 -> ok + end, + ok = amqp10_client_session:flow(Session, 100, 100), + receive_messages(Receiver, Num), + + ok = amqp10_client:detach_link(Sender), + ok = amqp10_client:detach_link(Receiver), + {ok, _} = rabbitmq_amqp_client:delete_queue(LinkPair, QName), + ok = close(Init). + +%% Test session flow control with large messages split into multiple transfer frames. +session_flow_control_small_max_frame_size(Config) -> + OpnConf0 = connection_config(Config), + OpnConf = OpnConf0#{max_frame_size => 1000}, + {ok, Connection} = amqp10_client:open_connection(OpnConf), + {ok, Session} = amqp10_client:begin_session_sync(Connection), + {ok, LinkPair} = rabbitmq_amqp_client:attach_management_link_pair_sync(Session, <<"pair">>), + + QName = atom_to_binary(?FUNCTION_NAME), + Address = rabbitmq_amqp_address:queue(QName), + {ok, _} = rabbitmq_amqp_client:declare_queue(LinkPair, QName, #{}), + {ok, Sender} = amqp10_client:attach_sender_link_sync(Session, <<"sender">>, Address), + ok = wait_for_credit(Sender), + {ok, Receiver} = amqp10_client:attach_receiver_link(Session, <<"receiver">>, Address), + receive {amqp10_event, {link, Receiver, attached}} -> ok + after 9000 -> ct:fail({missing_event, ?LINE}) + end, + + Suffix = binary:copy(<<"x">>, 2500), + Num = 10, + ok = send_messages(Sender, Num, false, Suffix), + ok = wait_for_accepts(Num), + + %% 1 message of size ~2500 bytes gets split into 3 transfer frames + %% because each transfer frame has max size of 1000 bytes. + %% Hence, if we set our incoming-window to 3, we should receive exactly 1 message. + ok = amqp10_client_session:flow(Session, 3, never), + %% Grant plenty of link credit. + ok = amqp10_client:flow_link_credit(Receiver, Num * 5, never), + receive {amqp10_msg, Receiver, Msg10} -> + ?assertEqual(<<"10", Suffix/binary>>, + amqp10_msg:body_bin(Msg10)) + after 9000 -> ct:fail({missing_msg, ?LINE}) + end, + receive {amqp10_msg, _, _} = Unexpected0 -> + ct:fail({unexpected_msg, Unexpected0, ?LINE}) + after 50 -> ok + end, + + %% When the client automatically widens the session window, + %% we should receive all remaining messages. + ok = amqp10_client_session:flow(Session, 2, 1), + Msgs = receive_messages(Receiver, Num - 1), + Msg1 = lists:last(Msgs), + ?assertEqual(<<"1", Suffix/binary>>, + amqp10_msg:body_bin(Msg1)), + + ok = amqp10_client:detach_link(Sender), + ok = amqp10_client:detach_link(Receiver), + {ok, _} = rabbitmq_amqp_client:delete_queue(LinkPair, QName), + ok = close_connection_sync(Connection). + session_max_per_connection(Config) -> App = rabbit, Par = session_max_per_connection, @@ -6703,4 +6821,4 @@ find_event(Type, Props, Events) when is_list(Props), is_list(Events) -> end, Events). close_incoming_window(Session) -> - gen_statem:cast(Session, {flow_session, #'v1_0.flow'{incoming_window = {uint, 0}}}). + amqp10_client_session:flow(Session, 0, never). diff --git a/deps/rabbit/test/amqp_jms_SUITE_data/pom.xml b/deps/rabbit/test/amqp_jms_SUITE_data/pom.xml index 3cce74fade80..dd0b2d78e5dd 100644 --- a/deps/rabbit/test/amqp_jms_SUITE_data/pom.xml +++ b/deps/rabbit/test/amqp_jms_SUITE_data/pom.xml @@ -8,7 +8,7 @@ rabbitmq-amqp-jms-tests https://www.rabbitmq.com - 5.12.0 + 5.12.1 3.27.3 2.7.0 [0.5.0-SNAPSHOT,) diff --git a/deps/rabbit/test/feature_flags_SUITE_data/my_plugin/BUILD.bazel b/deps/rabbit/test/feature_flags_SUITE_data/my_plugin/BUILD.bazel deleted file mode 100644 index a9a6d5efc0ca..000000000000 --- a/deps/rabbit/test/feature_flags_SUITE_data/my_plugin/BUILD.bazel +++ /dev/null @@ -1,115 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "rabbitmq_app", -) - -# gazelle:erlang_generate_beam_files_macro false -# gazelle:erlang_always_generate_test_beam_files -# gazelle:erlang_skip_rules assert_suites2,xref,plt,dialyze - -# gazelle:erlang_app_dep rabbit_common -# gazelle:erlang_app_dep rabbit - -erlang_bytecode( - name = "other_beam", - srcs = [ - "src/my_plugin.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "my_plugin", - dest = "ebin", - erlc_opts = "//:erlc_opts", -) - -erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/my_plugin.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "my_plugin", - dest = "test", - erlc_opts = "//:test_erlc_opts", -) - -filegroup( - name = "beam_files", - srcs = [":other_beam"], -) - -filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], -) - -filegroup( - name = "srcs", - srcs = [ - "src/my_plugin.erl", - ], -) - -filegroup( - name = "private_hdrs", - srcs = glob(["src/**/*.hrl"]), -) - -filegroup( - name = "public_hdrs", - srcs = glob(["include/**/*.hrl"]), -) - -filegroup( - name = "priv", - srcs = glob(["priv/**/*"]), -) - -filegroup(name = "licenses") - -filegroup( - name = "public_and_private_hdrs", - srcs = [ - ":private_hdrs", - ":public_hdrs", - ], -) - -filegroup( - name = "all_srcs", - srcs = [ - ":public_and_private_hdrs", - ":srcs", - ], -) - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = "Plugin to test feature flags", - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_name = "my_plugin", - app_version = "1.0.0", - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -alias( - name = "my_plugin", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -filegroup( - name = "license_files", - srcs = glob(["LICENSE*"]), -) diff --git a/deps/rabbit/test/rabbit_amqqueue_SUITE.erl b/deps/rabbit/test/rabbit_amqqueue_SUITE.erl index c4e577e8eb19..48a4d13694ad 100644 --- a/deps/rabbit/test/rabbit_amqqueue_SUITE.erl +++ b/deps/rabbit/test/rabbit_amqqueue_SUITE.erl @@ -19,7 +19,8 @@ all() -> all_tests() -> [ normal_queue_delete_with, - internal_queue_delete_with + internal_owner_queue_delete_with, + internal_no_owner_queue_delete_with ]. groups() -> @@ -44,7 +45,9 @@ end_per_group(_Group, Config) -> init_per_testcase(Testcase, Config) -> Config1 = rabbit_ct_helpers:testcase_started(Config, Testcase), - rabbit_ct_helpers:run_steps(Config1, + QName = rabbit_misc:r(<<"/">>, queue, rabbit_data_coercion:to_binary(Testcase)), + Config2 = rabbit_ct_helpers:set_config(Config1, [{queue_name, QName}]), + rabbit_ct_helpers:run_steps(Config2, rabbit_ct_client_helpers:setup_steps()). end_per_testcase(Testcase, Config) -> @@ -58,7 +61,7 @@ end_per_testcase(Testcase, Config) -> %%%=================================================================== normal_queue_delete_with(Config) -> - QName = queue_name(Config, <<"normal">>), + QName = ?config(queue_name, Config), Node = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), Queue = amqqueue:new(QName, none, %% pid @@ -78,8 +81,8 @@ normal_queue_delete_with(Config) -> ok. -internal_queue_delete_with(Config) -> - QName = queue_name(Config, <<"internal_protected">>), +internal_owner_queue_delete_with(Config) -> + QName = ?config(queue_name, Config), Node = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), Queue = amqqueue:new(QName, none, %% pid @@ -96,7 +99,7 @@ internal_queue_delete_with(Config) -> ?assertException(exit, {exception, {amqp_error, resource_locked, - "Cannot delete protected queue 'rabbit_amqqueue_tests/internal_protected' in vhost '/'.", + "Cannot delete protected queue 'internal_owner_queue_delete_with' in vhost '/'.", none}}, rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_amqqueue, delete_with, [QName, false, false, <<"dummy">>])), ?assertMatch({ok, _}, rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_amqqueue, lookup, [QName])), @@ -107,11 +110,31 @@ internal_queue_delete_with(Config) -> ok. -%% Utility +internal_no_owner_queue_delete_with(Config) -> + QName = ?config(queue_name, Config), + Node = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), + Queue = amqqueue:new(QName, + none, %% pid + true, %% durable + false, %% auto delete + none, %% owner, + [], + <<"/">>, + #{}, + rabbit_classic_queue), + IQueue = amqqueue:make_internal(Queue), + + ?assertMatch({new, _Q}, rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_queue_type, declare, [IQueue, Node])), + + ?assertException(exit, {exception, + {amqp_error, resource_locked, + "Cannot delete protected queue 'internal_no_owner_queue_delete_with' in vhost '/'.", + none}}, rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_amqqueue, delete_with, [QName, false, false, <<"dummy">>])), -queue_name(Config, Name) -> - Name1 = iolist_to_binary(rabbit_ct_helpers:config_to_testcase_name(Config, Name)), - queue_name(Name1). + ?assertMatch({ok, _}, rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_amqqueue, lookup, [QName])), -queue_name(Name) -> - rabbit_misc:r(<<"/">>, queue, Name). + ?assertMatch({ok, _}, rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_amqqueue, delete_with, [QName, false, false, ?INTERNAL_USER])), + + ?assertMatch({error, not_found}, rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_amqqueue, lookup, [QName])), + + ok. diff --git a/deps/rabbit_common/BUILD.bazel b/deps/rabbit_common/BUILD.bazel deleted file mode 100644 index df5f2add5ada..000000000000 --- a/deps/rabbit_common/BUILD.bazel +++ /dev/null @@ -1,228 +0,0 @@ -load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files") -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -py_binary( - name = "codegen", - srcs = [ - "codegen.py", - ], - imports = ["../../deps/rabbitmq_codegen"], - deps = [ - "//deps/rabbitmq_codegen:amqp_codegen", - ], -) - -genrule( - name = "rabbit_framing", - srcs = [ - "//deps/rabbitmq_codegen:amqp-rabbitmq-0.9.1.json", - "//deps/rabbitmq_codegen:credit_extension.json", - "//deps/rabbitmq_codegen:amqp-rabbitmq-0.8.json", - ], - outs = ["gen/rabbit_framing.hrl"], - cmd = "$(location :codegen) --ignore-conflicts header $(SRCS) $@", - tags = ["manual"], - tools = [":codegen"], -) - -genrule( - name = "rabbit_framing_amqp_0_9_1", - srcs = [ - "//deps/rabbitmq_codegen:amqp-rabbitmq-0.9.1.json", - "//deps/rabbitmq_codegen:credit_extension.json", - ], - outs = ["gen/rabbit_framing_amqp_0_9_1.erl"], - cmd = "$(location :codegen) body $(SRCS) $@", - tags = ["manual"], - tools = [":codegen"], -) - -genrule( - name = "rabbit_framing_amqp_0_8", - srcs = [ - "//deps/rabbitmq_codegen:amqp-rabbitmq-0.8.json", - ], - outs = ["gen/rabbit_framing_amqp_0_8.erl"], - cmd = "$(location :codegen) body $(SRCS) $@", - tags = ["manual"], - tools = [":codegen"], -) - -write_source_files( - name = "write_framing_sources", - files = { - "include/rabbit_framing.hrl": ":rabbit_framing", - "src/rabbit_framing_amqp_0_8.erl": ":rabbit_framing_amqp_0_8", - "src/rabbit_framing_amqp_0_9_1.erl": ":rabbit_framing_amqp_0_9_1", - }, -) - -APP_EXTRA_KEYS = """ -%% Hex.pm package informations. - {licenses, ["MPL-2.0"]}, - {links, [ - {"Website", "https://www.rabbitmq.com/"}, - {"GitHub", "https://github.com/rabbitmq/rabbitmq-common"} - ]}, - {build_tools, ["make", "rebar3"]}, - {files, [ - "erlang.mk", - "git-revisions.txt", - "include", - "LICENSE*", - "Makefile", - "rabbitmq-components.mk", - "README", - "README.md", - "mk" - ]} -""" - -# gazelle:erlang_app_extra_app compiler -# gazelle:erlang_app_extra_app crypto -# gazelle:erlang_app_extra_app public_key -# gazelle:erlang_app_extra_app sasl -# gazelle:erlang_app_extra_app ssl -# gazelle:erlang_app_extra_app syntax_tools -# gazelle:erlang_app_extra_app tools -# gazelle:erlang_app_extra_app xmerl -# gazelle:erlang_app_extra_app runtime_tools -# gazelle:erlang_app_extra_app os_mon - -# gazelle:erlang_app_dep_exclude ranch - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = "Modules shared by rabbitmq-server and rabbitmq-erlang-client", - app_extra_keys = APP_EXTRA_KEYS, - app_name = "rabbit_common", - beam_files = [":beam_files"], - extra_apps = [ - "compiler", - "crypto", - "public_key", - "sasl", - "ssl", - "syntax_tools", - "tools", - "xmerl", - "os_mon", - "runtime_tools", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "@credentials_obfuscation//:erlang_app", - "@ranch//:erlang_app", # keep - "@recon//:erlang_app", - "@thoas//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - apps = [ - "mnesia", # keep - ], - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -rabbitmq_suite( - name = "rabbit_env_SUITE", - size = "small", - deps = [ - "@proper//:erlang_app", - ], -) - -rabbitmq_suite( - name = "supervisor2_SUITE", - size = "small", - additional_beam = [ - "test/test_event_handler.beam", - ], -) - -rabbitmq_suite( - name = "unit_priority_queue_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "unit_password_hashing_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "unit_SUITE", - size = "medium", - additional_beam = [ - "test/gen_server2_test_server.beam", - ], - deps = [ - "@credentials_obfuscation//:erlang_app", - "@proper//:erlang_app", - ], -) - -rabbitmq_suite( - name = "worker_pool_SUITE", - size = "small", -) - -assert_suites() - -alias( - name = "rabbit_common", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -eunit( - name = "eunit", - compiled_suites = [ - ":test_gen_server2_test_server_beam", - ":test_test_event_handler_beam", - ], - target = ":test_erlang_app", -) diff --git a/deps/rabbit_common/app.bzl b/deps/rabbit_common/app.bzl deleted file mode 100644 index 66bd9371fdb4..000000000000 --- a/deps/rabbit_common/app.bzl +++ /dev/null @@ -1,370 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":behaviours", ":other_beam"], - ) - erlang_bytecode( - name = "behaviours", - srcs = [ - "src/gen_server2.erl", - "src/rabbit_authn_backend.erl", - "src/rabbit_authz_backend.erl", - "src/rabbit_password_hashing.erl", - "src/rabbit_registry_class.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbit_common", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/app_utils.erl", - "src/code_version.erl", - "src/credit_flow.erl", - "src/delegate.erl", - "src/delegate_sup.erl", - "src/file_handle_cache.erl", - "src/mirrored_supervisor_locks.erl", - "src/mnesia_sync.erl", - "src/pmon.erl", - "src/priority_queue.erl", - "src/rabbit_amqp_connection.erl", - "src/rabbit_amqqueue_common.erl", - "src/rabbit_auth_backend_dummy.erl", - "src/rabbit_auth_mechanism.erl", - "src/rabbit_basic_common.erl", - "src/rabbit_binary_generator.erl", - "src/rabbit_binary_parser.erl", - "src/rabbit_cert_info.erl", - "src/rabbit_channel_common.erl", - "src/rabbit_command_assembler.erl", - "src/rabbit_control_misc.erl", - "src/rabbit_core_metrics.erl", - "src/rabbit_data_coercion.erl", - "src/rabbit_date_time.erl", - "src/rabbit_env.erl", - "src/rabbit_error_logger_handler.erl", - "src/rabbit_event.erl", - "src/rabbit_framing.erl", - "src/rabbit_framing_amqp_0_8.erl", - "src/rabbit_framing_amqp_0_9_1.erl", - "src/rabbit_heartbeat.erl", - "src/rabbit_http_util.erl", - "src/rabbit_json.erl", - "src/rabbit_log.erl", - "src/rabbit_misc.erl", - "src/rabbit_net.erl", - "src/rabbit_nodes_common.erl", - "src/rabbit_numerical.erl", - "src/rabbit_password.erl", - "src/rabbit_password_hashing_md5.erl", - "src/rabbit_password_hashing_sha256.erl", - "src/rabbit_password_hashing_sha512.erl", - "src/rabbit_pbe.erl", - "src/rabbit_peer_discovery_backend.erl", - "src/rabbit_policy_validator.erl", - "src/rabbit_queue_collector.erl", - "src/rabbit_registry.erl", - "src/rabbit_resource_monitor_misc.erl", - "src/rabbit_routing_parser.erl", - "src/rabbit_runtime.erl", - "src/rabbit_runtime_parameter.erl", - "src/rabbit_semver.erl", - "src/rabbit_semver_parser.erl", - "src/rabbit_ssl_options.erl", - "src/rabbit_types.erl", - "src/rabbit_writer.erl", - "src/supervisor2.erl", - "src/vm_memory_monitor.erl", - "src/worker_pool.erl", - "src/worker_pool_sup.erl", - "src/worker_pool_worker.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbit_common", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_behaviours", ":test_other_beam"], - ) - erlang_bytecode( - name = "test_behaviours", - testonly = True, - srcs = [ - "src/gen_server2.erl", - "src/rabbit_authn_backend.erl", - "src/rabbit_authz_backend.erl", - "src/rabbit_password_hashing.erl", - "src/rabbit_registry_class.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbit_common", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/app_utils.erl", - "src/code_version.erl", - "src/credit_flow.erl", - "src/delegate.erl", - "src/delegate_sup.erl", - "src/file_handle_cache.erl", - "src/mirrored_supervisor_locks.erl", - "src/mnesia_sync.erl", - "src/pmon.erl", - "src/priority_queue.erl", - "src/rabbit_amqp_connection.erl", - "src/rabbit_amqqueue_common.erl", - "src/rabbit_auth_backend_dummy.erl", - "src/rabbit_auth_mechanism.erl", - "src/rabbit_basic_common.erl", - "src/rabbit_binary_generator.erl", - "src/rabbit_binary_parser.erl", - "src/rabbit_cert_info.erl", - "src/rabbit_channel_common.erl", - "src/rabbit_command_assembler.erl", - "src/rabbit_control_misc.erl", - "src/rabbit_core_metrics.erl", - "src/rabbit_data_coercion.erl", - "src/rabbit_date_time.erl", - "src/rabbit_env.erl", - "src/rabbit_error_logger_handler.erl", - "src/rabbit_event.erl", - "src/rabbit_framing.erl", - "src/rabbit_framing_amqp_0_8.erl", - "src/rabbit_framing_amqp_0_9_1.erl", - "src/rabbit_heartbeat.erl", - "src/rabbit_http_util.erl", - "src/rabbit_json.erl", - "src/rabbit_log.erl", - "src/rabbit_misc.erl", - "src/rabbit_net.erl", - "src/rabbit_nodes_common.erl", - "src/rabbit_numerical.erl", - "src/rabbit_password.erl", - "src/rabbit_password_hashing_md5.erl", - "src/rabbit_password_hashing_sha256.erl", - "src/rabbit_password_hashing_sha512.erl", - "src/rabbit_pbe.erl", - "src/rabbit_peer_discovery_backend.erl", - "src/rabbit_policy_validator.erl", - "src/rabbit_queue_collector.erl", - "src/rabbit_registry.erl", - "src/rabbit_resource_monitor_misc.erl", - "src/rabbit_routing_parser.erl", - "src/rabbit_runtime.erl", - "src/rabbit_runtime_parameter.erl", - "src/rabbit_semver.erl", - "src/rabbit_semver_parser.erl", - "src/rabbit_ssl_options.erl", - "src/rabbit_types.erl", - "src/rabbit_writer.erl", - "src/supervisor2.erl", - "src/vm_memory_monitor.erl", - "src/worker_pool.erl", - "src/worker_pool_sup.erl", - "src/worker_pool_worker.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbit_common", - beam = [":test_behaviours"], - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/app_utils.erl", - "src/code_version.erl", - "src/credit_flow.erl", - "src/delegate.erl", - "src/delegate_sup.erl", - "src/file_handle_cache.erl", - "src/gen_server2.erl", - "src/mirrored_supervisor_locks.erl", - "src/mnesia_sync.erl", - "src/pmon.erl", - "src/priority_queue.erl", - "src/rabbit_amqp_connection.erl", - "src/rabbit_amqqueue_common.erl", - "src/rabbit_auth_backend_dummy.erl", - "src/rabbit_auth_mechanism.erl", - "src/rabbit_authn_backend.erl", - "src/rabbit_authz_backend.erl", - "src/rabbit_basic_common.erl", - "src/rabbit_binary_generator.erl", - "src/rabbit_binary_parser.erl", - "src/rabbit_cert_info.erl", - "src/rabbit_channel_common.erl", - "src/rabbit_command_assembler.erl", - "src/rabbit_control_misc.erl", - "src/rabbit_core_metrics.erl", - "src/rabbit_data_coercion.erl", - "src/rabbit_date_time.erl", - "src/rabbit_env.erl", - "src/rabbit_error_logger_handler.erl", - "src/rabbit_event.erl", - "src/rabbit_framing.erl", - "src/rabbit_framing_amqp_0_8.erl", - "src/rabbit_framing_amqp_0_9_1.erl", - "src/rabbit_heartbeat.erl", - "src/rabbit_http_util.erl", - "src/rabbit_json.erl", - "src/rabbit_log.erl", - "src/rabbit_misc.erl", - "src/rabbit_net.erl", - "src/rabbit_nodes_common.erl", - "src/rabbit_numerical.erl", - "src/rabbit_password.erl", - "src/rabbit_password_hashing.erl", - "src/rabbit_password_hashing_md5.erl", - "src/rabbit_password_hashing_sha256.erl", - "src/rabbit_password_hashing_sha512.erl", - "src/rabbit_pbe.erl", - "src/rabbit_peer_discovery_backend.erl", - "src/rabbit_policy_validator.erl", - "src/rabbit_queue_collector.erl", - "src/rabbit_registry.erl", - "src/rabbit_registry_class.erl", - "src/rabbit_resource_monitor_misc.erl", - "src/rabbit_routing_parser.erl", - "src/rabbit_runtime.erl", - "src/rabbit_runtime_parameter.erl", - "src/rabbit_semver.erl", - "src/rabbit_semver_parser.erl", - "src/rabbit_ssl_options.erl", - "src/rabbit_types.erl", - "src/rabbit_writer.erl", - "src/supervisor2.erl", - "src/vm_memory_monitor.erl", - "src/worker_pool.erl", - "src/worker_pool_sup.erl", - "src/worker_pool_worker.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = [ - "include/logging.hrl", - "include/rabbit.hrl", - "include/rabbit_core_metrics.hrl", - "include/rabbit_framing.hrl", - "include/rabbit_memory.hrl", - "include/rabbit_misc.hrl", - "include/resource.hrl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-BSD-recon", - "LICENSE-MIT-Erlware-Commons", - "LICENSE-MIT-Mochi", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "rabbit_env_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_env_SUITE.erl"], - outs = ["test/rabbit_env_SUITE.beam"], - app_name = "rabbit_common", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "supervisor2_SUITE_beam_files", - testonly = True, - srcs = ["test/supervisor2_SUITE.erl"], - outs = ["test/supervisor2_SUITE.beam"], - hdrs = ["include/rabbit.hrl", "include/resource.hrl"], - app_name = "rabbit_common", - beam = ["ebin/supervisor2.beam"], - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_gen_server2_test_server_beam", - testonly = True, - srcs = ["test/gen_server2_test_server.erl"], - outs = ["test/gen_server2_test_server.beam"], - app_name = "rabbit_common", - beam = ["ebin/gen_server2.beam"], - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_test_event_handler_beam", - testonly = True, - srcs = ["test/test_event_handler.erl"], - outs = ["test/test_event_handler.beam"], - hdrs = ["include/rabbit.hrl", "include/resource.hrl"], - app_name = "rabbit_common", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - hdrs = ["include/rabbit.hrl", "include/rabbit_memory.hrl", "include/resource.hrl"], - app_name = "rabbit_common", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) - erlang_bytecode( - name = "unit_priority_queue_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_priority_queue_SUITE.erl"], - outs = ["test/unit_priority_queue_SUITE.beam"], - app_name = "rabbit_common", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "worker_pool_SUITE_beam_files", - testonly = True, - srcs = ["test/worker_pool_SUITE.erl"], - outs = ["test/worker_pool_SUITE.beam"], - app_name = "rabbit_common", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_password_hashing_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_password_hashing_SUITE.erl"], - outs = ["test/unit_password_hashing_SUITE.beam"], - app_name = "rabbit_common", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbit_common/include/rabbit_framing.hrl b/deps/rabbit_common/include/rabbit_framing.hrl index fa189d394b25..14a641775228 100644 --- a/deps/rabbit_common/include/rabbit_framing.hrl +++ b/deps/rabbit_common/include/rabbit_framing.hrl @@ -11,7 +11,7 @@ -define(FRAME_HEADER, 2). -define(FRAME_BODY, 3). -define(FRAME_HEARTBEAT, 8). --define(FRAME_MIN_SIZE, 4096). +-define(FRAME_MIN_SIZE, 8192). -define(FRAME_END, 206). -define(REPLY_SUCCESS, 200). -define(CONTENT_TOO_LARGE, 311). diff --git a/deps/rabbit_common/mk/rabbitmq-build.mk b/deps/rabbit_common/mk/rabbitmq-build.mk index 93d9613c17ce..0cd5aa5bb7e6 100644 --- a/deps/rabbit_common/mk/rabbitmq-build.mk +++ b/deps/rabbit_common/mk/rabbitmq-build.mk @@ -12,7 +12,7 @@ ifneq ($(filter rabbitmq_cli,$(BUILD_DEPS) $(DEPS)),) # Add the CLI ebin directory to the code path for the compiler: plugin # CLI extensions may access behaviour modules defined in this directory. -RMQ_ERLC_OPTS += -pa $(DEPS_DIR)/rabbitmq_cli/_build/dev/lib/rabbitmqctl/ebin +RMQ_ERLC_OPTS += -pa $(DEPS_DIR)/rabbitmq_cli/ebin endif RMQ_ERLC_OPTS += +deterministic diff --git a/deps/rabbit_common/mk/rabbitmq-dist.mk b/deps/rabbit_common/mk/rabbitmq-dist.mk index 10ee9938e849..b38ab383ba18 100644 --- a/deps/rabbit_common/mk/rabbitmq-dist.mk +++ b/deps/rabbit_common/mk/rabbitmq-dist.mk @@ -3,7 +3,6 @@ DIST_DIR ?= $(CURDIR)/plugins CLI_SCRIPTS_DIR ?= $(CURDIR)/sbin CLI_ESCRIPTS_DIR ?= $(CURDIR)/escript -MIX = echo y | mix # Set $(DIST_AS_EZS) to a non-empty value to enable the packaging of # plugins as .ez archives. @@ -81,17 +80,13 @@ endef # Real entry point: it tests the existence of an .app file to determine # if it is an Erlang application (and therefore if it should be provided -# as an .ez plugin archive) and calls do_ez_target_erlangmk. If instead -# it finds a Mix configuration file, it is skipped, as the only elixir -# applications in the directory are used by rabbitmq_cli and compiled -# with it. +# as an .ez plugin archive) and calls do_ez_target_erlangmk. # # $(call ez_target,path_to_app) define ez_target dist_$(1)_appdir = $(2) dist_$(1)_appfile = $$(dist_$(1)_appdir)/ebin/$(1).app -dist_$(1)_mixfile = $$(dist_$(1)_appdir)/mix.exs $$(if $$(shell test -f $$(dist_$(1)_appfile) && echo OK), \ $$(eval $$(call do_ez_target_erlangmk,$(1),$$(call get_app_version,$$(dist_$(1)_appfile)),$$(dist_$(1)_appdir)))) @@ -117,9 +112,8 @@ endif endif # The actual recipe to create the .ez plugin archive. Some variables -# are defined in the do_ez_target_erlangmk and do_ez_target_mix macros -# above. All .ez archives are also listed in this do_ez_target_erlangmk -# and do_ez_target_mix macros. +# are defined in the do_ez_target_erlangmk macro +# above. All .ez archives are also listed in this macro. RSYNC ?= rsync RSYNC_V_0 = @@ -200,7 +194,7 @@ test-dist:: $(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST) test-build $(MAYBE_APPS_LIST)"; \ fi -DIST_EZS = $(ERLANGMK_DIST_EZS) $(MIX_DIST_EZS) +DIST_EZS = $(ERLANGMK_DIST_EZS) do-dist:: $(DIST_EZS) $(verbose) unwanted='$(filter-out $(DIST_EZS) $(EXTRA_DIST_EZS), \ @@ -223,43 +217,21 @@ endif install-cli: install-cli-scripts install-cli-escripts @: -install-cli-scripts: +install-cli-scripts: | $(CLI_SCRIPTS_DIR) $(gen_verbose) \ set -e; \ test -d "$(DEPS_DIR)/rabbit/scripts"; \ - if command -v flock >/dev/null; then \ - flock $(CLI_SCRIPTS_LOCK) \ - sh -e -c 'mkdir -p "$(CLI_SCRIPTS_DIR)" && \ - cp -a $(DEPS_DIR)/rabbit/scripts/* $(CLI_SCRIPTS_DIR)/'; \ - elif command -v lockf >/dev/null; then \ - lockf $(CLI_SCRIPTS_LOCK) \ - sh -e -c 'mkdir -p "$(CLI_SCRIPTS_DIR)" && \ - cp -a $(DEPS_DIR)/rabbit/scripts/* $(CLI_SCRIPTS_DIR)/'; \ - else \ - mkdir -p "$(CLI_SCRIPTS_DIR)" && \ - cp -a $(DEPS_DIR)/rabbit/scripts/* $(CLI_SCRIPTS_DIR)/; \ - fi + $(call maybe_flock,$(CLI_SCRIPTS_LOCK), \ + cp -a $(DEPS_DIR)/rabbit/scripts/* $(CLI_SCRIPTS_DIR)/) -install-cli-escripts: - $(gen_verbose) \ - if command -v flock >/dev/null; then \ - flock $(CLI_ESCRIPTS_LOCK) \ - sh -c 'mkdir -p "$(CLI_ESCRIPTS_DIR)" && \ - $(MAKE) -C "$(DEPS_DIR)/rabbitmq_cli" install \ - PREFIX="$(abspath $(CLI_ESCRIPTS_DIR))" \ - DESTDIR='; \ - elif command -v lockf >/dev/null; then \ - lockf $(CLI_ESCRIPTS_LOCK) \ - sh -c 'mkdir -p "$(CLI_ESCRIPTS_DIR)" && \ +install-cli-escripts: | $(CLI_ESCRIPTS_DIR) + $(gen_verbose) $(call maybe_flock,$(CLI_ESCRIPTS_LOCK), \ $(MAKE) -C "$(DEPS_DIR)/rabbitmq_cli" install \ PREFIX="$(abspath $(CLI_ESCRIPTS_DIR))" \ - DESTDIR='; \ - else \ - mkdir -p "$(CLI_ESCRIPTS_DIR)" && \ - $(MAKE) -C "$(DEPS_DIR)/rabbitmq_cli" install \ - PREFIX="$(abspath $(CLI_ESCRIPTS_DIR))" \ - DESTDIR= ; \ - fi + DESTDIR= IS_DEP=1) + +$(CLI_SCRIPTS_DIR) $(CLI_ESCRIPTS_DIR): + $(verbose) mkdir -p $@ clean-dist:: $(gen_verbose) rm -rf \ diff --git a/deps/rabbit_common/mk/rabbitmq-early-plugin.mk b/deps/rabbit_common/mk/rabbitmq-early-plugin.mk index eaea8642ae16..932ad9567b1d 100644 --- a/deps/rabbit_common/mk/rabbitmq-early-plugin.mk +++ b/deps/rabbit_common/mk/rabbitmq-early-plugin.mk @@ -4,7 +4,8 @@ DIALYZER_OPTS ?= -Werror_handling -Wunmatched_returns -Wunknown -dialyze: ERL_LIBS = $(APPS_DIR):$(DEPS_DIR):$(DEPS_DIR)/rabbitmq_cli/_build/dev/lib:$(dir $(shell elixir --eval ':io.format "~s~n", [:code.lib_dir :elixir ]')) +dialyze: ELIXIR_LIBS = $(dir $(shell readlink -f `which elixir`))/../lib +dialyze: ERL_LIBS = $(APPS_DIR):$(DEPS_DIR):$(ELIXIR_LIBS) # -------------------------------------------------------------------- # Common Test flags. diff --git a/deps/rabbit_common/src/rabbit_framing_amqp_0_8.erl b/deps/rabbit_common/src/rabbit_framing_amqp_0_8.erl index 3c276ae5c69a..c4c53ecdd93c 100644 --- a/deps/rabbit_common/src/rabbit_framing_amqp_0_8.erl +++ b/deps/rabbit_common/src/rabbit_framing_amqp_0_8.erl @@ -162,7 +162,7 @@ -type amqp_exception_code() :: ( 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 - | 4096 | 206 | 200 | 310 + | 8192 | 206 | 200 | 310 | 311 | 312 | 313 | 403 | 404 | 405 | 406 | 320 | 402 | 501 | 502 | 503 diff --git a/deps/rabbit_common/src/rabbit_framing_amqp_0_9_1.erl b/deps/rabbit_common/src/rabbit_framing_amqp_0_9_1.erl index 4627a6b64a5e..644af8d90496 100644 --- a/deps/rabbit_common/src/rabbit_framing_amqp_0_9_1.erl +++ b/deps/rabbit_common/src/rabbit_framing_amqp_0_9_1.erl @@ -139,7 +139,7 @@ | 'internal_error' ). -type amqp_exception_code() :: ( 1 | 2 | 3 | 8 - | 4096 | 206 | 200 | 311 + | 8192 | 206 | 200 | 311 | 312 | 313 | 403 | 404 | 405 | 406 | 320 | 402 | 501 | 502 | 503 | 504 diff --git a/deps/rabbitmq_amqp1_0/BUILD.bazel b/deps/rabbitmq_amqp1_0/BUILD.bazel deleted file mode 100644 index 3c5a1d767c07..000000000000 --- a/deps/rabbitmq_amqp1_0/BUILD.bazel +++ /dev/null @@ -1,65 +0,0 @@ -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "assert_suites", - "rabbitmq_app", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_amqp1_0" - -APP_DESCRIPTION = "Deprecated no-op AMQP 1.0 plugin" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", # keep - ], -) - -all_srcs(name = "all_srcs") - -alias( - name = "rabbitmq_amqp1_0", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - plt = ":deps_plt", - target = ":erlang_app", -) - -assert_suites() diff --git a/deps/rabbitmq_amqp1_0/app.bzl b/deps/rabbitmq_amqp1_0/app.bzl deleted file mode 100644 index 78f6ada247e1..000000000000 --- a/deps/rabbitmq_amqp1_0/app.bzl +++ /dev/null @@ -1,53 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = ["src/rabbitmq_amqp1_0_noop.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_amqp1_0", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "srcs", - srcs = ["src/rabbitmq_amqp1_0_noop.erl"], - ) - filegroup(name = "private_hdrs") - filegroup(name = "public_hdrs") - filegroup(name = "priv") - filegroup(name = "license_files") - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = ["src/rabbitmq_amqp1_0_noop.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_amqp1_0", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - pass diff --git a/deps/rabbitmq_amqp_client/BUILD.bazel b/deps/rabbitmq_amqp_client/BUILD.bazel deleted file mode 100644 index 796bd653e1f3..000000000000 --- a/deps/rabbitmq_amqp_client/BUILD.bazel +++ /dev/null @@ -1,91 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_amqp_client" - -APP_DESCRIPTION = "AMQP 1.0 client for RabbitMQ" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp10_client:erlang_app", - "//deps/amqp10_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -broker_for_integration_suites( -) - -TEST_DEPS = [ - "//deps/amqp10_client:erlang_app", -] - -rabbitmq_integration_suite( - name = "management_SUITE", - size = "medium", - shard_count = 2, - deps = TEST_DEPS, -) - -assert_suites() - -alias( - name = "rabbitmq_amqp_client", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) diff --git a/deps/rabbitmq_amqp_client/app.bzl b/deps/rabbitmq_amqp_client/app.bzl deleted file mode 100644 index d80a6dafe4f5..000000000000 --- a/deps/rabbitmq_amqp_client/app.bzl +++ /dev/null @@ -1,73 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = ["src/rabbitmq_amqp_address.erl", "src/rabbitmq_amqp_client.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_amqp_client", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/amqp10_common:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "srcs", - srcs = ["src/rabbitmq_amqp_address.erl", "src/rabbitmq_amqp_client.erl"], - ) - filegroup(name = "private_hdrs") - filegroup( - name = "public_hdrs", - srcs = ["include/rabbitmq_amqp_client.hrl"], - ) - filegroup(name = "priv") - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = ["src/rabbitmq_amqp_address.erl", "src/rabbitmq_amqp_client.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_amqp_client", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app"], - ) - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "management_SUITE_beam_files", - testonly = True, - srcs = ["test/management_SUITE.erl"], - outs = ["test/management_SUITE.beam"], - hdrs = ["include/rabbitmq_amqp_client.hrl"], - app_name = "rabbitmq_amqp_client", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/rabbit_common:erlang_app"], - ) diff --git a/deps/rabbitmq_amqp_client/test/management_SUITE.erl b/deps/rabbitmq_amqp_client/test/management_SUITE.erl index 8e025951a2b5..42343270d58d 100644 --- a/deps/rabbitmq_amqp_client/test/management_SUITE.erl +++ b/deps/rabbitmq_amqp_client/test/management_SUITE.erl @@ -1015,7 +1015,7 @@ session_flow_control(Config) -> ok = amqp10_client:flow_link_credit(IncomingLink, 1, never), %% Close our incoming window. - gen_statem:cast(Session, {flow_session, #'v1_0.flow'{incoming_window = {uint, 0}}}), + amqp10_client_session:flow(Session, 0, never), Request0 = amqp10_msg:new(<<>>, #'v1_0.amqp_value'{content = null}, true), MessageId = <<1>>, @@ -1031,7 +1031,7 @@ session_flow_control(Config) -> end, %% Open our incoming window - gen_statem:cast(Session, {flow_session, #'v1_0.flow'{incoming_window = {uint, 5}}}), + amqp10_client_session:flow(Session, 1, never), receive {amqp10_msg, IncomingLink, Response} -> ?assertMatch(#{correlation_id := MessageId, diff --git a/deps/rabbitmq_auth_backend_cache/BUILD.bazel b/deps/rabbitmq_auth_backend_cache/BUILD.bazel deleted file mode 100644 index 2e3fd636b44e..000000000000 --- a/deps/rabbitmq_auth_backend_cache/BUILD.bazel +++ /dev/null @@ -1,111 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_ENV = """[ - {cache_ttl, 15000}, - {cache_module, rabbit_auth_cache_ets}, - {cache_module_args, []}, - {cached_backend, rabbit_auth_backend_internal}, - {cache_refusals, false} - ]""" - -APP_NAME = "rabbitmq_auth_backend_cache" - -APP_DESCRIPTION = "RabbitMQ Authentication Backend cache" - -APP_MODULE = "rabbit_auth_backend_cache_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep rabbit - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "rabbit_auth_backend_cache_SUITE", -) - -rabbitmq_suite( - name = "rabbit_auth_cache_SUITE", - deps = [ - "//deps/rabbitmq_ct_helpers:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_auth_backend_cache", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_auth_backend_cache/Makefile b/deps/rabbitmq_auth_backend_cache/Makefile index 6a16429ed53d..917822837ebb 100644 --- a/deps/rabbitmq_auth_backend_cache/Makefile +++ b/deps/rabbitmq_auth_backend_cache/Makefile @@ -19,7 +19,7 @@ endef DEPS = rabbit_common rabbit TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers -PLT_APPS += rabbitmqctl +PLT_APPS += rabbitmq_cli DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk diff --git a/deps/rabbitmq_auth_backend_cache/app.bzl b/deps/rabbitmq_auth_backend_cache/app.bzl deleted file mode 100644 index 58d899a93b6e..000000000000 --- a/deps/rabbitmq_auth_backend_cache/app.bzl +++ /dev/null @@ -1,146 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":behaviours", ":other_beam"], - ) - erlang_bytecode( - name = "behaviours", - srcs = ["src/rabbit_auth_cache.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_backend_cache", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ClearAuthBackendCacheCommand.erl", - "src/rabbit_auth_backend_cache.erl", - "src/rabbit_auth_backend_cache_app.erl", - "src/rabbit_auth_cache_dict.erl", - "src/rabbit_auth_cache_ets.erl", - "src/rabbit_auth_cache_ets_segmented.erl", - "src/rabbit_auth_cache_ets_segmented_stateless.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_backend_cache", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_cli:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_behaviours", ":test_other_beam"], - ) - erlang_bytecode( - name = "test_behaviours", - testonly = True, - srcs = ["src/rabbit_auth_cache.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_backend_cache", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ClearAuthBackendCacheCommand.erl", - "src/rabbit_auth_backend_cache.erl", - "src/rabbit_auth_backend_cache_app.erl", - "src/rabbit_auth_cache_dict.erl", - "src/rabbit_auth_cache_ets.erl", - "src/rabbit_auth_cache_ets_segmented.erl", - "src/rabbit_auth_cache_ets_segmented_stateless.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_backend_cache", - beam = [":test_behaviours"], - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_cli:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_auth_backend_cache.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ClearAuthBackendCacheCommand.erl", - "src/rabbit_auth_backend_cache.erl", - "src/rabbit_auth_backend_cache_app.erl", - "src/rabbit_auth_cache.erl", - "src/rabbit_auth_cache_dict.erl", - "src/rabbit_auth_cache_ets.erl", - "src/rabbit_auth_cache_ets_segmented.erl", - "src/rabbit_auth_cache_ets_segmented_stateless.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbit_auth_backend_cache.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_auth_backend_cache", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_auth_backend_cache_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_auth_backend_cache_SUITE.erl"], - outs = ["test/rabbit_auth_backend_cache_SUITE.beam"], - app_name = "rabbitmq_auth_backend_cache", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_auth_cache_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_auth_cache_SUITE.erl"], - outs = ["test/rabbit_auth_cache_SUITE.beam"], - app_name = "rabbitmq_auth_backend_cache", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_auth_clear_cache_command_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_auth_clear_cache_command_SUITE.erl"], - outs = ["test/rabbit_auth_clear_cache_command_SUITE.beam"], - app_name = "rabbitmq_auth_backend_cache", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_auth_backend_http/BUILD.bazel b/deps/rabbitmq_auth_backend_http/BUILD.bazel deleted file mode 100644 index f7ed1ea1c7b4..000000000000 --- a/deps/rabbitmq_auth_backend_http/BUILD.bazel +++ /dev/null @@ -1,130 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_ENV = """[ - {http_method, get}, - {request_timeout, 15000}, - {connection_timeout, 15000}, - {user_path, "http://localhost:8000/auth/user"}, - {vhost_path, "http://localhost:8000/auth/vhost"}, - {resource_path, "http://localhost:8000/auth/resource"}, - {topic_path, "http://localhost:8000/auth/topic"} - ]""" - -APP_NAME = "rabbitmq_auth_backend_http" - -APP_DESCRIPTION = "RabbitMQ HTTP Authentication Backend" - -APP_MODULE = "rabbit_auth_backend_http_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app crypto -# gazelle:erlang_app_extra_app inets -# gazelle:erlang_app_extra_app ssl -# gazelle:erlang_app_extra_app public_key -# gazelle:erlang_app_dep rabbit - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - "inets", - "ssl", - "public_key", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [":test_auth_http_mock_beam"], - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "auth_SUITE", - size = "small", - additional_beam = [ - "test/auth_http_mock.beam", - ], - deps = [ - "@cowboy//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_suite( - name = "unit_SUITE", - size = "small", -) - -assert_suites() - -alias( - name = "rabbitmq_auth_backend_http", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_auth_backend_http/app.bzl b/deps/rabbitmq_auth_backend_http/app.bzl deleted file mode 100644 index 0d5bb9f2cf83..000000000000 --- a/deps/rabbitmq_auth_backend_http/app.bzl +++ /dev/null @@ -1,111 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_auth_backend_http.erl", - "src/rabbit_auth_backend_http_app.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_backend_http", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_auth_backend_http.erl", - "src/rabbit_auth_backend_http_app.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_backend_http", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_auth_backend_http.schema"], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_auth_backend_http.erl", - "src/rabbit_auth_backend_http_app.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "auth_SUITE_beam_files", - testonly = True, - srcs = ["test/auth_SUITE.erl"], - outs = ["test/auth_SUITE.beam"], - app_name = "rabbitmq_auth_backend_http", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_auth_backend_http", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_auth_http_mock_beam", - testonly = True, - srcs = ["test/auth_http_mock.erl"], - outs = ["test/auth_http_mock.beam"], - app_name = "rabbitmq_auth_backend_http", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - app_name = "rabbitmq_auth_backend_http", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot/pom.xml b/deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot/pom.xml index fdd0a68da089..f139af6f5d8b 100644 --- a/deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot/pom.xml +++ b/deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot/pom.xml @@ -35,7 +35,7 @@ 17 17 - 5.12.0 + 5.12.1 com.rabbitmq.examples diff --git a/deps/rabbitmq_auth_backend_ldap/BUILD.bazel b/deps/rabbitmq_auth_backend_ldap/BUILD.bazel deleted file mode 100644 index 8c95304f1282..000000000000 --- a/deps/rabbitmq_auth_backend_ldap/BUILD.bazel +++ /dev/null @@ -1,144 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_ENV = """[ - {servers, undefined}, - {user_bind_pattern, none}, - {user_dn_pattern, "${username}"}, - {dn_lookup_attribute, none}, - {dn_lookup_base, none}, - {group_lookup_base, none}, - {dn_lookup_bind, as_user}, - {other_bind, as_user}, - {anon_auth, false}, - {vhost_access_query, {constant, true}}, - {resource_access_query, {constant, true}}, - {topic_access_query, {constant, true}}, - {tag_queries, [{administrator, {constant, false}}]}, - {use_ssl, false}, - {use_starttls, false}, - {ssl_options, []}, - {port, 389}, - {timeout, infinity}, - {log, false}, - {pool_size, 64}, - {idle_timeout, 300000} - ]""" - -APP_NAME = "rabbitmq_auth_backend_ldap" - -APP_DESCRIPTION = "RabbitMQ LDAP Authentication Backend" - -APP_MODULE = "rabbit_auth_backend_ldap_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app eldap -# gazelle:erlang_app_extra_app public_key - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = [ - "eldap", - "public_key", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [":test_rabbit_ldap_seed_beam"], - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "system_SUITE", - size = "medium", - additional_beam = [ - "test/rabbit_ldap_seed.beam", - ], - data = [ - "example/global.ldif", - "example/memberof_init.ldif", - "example/refint_1.ldif", - "example/refint_2.ldif", - ], - tags = [ - "ldap", - ], -) - -rabbitmq_suite( - name = "unit_SUITE", - size = "small", -) - -assert_suites() - -alias( - name = "rabbitmq_auth_backend_ldap", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_auth_backend_ldap/app.bzl b/deps/rabbitmq_auth_backend_ldap/app.bzl deleted file mode 100644 index 8c5e95d71732..000000000000 --- a/deps/rabbitmq_auth_backend_ldap/app.bzl +++ /dev/null @@ -1,117 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_auth_backend_ldap.erl", - "src/rabbit_auth_backend_ldap_app.erl", - "src/rabbit_auth_backend_ldap_util.erl", - "src/rabbit_log_ldap.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_backend_ldap", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_auth_backend_ldap.erl", - "src/rabbit_auth_backend_ldap_app.erl", - "src/rabbit_auth_backend_ldap_util.erl", - "src/rabbit_log_ldap.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_backend_ldap", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_auth_backend_ldap.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_auth_backend_ldap.erl", - "src/rabbit_auth_backend_ldap_app.erl", - "src/rabbit_auth_backend_ldap_util.erl", - "src/rabbit_log_ldap.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/logging.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_auth_backend_ldap", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - app_name = "rabbitmq_auth_backend_ldap", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "test_rabbit_ldap_seed_beam", - testonly = True, - srcs = ["test/rabbit_ldap_seed.erl"], - outs = ["test/rabbit_ldap_seed.beam"], - app_name = "rabbitmq_auth_backend_ldap", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - app_name = "rabbitmq_auth_backend_ldap", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_auth_backend_oauth2/BUILD.bazel b/deps/rabbitmq_auth_backend_oauth2/BUILD.bazel deleted file mode 100644 index 436f2cc75ea4..000000000000 --- a/deps/rabbitmq_auth_backend_oauth2/BUILD.bazel +++ /dev/null @@ -1,191 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app inets -# gazelle:erlang_app_extra_app public_key - -# gazelle:erlang_app_dep rabbit -# gazelle:erlang_app_dep_exclude rabbit_common - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = "OAuth 2 and JWT-based AuthN and AuthZ backend", - app_name = "rabbitmq_auth_backend_oauth2", - beam_files = [":beam_files"], - extra_apps = [ - "inets", - "public_key", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/oauth2_client:erlang_app", - "//deps/rabbit:erlang_app", - "@base64url//:erlang_app", - "@cowlib//:erlang_app", - "@cuttlefish//:erlang_app", - "@jose//:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", - deps = ["//deps/rabbitmq_cli:erlang_app"], # keep -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [ - ":test_jwks_http_app_beam", - ":test_jwks_http_handler_beam", - ":test_openid_http_handler_beam", - ":test_jwks_http_sup_beam", - ":test_rabbit_auth_backend_oauth2_test_util_beam", - ":test_oauth2_http_mock_beam", - ], - target = ":test_erlang_app", -) - -broker_for_integration_suites( - extra_plugins = [ - "//deps/rabbitmq_web_mqtt:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "add_uaa_key_command_SUITE", - size = "small", -) - -rabbitmq_integration_suite( - name = "add_signing_key_command_SUITE", - size = "small", -) - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "rabbit_oauth2_provider_SUITE", - additional_beam = [ - "test/oauth2_http_mock.beam", - ], - runtime_deps = [ - "@cowboy//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "rabbit_oauth2_resource_server_SUITE", -) - -rabbitmq_integration_suite( - name = "jwks_SUITE", - additional_beam = [ - "test/rabbit_auth_backend_oauth2_test_util.beam", - "test/jwks_http_app.beam", - "test/jwks_http_handler.beam", - "test/openid_http_handler.beam", - "test/jwks_http_sup.beam", - ], - deps = [ - "@cowboy//:erlang_app", - ], -) - -rabbitmq_suite( - name = "scope_SUITE", - size = "medium", - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_oauth2_schema_SUITE", - size = "medium", - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "system_SUITE", - size = "medium", - additional_beam = [ - "test/rabbit_auth_backend_oauth2_test_util.beam", - ], - runtime_deps = [ - "//deps/oauth2_client:erlang_app", - "//deps/rabbitmq_amqp_client:erlang_app", - "@emqtt//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "unit_SUITE", - size = "medium", - additional_beam = [ - "test/rabbit_auth_backend_oauth2_test_util.beam", - ], -) - -rabbitmq_suite( - name = "wildcard_match_SUITE", - size = "small", -) - -assert_suites() - -alias( - name = "rabbitmq_auth_backend_oauth2", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_auth_backend_oauth2/Makefile b/deps/rabbitmq_auth_backend_oauth2/Makefile index ce2bdbd048ac..f11f265f1161 100644 --- a/deps/rabbitmq_auth_backend_oauth2/Makefile +++ b/deps/rabbitmq_auth_backend_oauth2/Makefile @@ -10,7 +10,7 @@ BUILD_DEPS = rabbit_common rabbitmq_cli DEPS = rabbit cowlib jose base64url oauth2_client TEST_DEPS = cowboy rabbitmq_web_dispatch rabbitmq_ct_helpers rabbitmq_ct_client_helpers amqp_client rabbitmq_web_mqtt emqtt rabbitmq_amqp_client -PLT_APPS += rabbitmqctl +PLT_APPS += rabbitmq_cli DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk @@ -19,5 +19,8 @@ dep_base64url = hex 1.0.1 dep_emqtt = git https://github.com/emqx/emqtt.git 1.11.0 +# Required to properly autopatch jose. +ELIXIR = system + include ../../rabbitmq-components.mk include ../../erlang.mk diff --git a/deps/rabbitmq_auth_backend_oauth2/app.bzl b/deps/rabbitmq_auth_backend_oauth2/app.bzl deleted file mode 100644 index a503e4b3544f..000000000000 --- a/deps/rabbitmq_auth_backend_oauth2/app.bzl +++ /dev/null @@ -1,276 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddSigningKeyCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddUaaKeyCommand.erl", - "src/rabbit_auth_backend_oauth2.erl", - "src/rabbit_auth_backend_oauth2_app.erl", - "src/rabbit_oauth2_provider.erl", - "src/rabbit_oauth2_rar.erl", - "src/rabbit_oauth2_resource_server.erl", - "src/rabbit_oauth2_schema.erl", - "src/rabbit_oauth2_scope.erl", - "src/uaa_jwks.erl", - "src/uaa_jwt.erl", - "src/uaa_jwt_jwk.erl", - "src/uaa_jwt_jwt.erl", - "src/wildcard.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_backend_oauth2", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/oauth2_client:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "@jose//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddSigningKeyCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddUaaKeyCommand.erl", - "src/rabbit_auth_backend_oauth2.erl", - "src/rabbit_auth_backend_oauth2_app.erl", - "src/rabbit_oauth2_provider.erl", - "src/rabbit_oauth2_rar.erl", - "src/rabbit_oauth2_resource_server.erl", - "src/rabbit_oauth2_schema.erl", - "src/rabbit_oauth2_scope.erl", - "src/uaa_jwks.erl", - "src/uaa_jwt.erl", - "src/uaa_jwt_jwk.erl", - "src/uaa_jwt_jwt.erl", - "src/wildcard.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_backend_oauth2", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/oauth2_client:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "@jose//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_auth_backend_oauth2.schema"], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/oauth2.hrl"], - ) - - filegroup( - name = "srcs", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddSigningKeyCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddUaaKeyCommand.erl", - "src/rabbit_auth_backend_oauth2.erl", - "src/rabbit_auth_backend_oauth2_app.erl", - "src/rabbit_oauth2_provider.erl", - "src/rabbit_oauth2_rar.erl", - "src/rabbit_oauth2_resource_server.erl", - "src/rabbit_oauth2_schema.erl", - "src/rabbit_oauth2_scope.erl", - "src/uaa_jwks.erl", - "src/uaa_jwt.erl", - "src/uaa_jwt_jwk.erl", - "src/uaa_jwt_jwt.erl", - "src/wildcard.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "test_oauth2_http_mock_beam", - testonly = True, - srcs = ["test/oauth2_http_mock.erl"], - outs = ["test/oauth2_http_mock.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "add_uaa_key_command_SUITE_beam_files", - testonly = True, - srcs = ["test/add_uaa_key_command_SUITE.erl"], - outs = ["test/add_uaa_key_command_SUITE.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "jwks_SUITE_beam_files", - testonly = True, - srcs = ["test/jwks_SUITE.erl"], - outs = ["test/jwks_SUITE.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "scope_SUITE_beam_files", - testonly = True, - srcs = ["test/scope_SUITE.erl"], - outs = ["test/scope_SUITE.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_oauth2_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_oauth2_schema_SUITE.erl"], - outs = ["test/rabbit_oauth2_schema_SUITE.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "test_jwks_http_app_beam", - testonly = True, - srcs = ["test/jwks_http_app.erl"], - outs = ["test/jwks_http_app.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_jwks_http_handler_beam", - testonly = True, - srcs = ["test/jwks_http_handler.erl"], - outs = ["test/jwks_http_handler.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - deps = ["@cowboy//:erlang_app"], - ) - erlang_bytecode( - name = "test_openid_http_handler_beam", - testonly = True, - srcs = ["test/openid_http_handler.erl"], - outs = ["test/openid_http_handler.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - deps = ["@cowboy//:erlang_app"], - ) - erlang_bytecode( - name = "test_jwks_http_sup_beam", - testonly = True, - srcs = ["test/jwks_http_sup.erl"], - outs = ["test/jwks_http_sup.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbit_auth_backend_oauth2_test_util_beam", - testonly = True, - srcs = ["test/rabbit_auth_backend_oauth2_test_util.erl"], - outs = ["test/rabbit_auth_backend_oauth2_test_util.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - hdrs = ["include/oauth2.hrl"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/oauth2_client:erlang_app", - "//deps/rabbit_common:erlang_app", - ], - ) - erlang_bytecode( - name = "wildcard_match_SUITE_beam_files", - testonly = True, - srcs = ["test/wildcard_match_SUITE.erl"], - outs = ["test/wildcard_match_SUITE.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_oauth2_provider_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_oauth2_provider_SUITE.erl"], - outs = ["test/rabbit_oauth2_provider_SUITE.beam"], - hdrs = ["include/oauth2.hrl"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/oauth2_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_oauth2_resource_server_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_oauth2_resource_server_SUITE.erl"], - outs = ["test/rabbit_oauth2_resource_server_SUITE.beam"], - hdrs = ["include/oauth2.hrl"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/oauth2_client:erlang_app"], - ) - erlang_bytecode( - name = "add_signing_key_command_SUITE_beam_files", - testonly = True, - srcs = ["test/add_signing_key_command_SUITE.erl"], - outs = ["test/add_signing_key_command_SUITE.beam"], - app_name = "rabbitmq_auth_backend_oauth2", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_auth_mechanism_ssl/BUILD.bazel b/deps/rabbitmq_auth_mechanism_ssl/BUILD.bazel deleted file mode 100644 index 6127cccd64ec..000000000000 --- a/deps/rabbitmq_auth_mechanism_ssl/BUILD.bazel +++ /dev/null @@ -1,113 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_auth_mechanism_ssl" - -APP_DESCRIPTION = "RabbitMQ SSL authentication (SASL EXTERNAL)" - -APP_MODULE = "rabbit_auth_mechanism_ssl_app" - -APP_ENV = """[ - {name_from, distinguished_name} - ]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -# gazelle:erlang_app_extra_app public_key - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = ["public_key"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -rabbitmq_home( - name = "broker-for-tests-home", - testonly = True, - plugins = [ - ":test_erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-tests-run", - testonly = True, - home = ":broker-for-tests-home", -) - -rabbitmq_integration_suite( - name = "system_SUITE", - shard_count = 1, - runtime_deps = [ - "//deps/amqp10_client:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_auth_mechanism_ssl", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -test_suite_beam_files(name = "test_suite_beam_files") - -eunit( - name = "eunit", - target = ":test_erlang_app", -) diff --git a/deps/rabbitmq_auth_mechanism_ssl/app.bzl b/deps/rabbitmq_auth_mechanism_ssl/app.bzl deleted file mode 100644 index 335857be922e..000000000000 --- a/deps/rabbitmq_auth_mechanism_ssl/app.bzl +++ /dev/null @@ -1,85 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_auth_mechanism_ssl.erl", - "src/rabbit_auth_mechanism_ssl_app.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_mechanism_ssl", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_auth_mechanism_ssl.erl", - "src/rabbit_auth_mechanism_ssl_app.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "public_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_auth_mechanism_ssl.erl", - "src/rabbit_auth_mechanism_ssl_app.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_auth_mechanism_ssl", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - app_name = "rabbitmq_auth_mechanism_ssl", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_aws/BUILD.bazel b/deps/rabbitmq_aws/BUILD.bazel deleted file mode 100644 index 7324f8a23a39..000000000000 --- a/deps/rabbitmq_aws/BUILD.bazel +++ /dev/null @@ -1,119 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_aws" - -APP_DESCRIPTION = "A minimalistic AWS API interface used by rabbitmq-autocluster (3.6.x) and other RabbitMQ plugins" - -APP_MODULE = "rabbitmq_aws_app" - -APP_REGISTERED = [ - "rabbitmq_aws", -] - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app crypto -# gazelle:erlang_app_extra_app inets -# gazelle:erlang_app_extra_app public_key -# gazelle:erlang_app_extra_app ssl -# gazelle:erlang_app_extra_app xmerl -# gazelle:erlang_app_dep_exclude rabbit_common - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_module = APP_MODULE, - app_name = APP_NAME, - app_registered = APP_REGISTERED, - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - "inets", - "ssl", - "xmerl", - "public_key", - ], - license_files = [":license_files"], - priv = [":priv"], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbit_common:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", - deps = [ - "//deps/rabbit_common:erlang_app", # keep - ], -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [ - ":test_rabbitmq_aws_all_tests_beam", - ":test_rabbitmq_aws_app_tests_beam", - ":test_rabbitmq_aws_config_tests_beam", - ":test_rabbitmq_aws_json_tests_beam", - ":test_rabbitmq_aws_sign_tests_beam", - ":test_rabbitmq_aws_sup_tests_beam", - ":test_rabbitmq_aws_tests_beam", - ":test_rabbitmq_aws_urilib_tests_beam", - ":test_rabbitmq_aws_xml_tests_beam", - ], - data = [ - "test/test_aws_config.ini", - "test/test_aws_credentials.ini", - ], - target = ":test_erlang_app", - deps = [ - "//deps/rabbit_common:erlang_app", # keep - "@meck//:erlang_app", # keep - "@thoas//:erlang_app", # keep - ], -) - -assert_suites() - -alias( - name = "rabbitmq_aws", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_aws/Makefile b/deps/rabbitmq_aws/Makefile index 3647e0dfd5c1..7ba1f949b3dd 100644 --- a/deps/rabbitmq_aws/Makefile +++ b/deps/rabbitmq_aws/Makefile @@ -1,6 +1,5 @@ PROJECT = rabbitmq_aws PROJECT_DESCRIPTION = A minimalistic AWS API interface used by rabbitmq-autocluster (3.6.x) and other RabbitMQ plugins -PROJECT_MOD = rabbitmq_aws_app PROJECT_REGISTERED = rabbitmq_aws define PROJECT_ENV diff --git a/deps/rabbitmq_aws/app.bzl b/deps/rabbitmq_aws/app.bzl deleted file mode 100644 index 07ea8396bad2..000000000000 --- a/deps/rabbitmq_aws/app.bzl +++ /dev/null @@ -1,172 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbitmq_aws.erl", - "src/rabbitmq_aws_app.erl", - "src/rabbitmq_aws_config.erl", - "src/rabbitmq_aws_json.erl", - "src/rabbitmq_aws_sign.erl", - "src/rabbitmq_aws_sup.erl", - "src/rabbitmq_aws_urilib.erl", - "src/rabbitmq_aws_xml.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_aws", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbitmq_aws.erl", - "src/rabbitmq_aws_app.erl", - "src/rabbitmq_aws_config.erl", - "src/rabbitmq_aws_json.erl", - "src/rabbitmq_aws_sign.erl", - "src/rabbitmq_aws_sup.erl", - "src/rabbitmq_aws_urilib.erl", - "src/rabbitmq_aws_xml.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_aws", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_aws.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/rabbitmq_aws.erl", - "src/rabbitmq_aws_app.erl", - "src/rabbitmq_aws_config.erl", - "src/rabbitmq_aws_json.erl", - "src/rabbitmq_aws_sign.erl", - "src/rabbitmq_aws_sup.erl", - "src/rabbitmq_aws_urilib.erl", - "src/rabbitmq_aws_xml.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbitmq_aws.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-erlcloud", - "LICENSE-httpc_aws", - "LICENSE-rabbitmq_aws", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "test_rabbitmq_aws_all_tests_beam", - testonly = True, - srcs = ["test/rabbitmq_aws_all_tests.erl"], - outs = ["test/rabbitmq_aws_all_tests.beam"], - app_name = "rabbitmq_aws", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbitmq_aws_app_tests_beam", - testonly = True, - srcs = ["test/rabbitmq_aws_app_tests.erl"], - outs = ["test/rabbitmq_aws_app_tests.beam"], - app_name = "rabbitmq_aws", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbitmq_aws_config_tests_beam", - testonly = True, - srcs = ["test/rabbitmq_aws_config_tests.erl"], - outs = ["test/rabbitmq_aws_config_tests.beam"], - hdrs = ["include/rabbitmq_aws.hrl"], - app_name = "rabbitmq_aws", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbitmq_aws_json_tests_beam", - testonly = True, - srcs = ["test/rabbitmq_aws_json_tests.erl"], - outs = ["test/rabbitmq_aws_json_tests.beam"], - app_name = "rabbitmq_aws", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbitmq_aws_sign_tests_beam", - testonly = True, - srcs = ["test/rabbitmq_aws_sign_tests.erl"], - outs = ["test/rabbitmq_aws_sign_tests.beam"], - hdrs = ["include/rabbitmq_aws.hrl"], - app_name = "rabbitmq_aws", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbitmq_aws_sup_tests_beam", - testonly = True, - srcs = ["test/rabbitmq_aws_sup_tests.erl"], - outs = ["test/rabbitmq_aws_sup_tests.beam"], - app_name = "rabbitmq_aws", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbitmq_aws_tests_beam", - testonly = True, - srcs = ["test/rabbitmq_aws_tests.erl"], - outs = ["test/rabbitmq_aws_tests.beam"], - hdrs = ["include/rabbitmq_aws.hrl"], - app_name = "rabbitmq_aws", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbitmq_aws_urilib_tests_beam", - testonly = True, - srcs = ["test/rabbitmq_aws_urilib_tests.erl"], - outs = ["test/rabbitmq_aws_urilib_tests.beam"], - hdrs = ["include/rabbitmq_aws.hrl"], - app_name = "rabbitmq_aws", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbitmq_aws_xml_tests_beam", - testonly = True, - srcs = ["test/rabbitmq_aws_xml_tests.erl"], - outs = ["test/rabbitmq_aws_xml_tests.beam"], - app_name = "rabbitmq_aws", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_cli/BUILD.bazel b/deps/rabbitmq_cli/BUILD.bazel deleted file mode 100644 index 69ac9bffdf1c..000000000000 --- a/deps/rabbitmq_cli/BUILD.bazel +++ /dev/null @@ -1,417 +0,0 @@ -load("@rules_elixir//:ex_unit_test.bzl", "ex_unit_test") -load("@rules_elixir//private:elixir_bytecode.bzl", "elixir_bytecode") -load( - "@rules_elixir//private:elixir_ebin_dir.bzl", - "elixir_ebin_dir", -) -load( - "@rules_elixir//private:erlang_app_filter_module_conflicts.bzl", - "erlang_app_filter_module_conflicts", -) -load("@rules_erlang//:app_file2.bzl", "app_file") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("@rules_erlang//:erlang_app_info.bzl", "erlang_app_info") -load("@rules_erlang//:escript.bzl", "escript_archive") -load( - "//:rabbitmq.bzl", - "APP_VERSION", - "RABBITMQ_DIALYZER_OPTS", - "STARTS_BACKGROUND_BROKER_TAG", - "without", -) -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//bazel/elixir:elixir_escript_main.bzl", - "elixir_escript_main", -) -load( - "//bazel/elixir:mix_archive_build.bzl", - "mix_archive_build", -) -load( - "//bazel/elixir:mix_archive_extract.bzl", - "mix_archive_extract", -) - -mix_archive_build( - name = "csv_ez", - srcs = ["@csv//:sources"], - out = "csv.ez", - archives = ["@hex//:archive"], -) - -mix_archive_extract( - name = "csv", - srcs = ["@csv//:sources"], - app_name = "csv", - archive = ":csv_ez", - deps = [ - "@rules_elixir//elixir", - ], -) - -mix_archive_build( - name = "json_ez", - srcs = ["@json//:sources"], - out = "json.ez", - archives = ["@hex//:archive"], -) - -mix_archive_extract( - name = "json", - srcs = ["@json//:sources"], - app_name = "json", - archive = ":json_ez", - deps = [ - "@rules_elixir//elixir", - "@rules_elixir//elixir:logger", - ], -) - -mix_archive_build( - name = "amqp_ez", - testonly = True, - srcs = ["@amqp//:sources"], - out = "amqp.ez", - archives = ["@hex//:archive"], - setup = """\ -export DEPS_DIR="$ERL_LIBS" -""", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -mix_archive_build( - name = "temp_ez", - testonly = True, - srcs = ["@temp//:sources"], - out = "temp.ez", - archives = ["@hex//:archive"], -) - -mix_archive_build( - name = "x509_ez", - testonly = True, - srcs = ["@x509//:sources"], - out = "x509.ez", - archives = ["@hex//:archive"], -) - -APP_NAME = "rabbitmqctl" - -APP_ENV = """[{scopes,[{'rabbitmq-plugins',plugins}, - {rabbitmqctl,ctl}, - {'rabbitmq-diagnostics',diagnostics}, - {'rabbitmq-queues',queues}, - {'rabbitmq-streams',streams}, - {'rabbitmq-upgrade',upgrade}, - {'vmware-rabbitmq',vmware}]}]""" - -SRCS = glob([ - "lib/**/*.ex", -]) - -DEPS = [ - ":csv", - ":json", - "//deps/rabbit_common:erlang_app", - "@observer_cli//:erlang_app", - "@stdout_formatter//:erlang_app", -] - -elixir_bytecode( - name = "beam_files", - srcs = SRCS, - dest = "beam_files", - elixirc_opts = [ - "-e", - ":application.ensure_all_started(:mix)", - ], - env = { - "HOME": '"$(mktemp -d)"', - "MIX_ENV": "prod", - "DEPS_DIR": "$ERL_LIBS", - "ERL_COMPILER_OPTIONS": "deterministic", - "LANG": "en_US.UTF-8", - "LC_ALL": "en_US.UTF-8", - }, - setup = """\ -mkdir -p _build/$MIX_ENV/lib/csv -cp -RL $ERL_LIBS/csv/ebin _build/$MIX_ENV/lib/csv -""", - deps = DEPS, -) - -app_file( - name = "app_file", - out = "%s.app" % APP_NAME, - app_description = APP_NAME, - app_env = APP_ENV, - app_name = APP_NAME, - app_version = APP_VERSION, - modules = [":beam_files"], - # mix escripts do not include dependencies in the applications key - deps = [ - "@rules_elixir//elixir", - "@rules_elixir//elixir:logger", - ], -) - -elixir_ebin_dir( - name = "ebin", - app_file = ":app_file", - beam_files_dir = ":beam_files", - dest = "ebin", -) - -erlang_app_filter_module_conflicts( - name = "elixir_without_rabbitmqctl_overlap", - src = "@rules_elixir//elixir", - dest = "unconsolidated", - without = [":ebin"], -) - -erlang_app_info( - name = "erlang_app", - srcs = SRCS, - hdrs = [], - app_name = APP_NAME, - beam = [":ebin"], - license_files = glob(["LICENSE*"]), - priv = [], - visibility = ["//visibility:public"], - deps = [ - ":elixir_without_rabbitmqctl_overlap", - "@rules_elixir//elixir:logger", - ] + DEPS, -) - -elixir_escript_main( - name = "escript_main", - out = "rabbitmqctl_escript.beam", - app = ":erlang_app", - env = { - "HOME": '"$(mktemp -d)"', - "LANG": "en_US.UTF-8", - "LC_ALL": "en_US.UTF-8", - }, - main_module = "RabbitMQCtl", - mix_config = "config/config.exs", -) - -# Note: All the various rabbitmq-* scripts are just copies of rabbitmqctl -escript_archive( - name = "rabbitmqctl", - app = ":erlang_app", - beam = [":escript_main"], - drop_hrl = True, - flat = True, - headers = [ - "shebang", - '{emu_args, "-escript main rabbitmqctl_escript -hidden"}', - ], - visibility = ["//visibility:public"], -) - -_TEST_MODULES = [ - "RabbitMQ.CLI.Ctl.Commands.DuckCommand", - "RabbitMQ.CLI.Ctl.Commands.GrayGooseCommand", - "RabbitMQ.CLI.Ctl.Commands.UglyDucklingCommand", - "RabbitMQ.CLI.Plugins.Commands.StorkCommand", - "RabbitMQ.CLI.Plugins.Commands.HeronCommand", - "RabbitMQ.CLI.Custom.Commands.CrowCommand", - "RabbitMQ.CLI.Custom.Commands.RavenCommand", - "RabbitMQ.CLI.Seagull.Commands.SeagullCommand", - "RabbitMQ.CLI.Seagull.Commands.PacificGullCommand", - "RabbitMQ.CLI.Seagull.Commands.HerringGullCommand", - "RabbitMQ.CLI.Seagull.Commands.HermannGullCommand", - "RabbitMQ.CLI.Wolf.Commands.CanisLupusCommand", - "RabbitMQ.CLI.Wolf.Commands.CanisLatransCommand", - "RabbitMQ.CLI.Wolf.Commands.CanisAureusCommand", -] - -app_file( - name = "test_app_file", - testonly = True, - out = "test/%s.app" % APP_NAME, - app_description = APP_NAME, - app_env = APP_ENV, - app_name = APP_NAME, - app_version = APP_VERSION, - modules = [":beam_files"], - synthetic_module_names = [ - "Elixir." + name - for name in _TEST_MODULES - ], - # mix escripts do not include dependencies in the applications key - deps = [ - "@rules_elixir//elixir", - "@rules_elixir//elixir:logger", - ], -) - -elixir_ebin_dir( - name = "test_ebin", - testonly = True, - app_file = ":test_app_file", - beam_files_dir = ":beam_files", - dest = "test_ebin", -) - -erlang_app_info( - name = "test_erlang_app", - testonly = True, - srcs = SRCS, - hdrs = [], - app_name = APP_NAME, - beam = [":test_ebin"], - license_files = glob(["LICENSE*"]), - priv = [], - visibility = ["//visibility:public"], - deps = [ - ":elixir_without_rabbitmqctl_overlap", - "@rules_elixir//elixir:logger", - ] + DEPS, -) - -rabbitmq_home( - name = "broker-for-cli-tests-home", - testonly = True, - plugins = [ - ":test_erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbitmq_federation:erlang_app", - "//deps/rabbitmq_stomp:erlang_app", - "//deps/rabbitmq_stream_management:erlang_app", - "//deps/amqp_client:erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-cli-tests-run", - testonly = True, - home = ":broker-for-cli-tests-home", - visibility = ["//visibility:public"], -) - -plt( - name = "deps_plt", - apps = [ - "kernel", - "stdlib", - "erts", - "mnesia", - "public_key", - "runtime_tools", - ], - ignore_warnings = True, - libs = ["@rules_elixir//elixir:elixir"], - deps = [ - ":csv", - ":json", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@rules_elixir//elixir", - "@rules_elixir//elixir:logger", - ], -) - -dialyze( - dialyzer_opts = without( - # Some Elixir.CSV, Elixir.JSON and Elixir.Logger functions are unknown - "-Wunknown", - RABBITMQ_DIALYZER_OPTS, - ), - libs = ["@rules_elixir//elixir:elixir"], - plt = ":deps_plt", -) - -ex_unit_test( - name = "tests", - srcs = [ - "test/test_helper.exs", - ] + glob([ - "test/**/*_test.exs", - ]), - data = glob([ - "test/fixtures/**/*", - ]), - env = { - "MIX_ENV": "prod", - "DEPS_DIR": "$ERL_LIBS", - "ERL_COMPILER_OPTIONS": "deterministic", - "LANG": "en_US.UTF-8", - "LC_ALL": "en_US.UTF-8", - }, - ez_deps = [ - ":amqp.ez", - ":temp.ez", - ":x509.ez", - ], - setup = """\ -# pretend that mix build the deps, as some modules add mix code paths in -# their module definitions -for app in amqp csv json temp x509; do - mkdir -p _build/$MIX_ENV/lib/$app - ln -s $ERL_LIBS/$app/ebin _build/$MIX_ENV/lib/$app/ebin -done - -# we need a running broker with certain plugins for this to pass -export TEST_TMPDIR=${TEST_UNDECLARED_OUTPUTS_DIR} -trap 'catch $?' EXIT -catch() { - pid=$(cat ${TEST_TMPDIR}/*/*.pid) - echo "stopping broker (pid ${pid})" - kill -TERM "${pid}" -} -$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_cli/rabbitmq-for-cli-tests-run \\ - start-background-broker\ -""", - tags = [STARTS_BACKGROUND_BROKER_TAG], - tools = [ - ":rabbitmq-for-cli-tests-run", - ], - deps = [ - ":test_erlang_app", - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@observer_cli//:erlang_app", - "@stdout_formatter//:erlang_app", - ], -) - -test_suite( - name = "rabbitmqctl_tests", - tests = ["tests"], -) - -elixir_bytecode( - name = "compile_warnings_as_errors", - srcs = SRCS, - dest = "beam_files_werror", - elixirc_opts = [ - "--warnings-as-errors", - "-e", - ":application.ensure_all_started(:mix)", - ], - env = { - "HOME": '"$(mktemp -d)"', - "MIX_ENV": "prod", - "DEPS_DIR": "$ERL_LIBS", - "ERL_COMPILER_OPTIONS": "deterministic", - "LANG": "en_US.UTF-8", - "LC_ALL": "en_US.UTF-8", - }, - setup = """\ -mkdir -p _build/$MIX_ENV/lib/csv -cp -RL $ERL_LIBS/csv/ebin _build/$MIX_ENV/lib/csv -""", - tags = ["manual"], - deps = DEPS + [ - "//deps/rabbit:erlang_app", - ], -) diff --git a/deps/rabbitmq_cli/Makefile b/deps/rabbitmq_cli/Makefile index 9788f71e71aa..ac74acc6880d 100644 --- a/deps/rabbitmq_cli/Makefile +++ b/deps/rabbitmq_cli/Makefile @@ -1,7 +1,21 @@ -PROJECT = rabbitmq_cli +PROJECT = rabbitmqctl + +define PROJECT_ENV +[{scopes, #{ + rabbitmqctl => ctl, + 'rabbitmq-diagnostics' => diagnostics, + 'rabbitmq-plugins' => plugins, + 'rabbitmq-queues' => queues, + 'rabbitmq-streams' => streams, + 'rabbitmq-upgrade' => upgrade, + 'vmware-rabbitmq' => vmware +}}] +endef BUILD_DEPS = rabbit_common DEPS = csv json stdout_formatter +LOCAL_DEPS = elixir + TEST_DEPS = amqp amqp_client temp x509 rabbit dep_amqp = hex 3.3.0 @@ -16,6 +30,11 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-build.mk VERBOSE_TEST ?= true MAX_CASES ?= 1 +# Force enable Elixir in this project since +# this is an Elixir application. +ELIXIR = system + +# We are still using Mix for testing. MIX_TEST_OPTS ?= "" MIX_TEST = ERL_COMPILER_OPTIONS=deterministic MIX_ENV=test mix do compile --warnings-as-errors, test --max-cases=$(MAX_CASES) --warnings-as-errors @@ -27,34 +46,37 @@ ifeq ($(VERBOSE_TEST),true) MIX_TEST := $(MIX_TEST) --trace endif +EUNIT = disable + export MAKE +ESCRIPT_NAME = Elixir.RabbitMQCtl +ESCRIPT_FILE = escript/rabbitmqctl + +.DEFAULT_GOAL = $(ESCRIPT_FILE) + +escript:: + $(verbose) mkdir -p escript/ + include ../../rabbitmq-components.mk include ../../erlang.mk -# rabbitmq-mix.mk is generated during the creation of the RabbitMQ -# source archive. It sets some environment variables to allow -# rabbitmq_cli to build offline, using the bundled sources only. --include rabbitmq-mix.mk +$(ESCRIPT_FILE): $(EX_FILES) + $(verbose) $(MAKE) escript + +ESCRIPT_EMU_ARGS += -hidden + +escript-zip:: + $(verbose) $(ESCRIPT_ZIP) $(ESCRIPT_ZIP_FILE) $(ELIXIR_LIBS)/* -ACTUAL_ESCRIPTS = escript/rabbitmqctl LINKED_ESCRIPTS = escript/rabbitmq-plugins \ - escript/rabbitmq-diagnostics \ - escript/rabbitmq-queues \ - escript/rabbitmq-streams \ - escript/vmware-rabbitmq \ - escript/rabbitmq-upgrade -ESCRIPTS = $(ACTUAL_ESCRIPTS) $(LINKED_ESCRIPTS) - -# Record the build and link dependency: the target files are linked to -# their first dependency. -rabbitmq-plugins = escript/rabbitmqctl -rabbitmq-diagnostics = escript/rabbitmqctl -rabbitmq-queues = escript/rabbitmqctl -rabbitmq-streams = escript/rabbitmqctl -rabbitmq-upgrade = escript/rabbitmqctl -vmware-rabbitmq = escript/rabbitmqctl -escript/rabbitmq-plugins escript/rabbitmq-diagnostics escript/rabbitmq-queues escript/rabbitmq-streams escript/rabbitmq-upgrade escript/vmware-rabbitmq: escript/rabbitmqctl + escript/rabbitmq-diagnostics \ + escript/rabbitmq-queues \ + escript/rabbitmq-streams \ + escript/vmware-rabbitmq \ + escript/rabbitmq-upgrade + +escript:: $(LINKED_ESCRIPTS) # We use hardlinks or symlinks in the `escript` directory and # install's PREFIX when a single escript can have several names (eg. @@ -76,17 +98,9 @@ else link_escript = ln -f "$(dir $(2))$(notdir $(1))" "$(2)" endif -app:: $(ESCRIPTS) - @: - -rabbitmqctl_srcs := mix.exs \ - $(call core_find,config/,*.exs) \ - $(call core_find,lib/,*.ex) - -# Elixir dependencies are fetched and compiled as part of the alias -# `mix make_all`. We do not fetch and build them in `make deps` because -# mix(1) startup time is quite high. Thus we prefer to run it once, even -# though it kind of breaks the Erlang.mk model. +# Erlang.mk will fetch dependencies as it now has native Elixir support. +# However we are still using Mix for tests and this means Mix will fetch +# test dependencies. # # We write `y` on mix stdin because it asks approval to install Hex if # it's missing. Another way to do it is to use `mix local.hex` but it @@ -100,24 +114,15 @@ rabbitmqctl_srcs := mix.exs \ # we do to create the source archive, and we must do the same here, # otherwise mix(1) complains about missing dependencies (the non-prod # ones). -$(ACTUAL_ESCRIPTS): $(rabbitmqctl_srcs) - $(gen_verbose) if test -d ../.hex; then \ - echo y | ERL_COMPILER_OPTIONS=deterministic mix make_all_in_src_archive; \ - else \ - echo y | ERL_COMPILER_OPTIONS=deterministic mix make_all; \ - fi - -$(LINKED_ESCRIPTS): + +$(LINKED_ESCRIPTS): $(ESCRIPT_FILE) $(verbose) rm -f "$@" $(gen_verbose) $(call link_escript,$<,$@) -rel:: $(ESCRIPTS) - @: - -tests:: $(ESCRIPTS) +tests:: escript test-deps $(verbose) $(MAKE) -C ../../ install-cli $(verbose) $(MAKE) -C ../../ start-background-broker \ - PLUGINS="rabbit rabbitmq_federation rabbitmq_stomp rabbitmq_stream_management amqp_client" \ + PLUGINS="rabbitmq_federation rabbitmq_stomp rabbitmq_stream_management amqp_client" \ $(if $(filter khepri,$(RABBITMQ_METADATA_STORE)),,RABBITMQ_FEATURE_FLAGS="-khepri_db") $(gen_verbose) $(MIX_TEST) \ $(if $(RABBITMQ_METADATA_STORE),--exclude $(filter-out $(RABBITMQ_METADATA_STORE),khepri mnesia),) \ @@ -128,26 +133,26 @@ tests:: $(ESCRIPTS) .PHONY: test -test:: $(ESCRIPTS) +test:: escript test-deps ifdef TEST_FILE $(gen_verbose) $(MIX_TEST) $(TEST_FILE) else $(verbose) echo "TEST_FILE must be set, e.g. TEST_FILE=./test/ctl" 1>&2; false endif -dialyzer:: $(ESCRIPTS) +dialyzer:: escript MIX_ENV=test mix dialyzer .PHONY: install -install: $(ESCRIPTS) +install: $(ESCRIPT_FILE) ifdef PREFIX $(gen_verbose) mkdir -p "$(DESTDIR)$(PREFIX)" - $(verbose) $(foreach script,$(ACTUAL_ESCRIPTS), \ - cmp -s "$(script)" "$(DESTDIR)$(PREFIX)/$(notdir $(script))" || \ - cp "$(script)" "$(DESTDIR)$(PREFIX)/$(notdir $(script))";) + $(verbose) \ + cmp -s "$(ESCRIPT_FILE)" "$(DESTDIR)$(PREFIX)/$(notdir $(ESCRIPT_FILE))" || \ + cp "$(ESCRIPT_FILE)" "$(DESTDIR)$(PREFIX)/$(notdir $(ESCRIPT_FILE))" $(verbose) $(foreach script,$(LINKED_ESCRIPTS), \ - $(call link_escript,$($(notdir $(script))),$(DESTDIR)$(PREFIX)/$(notdir $(script)));) + $(call link_escript,$(ESCRIPT_FILE),$(DESTDIR)$(PREFIX)/$(notdir $(script)));) else $(verbose) echo "You must specify a PREFIX" 1>&2; false endif @@ -155,7 +160,7 @@ endif clean:: clean-mix clean-mix: - $(gen_verbose) rm -f $(ESCRIPTS) + $(gen_verbose) rm -f $(ESCRIPT_FILE) $(LINKED_ESCRIPTS) $(verbose) echo y | mix clean format: diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/csv.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/csv.ex index 66fe21e98864..abc6fb0f8c5b 100644 --- a/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/csv.ex +++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/formatters/csv.ex @@ -96,7 +96,7 @@ end # Elixir 1.15 compiler optimizations require that we explicitly # add the csv code path -true = Code.append_path(Path.join(["_build", Atom.to_string(Mix.env()), "lib", "csv", "ebin"])) +true = Code.append_path(Path.join(["..", "csv", "ebin"])) defimpl CSV.Encode, for: PID do def encode(pid, env \\ []) do diff --git a/deps/rabbitmq_cli/lib/rabbitmqctl.ex b/deps/rabbitmq_cli/lib/rabbitmqctl.ex index f6a9e012b815..ee803cacc10b 100644 --- a/deps/rabbitmq_cli/lib/rabbitmqctl.ex +++ b/deps/rabbitmq_cli/lib/rabbitmqctl.ex @@ -25,7 +25,18 @@ defmodule RabbitMQCtl do @type command_result() :: {:error, ExitCodes.exit_code(), term()} | term() @spec main(list()) :: no_return() - def main(["--auto-complete" | []]) do + def main(cmd0) do + {:ok, _} = :application.ensure_all_started(:elixir) + cmd = Enum.map(cmd0, &List.to_string/1) + System.argv(cmd) + :application.set_env(:logger, :level, :warning, [{:persistent, true}]) + :application.set_env(:logger, :console, [{:device, :standard_error}], [{:persistent, true}]) + {:ok, _} = :application.ensure_all_started(:rabbitmqctl) + Kernel.CLI.run(fn _ -> RabbitMQCtl.main1(cmd) end) + end + + @spec main1(list()) :: no_return() + def main1(["--auto-complete" | []]) do # silence Erlang/OTP's standard library warnings, it's acceptable for CLI tools, # see rabbitmq/rabbitmq-server#8912 _ = :logger.set_primary_config(:level, :error) @@ -33,7 +44,7 @@ defmodule RabbitMQCtl do handle_shutdown(:ok) end - def main(unparsed_command) do + def main1(unparsed_command) do # silence Erlang/OTP's standard library warnings, it's acceptable for CLI tools, # see rabbitmq/rabbitmq-server#8912 _ = :logger.set_primary_config(:level, :error) diff --git a/deps/rabbitmq_cli/mix.exs b/deps/rabbitmq_cli/mix.exs index a551b0f2dc5b..9128880ae88e 100644 --- a/deps/rabbitmq_cli/mix.exs +++ b/deps/rabbitmq_cli/mix.exs @@ -20,8 +20,8 @@ defmodule RabbitMQCtl.MixfileBase do path: "escript/rabbitmqctl" ], prune_code_paths: false, + elixirc_options: [ignore_module_conflict: true], deps: deps(Mix.env()), - aliases: aliases(), xref: [ exclude: [ CSV, @@ -142,6 +142,7 @@ defmodule RabbitMQCtl.MixfileBase do fake_cmd = "true" is_bazel = System.get_env("IS_BAZEL") != nil + # Note that normal deps will be fetched by Erlang.mk on build. [ { :json, @@ -196,29 +197,4 @@ defmodule RabbitMQCtl.MixfileBase do [] end end - - defp aliases do - [ - make_deps: [ - "deps.get", - "deps.compile" - ], - make_app: [ - "compile", - "escript.build" - ], - make_all: [ - "deps.get", - "deps.compile", - "compile", - "escript.build" - ], - make_all_in_src_archive: [ - "deps.get --only prod", - "deps.compile", - "compile", - "escript.build" - ] - ] - end end diff --git a/deps/rabbitmq_cli/rabbitmqctl.bzl b/deps/rabbitmq_cli/rabbitmqctl.bzl deleted file mode 100644 index fd8e0c4aec1e..000000000000 --- a/deps/rabbitmq_cli/rabbitmqctl.bzl +++ /dev/null @@ -1,423 +0,0 @@ -load("@bazel_skylib//lib:shell.bzl", "shell") -load( - "@rules_elixir//private:elixir_toolchain.bzl", - "elixir_dirs", - "erlang_dirs", - "maybe_install_erlang", -) -load( - "@rules_erlang//:erlang_app_info.bzl", - "ErlangAppInfo", - "flat_deps", -) -load( - "@rules_erlang//:util.bzl", - "path_join", -) -load( - "@rules_erlang//private:util.bzl", - "additional_file_dest_relative_path", -) - -ElixirAppInfo = provider( - doc = "Compiled Elixir Application", - fields = { - "app_name": "Name of the erlang application", - "extra_apps": "Extra applications in the applications key of the .app file", - "include": "Public header files", - "beam": "ebin directory produced by mix", - "consolidated": "consolidated directory produced by mix", - "priv": "Additional files", - "license_files": "License files", - "srcs": "Source files", - "deps": "Runtime dependencies of the compiled sources", - }, -) - -def _copy(ctx, src, dst): - ctx.actions.run_shell( - inputs = [src], - outputs = [dst], - command = """set -euo pipefail - -cp -RL "{src}" "{dst}" -""".format( - src = src.path, - dst = dst.path, - ), - ) - -def deps_dir_contents(ctx, deps, dir): - files = [] - for dep in deps: - lib_info = dep[ErlangAppInfo] - files_by_path = {} - for src in lib_info.include + lib_info.srcs: - if not src.is_directory: - rp = additional_file_dest_relative_path(dep.label, src) - files_by_path[rp] = src - else: - fail("unexpected directory in", lib_info) - for rp, src in files_by_path.items(): - f = ctx.actions.declare_file(path_join( - dir, - lib_info.app_name, - rp, - )) - _copy(ctx, src, f) - files.append(f) - for beam in lib_info.beam: - if not beam.is_directory: - f = ctx.actions.declare_file(path_join( - dir, - lib_info.app_name, - "ebin", - beam.basename, - )) - _copy(ctx, beam, f) - files.append(f) - else: - fail("unexpected directory in", lib_info) - return files - -def _impl(ctx): - (erlang_home, _, erlang_runfiles) = erlang_dirs(ctx) - (elixir_home, elixir_runfiles) = elixir_dirs(ctx) - - escript = ctx.actions.declare_file(path_join("escript", "rabbitmqctl")) - ebin = ctx.actions.declare_directory("ebin") - consolidated = ctx.actions.declare_directory("consolidated") - mix_invocation_dir = ctx.actions.declare_directory("{}_mix".format(ctx.label.name)) - - deps = flat_deps(ctx.attr.deps) - - deps_dir = ctx.label.name + "_deps" - - deps_dir_files = deps_dir_contents(ctx, deps, deps_dir) - - for dep, app_name in ctx.attr.source_deps.items(): - for src in dep.files.to_list(): - if not src.is_directory: - rp = additional_file_dest_relative_path(dep.label, src) - f = ctx.actions.declare_file(path_join( - deps_dir, - app_name, - rp, - )) - ctx.actions.symlink( - output = f, - target_file = src, - ) - deps_dir_files.append(f) - - package_dir = path_join( - ctx.label.workspace_root, - ctx.label.package, - ) - - script = """set -euo pipefail - -{maybe_install_erlang} - -if [[ "{elixir_home}" == /* ]]; then - ABS_ELIXIR_HOME="{elixir_home}" -else - ABS_ELIXIR_HOME=$PWD/{elixir_home} -fi -ABS_EBIN_DIR=$PWD/{ebin_dir} -ABS_CONSOLIDATED_DIR=$PWD/{consolidated_dir} -ABS_ESCRIPT_PATH=$PWD/{escript_path} - -export PATH="$ABS_ELIXIR_HOME"/bin:"{erlang_home}"/bin:${{PATH}} - -export LANG="en_US.UTF-8" -export LC_ALL="en_US.UTF-8" - -MIX_INVOCATION_DIR="{mix_invocation_dir}" - -cp -r {package_dir}/config ${{MIX_INVOCATION_DIR}}/config -cp -r {package_dir}/lib ${{MIX_INVOCATION_DIR}}/lib -cp {package_dir}/mix.exs ${{MIX_INVOCATION_DIR}}/mix.exs - -ORIGINAL_DIR=$PWD -cd ${{MIX_INVOCATION_DIR}} -export IS_BAZEL=true -export HOME=${{PWD}} -export DEPS_DIR=$(dirname $ABS_EBIN_DIR)/{deps_dir} -export MIX_ENV=prod -export ERL_COMPILER_OPTIONS=deterministic -for archive in {archives}; do - "${{ABS_ELIXIR_HOME}}"/bin/mix archive.install --force $ORIGINAL_DIR/$archive -done -"${{ABS_ELIXIR_HOME}}"/bin/mix deps.compile -"${{ABS_ELIXIR_HOME}}"/bin/mix compile -"${{ABS_ELIXIR_HOME}}"/bin/mix escript.build - -cp escript/rabbitmqctl ${{ABS_ESCRIPT_PATH}} - -cp -RL _build/${{MIX_ENV}}/lib/rabbitmqctl/ebin/* ${{ABS_EBIN_DIR}} -cp -RL _build/${{MIX_ENV}}/lib/rabbitmqctl/consolidated/* ${{ABS_CONSOLIDATED_DIR}} - -# remove symlinks from the _build directory since it -# is not used, and bazel does not allow them -find . -type l -delete -""".format( - maybe_install_erlang = maybe_install_erlang(ctx), - erlang_home = erlang_home, - elixir_home = elixir_home, - mix_invocation_dir = mix_invocation_dir.path, - package_dir = package_dir, - deps_dir = deps_dir, - escript_path = escript.path, - ebin_dir = ebin.path, - consolidated_dir = consolidated.path, - archives = " ".join([shell.quote(a.path) for a in ctx.files.archives]), - precompiled_deps = " ".join([ - dep[ErlangAppInfo].app_name - for dep in ctx.attr.deps - ]), - ) - - inputs = depset( - direct = ctx.files.srcs, - transitive = [ - erlang_runfiles.files, - elixir_runfiles.files, - depset(ctx.files.archives), - depset(deps_dir_files), - ], - ) - - ctx.actions.run_shell( - inputs = inputs, - outputs = [ - escript, - ebin, - consolidated, - mix_invocation_dir, - ], - command = script, - mnemonic = "MIX", - ) - - runfiles = ctx.runfiles([ebin, consolidated]).merge_all([ - erlang_runfiles, - elixir_runfiles, - ] + [ - dep[DefaultInfo].default_runfiles - for dep in deps - ]) - - return [ - DefaultInfo( - executable = escript, - files = depset([ebin, consolidated]), - runfiles = runfiles, - ), - ElixirAppInfo( - app_name = "rabbitmqctl", # mix generates 'rabbitmqctl.app' - extra_apps = ["elixir", "logger"], - include = [], - beam = ebin, - consolidated = consolidated, - priv = [], - license_files = ctx.files.license_files, - srcs = ctx.files.srcs, - deps = deps, - ), - ] - -rabbitmqctl_private = rule( - implementation = _impl, - attrs = { - "is_windows": attr.bool( - mandatory = True, - ), - "srcs": attr.label_list( - mandatory = True, - allow_files = True, - ), - "license_files": attr.label_list( - allow_files = True, - ), - "deps": attr.label_list( - providers = [ErlangAppInfo], - ), - "archives": attr.label_list( - allow_files = [".ez"], - ), - "source_deps": attr.label_keyed_string_dict(), - }, - toolchains = [ - "@rules_elixir//:toolchain_type", - ], - provides = [ElixirAppInfo], - executable = True, -) - -def _elixir_app_to_erlang_app(ctx): - app_consolidated = ctx.attr.elixir_app[ElixirAppInfo].consolidated - app_ebin = ctx.attr.elixir_app[ElixirAppInfo].beam - - elixir_ebin = ctx.attr.elixir_as_app[ErlangAppInfo].beam[0].path - - ebin = ctx.actions.declare_directory(path_join(ctx.label.name, "ebin")) - - if ctx.attr.mode == "elixir": - if len(ctx.attr.deps) > 0: - fail("deps cannot be specified in the 'elixir' mode") - - ctx.actions.run_shell( - inputs = ctx.files.elixir_as_app + ctx.files.elixir_app, - outputs = [ebin], - command = """\ -set -euo pipefail - -cp "{elixir_ebin}"/* "{ebin}" - -for beam in "{app_consolidated}"/*; do - find "{ebin}" -name "$(basename $beam)" -exec cp -f "$beam" "{ebin}" \\; -done -""".format( - elixir_ebin = elixir_ebin, - app_consolidated = app_consolidated.path, - ebin = ebin.path, - ), - ) - - lib_info = ctx.attr.elixir_as_app[ErlangAppInfo] - return [ - DefaultInfo(files = depset([ebin])), - ErlangAppInfo( - app_name = "elixir", - include = lib_info.include, - beam = [ebin], - priv = lib_info.priv, - license_files = lib_info.license_files, - srcs = lib_info.srcs, - deps = lib_info.deps, - ), - ] - elif ctx.attr.mode == "app": - ctx.actions.run_shell( - inputs = ctx.files.elixir_as_app + ctx.files.elixir_app, - outputs = [ebin], - command = """\ -set -euo pipefail - -cp "{app_ebin}"/* "{ebin}" -cp -f "{app_consolidated}"/* "{ebin}" - -for beam in "{elixir_ebin}"/*; do - find "{ebin}" -name "$(basename $beam)" -delete -done -""".format( - elixir_ebin = elixir_ebin, - app_ebin = app_ebin.path, - app_consolidated = app_consolidated.path, - ebin = ebin.path, - ), - ) - - (_, _, erlang_runfiles) = erlang_dirs(ctx) - (_, elixir_runfiles) = elixir_dirs(ctx) - - lib_info = ctx.attr.elixir_app[ElixirAppInfo] - - deps = lib_info.deps + ctx.attr.deps - - runfiles = ctx.runfiles([ebin]).merge_all([ - erlang_runfiles, - elixir_runfiles, - ] + [ - dep[DefaultInfo].default_runfiles - for dep in deps - ]) - - return [ - DefaultInfo( - files = depset([ebin]), - runfiles = runfiles, - ), - ErlangAppInfo( - app_name = lib_info.app_name, - extra_apps = lib_info.extra_apps, - include = lib_info.include, - beam = [ebin], - priv = lib_info.priv, - license_files = lib_info.license_files, - srcs = lib_info.srcs, - deps = deps, - ), - ] - - return [] - -elixir_app_to_erlang_app = rule( - implementation = _elixir_app_to_erlang_app, - attrs = { - "elixir_as_app": attr.label( - providers = [ErlangAppInfo], - ), - "elixir_app": attr.label( - providers = [ElixirAppInfo], - ), - "mode": attr.string( - values = [ - "elixir", - "app", - ], - ), - "deps": attr.label_list( - providers = [ErlangAppInfo], - ), - }, - toolchains = [ - "@rules_elixir//:toolchain_type", - ], - provides = [ErlangAppInfo], -) - -def rabbitmqctl( - name = None, - visibility = None, - **kwargs): - # mix produces a consolidated directory alongside the ebin - # directory, which contains .beam files for modules that - # are extended by protocols - # When used with dialyzer, this results in module conflicts - # between the original versions in elixir, and the - # consolidated ones - # So, this macro compiles the cli, then derives a copy of - # elixir that can be loaded alongside it without conflict - # (but assumes that the two are used together) - # These each have to be separate rules, as a single rule - # cannot provide multiple erlang_app (ErlangAppInfo - # provider instances) - - rabbitmqctl_private( - name = name, - is_windows = select({ - "@bazel_tools//src/conditions:host_windows": True, - "//conditions:default": False, - }), - visibility = visibility, - **kwargs - ) - - elixir_app_to_erlang_app( - name = "elixir", - elixir_as_app = Label("@rules_elixir//elixir:elixir"), - elixir_app = ":" + name, - mode = "elixir", - visibility = visibility, - ) - - elixir_app_to_erlang_app( - name = "erlang_app", - elixir_as_app = Label("@rules_elixir//elixir:elixir"), - elixir_app = ":" + name, - mode = "app", - visibility = visibility, - deps = [":elixir"], - ) diff --git a/deps/rabbitmq_cli/test/test_helper.exs b/deps/rabbitmq_cli/test/test_helper.exs index 5bebf4d98e4d..d7f218715530 100644 --- a/deps/rabbitmq_cli/test/test_helper.exs +++ b/deps/rabbitmq_cli/test/test_helper.exs @@ -499,7 +499,7 @@ defmodule TestHelper do end def error_check(cmd_line, code) do - assert catch_exit(RabbitMQCtl.main(cmd_line)) == {:shutdown, code} + assert catch_exit(RabbitMQCtl.main1(cmd_line)) == {:shutdown, code} end def with_channel(vhost, fun) do diff --git a/deps/rabbitmq_codegen/BUILD.bazel b/deps/rabbitmq_codegen/BUILD.bazel deleted file mode 100644 index 6aa6461d0f9a..000000000000 --- a/deps/rabbitmq_codegen/BUILD.bazel +++ /dev/null @@ -1,18 +0,0 @@ -exports_files([ - "amqp-1.0/messaging.xml", - "amqp-1.0/security.xml", - "amqp-1.0/transactions.xml", - "amqp-1.0/transport.xml", -]) - -exports_files([ - "amqp-rabbitmq-0.9.1.json", - "credit_extension.json", - "amqp-rabbitmq-0.8.json", -]) - -py_library( - name = "amqp_codegen", - srcs = ["amqp_codegen.py"], - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_codegen/amqp-rabbitmq-0.8.json b/deps/rabbitmq_codegen/amqp-rabbitmq-0.8.json index 2e654b066540..11afb9474631 100644 --- a/deps/rabbitmq_codegen/amqp-rabbitmq-0.8.json +++ b/deps/rabbitmq_codegen/amqp-rabbitmq-0.8.json @@ -77,7 +77,7 @@ {"name": "FRAME-OOB-BODY", "value": 6}, {"name": "FRAME-TRACE", "value": 7}, {"name": "FRAME-HEARTBEAT", "value": 8}, - {"name": "FRAME-MIN-SIZE", "value": 4096}, + {"name": "FRAME-MIN-SIZE", "value": 8192}, {"name": "FRAME-END", "value": 206}, {"name": "REPLY-SUCCESS", "value": 200}, {"name": "NOT-DELIVERED", "value": 310, "class": "soft-error"}, diff --git a/deps/rabbitmq_codegen/amqp-rabbitmq-0.9.1.json b/deps/rabbitmq_codegen/amqp-rabbitmq-0.9.1.json index a757c57703ef..950a49b5cc09 100644 --- a/deps/rabbitmq_codegen/amqp-rabbitmq-0.9.1.json +++ b/deps/rabbitmq_codegen/amqp-rabbitmq-0.9.1.json @@ -74,7 +74,7 @@ {"name": "FRAME-HEADER", "value": 2}, {"name": "FRAME-BODY", "value": 3}, {"name": "FRAME-HEARTBEAT", "value": 8}, - {"name": "FRAME-MIN-SIZE", "value": 4096}, + {"name": "FRAME-MIN-SIZE", "value": 8192}, {"name": "FRAME-END", "value": 206}, {"name": "REPLY-SUCCESS", "value": 200}, {"name": "CONTENT-TOO-LARGE", "value": 311, "class": "soft-error"}, diff --git a/deps/rabbitmq_consistent_hash_exchange/BUILD.bazel b/deps/rabbitmq_consistent_hash_exchange/BUILD.bazel deleted file mode 100644 index 182b31c0656f..000000000000 --- a/deps/rabbitmq_consistent_hash_exchange/BUILD.bazel +++ /dev/null @@ -1,98 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_consistent_hash_exchange" - -APP_DESCRIPTION = "Consistent Hash Exchange Type" - -all_beam_files(name = "all_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - apps = [ - "mnesia", # keep - ], - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", - deps = ["//deps/rabbitmq_cli:erlang_app"], # keep -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "rabbit_exchange_type_consistent_hash_SUITE", - runtime_deps = [ - "//deps/rabbitmq_amqp_client:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_consistent_hash_exchange", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -all_test_beam_files(name = "all_test_beam_files") diff --git a/deps/rabbitmq_consistent_hash_exchange/Makefile b/deps/rabbitmq_consistent_hash_exchange/Makefile index 9dbafcaaa69b..29c62411aaa1 100644 --- a/deps/rabbitmq_consistent_hash_exchange/Makefile +++ b/deps/rabbitmq_consistent_hash_exchange/Makefile @@ -8,7 +8,7 @@ endef DEPS = rabbit_common rabbit khepri khepri_mnesia_migration TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers amqp_client rabbitmq_amqp_client -PLT_APPS += mnesia rabbitmqctl +PLT_APPS += mnesia rabbitmq_cli DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk diff --git a/deps/rabbitmq_consistent_hash_exchange/app.bzl b/deps/rabbitmq_consistent_hash_exchange/app.bzl deleted file mode 100644 index e6a43a75079f..000000000000 --- a/deps/rabbitmq_consistent_hash_exchange/app.bzl +++ /dev/null @@ -1,106 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Diagnostics.Commands.ConsistentHashExchangeRingStateCommand.erl", - "src/rabbit_db_ch_exchange.erl", - "src/rabbit_db_ch_exchange_m2k_converter.erl", - "src/rabbit_exchange_type_consistent_hash.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_consistent_hash_exchange", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/Elixir.RabbitMQ.CLI.Diagnostics.Commands.ConsistentHashExchangeRingStateCommand.erl", - "src/rabbit_db_ch_exchange.erl", - "src/rabbit_db_ch_exchange_m2k_converter.erl", - "src/rabbit_exchange_type_consistent_hash.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_consistent_hash_exchange", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Diagnostics.Commands.ConsistentHashExchangeRingStateCommand.erl", - "src/rabbit_db_ch_exchange.erl", - "src/rabbit_db_ch_exchange_m2k_converter.erl", - "src/rabbit_exchange_type_consistent_hash.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbitmq_consistent_hash_exchange.hrl"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "rabbit_exchange_type_consistent_hash_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_exchange_type_consistent_hash_SUITE.erl"], - outs = ["test/rabbit_exchange_type_consistent_hash_SUITE.beam"], - hdrs = ["include/rabbitmq_consistent_hash_exchange.hrl"], - app_name = "rabbitmq_consistent_hash_exchange", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) diff --git a/deps/rabbitmq_ct_client_helpers/BUILD.bazel b/deps/rabbitmq_ct_client_helpers/BUILD.bazel deleted file mode 100644 index 8fa9dfa34f41..000000000000 --- a/deps/rabbitmq_ct_client_helpers/BUILD.bazel +++ /dev/null @@ -1,73 +0,0 @@ -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("@rules_erlang//:xref2.bzl", "xref") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -# gazelle:erlang_app_testonly - -# gazelle:erlang_always_generate_test_beam_files - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - testonly = True, - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "rabbitmq_ct_client_helpers", - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbitmq_ct_helpers:erlang_app", - ], -) - -alias( - name = "rabbitmq_ct_client_helpers", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - apps = [ - "common_test", # keep - ], - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -assert_suites() diff --git a/deps/rabbitmq_ct_client_helpers/WORKSPACE.bazel b/deps/rabbitmq_ct_client_helpers/WORKSPACE.bazel deleted file mode 100644 index 526c10bc6714..000000000000 --- a/deps/rabbitmq_ct_client_helpers/WORKSPACE.bazel +++ /dev/null @@ -1,24 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -http_archive( - name = "bazel-erlang", - sha256 = "422a9222522216f59a01703a13f578c601d6bddf5617bee8da3c43e3b299fc4e", - strip_prefix = "bazel-erlang-1.1.0", - urls = ["https://github.com/rabbitmq/bazel-erlang/archive/refs/tags/1.1.0.zip"], -) - -http_archive( - name = "rabbitmq-server", - strip_prefix = "rabbitmq-server-main", - urls = ["https://github.com/rabbitmq/rabbitmq-server/archive/main.zip"], -) - -http_archive( - name = "rabbitmq_ct_helpers", - strip_prefix = "rabbitmq-ct-helpers-main", - urls = ["https://github.com/rabbitmq/rabbitmq-ct-helpers/archive/main.zip"], -) - -load("@rabbitmq-server//:workspace_helpers.bzl", "rabbitmq_external_deps") - -rabbitmq_external_deps() diff --git a/deps/rabbitmq_ct_client_helpers/app.bzl b/deps/rabbitmq_ct_client_helpers/app.bzl deleted file mode 100644 index 264bc00760c8..000000000000 --- a/deps/rabbitmq_ct_client_helpers/app.bzl +++ /dev/null @@ -1,78 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - testonly = True, - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - testonly = True, - srcs = ["src/rabbit_ct_client_helpers.erl", "src/rfc6455_client.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_ct_client_helpers", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - testonly = True, - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - testonly = True, - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - testonly = True, - ) - - filegroup( - name = "srcs", - testonly = True, - srcs = ["src/rabbit_ct_client_helpers.erl", "src/rfc6455_client.erl"], - ) - filegroup( - name = "private_hdrs", - testonly = True, - ) - filegroup( - name = "public_hdrs", - testonly = True, - ) - filegroup( - name = "license_files", - testonly = True, - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = ["src/rabbit_ct_client_helpers.erl", "src/rfc6455_client.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_ct_client_helpers", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - pass diff --git a/deps/rabbitmq_ct_helpers/BUILD.bazel b/deps/rabbitmq_ct_helpers/BUILD.bazel deleted file mode 100644 index b5167a076972..000000000000 --- a/deps/rabbitmq_ct_helpers/BUILD.bazel +++ /dev/null @@ -1,117 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -all_beam_files(name = "all_beam_files") - -all_srcs(name = "all_srcs") - -all_test_beam_files(name = "all_test_beam_files") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_testonly - -# gazelle:erlang_app_dep meck -# gazelle:erlang_app_dep_exclude rabbit -# gazelle:erlang_app_dep_exclude rabbitmq_prelaunch -# gazelle:erlang_app_dep_exclude rabbitmq_management_agent - -rabbitmq_app( - name = "erlang_app", - testonly = True, - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_name = "rabbitmq_ct_helpers", - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_stream_common:erlang_app", - "@meck//:erlang_app", - "@proper//:erlang_app", - "@ra//:erlang_app", - ], -) - -alias( - name = "rabbitmq_ct_helpers", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -xref( - name = "xref", - additional_libs = [ - "@rules_elixir//elixir", # keep - "//deps/rabbitmq_cli:erlang_app", # keep - "//deps/rabbit:erlang_app", # keep - "//deps/rabbitmq_prelaunch:erlang_app", # keep - "//deps/rabbitmq_management_agent:erlang_app", # keep - "@proper//:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - apps = [ - "common_test", # keep - "eunit", # keep - "inets", # keep - ], - for_target = ":erlang_app", - ignore_warnings = True, - libs = [ - "@rules_elixir//elixir", # keep - ], - plt = "//:base_plt", - deps = [ - "//deps/rabbit:erlang_app", # keep - "//deps/rabbitmq_cli:erlang_app", # keep - "//deps/rabbitmq_management_agent:erlang_app", # keep - "//deps/rabbitmq_prelaunch:erlang_app", # keep - "@proper//:erlang_app", # keep - "@rules_elixir//elixir", # keep - ], -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", - warnings_as_errors = False, -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "terraform_SUITE", - # requires SSH_KEY to create vms, skip running as part of CI - tags = ["manual"], -) - -assert_suites() diff --git a/deps/rabbitmq_ct_helpers/Makefile b/deps/rabbitmq_ct_helpers/Makefile index be8cfaee95dd..80eb0310c9cb 100644 --- a/deps/rabbitmq_ct_helpers/Makefile +++ b/deps/rabbitmq_ct_helpers/Makefile @@ -16,8 +16,7 @@ XREF_IGNORE = [ \ dep_inet_tcp_proxy = git https://github.com/rabbitmq/inet_tcp_proxy master -# As this is a helper application we don't need other plugins; -# however we can run a test broker in the test suites. +DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk include ../../rabbitmq-components.mk diff --git a/deps/rabbitmq_ct_helpers/app.bzl b/deps/rabbitmq_ct_helpers/app.bzl deleted file mode 100644 index 5cc19256f268..000000000000 --- a/deps/rabbitmq_ct_helpers/app.bzl +++ /dev/null @@ -1,133 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - testonly = True, - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - testonly = True, - srcs = [ - "src/ct_master_event_fork.erl", - "src/ct_master_fork.erl", - "src/ct_master_logs_fork.erl", - "src/cth_log_redirect_any_domains.erl", - "src/rabbit_control_helper.erl", - "src/rabbit_ct_broker_helpers.erl", - "src/rabbit_ct_config_schema.erl", - "src/rabbit_ct_helpers.erl", - "src/rabbit_ct_proper_helpers.erl", - "src/rabbit_ct_vm_helpers.erl", - "src/rabbit_mgmt_test_util.erl", - "src/stream_test_utils.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_ct_helpers", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/rabbit_common:erlang_app", "@proper//:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/ct_master_event_fork.erl", - "src/ct_master_fork.erl", - "src/ct_master_logs_fork.erl", - "src/cth_log_redirect_any_domains.erl", - "src/rabbit_control_helper.erl", - "src/rabbit_ct_broker_helpers.erl", - "src/rabbit_ct_config_schema.erl", - "src/rabbit_ct_helpers.erl", - "src/rabbit_ct_proper_helpers.erl", - "src/rabbit_ct_vm_helpers.erl", - "src/rabbit_mgmt_test_util.erl", - "src/stream_test_utils.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_ct_helpers", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/rabbit_common:erlang_app", "@proper//:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - testonly = True, - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - testonly = True, - srcs = [":private_hdrs", ":public_hdrs"], - ) - filegroup( - name = "priv", - testonly = True, - srcs = native.glob( - ["tools/terraform/**/*"], - ) + [ - "tools/tls-certs/Makefile", - "tools/tls-certs/openssl.cnf.in", - ], # keep - ) - filegroup( - name = "public_hdrs", - testonly = True, - srcs = [ - "include/rabbit_assert.hrl", - "include/rabbit_mgmt_test.hrl", - ], - ) - filegroup( - name = "private_hdrs", - testonly = True, - ) - filegroup( - name = "license_files", - testonly = True, - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL-RabbitMQ", - ], - ) - filegroup( - name = "srcs", - testonly = True, - srcs = [ - "src/ct_master_event_fork.erl", - "src/ct_master_fork.erl", - "src/ct_master_logs_fork.erl", - "src/cth_log_redirect_any_domains.erl", - "src/rabbit_control_helper.erl", - "src/rabbit_ct_broker_helpers.erl", - "src/rabbit_ct_config_schema.erl", - "src/rabbit_ct_helpers.erl", - "src/rabbit_ct_proper_helpers.erl", - "src/rabbit_ct_vm_helpers.erl", - "src/rabbit_mgmt_test_util.erl", - "src/stream_test_utils.erl", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "terraform_SUITE_beam_files", - testonly = True, - srcs = ["test/terraform_SUITE.erl"], - outs = ["test/terraform_SUITE.beam"], - app_name = "rabbitmq_ct_helpers", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl b/deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl index 6e3f11d3043c..df65f808e66a 100644 --- a/deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl +++ b/deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl @@ -342,7 +342,7 @@ maybe_rabbit_srcdir(Config) -> ensure_application_srcdir(Config, App, Module) -> ensure_application_srcdir(Config, App, erlang, Module). -ensure_application_srcdir(Config, App, Lang, Module) -> +ensure_application_srcdir(Config, App, _Lang, Module) -> AppS = atom_to_list(App), Key = list_to_atom(AppS ++ "_srcdir"), SecondaryKey = list_to_atom("secondary_" ++ AppS ++ "_srcdir"), @@ -351,18 +351,10 @@ ensure_application_srcdir(Config, App, Lang, Module) -> case code:which(Module) of non_existing -> filename:join(?config(erlang_mk_depsdir, Config), AppS); - P when Lang =:= erlang -> + P -> %% P is $SRCDIR/ebin/$MODULE.beam. filename:dirname( - filename:dirname(P)); - P when Lang =:= elixir -> - %% P is $SRCDIR/_build/$MIX_ENV/lib/$APP/ebin/$MODULE.beam. - filename:dirname( - filename:dirname( - filename:dirname( - filename:dirname( - filename:dirname( - filename:dirname(P)))))) + filename:dirname(P)) end; P -> P @@ -500,9 +492,8 @@ new_script_location(Config, Script) -> ensure_rabbitmqctl_app(Config) -> SrcDir = ?config(rabbitmq_cli_srcdir, Config), - MixEnv = os:getenv("MIX_ENV", "dev"), EbinDir = filename:join( - [SrcDir, "_build", MixEnv, "lib", "rabbitmqctl", "ebin"]), + [SrcDir, "ebin"]), case filelib:is_file(filename:join(EbinDir, "rabbitmqctl.app")) of true -> true = code:add_path(EbinDir), @@ -513,11 +504,11 @@ ensure_rabbitmqctl_app(Config) -> Config; {error, _} -> {skip, "Access to rabbitmq_cli ebin dir. required, " ++ - "please build rabbitmq_cli and set MIX_ENV"} + "please build rabbitmq_cli"} end; false -> {skip, "Access to rabbitmq_cli ebin dir. required, " ++ - "please build rabbitmq_cli and set MIX_ENV"} + "please build rabbitmq_cli"} end. load_rabbitmqctl_app(Config) -> diff --git a/deps/rabbitmq_event_exchange/BUILD.bazel b/deps/rabbitmq_event_exchange/BUILD.bazel deleted file mode 100644 index e2e108e9764b..000000000000 --- a/deps/rabbitmq_event_exchange/BUILD.bazel +++ /dev/null @@ -1,98 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_event_exchange" - -APP_DESCRIPTION = "Event Exchange Type" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "system_SUITE", -) - -rabbitmq_suite( - name = "unit_SUITE", - deps = [ - "//deps/rabbitmq_ct_helpers:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_event_exchange", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_event_exchange/app.bzl b/deps/rabbitmq_event_exchange/app.bzl deleted file mode 100644 index d14503aa86b1..000000000000 --- a/deps/rabbitmq_event_exchange/app.bzl +++ /dev/null @@ -1,111 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_event_exchange_decorator.erl", - "src/rabbit_exchange_type_event.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_event_exchange", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_event_exchange_decorator.erl", - "src/rabbit_exchange_type_event.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_event_exchange", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_event_exchange.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_event_exchange_decorator.erl", - "src/rabbit_exchange_type_event.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbit_event_exchange.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_event_exchange", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - app_name = "rabbitmq_event_exchange", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - app_name = "rabbitmq_event_exchange", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_federation/BUILD.bazel b/deps/rabbitmq_federation/BUILD.bazel deleted file mode 100644 index dc29595fef7c..000000000000 --- a/deps/rabbitmq_federation/BUILD.bazel +++ /dev/null @@ -1,157 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_federation" - -APP_DESCRIPTION = "RabbitMQ Federation" - -APP_MODULE = "rabbit_federation_app" - -APP_ENV = """[ - {pgroup_name_cluster_id, false}, - {internal_exchange_check_interval, 90000} - ]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", - deps = ["//deps/rabbitmq_cli:erlang_app"], # keep -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [":test_rabbit_federation_test_util_beam"], - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "definition_import_SUITE", - size = "small", -) - -rabbitmq_integration_suite( - name = "exchange_SUITE", - size = "large", - additional_beam = [ - "test/rabbit_federation_test_util.beam", - ], - flaky = True, - shard_count = 3, -) - -rabbitmq_integration_suite( - name = "federation_status_command_SUITE", - additional_beam = [ - "test/rabbit_federation_test_util.beam", - ], -) - -rabbitmq_integration_suite( - name = "queue_SUITE", - additional_beam = [ - "test/rabbit_federation_test_util.beam", - ], - flaky = True, - shard_count = 6, -) - -rabbitmq_integration_suite( - name = "rabbit_federation_status_SUITE", - additional_beam = [ - "test/rabbit_federation_test_util.beam", - ":exchange_SUITE_beam_files", - ":queue_SUITE_beam_files", - ], -) - -rabbitmq_integration_suite( - name = "restart_federation_link_command_SUITE", - additional_beam = [ - "test/rabbit_federation_test_util.beam", - ], -) - -rabbitmq_integration_suite( - name = "unit_inbroker_SUITE", -) - -rabbitmq_suite( - name = "unit_SUITE", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_federation", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_federation/Makefile b/deps/rabbitmq_federation/Makefile index 1493d8efea5b..13d055c45d52 100644 --- a/deps/rabbitmq_federation/Makefile +++ b/deps/rabbitmq_federation/Makefile @@ -16,7 +16,7 @@ endef DEPS = rabbit_common rabbit amqp_client TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers -PLT_APPS += rabbitmqctl +PLT_APPS += rabbitmq_cli DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk diff --git a/deps/rabbitmq_federation/app.bzl b/deps/rabbitmq_federation/app.bzl deleted file mode 100644 index 92ec0c82f453..000000000000 --- a/deps/rabbitmq_federation/app.bzl +++ /dev/null @@ -1,235 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.FederationStatusCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartFederationLinkCommand.erl", - "src/rabbit_federation_app.erl", - "src/rabbit_federation_db.erl", - "src/rabbit_federation_event.erl", - "src/rabbit_federation_exchange.erl", - "src/rabbit_federation_exchange_link.erl", - "src/rabbit_federation_exchange_link_sup_sup.erl", - "src/rabbit_federation_link_sup.erl", - "src/rabbit_federation_link_util.erl", - "src/rabbit_federation_parameters.erl", - "src/rabbit_federation_pg.erl", - "src/rabbit_federation_queue.erl", - "src/rabbit_federation_queue_link.erl", - "src/rabbit_federation_queue_link_sup_sup.erl", - "src/rabbit_federation_status.erl", - "src/rabbit_federation_sup.erl", - "src/rabbit_federation_upstream.erl", - "src/rabbit_federation_upstream_exchange.erl", - "src/rabbit_federation_util.erl", - "src/rabbit_log_federation.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_federation", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.FederationStatusCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartFederationLinkCommand.erl", - "src/rabbit_federation_app.erl", - "src/rabbit_federation_db.erl", - "src/rabbit_federation_event.erl", - "src/rabbit_federation_exchange.erl", - "src/rabbit_federation_exchange_link.erl", - "src/rabbit_federation_exchange_link_sup_sup.erl", - "src/rabbit_federation_link_sup.erl", - "src/rabbit_federation_link_util.erl", - "src/rabbit_federation_parameters.erl", - "src/rabbit_federation_pg.erl", - "src/rabbit_federation_queue.erl", - "src/rabbit_federation_queue_link.erl", - "src/rabbit_federation_queue_link_sup_sup.erl", - "src/rabbit_federation_status.erl", - "src/rabbit_federation_sup.erl", - "src/rabbit_federation_upstream.erl", - "src/rabbit_federation_upstream_exchange.erl", - "src/rabbit_federation_util.erl", - "src/rabbit_log_federation.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_federation", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.FederationStatusCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartFederationLinkCommand.erl", - "src/rabbit_federation_app.erl", - "src/rabbit_federation_db.erl", - "src/rabbit_federation_event.erl", - "src/rabbit_federation_exchange.erl", - "src/rabbit_federation_exchange_link.erl", - "src/rabbit_federation_exchange_link_sup_sup.erl", - "src/rabbit_federation_link_sup.erl", - "src/rabbit_federation_link_util.erl", - "src/rabbit_federation_parameters.erl", - "src/rabbit_federation_pg.erl", - "src/rabbit_federation_queue.erl", - "src/rabbit_federation_queue_link.erl", - "src/rabbit_federation_queue_link_sup_sup.erl", - "src/rabbit_federation_status.erl", - "src/rabbit_federation_sup.erl", - "src/rabbit_federation_upstream.erl", - "src/rabbit_federation_upstream_exchange.erl", - "src/rabbit_federation_util.erl", - "src/rabbit_log_federation.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = [ - "include/logging.hrl", - "include/rabbit_federation.hrl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "definition_import_SUITE_beam_files", - testonly = True, - srcs = ["test/definition_import_SUITE.erl"], - outs = ["test/definition_import_SUITE.beam"], - app_name = "rabbitmq_federation", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "exchange_SUITE_beam_files", - testonly = True, - srcs = ["test/exchange_SUITE.erl"], - outs = ["test/exchange_SUITE.beam"], - hdrs = ["include/rabbit_federation.hrl"], - app_name = "rabbitmq_federation", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "federation_status_command_SUITE_beam_files", - testonly = True, - srcs = ["test/federation_status_command_SUITE.erl"], - outs = ["test/federation_status_command_SUITE.beam"], - app_name = "rabbitmq_federation", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "queue_SUITE_beam_files", - testonly = True, - srcs = ["test/queue_SUITE.erl"], - outs = ["test/queue_SUITE.beam"], - app_name = "rabbitmq_federation", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_federation_status_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_federation_status_SUITE.erl"], - outs = ["test/rabbit_federation_status_SUITE.beam"], - hdrs = ["include/rabbit_federation.hrl"], - app_name = "rabbitmq_federation", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "restart_federation_link_command_SUITE_beam_files", - testonly = True, - srcs = ["test/restart_federation_link_command_SUITE.erl"], - outs = ["test/restart_federation_link_command_SUITE.beam"], - app_name = "rabbitmq_federation", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "test_rabbit_federation_test_util_beam", - testonly = True, - srcs = ["test/rabbit_federation_test_util.erl"], - outs = ["test/rabbit_federation_test_util.beam"], - hdrs = ["include/rabbit_federation.hrl"], - app_name = "rabbitmq_federation", - erlc_opts = "//:test_erlc_opts", - visibility = ["//visibility:public"], - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - hdrs = ["include/rabbit_federation.hrl"], - app_name = "rabbitmq_federation", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "unit_inbroker_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_inbroker_SUITE.erl"], - outs = ["test/unit_inbroker_SUITE.beam"], - hdrs = ["include/rabbit_federation.hrl"], - app_name = "rabbitmq_federation", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) diff --git a/deps/rabbitmq_federation_management/BUILD.bazel b/deps/rabbitmq_federation_management/BUILD.bazel deleted file mode 100644 index 10d8c0af0e3c..000000000000 --- a/deps/rabbitmq_federation_management/BUILD.bazel +++ /dev/null @@ -1,98 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_federation_management" - -APP_DESCRIPTION = "RabbitMQ Federation Management" - -APP_MODULE = "rabbit_federation_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep amqp_client -# gazelle:erlang_app_dep rabbit_common -# gazelle:erlang_app_dep rabbit -# gazelle:erlang_app_dep rabbitmq_federation -# gazelle:erlang_app_dep_exclude rabbitmq_management_agent - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_federation:erlang_app", - "//deps/rabbitmq_management:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "federation_mgmt_SUITE", -) - -assert_suites() - -alias( - name = "rabbitmq_federation_management", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_federation_management/app.bzl b/deps/rabbitmq_federation_management/app.bzl deleted file mode 100644 index bf7e14264214..000000000000 --- a/deps/rabbitmq_federation_management/app.bzl +++ /dev/null @@ -1,95 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = ["src/rabbit_federation_mgmt.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_federation_management", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = ["src/rabbit_federation_mgmt.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_federation_management", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = [ - "priv/www/js/federation.js", - "priv/www/js/tmpl/federation.ejs", - "priv/www/js/tmpl/federation-upstream.ejs", - "priv/www/js/tmpl/federation-upstreams.ejs", - ], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = ["src/rabbit_federation_mgmt.erl"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-APACHE2-ExplorerCanvas", - "LICENSE-BSD-base64js", - "LICENSE-MIT-EJS10", - "LICENSE-MIT-Flot", - "LICENSE-MIT-Sammy060", - "LICENSE-MIT-jQuery164", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "federation_mgmt_SUITE_beam_files", - testonly = True, - srcs = ["test/federation_mgmt_SUITE.erl"], - outs = ["test/federation_mgmt_SUITE.beam"], - app_name = "rabbitmq_federation_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) diff --git a/deps/rabbitmq_federation_prometheus/BUILD.bazel b/deps/rabbitmq_federation_prometheus/BUILD.bazel deleted file mode 100644 index b6a8c641f149..000000000000 --- a/deps/rabbitmq_federation_prometheus/BUILD.bazel +++ /dev/null @@ -1,117 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_federation_prometheus" - -APP_DESCRIPTION = "Prometheus extension for the Federation plugin" - -APP_ENV = """[ -]""" - -all_srcs(name = "all_srcs") - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app crypto - -# gazelle:erlang_app_dep rabbit -# gazelle:erlang_app_dep rabbitmq_prometheus - -# gazelle:erlang_app_dep_exclude prometheus - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = "rabbit_federation_prometheus_app", - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbitmq_federation:erlang_app", - "//deps/rabbitmq_prometheus:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -rabbitmq_home( - name = "broker-for-tests-home", - plugins = [ - "//deps/rabbit:erlang_app", - ":erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-tests-run", - home = ":broker-for-tests-home", -) - -rabbitmq_integration_suite( - name = "prometheus_rabbitmq_federation_collector_SUITE", - size = "small", - additional_beam = [ - ], -) - -assert_suites() - -alias( - name = "rabbitmq_federation_prometheus", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_federation_prometheus/Makefile b/deps/rabbitmq_federation_prometheus/Makefile index 3d069be8ed41..81e2b259b7b4 100644 --- a/deps/rabbitmq_federation_prometheus/Makefile +++ b/deps/rabbitmq_federation_prometheus/Makefile @@ -7,7 +7,7 @@ define PROJECT_APP_EXTRA_KEYS endef DEPS = rabbit_common rabbit rabbitmq_federation rabbitmq_prometheus -TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers eunit_formatters +TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk diff --git a/deps/rabbitmq_federation_prometheus/app.bzl b/deps/rabbitmq_federation_prometheus/app.bzl deleted file mode 100644 index 405196d21119..000000000000 --- a/deps/rabbitmq_federation_prometheus/app.bzl +++ /dev/null @@ -1,89 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_federation_prometheus_app.erl", - "src/rabbit_federation_prometheus_collector.erl", - "src/rabbit_federation_prometheus_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_federation_prometheus", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["@prometheus//:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_federation_prometheus_app.erl", - "src/rabbit_federation_prometheus_collector.erl", - "src/rabbit_federation_prometheus_sup.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "public_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_federation_prometheus_app.erl", - "src/rabbit_federation_prometheus_collector.erl", - "src/rabbit_federation_prometheus_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_federation_prometheus", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["@prometheus//:erlang_app"], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "prometheus_rabbitmq_federation_collector_SUITE_beam_files", - testonly = True, - srcs = ["test/prometheus_rabbitmq_federation_collector_SUITE.erl"], - outs = ["test/prometheus_rabbitmq_federation_collector_SUITE.beam"], - app_name = "rabbitmq_federation_prometheus", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "@prometheus//:erlang_app"], - ) diff --git a/deps/rabbitmq_jms_topic_exchange/BUILD.bazel b/deps/rabbitmq_jms_topic_exchange/BUILD.bazel deleted file mode 100644 index e3e49612b060..000000000000 --- a/deps/rabbitmq_jms_topic_exchange/BUILD.bazel +++ /dev/null @@ -1,106 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_jms_topic_exchange" - -APP_DESCRIPTION = "RabbitMQ JMS topic selector exchange plugin" - -APP_MODULE = "rabbit_federation_app" - -all_beam_files(name = "all_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app mnesia - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = ["mnesia"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "rjms_topic_selector_SUITE", -) - -rabbitmq_suite( - name = "rjms_topic_selector_unit_SUITE", - size = "small", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_suite( - name = "sjx_evaluation_SUITE", - size = "small", -) - -assert_suites() - -alias( - name = "rabbitmq_jms_topic_exchange", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -all_test_beam_files(name = "all_test_beam_files") diff --git a/deps/rabbitmq_jms_topic_exchange/app.bzl b/deps/rabbitmq_jms_topic_exchange/app.bzl deleted file mode 100644 index 5c73214ef386..000000000000 --- a/deps/rabbitmq_jms_topic_exchange/app.bzl +++ /dev/null @@ -1,122 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_db_jms_exchange.erl", - "src/rabbit_db_jms_exchange_m2k_converter.erl", - "src/rabbit_jms_topic_exchange.erl", - "src/sjx_evaluator.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_jms_topic_exchange", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_db_jms_exchange.erl", - "src/rabbit_db_jms_exchange_m2k_converter.erl", - "src/rabbit_jms_topic_exchange.erl", - "src/sjx_evaluator.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_jms_topic_exchange", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_db_jms_exchange.erl", - "src/rabbit_db_jms_exchange_m2k_converter.erl", - "src/rabbit_jms_topic_exchange.erl", - "src/sjx_evaluator.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbit_jms_topic_exchange.hrl"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "rjms_topic_selector_SUITE_beam_files", - testonly = True, - srcs = ["test/rjms_topic_selector_SUITE.erl"], - outs = ["test/rjms_topic_selector_SUITE.beam"], - hdrs = ["include/rabbit_jms_topic_exchange.hrl"], - app_name = "rabbitmq_jms_topic_exchange", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rjms_topic_selector_unit_SUITE_beam_files", - testonly = True, - srcs = ["test/rjms_topic_selector_unit_SUITE.erl"], - outs = ["test/rjms_topic_selector_unit_SUITE.beam"], - hdrs = ["include/rabbit_jms_topic_exchange.hrl"], - app_name = "rabbitmq_jms_topic_exchange", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "sjx_evaluation_SUITE_beam_files", - testonly = True, - srcs = ["test/sjx_evaluation_SUITE.erl"], - outs = ["test/sjx_evaluation_SUITE.beam"], - app_name = "rabbitmq_jms_topic_exchange", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_management/BUILD.bazel b/deps/rabbitmq_management/BUILD.bazel deleted file mode 100644 index 509440b57514..000000000000 --- a/deps/rabbitmq_management/BUILD.bazel +++ /dev/null @@ -1,241 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "APP_VERSION", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_management" - -APP_DESCRIPTION = "RabbitMQ Management Console" - -APP_MODULE = "rabbit_mgmt_app" - -APP_ENV = """[ - {http_log_dir, none}, - {load_definitions, none}, - {management_db_cache_multiplier, 5}, - {process_stats_gc_timeout, 300000}, - {stats_event_max_backlog, 250}, - - {cors_allow_origins, []}, - {cors_max_age, 1800}, - {content_security_policy, "script-src 'self' 'unsafe-eval' 'unsafe-inline'; object-src 'self'"}, - {max_http_body_size, 10000000}, - {delegate_count, 5} - ]""" - -genrule( - name = "rabbitmqadmin", - srcs = ["bin/rabbitmqadmin"], - outs = ["priv/www/cli/rabbitmqadmin"], - cmd = """set -euxo pipefail - -sed 's/%%VSN%%/{}/' $< > $@ -""".format(APP_VERSION), -) - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app ssl -# gazelle:erlang_app_extra_app crypto -# gazelle:erlang_app_extra_app public_key - -# gazelle:erlang_app_dep ranch - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - "public_key", - "ssl", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/oauth2_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - "@cowboy//:erlang_app", - "@cowlib//:erlang_app", - "@cuttlefish//:erlang_app", - "@ranch//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [":test_rabbit_mgmt_runtime_parameters_util_beam"], - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_suite( - name = "cache_SUITE", - size = "small", - deps = [ - "//deps/rabbitmq_ct_helpers:erlang_app", - "@proper//:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_mgmt_schema_SUITE", - size = "small", -) - -rabbitmq_integration_suite( - name = "clustering_prop_SUITE", - size = "large", - deps = [ - "//deps/rabbitmq_management_agent:erlang_app", - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "clustering_SUITE", - flaky = True, - deps = [ - "//deps/rabbitmq_management_agent:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "config_schema_SUITE", - size = "medium", -) - -rabbitmq_suite( - name = "listener_config_SUITE", - size = "small", -) - -rabbitmq_integration_suite( - name = "rabbit_mgmt_http_health_checks_SUITE", -) - -rabbitmq_integration_suite( - name = "rabbit_mgmt_http_SUITE", - size = "large", - additional_beam = [ - "test/rabbit_mgmt_runtime_parameters_util.beam", - ], - shard_count = 6, - runtime_deps = [ - "//deps/amqp10_client:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "rabbit_mgmt_only_http_SUITE", -) - -rabbitmq_integration_suite( - name = "rabbit_mgmt_rabbitmqadmin_SUITE", - additional_beam = [ - "test/rabbit_mgmt_runtime_parameters_util.beam", - ], - data = [ - ":bin/rabbitmqadmin", - ], -) - -rabbitmq_suite( - name = "rabbit_mgmt_stats_SUITE", - size = "small", - deps = [ - "//deps/rabbitmq_ct_helpers:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "rabbit_mgmt_test_db_SUITE", - deps = [ - "//deps/rabbitmq_management_agent:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_mgmt_test_unit_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "rabbit_mgmt_wm_auth_SUITE", - size = "small", -) - -rabbitmq_suite( - name = "stats_SUITE", - size = "small", - deps = [ - "//deps/rabbitmq_management_agent:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - "@proper//:erlang_app", - ], -) - -# assert_suites() - -alias( - name = "rabbitmq_management", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_management/app.bzl b/deps/rabbitmq_management/app.bzl deleted file mode 100644 index f5ce4b6cc2eb..000000000000 --- a/deps/rabbitmq_management/app.bzl +++ /dev/null @@ -1,669 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":behaviours", ":other_beam"], - ) - erlang_bytecode( - name = "behaviours", - srcs = ["src/rabbit_mgmt_extension.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_management", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_mgmt_app.erl", - "src/rabbit_mgmt_cors.erl", - "src/rabbit_mgmt_csp.erl", - "src/rabbit_mgmt_db.erl", - "src/rabbit_mgmt_db_cache.erl", - "src/rabbit_mgmt_db_cache_sup.erl", - "src/rabbit_mgmt_dispatcher.erl", - "src/rabbit_mgmt_features.erl", - "src/rabbit_mgmt_headers.erl", - "src/rabbit_mgmt_hsts.erl", - "src/rabbit_mgmt_load_definitions.erl", - "src/rabbit_mgmt_login.erl", - "src/rabbit_mgmt_nodes.erl", - "src/rabbit_mgmt_oauth_bootstrap.erl", - "src/rabbit_mgmt_reset_handler.erl", - "src/rabbit_mgmt_schema.erl", - "src/rabbit_mgmt_stats.erl", - "src/rabbit_mgmt_sup.erl", - "src/rabbit_mgmt_sup_sup.erl", - "src/rabbit_mgmt_util.erl", - "src/rabbit_mgmt_wm_aliveness_test.erl", - "src/rabbit_mgmt_wm_auth.erl", - "src/rabbit_mgmt_wm_auth_attempts.erl", - "src/rabbit_mgmt_wm_binding.erl", - "src/rabbit_mgmt_wm_bindings.erl", - "src/rabbit_mgmt_wm_channel.erl", - "src/rabbit_mgmt_wm_channels.erl", - "src/rabbit_mgmt_wm_channels_vhost.erl", - "src/rabbit_mgmt_wm_cluster_name.erl", - "src/rabbit_mgmt_wm_connection.erl", - "src/rabbit_mgmt_wm_connection_channels.erl", - "src/rabbit_mgmt_wm_connection_sessions.erl", - "src/rabbit_mgmt_wm_connection_user_name.erl", - "src/rabbit_mgmt_wm_connections.erl", - "src/rabbit_mgmt_wm_connections_vhost.erl", - "src/rabbit_mgmt_wm_consumers.erl", - "src/rabbit_mgmt_wm_definitions.erl", - "src/rabbit_mgmt_wm_deprecated_features.erl", - "src/rabbit_mgmt_wm_environment.erl", - "src/rabbit_mgmt_wm_exchange.erl", - "src/rabbit_mgmt_wm_exchange_publish.erl", - "src/rabbit_mgmt_wm_exchanges.erl", - "src/rabbit_mgmt_wm_extensions.erl", - "src/rabbit_mgmt_wm_feature_flag_enable.erl", - "src/rabbit_mgmt_wm_feature_flags.erl", - "src/rabbit_mgmt_wm_global_parameter.erl", - "src/rabbit_mgmt_wm_global_parameters.erl", - "src/rabbit_mgmt_wm_hash_password.erl", - "src/rabbit_mgmt_wm_health_check_alarms.erl", - "src/rabbit_mgmt_wm_health_check_certificate_expiration.erl", - "src/rabbit_mgmt_wm_health_check_local_alarms.erl", - "src/rabbit_mgmt_wm_health_check_metadata_store_initialized.erl", - "src/rabbit_mgmt_wm_health_check_metadata_store_initialized_with_data.erl", - "src/rabbit_mgmt_wm_health_check_node_is_quorum_critical.erl", - "src/rabbit_mgmt_wm_health_check_port_listener.erl", - "src/rabbit_mgmt_wm_health_check_protocol_listener.erl", - "src/rabbit_mgmt_wm_health_check_virtual_hosts.erl", - "src/rabbit_mgmt_wm_healthchecks.erl", - "src/rabbit_mgmt_wm_limit.erl", - "src/rabbit_mgmt_wm_limits.erl", - "src/rabbit_mgmt_wm_login.erl", - "src/rabbit_mgmt_wm_node.erl", - "src/rabbit_mgmt_wm_node_memory.erl", - "src/rabbit_mgmt_wm_node_memory_ets.erl", - "src/rabbit_mgmt_wm_nodes.erl", - "src/rabbit_mgmt_wm_operator_policies.erl", - "src/rabbit_mgmt_wm_operator_policy.erl", - "src/rabbit_mgmt_wm_overview.erl", - "src/rabbit_mgmt_wm_parameter.erl", - "src/rabbit_mgmt_wm_parameters.erl", - "src/rabbit_mgmt_wm_permission.erl", - "src/rabbit_mgmt_wm_permissions.erl", - "src/rabbit_mgmt_wm_permissions_user.erl", - "src/rabbit_mgmt_wm_permissions_vhost.erl", - "src/rabbit_mgmt_wm_policies.erl", - "src/rabbit_mgmt_wm_policy.erl", - "src/rabbit_mgmt_wm_queue.erl", - "src/rabbit_mgmt_wm_queue_actions.erl", - "src/rabbit_mgmt_wm_queue_get.erl", - "src/rabbit_mgmt_wm_queue_purge.erl", - "src/rabbit_mgmt_wm_queues.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_add_member.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_delete_member.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_grow.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_shrink.erl", - "src/rabbit_mgmt_wm_quorum_queue_status.erl", - "src/rabbit_mgmt_wm_rebalance_queues.erl", - "src/rabbit_mgmt_wm_redirect.erl", - "src/rabbit_mgmt_wm_reset.erl", - "src/rabbit_mgmt_wm_static.erl", - "src/rabbit_mgmt_wm_topic_permission.erl", - "src/rabbit_mgmt_wm_topic_permissions.erl", - "src/rabbit_mgmt_wm_topic_permissions_user.erl", - "src/rabbit_mgmt_wm_topic_permissions_vhost.erl", - "src/rabbit_mgmt_wm_user.erl", - "src/rabbit_mgmt_wm_user_limit.erl", - "src/rabbit_mgmt_wm_user_limits.erl", - "src/rabbit_mgmt_wm_users.erl", - "src/rabbit_mgmt_wm_users_bulk_delete.erl", - "src/rabbit_mgmt_wm_version.erl", - "src/rabbit_mgmt_wm_vhost.erl", - "src/rabbit_mgmt_wm_vhost_deletion_protection.erl", - "src/rabbit_mgmt_wm_vhost_restart.erl", - "src/rabbit_mgmt_wm_vhosts.erl", - "src/rabbit_mgmt_wm_whoami.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_management", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/oauth2_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_behaviours", ":test_other_beam"], - ) - erlang_bytecode( - name = "test_behaviours", - testonly = True, - srcs = ["src/rabbit_mgmt_extension.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_management", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_mgmt_app.erl", - "src/rabbit_mgmt_cors.erl", - "src/rabbit_mgmt_csp.erl", - "src/rabbit_mgmt_db.erl", - "src/rabbit_mgmt_db_cache.erl", - "src/rabbit_mgmt_db_cache_sup.erl", - "src/rabbit_mgmt_dispatcher.erl", - "src/rabbit_mgmt_features.erl", - "src/rabbit_mgmt_headers.erl", - "src/rabbit_mgmt_hsts.erl", - "src/rabbit_mgmt_load_definitions.erl", - "src/rabbit_mgmt_login.erl", - "src/rabbit_mgmt_nodes.erl", - "src/rabbit_mgmt_oauth_bootstrap.erl", - "src/rabbit_mgmt_reset_handler.erl", - "src/rabbit_mgmt_schema.erl", - "src/rabbit_mgmt_stats.erl", - "src/rabbit_mgmt_sup.erl", - "src/rabbit_mgmt_sup_sup.erl", - "src/rabbit_mgmt_util.erl", - "src/rabbit_mgmt_wm_aliveness_test.erl", - "src/rabbit_mgmt_wm_auth.erl", - "src/rabbit_mgmt_wm_auth_attempts.erl", - "src/rabbit_mgmt_wm_binding.erl", - "src/rabbit_mgmt_wm_bindings.erl", - "src/rabbit_mgmt_wm_channel.erl", - "src/rabbit_mgmt_wm_channels.erl", - "src/rabbit_mgmt_wm_channels_vhost.erl", - "src/rabbit_mgmt_wm_cluster_name.erl", - "src/rabbit_mgmt_wm_connection.erl", - "src/rabbit_mgmt_wm_connection_channels.erl", - "src/rabbit_mgmt_wm_connection_sessions.erl", - "src/rabbit_mgmt_wm_connection_user_name.erl", - "src/rabbit_mgmt_wm_connections.erl", - "src/rabbit_mgmt_wm_connections_vhost.erl", - "src/rabbit_mgmt_wm_consumers.erl", - "src/rabbit_mgmt_wm_definitions.erl", - "src/rabbit_mgmt_wm_deprecated_features.erl", - "src/rabbit_mgmt_wm_environment.erl", - "src/rabbit_mgmt_wm_exchange.erl", - "src/rabbit_mgmt_wm_exchange_publish.erl", - "src/rabbit_mgmt_wm_exchanges.erl", - "src/rabbit_mgmt_wm_extensions.erl", - "src/rabbit_mgmt_wm_feature_flag_enable.erl", - "src/rabbit_mgmt_wm_feature_flags.erl", - "src/rabbit_mgmt_wm_global_parameter.erl", - "src/rabbit_mgmt_wm_global_parameters.erl", - "src/rabbit_mgmt_wm_hash_password.erl", - "src/rabbit_mgmt_wm_health_check_alarms.erl", - "src/rabbit_mgmt_wm_health_check_certificate_expiration.erl", - "src/rabbit_mgmt_wm_health_check_local_alarms.erl", - "src/rabbit_mgmt_wm_health_check_metadata_store_initialized.erl", - "src/rabbit_mgmt_wm_health_check_metadata_store_initialized_with_data.erl", - "src/rabbit_mgmt_wm_health_check_node_is_quorum_critical.erl", - "src/rabbit_mgmt_wm_health_check_port_listener.erl", - "src/rabbit_mgmt_wm_health_check_protocol_listener.erl", - "src/rabbit_mgmt_wm_health_check_virtual_hosts.erl", - "src/rabbit_mgmt_wm_healthchecks.erl", - "src/rabbit_mgmt_wm_limit.erl", - "src/rabbit_mgmt_wm_limits.erl", - "src/rabbit_mgmt_wm_login.erl", - "src/rabbit_mgmt_wm_node.erl", - "src/rabbit_mgmt_wm_node_memory.erl", - "src/rabbit_mgmt_wm_node_memory_ets.erl", - "src/rabbit_mgmt_wm_nodes.erl", - "src/rabbit_mgmt_wm_operator_policies.erl", - "src/rabbit_mgmt_wm_operator_policy.erl", - "src/rabbit_mgmt_wm_overview.erl", - "src/rabbit_mgmt_wm_parameter.erl", - "src/rabbit_mgmt_wm_parameters.erl", - "src/rabbit_mgmt_wm_permission.erl", - "src/rabbit_mgmt_wm_permissions.erl", - "src/rabbit_mgmt_wm_permissions_user.erl", - "src/rabbit_mgmt_wm_permissions_vhost.erl", - "src/rabbit_mgmt_wm_policies.erl", - "src/rabbit_mgmt_wm_policy.erl", - "src/rabbit_mgmt_wm_queue.erl", - "src/rabbit_mgmt_wm_queue_actions.erl", - "src/rabbit_mgmt_wm_queue_get.erl", - "src/rabbit_mgmt_wm_queue_purge.erl", - "src/rabbit_mgmt_wm_queues.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_add_member.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_delete_member.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_grow.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_shrink.erl", - "src/rabbit_mgmt_wm_quorum_queue_status.erl", - "src/rabbit_mgmt_wm_rebalance_queues.erl", - "src/rabbit_mgmt_wm_redirect.erl", - "src/rabbit_mgmt_wm_reset.erl", - "src/rabbit_mgmt_wm_static.erl", - "src/rabbit_mgmt_wm_topic_permission.erl", - "src/rabbit_mgmt_wm_topic_permissions.erl", - "src/rabbit_mgmt_wm_topic_permissions_user.erl", - "src/rabbit_mgmt_wm_topic_permissions_vhost.erl", - "src/rabbit_mgmt_wm_user.erl", - "src/rabbit_mgmt_wm_user_limit.erl", - "src/rabbit_mgmt_wm_user_limits.erl", - "src/rabbit_mgmt_wm_users.erl", - "src/rabbit_mgmt_wm_users_bulk_delete.erl", - "src/rabbit_mgmt_wm_version.erl", - "src/rabbit_mgmt_wm_vhost.erl", - "src/rabbit_mgmt_wm_vhost_deletion_protection.erl", - "src/rabbit_mgmt_wm_vhost_restart.erl", - "src/rabbit_mgmt_wm_vhosts.erl", - "src/rabbit_mgmt_wm_whoami.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_management", - beam = [":test_behaviours"], - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/oauth2_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = [ - "priv/schema/rabbitmq_management.schema", - "priv/www/api/index.html", - "priv/www/cli/index.html", - "priv/www/cli/rabbitmqadmin", - "priv/www/css/evil.css", - "priv/www/css/main.css", - "priv/www/favicon.ico", - "priv/www/img/bg-binary.png", - "priv/www/img/bg-green-dark.png", - "priv/www/img/bg-red.png", - "priv/www/img/bg-red-dark.png", - "priv/www/img/bg-yellow-dark.png", - "priv/www/img/collapse.png", - "priv/www/img/expand.png", - "priv/www/img/rabbitmqlogo.svg", - "priv/www/img/rabbitmqlogo-master-copy.svg", - "priv/www/index.html", - "priv/www/js/base64.js", - "priv/www/js/charts.js", - "priv/www/js/dispatcher.js", - "priv/www/js/ejs-1.0.js", - "priv/www/js/ejs-1.0.min.js", - "priv/www/js/excanvas.js", - "priv/www/js/excanvas.min.js", - "priv/www/js/formatters.js", - "priv/www/js/global.js", - "priv/www/js/jquery.flot-0.8.1.js", - "priv/www/js/jquery.flot-0.8.1.min.js", - "priv/www/js/jquery.flot-0.8.1.time.js", - "priv/www/js/jquery.flot-0.8.1.time.min.js", - "priv/www/js/jquery-3.5.1.js", - "priv/www/js/jquery-3.5.1.min.js", - "priv/www/js/json2-2016.10.28.js", - "priv/www/js/main.js", - "priv/www/js/oidc-oauth/helper.js", - "priv/www/js/oidc-oauth/login-callback.html", - "priv/www/js/oidc-oauth/logout-callback.html", - "priv/www/js/oidc-oauth/oidc-client-ts.3.0.1.min.js", - "priv/www/js/oidc-oauth/oidc-client-ts.3.0.1.min.js.map", - "priv/www/js/oidc-oauth/oidc-client-ts.js", - "priv/www/js/prefs.js", - "priv/www/js/sammy-0.7.6.js", - "priv/www/js/sammy-0.7.6.min.js", - "priv/www/js/tmpl/404.ejs", - "priv/www/js/tmpl/add-binding.ejs", - "priv/www/js/tmpl/binary.ejs", - "priv/www/js/tmpl/bindings.ejs", - "priv/www/js/tmpl/channel.ejs", - "priv/www/js/tmpl/channels.ejs", - "priv/www/js/tmpl/channels-list.ejs", - "priv/www/js/tmpl/cluster-name.ejs", - "priv/www/js/tmpl/columns-options.ejs", - "priv/www/js/tmpl/connection.ejs", - "priv/www/js/tmpl/connections.ejs", - "priv/www/js/tmpl/consumers.ejs", - "priv/www/js/tmpl/deprecated-features.ejs", - "priv/www/js/tmpl/exchange.ejs", - "priv/www/js/tmpl/exchanges.ejs", - "priv/www/js/tmpl/feature-flags.ejs", - "priv/www/js/tmpl/layout.ejs", - "priv/www/js/tmpl/limits.ejs", - "priv/www/js/tmpl/list-exchanges.ejs", - "priv/www/js/tmpl/login.ejs", - "priv/www/js/tmpl/login_oauth.ejs", - "priv/www/js/tmpl/memory.ejs", - "priv/www/js/tmpl/memory-bar.ejs", - "priv/www/js/tmpl/memory-table.ejs", - "priv/www/js/tmpl/messages.ejs", - "priv/www/js/tmpl/msg-detail-deliveries.ejs", - "priv/www/js/tmpl/msg-detail-publishes.ejs", - "priv/www/js/tmpl/node.ejs", - "priv/www/js/tmpl/overview.ejs", - "priv/www/js/tmpl/partition.ejs", - "priv/www/js/tmpl/permissions.ejs", - "priv/www/js/tmpl/policies.ejs", - "priv/www/js/tmpl/policy.ejs", - "priv/www/js/tmpl/popup.ejs", - "priv/www/js/tmpl/publish.ejs", - "priv/www/js/tmpl/queue.ejs", - "priv/www/js/tmpl/queues.ejs", - "priv/www/js/tmpl/rate-options.ejs", - "priv/www/js/tmpl/registry.ejs", - "priv/www/js/tmpl/sessions-list.ejs", - "priv/www/js/tmpl/status.ejs", - "priv/www/js/tmpl/topic-permissions.ejs", - "priv/www/js/tmpl/user.ejs", - "priv/www/js/tmpl/users.ejs", - "priv/www/js/tmpl/vhost.ejs", - "priv/www/js/tmpl/vhosts.ejs", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_mgmt_app.erl", - "src/rabbit_mgmt_cors.erl", - "src/rabbit_mgmt_csp.erl", - "src/rabbit_mgmt_db.erl", - "src/rabbit_mgmt_db_cache.erl", - "src/rabbit_mgmt_db_cache_sup.erl", - "src/rabbit_mgmt_dispatcher.erl", - "src/rabbit_mgmt_extension.erl", - "src/rabbit_mgmt_features.erl", - "src/rabbit_mgmt_headers.erl", - "src/rabbit_mgmt_hsts.erl", - "src/rabbit_mgmt_load_definitions.erl", - "src/rabbit_mgmt_login.erl", - "src/rabbit_mgmt_nodes.erl", - "src/rabbit_mgmt_oauth_bootstrap.erl", - "src/rabbit_mgmt_reset_handler.erl", - "src/rabbit_mgmt_schema.erl", - "src/rabbit_mgmt_stats.erl", - "src/rabbit_mgmt_sup.erl", - "src/rabbit_mgmt_sup_sup.erl", - "src/rabbit_mgmt_util.erl", - "src/rabbit_mgmt_wm_aliveness_test.erl", - "src/rabbit_mgmt_wm_auth.erl", - "src/rabbit_mgmt_wm_auth_attempts.erl", - "src/rabbit_mgmt_wm_binding.erl", - "src/rabbit_mgmt_wm_bindings.erl", - "src/rabbit_mgmt_wm_channel.erl", - "src/rabbit_mgmt_wm_channels.erl", - "src/rabbit_mgmt_wm_channels_vhost.erl", - "src/rabbit_mgmt_wm_cluster_name.erl", - "src/rabbit_mgmt_wm_connection.erl", - "src/rabbit_mgmt_wm_connection_channels.erl", - "src/rabbit_mgmt_wm_connection_sessions.erl", - "src/rabbit_mgmt_wm_connection_user_name.erl", - "src/rabbit_mgmt_wm_connections.erl", - "src/rabbit_mgmt_wm_connections_vhost.erl", - "src/rabbit_mgmt_wm_consumers.erl", - "src/rabbit_mgmt_wm_definitions.erl", - "src/rabbit_mgmt_wm_deprecated_features.erl", - "src/rabbit_mgmt_wm_environment.erl", - "src/rabbit_mgmt_wm_exchange.erl", - "src/rabbit_mgmt_wm_exchange_publish.erl", - "src/rabbit_mgmt_wm_exchanges.erl", - "src/rabbit_mgmt_wm_extensions.erl", - "src/rabbit_mgmt_wm_feature_flag_enable.erl", - "src/rabbit_mgmt_wm_feature_flags.erl", - "src/rabbit_mgmt_wm_global_parameter.erl", - "src/rabbit_mgmt_wm_global_parameters.erl", - "src/rabbit_mgmt_wm_hash_password.erl", - "src/rabbit_mgmt_wm_health_check_alarms.erl", - "src/rabbit_mgmt_wm_health_check_certificate_expiration.erl", - "src/rabbit_mgmt_wm_health_check_local_alarms.erl", - "src/rabbit_mgmt_wm_health_check_metadata_store_initialized.erl", - "src/rabbit_mgmt_wm_health_check_metadata_store_initialized_with_data.erl", - "src/rabbit_mgmt_wm_health_check_node_is_quorum_critical.erl", - "src/rabbit_mgmt_wm_health_check_port_listener.erl", - "src/rabbit_mgmt_wm_health_check_protocol_listener.erl", - "src/rabbit_mgmt_wm_health_check_virtual_hosts.erl", - "src/rabbit_mgmt_wm_healthchecks.erl", - "src/rabbit_mgmt_wm_limit.erl", - "src/rabbit_mgmt_wm_limits.erl", - "src/rabbit_mgmt_wm_login.erl", - "src/rabbit_mgmt_wm_node.erl", - "src/rabbit_mgmt_wm_node_memory.erl", - "src/rabbit_mgmt_wm_node_memory_ets.erl", - "src/rabbit_mgmt_wm_nodes.erl", - "src/rabbit_mgmt_wm_operator_policies.erl", - "src/rabbit_mgmt_wm_operator_policy.erl", - "src/rabbit_mgmt_wm_overview.erl", - "src/rabbit_mgmt_wm_parameter.erl", - "src/rabbit_mgmt_wm_parameters.erl", - "src/rabbit_mgmt_wm_permission.erl", - "src/rabbit_mgmt_wm_permissions.erl", - "src/rabbit_mgmt_wm_permissions_user.erl", - "src/rabbit_mgmt_wm_permissions_vhost.erl", - "src/rabbit_mgmt_wm_policies.erl", - "src/rabbit_mgmt_wm_policy.erl", - "src/rabbit_mgmt_wm_queue.erl", - "src/rabbit_mgmt_wm_queue_actions.erl", - "src/rabbit_mgmt_wm_queue_get.erl", - "src/rabbit_mgmt_wm_queue_purge.erl", - "src/rabbit_mgmt_wm_queues.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_add_member.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_delete_member.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_grow.erl", - "src/rabbit_mgmt_wm_quorum_queue_replicas_shrink.erl", - "src/rabbit_mgmt_wm_quorum_queue_status.erl", - "src/rabbit_mgmt_wm_rebalance_queues.erl", - "src/rabbit_mgmt_wm_redirect.erl", - "src/rabbit_mgmt_wm_reset.erl", - "src/rabbit_mgmt_wm_static.erl", - "src/rabbit_mgmt_wm_topic_permission.erl", - "src/rabbit_mgmt_wm_topic_permissions.erl", - "src/rabbit_mgmt_wm_topic_permissions_user.erl", - "src/rabbit_mgmt_wm_topic_permissions_vhost.erl", - "src/rabbit_mgmt_wm_user.erl", - "src/rabbit_mgmt_wm_user_limit.erl", - "src/rabbit_mgmt_wm_user_limits.erl", - "src/rabbit_mgmt_wm_users.erl", - "src/rabbit_mgmt_wm_users_bulk_delete.erl", - "src/rabbit_mgmt_wm_version.erl", - "src/rabbit_mgmt_wm_vhost.erl", - "src/rabbit_mgmt_wm_vhost_deletion_protection.erl", - "src/rabbit_mgmt_wm_vhost_restart.erl", - "src/rabbit_mgmt_wm_vhosts.erl", - "src/rabbit_mgmt_wm_whoami.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbit_mgmt.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-APACHE2-excanvas", - "LICENSE-BSD-base64js", - "LICENSE-ISC-cowboy", - "LICENSE-MIT-EJS", - "LICENSE-MIT-Flot", - "LICENSE-MIT-Sammy", - "LICENSE-MIT-jQuery", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "rabbit_mgmt_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_schema_SUITE.erl"], - outs = ["test/rabbit_mgmt_schema_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "cache_SUITE_beam_files", - testonly = True, - srcs = ["test/cache_SUITE.erl"], - outs = ["test/cache_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) - erlang_bytecode( - name = "clustering_SUITE_beam_files", - testonly = True, - srcs = ["test/clustering_SUITE.erl"], - outs = ["test/clustering_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "clustering_prop_SUITE_beam_files", - testonly = True, - srcs = ["test/clustering_prop_SUITE.erl"], - outs = ["test/clustering_prop_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app", "@proper//:erlang_app"], - ) - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "listener_config_SUITE_beam_files", - testonly = True, - srcs = ["test/listener_config_SUITE.erl"], - outs = ["test/listener_config_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_mgmt_http_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_http_SUITE.erl"], - outs = ["test/rabbit_mgmt_http_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_mgmt_http_health_checks_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_http_health_checks_SUITE.erl"], - outs = ["test/rabbit_mgmt_http_health_checks_SUITE.beam"], - hdrs = ["include/rabbit_mgmt.hrl"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_mgmt_only_http_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_only_http_SUITE.erl"], - outs = ["test/rabbit_mgmt_only_http_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_mgmt_rabbitmqadmin_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_rabbitmqadmin_SUITE.erl"], - outs = ["test/rabbit_mgmt_rabbitmqadmin_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_mgmt_stats_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_stats_SUITE.erl"], - outs = ["test/rabbit_mgmt_stats_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbitmq_management_agent:erlang_app", "@proper//:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_mgmt_test_db_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_test_db_SUITE.erl"], - outs = ["test/rabbit_mgmt_test_db_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_ct_helpers:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - ], - ) - erlang_bytecode( - name = "rabbit_mgmt_test_unit_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_test_unit_SUITE.erl"], - outs = ["test/rabbit_mgmt_test_unit_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_mgmt_wm_auth_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_wm_auth_SUITE.erl"], - outs = ["test/rabbit_mgmt_wm_auth_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "stats_SUITE_beam_files", - testonly = True, - srcs = ["test/stats_SUITE.erl"], - outs = ["test/stats_SUITE.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbitmq_management_agent:erlang_app", "@proper//:erlang_app"], - ) - erlang_bytecode( - name = "test_rabbit_mgmt_runtime_parameters_util_beam", - testonly = True, - srcs = ["test/rabbit_mgmt_runtime_parameters_util.erl"], - outs = ["test/rabbit_mgmt_runtime_parameters_util.beam"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_mgmt_http_vhost_deletion_protection_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_http_vhost_deletion_protection_SUITE.erl"], - outs = ["test/rabbit_mgmt_http_vhost_deletion_protection_SUITE.beam"], - hdrs = ["include/rabbit_mgmt.hrl"], - app_name = "rabbitmq_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) diff --git a/deps/rabbitmq_management/priv/www/css/dark.css b/deps/rabbitmq_management/priv/www/css/dark.css new file mode 100644 index 000000000000..5ef094168cd6 --- /dev/null +++ b/deps/rabbitmq_management/priv/www/css/dark.css @@ -0,0 +1,282 @@ +:root { + color-scheme: dark; + + --color-black-100: #ddd; + + --color-grey-300: #666; + --color-grey-400: #444; + --color-grey-450: #555; + --color-grey-500: #777; + --color-grey-600: #999; + --color-grey-700: #bbb; + --color-grey-800: #ddd; + --color-grey-900: #f0f0f0; + + --color-white-100: #141414; + --color-white-200: #111; + --color-white-300: #222; + --color-white-400: #333; + --color-white-500: #444; + --color-white-600: #555; + --color-white-700: #666; + --color-white-800: #777; + + --color-orange-400: #cc4520; + --color-orange-500: #c05000; + + --color-red-300: #cc6262; + --color-red-400: #cc6666; + --color-red-500: #cc0000; + --color-red-600: #b23737; + --color-red-700: #733333; + + --color-green-300: #328f32; + --color-green-400: #2a8f5e; + --color-green-450: #5faa4d; + --color-green-500: #4a8a3a; + + --color-aqua-300: #2b6a80; + + --color-blue-300: #aaccff; + + --color-magenta-300: #99aaff; + --color-magenta-500: #6688cc; + --color-magenta-600: #7a4a8a; + + --color-pink-300: #b38fcc; + --color-pink-500: #cc3a8a; + + --color-yellow-200: #cc9900; + --color-yellow-300: #cccc4a; + --color-yellow-350: #cc8800; + --color-yellow-400: #aa8a4a; + --color-yellow-450: #b2b266; + --color-yellow-500: #cc8800; + + --color-purple-300: #6a7aaa; + --color-purple-400: #4a5faa; + --color-purple-700: #3a1f4a; + + --default-text-color: var(--color-grey-900); + --dafault-background-color: var(--color-white-100); + + --a-default-text-color: var(--color-grey-800); + --a-default-hover-text-color: var(--color-orange-500); + + --versions-abbr-background-color: var(--color-white-500); + + --status-error-text-color: var(--color-red-500); + --status-timeout-text-color: var(--color-aqua-300); + + --debug-p-text-color: var(--color-white-100); + --debug-p-background-color: var(--color-orange-500); + + --header-background-color: var(--color-white-100); + --header-bottom-separator-color: var(--color-grey-700); + + --menu-a-hover-text-color: var(--color-white-100); + --menu-a-hover-background-color: var(--color-orange-500); + + --menu-a-selected-text-color: var(--color-white-100); + --menu-a-selected-background-color: var(--color-grey-700); + + --rhs-background-color: var(--color-white-100); + + --rhs-a-hover-text-color: var(--color-white-100); + --rhs-a-hover-background-color: var(--color-orange-500); + --rhs-a-selected-text-color: var(--color-white-100); + --rhs-a-selected-background-color: var(--color-grey-700); + + --bold-text-color: var(--color-black-100); + + --popup-options-link-background-color: var(--color-white-600); + + --popup-owner-text-color: var(--color-white-100); + --popup-owner-background-color: var(--color-orange-500); + + --rate-visibility-option-background-color: var(--color-white-400); + --rate-visibility-option-border-color: var(--color-white-500); + + --rate-visibility-option-hover-background-color: var(--color-blue-300); + --rate-visibility-option-hover-background-gradient-first-color: var(--color-blue-300); + --rate-visibility-option-hover-background-gradient-second-color: var(--color-magenta-300); + --rate-visibility-option-hover-border-color: var(--color-magenta-500); + + --rate-visibility-option-hidden--text-color: var(--color-grey-600); + + --tag-link-text-color: var(--color-grey-800); + --tag-link-hover-text-color: var(--color-orange-500); + --argument-link-text-color: var(--color-grey-800); + --argument-link-hover-text-color: var(--color-orange-500); + + --filter-p-warning-background-color: var(--color-yellow-350); + --filter-active-background-color: var(--color-aqua-300); + --filter-highlight-background-color: var(--color-aqua-300); + + --table-th-text-color: var(--color-black-100); + + --table-list-th-border-color: var(--color-white-700); + --table-list-td-border-color: var(--color-white-700); + + --table-list-td-a-text-color: var(--color-black-100); + --table-list-td-a-hover-text-color: var(--color-orange-500); + + --table-list-th-a-sort-text-color: var(--color-black-100); + --table-list-th-a-sort-text-color-arrow: var(--color-orange-500); + + --table-argument-links-default-color: var(--color-grey-600); + + --table-facts-and-legend-header-text-color: var(--color-black-100); + --table-facts-and-legend-header-border-color: var(--color-white-700); + + --table-row-alt1-background-color: var(--color-white-800); + --table-row-alt1-background-gradient-first-color: var(--color-white-500); + --table-row-alt1-background-gradient-second-color: var(--color-white-300); + + --table-row-alt2-background-color: var(--color-white-100); + --table-row-alt2-background-gradient-first-color: var(--color-white-200); + --table-row-alt2-background-gradient-second-color: var(--color-white-100); + + --main-internal-purpose-default-text-color: var(--color-grey-500); + + --div-memory-bar-border-color: var(--color-grey-400); + + --sub-text-color: var(--color-grey-600); + --small-text-color: var(--color-grey-600); + + --main-sub-a-text-color: var(--color-grey-600); + --main-sub-a-hover-text-color: var(--color-grey-800); + + --unknown-text-color: var(--color-grey-600); + + --form-popup-options-background-color: var(--color-white-800); + --form-popup-options-border-color: var(--color-white-700); + + --form-popup-warning-background-color: var(--color-yellow-200); + + --form-popup-options-span-text-color: var(--color-white-100); + --form-popup-options-span-background-color: var(--color-grey-700); + --form-popup-options-span-hover-background-color: var(--color-orange-500); + + --highlight-text-color: var(--color-grey-600); + --highlight-background-color: var(--color-grey-400); + + --highlight-strong-text-color: var(--color-grey-800); + + --highlight-background-gradient-first-color: var(--color-white-500); + --highlight-background-gradient-second-color: var(--color-white-300); + + --highlight-border-color: var(--color-white-300); + + --section-h2-hover-text-color: var(--color-black-100); + --section-invisible-h2-background-color: var(--color-white-100); + --section-visible-h2-background-color: var(--color-white-200); + + --input-border-color: var(--color-white-700); + --textarea-border-color: var(--color-white-700); + + --man-d-text-color: var(--color-red-400); + + --multifield-sub-border-color: var(--color-grey-400); + --multifield-sub-background-color: var(--color-white-200); + + --label-radio-and-chackbox-border-color: var(--color-white-700); + + --label-toggle-background-color: var(--color-orange-400); + --label-toggle-after-background-color: var(--color-white-100); + + --input-toggle-intermediate-background-color: var(--color-yellow-500); + + --input-toggle-checked-background-color: var(--color-green-400); + + --grey-background-color: var(--color-white-500); + --yellow-background-color: var(--color-yellow-300); + + --input-submit-text-color: var(--color-white-100); + --input-submit-background-color: var(--color-grey-700); + + --input-submit-hover-background-color: var(--color-orange-500); + + --button-disabled-background-color: var(--color-grey-500); + --button-disabled-hover-background-color: var(--color-grey-500); + + --h3-bottom-border-color: var(--color-white-600); + + --abbr-background-color: var(--color-aqua-300); + --abbr-warning-background-color: var(--color-red-500); + + --abbr-status-grey-background-color: var(--color-grey-400); + --abbr-status-green-background-color: var(--color-green-300); + --abbr-status-yellow-background-color: var(--color-yellow-300); + --abbr-status-red-text-color: var(--color-white-100); + --abbr-status-red-background-color: var(--color-red-300); + + --abbr-type-bottom-border-color: var(--color-grey-400); + + --footer-border-color: var(--color-grey-700); + + /* Bindings wrapper colors */ + + --bindings-wrapper-span-exchange-border-color: var(--color-grey-450); + --bindings-wrapper-span-queue-border-color: var(--color-grey-700); + --bindings-wrapper-td-span-queue-and-exchange-background-color: var(--color-white-100); + + /* Status colors */ + + --status-grey-background-color: var(--color-grey-400); + + --status-red-text-color: var(--color-white-100); + --status-red-background-color: var(--color-red-300); + + --status-yellow-background-color: var(--color-yellow-300); + + --status-green-background-color: var(--color-green-300); + + --status-red-dark-text-color: var(--color-white-100); + --status-red-dark-background-color: var(--color-red-600); + + --status-red-and-dark-red-childs-text-color: var(--color-white-100); + + /* Memory colors */ + + --memory-classic-background-color: var(--color-purple-700); + --memory-classic-right-border-color: var(--color-grey-450); + + --memory-quorum-background-color: var(--color-magenta-600); + --memory-quorum-right-border-color: var(--color-grey-450); + + --memory-stream-background-color: var(--color-pink-300); + --memory-stream-right-border-color: var(--color-grey-450); + + --memory-binary-background-image: url(../img/bg-binary.png); + --memory-binary-right-border-color: var(--color-pink-500); + + --memory-conn-background-color: var(--color-yellow-400); + --memory-conn-right-border-color: var(--color-yellow-450); + + --memory-proc-background-color: var(--color-green-500); + --memory-proc-right-border-color: var(--color-green-450); + + --memory-table-background-color: var(--color-purple-400); + --memory-table-right-border-color: var(--color-purple-300); + + --memory-system-background-color: var(--color-grey-300); + --memory-system-right-border-color: var(--color-grey-450); + + --memory-unused-background-color: var(--color-red-700); + --memory-unused-right-border-color: var(--color-grey-450); +} + +/* Theme switcher */ + +.theme-switcher[x-scheme="auto"]:after { + filter: invert(1); +} + +.theme-switcher[x-scheme="dark"]:after { + filter: invert(1); +} + +.theme-switcher[x-scheme="light"]:after { + filter: invert(1); +} diff --git a/deps/rabbitmq_management/priv/www/css/light.css b/deps/rabbitmq_management/priv/www/css/light.css new file mode 100644 index 000000000000..baf838cffa09 --- /dev/null +++ b/deps/rabbitmq_management/priv/www/css/light.css @@ -0,0 +1,282 @@ +:root { + color-scheme: light; + + --color-black-100: #000; + + --color-grey-300: #999; + --color-grey-400: #ddd; + --color-grey-450: #bbb; + --color-grey-500: #aaa; + --color-grey-600: #888; + --color-grey-700: #666; + --color-grey-800: #444; + --color-grey-900: #484848; + + --color-white-100: #fff; + --color-white-200: #f8f8f8; + --color-white-300: #e0e0e0; + --color-white-400: #fafafa; + --color-white-500: #f0f0f0; + --color-white-600: #e4e4e4; + --color-white-700: #ccc; + --color-white-800: #eee; + + --color-orange-400: #ff5630; + --color-orange-500: #f60; + + --color-red-300: #ff7a7a; + --color-red-400: #f88; + --color-red-500: #f00; + --color-red-600: #e24545; + --color-red-700: #955; + + --color-green-300: #98f898; + --color-green-400: #36b37e; + --color-green-450: #79da66; + --color-green-500: #6abf59; + + --color-aqua-300: #99ebff; + + --color-blue-300: #ddf; + + --color-magenta-300: #bbf; + --color-magenta-500: #88d; + --color-magenta-600: #9B59B6; + + --color-pink-300: #D7BDE2; + --color-pink-500: #eb50a6; + + --color-yellow-200: #ff9; + --color-yellow-300: #ffff7b; + --color-yellow-350: #ff8; + --color-yellow-400: #dada66; + --color-yellow-450: #ebeb8d; + --color-yellow-500: #ffab00; + + --color-purple-300: #8d9ceb; + --color-purple-400: #6679da; + --color-purple-700: #512E5F; + + --default-text-color: var(--color-grey-900); + --dafault-background-color: var(--color-white-100); + + --a-default-text-color: var(--color-grey-800); + --a-default-hover-text-color: var(--color-orange-500); + + --versions-abbr-background-color: var(--color-white-500); + + --status-error-text-color: var(--color-red-500); + --status-timeout-text-color: var(--color-aqua-300); + + --debug-p-text-color: var(--color-white-100); + --debug-p-background-color: var(--color-orange-500); + + --header-background-color: var(--color-white-100); + --header-bottom-separator-color: var(--color-grey-700); + + --menu-a-hover-text-color: var(--color-white-100); + --menu-a-hover-background-color: var(--color-orange-500); + + --menu-a-selected-text-color: var(--color-white-100); + --menu-a-selected-background-color: var(--color-grey-700); + + --rhs-background-color: var(--color-white-100); + + --rhs-a-hover-text-color: var(--color-white-100); + --rhs-a-hover-background-color: var(--color-orange-500); + --rhs-a-selected-text-color: var(--color-white-100); + --rhs-a-selected-background-color: var(--color-grey-700); + + --bold-text-color: var(--color-black-100); + + --popup-options-link-background-color: var(--color-white-600); + + --popup-owner-text-color: var(--color-white-100); + --popup-owner-background-color: var(--color-orange-500); + + --rate-visibility-option-background-color: var(--color-white-400); + --rate-visibility-option-border-color: var(--color-white-500); + + --rate-visibility-option-hover-background-color: var(--color-blue-300); + --rate-visibility-option-hover-background-gradient-first-color: var(--color-blue-300); + --rate-visibility-option-hover-background-gradient-second-color: var(--color-magenta-300); + --rate-visibility-option-hover-border-color: var(--color-magenta-500); + + --rate-visibility-option-hidden--text-color: var(--color-grey-600); + + --tag-link-text-color: var(--color-grey-800); + --tag-link-hover-text-color: var(--color-orange-500); + --argument-link-text-color: var(--color-grey-800); + --argument-link-hover-text-color: var(--color-orange-500); + + --filter-p-warning-background-color: var(--color-yellow-350); + --filter-active-background-color: var(--color-aqua-300); + --filter-highlight-background-color: var(--color-aqua-300); + + --table-th-text-color: var(--color-black-100); + + --table-list-th-border-color: var(--color-white-700); + --table-list-td-border-color: var(--color-white-700); + + --table-list-td-a-text-color: var(--color-black-100); + --table-list-td-a-hover-text-color: var(--color-orange-500); + + --table-list-th-a-sort-text-color: var(--color-black-100); + --table-list-th-a-sort-text-color-arrow: var(--color-orange-500); + + --table-argument-links-default-color: var(--color-grey-600); + + --table-facts-and-legend-header-text-color: var(--color-black-100); + --table-facts-and-legend-header-border-color: var(--color-white-700); + + --table-row-alt1-background-color: var(--color-white-800); + --table-row-alt1-background-gradient-first-color: var(--color-white-500); + --table-row-alt1-background-gradient-second-color: var(--color-white-300); + + --table-row-alt2-background-color: var(--color-white-100); + --table-row-alt2-background-gradient-first-color: var(--color-white-200); + --table-row-alt2-background-gradient-second-color: var(--color-white-100); + + --main-internal-purpose-default-text-color: var(--color-grey-500); + + --div-memory-bar-border-color: var(--color-grey-400); + + --sub-text-color: var(--color-grey-600); + --small-text-color: var(--color-grey-600); + + --main-sub-a-text-color: var(--color-grey-600); + --main-sub-a-hover-text-color: var(--color-grey-800); + + --unknown-text-color: var(--color-grey-600); + + --form-popup-options-background-color: var(--color-white-800); + --form-popup-options-border-color: var(--color-white-700); + + --form-popup-warning-background-color: var(--color-yellow-200); + + --form-popup-options-span-text-color: var(--color-white-100); + --form-popup-options-span-background-color: var(--color-grey-700); + --form-popup-options-span-hover-background-color: var(--color-orange-500); + + --highlight-text-color: var(--color-grey-600); + --highlight-background-color: var(--color-grey-400); + + --highlight-strong-text-color: var(--color-grey-800); + + --highlight-background-gradient-first-color: var(--color-white-500); + --highlight-background-gradient-second-color: var(--color-white-300); + + --highlight-border-color: var(--color-white-300); + + --section-h2-hover-text-color: var(--color-black-100); + --section-invisible-h2-background-color: var(--color-white-100); + --section-visible-h2-background-color: var(--color-white-200); + + --input-border-color: var(--color-white-700); + --textarea-border-color: var(--color-white-700); + + --man-d-text-color: var(--color-red-400); + + --multifield-sub-border-color: var(--color-grey-400); + --multifield-sub-background-color: var(--color-white-200); + + --label-radio-and-chackbox-border-color: var(--color-white-700); + + --label-toggle-background-color: var(--color-orange-400); + --label-toggle-after-background-color: var(--color-white-100); + + --input-toggle-intermediate-background-color: var(--color-yellow-500); + + --input-toggle-checked-background-color: var(--color-green-400); + + --grey-background-color: var(--color-white-500); + --yellow-background-color: var(--color-yellow-300); + + --input-submit-text-color: var(--color-white-100); + --input-submit-background-color: var(--color-grey-700); + + --input-submit-hover-background-color: var(--color-orange-500); + + --button-disabled-background-color: var(--color-grey-500); + --button-disabled-hover-background-color: var(--color-grey-500); + + --h3-bottom-border-color: var(--color-white-600); + + --abbr-background-color: var(--color-aqua-300); + --abbr-warning-background-color: var(--color-red-500); + + --abbr-status-grey-background-color: var(--color-grey-400); + --abbr-status-green-background-color: var(--color-green-300); + --abbr-status-yellow-background-color: var(--color-yellow-300); + --abbr-status-red-text-color: var(--color-white-100); + --abbr-status-red-background-color: var(--color-red-300); + + --abbr-type-bottom-border-color: var(--color-grey-400); + + --footer-border-color: var(--color-grey-700); + + /* Bindings wrapper colors */ + + --bindings-wrapper-span-exchange-border-color: var(--color-grey-450); + --bindings-wrapper-span-queue-border-color: var(--color-grey-700); + --bindings-wrapper-td-span-queue-and-exchange-background-color: var(--color-white-100); + + /* Status colors */ + + --status-grey-background-color: var(--color-grey-400); + + --status-red-text-color: var(--color-white-100); + --status-red-background-color: var(--color-red-300); + + --status-yellow-background-color: var(--color-yellow-300); + + --status-green-background-color: var(--color-green-300); + + --status-red-dark-text-color: var(--color-white-100); + --status-red-dark-background-color: var(--color-red-600); + + --status-red-and-dark-red-childs-text-color: var(--color-white-100); + + /* Memory colors */ + + --memory-classic-background-color: var(--color-purple-700); + --memory-classic-right-border-color: var(--color-grey-450); + + --memory-quorum-background-color: var(--color-magenta-600); + --memory-quorum-right-border-color: var(--color-grey-450); + + --memory-stream-background-color: var(--color-pink-300); + --memory-stream-right-border-color: var(--color-grey-450); + + --memory-binary-background-image: url(../img/bg-binary.png); + --memory-binary-right-border-color: var(--color-pink-500); + + --memory-conn-background-color: var(--color-yellow-400); + --memory-conn-right-border-color: var(--color-yellow-450); + + --memory-proc-background-color: var(--color-green-500); + --memory-proc-right-border-color: var(--color-green-450); + + --memory-table-background-color: var(--color-purple-400); + --memory-table-right-border-color: var(--color-purple-300); + + --memory-system-background-color: var(--color-grey-300); + --memory-system-right-border-color: var(--color-grey-450); + + --memory-unused-background-color: var(--color-red-700); + --memory-unused-right-border-color: var(--color-grey-450); +} + +/* Theme switcher */ + +.theme-switcher[x-scheme="auto"]:after { + filter: invert(0); +} + +.theme-switcher[x-scheme="dark"]:after { + filter: invert(0); +} + +.theme-switcher[x-scheme="light"]:after { + filter: invert(0); +} diff --git a/deps/rabbitmq_management/priv/www/css/main.css b/deps/rabbitmq_management/priv/www/css/main.css index d03933845bdb..754a843ae3ae 100644 --- a/deps/rabbitmq_management/priv/www/css/main.css +++ b/deps/rabbitmq_management/priv/www/css/main.css @@ -1,8 +1,8 @@ -body { font: 12px Verdana, sans-serif; color: #484848; padding: 0; margin: 0; } +body { font: 12px Verdana, sans-serif; color: var(--default-text-color); background-color: var(--dafault-background-color); padding: 0; margin: 0; } input, button, a.button { font: 12px Verdana, sans-serif; } -a { font-weight: bold; color: #444; text-decoration: none; } -a:hover { color: #F60; } +a { font-weight: bold; color: var(--a-default-text-color); text-decoration: none; } +a:hover { color: var(--a-default-hover-text-color); } #outer { padding: 0 0 1em 0; width: 95%; margin: auto; } @@ -12,16 +12,16 @@ a:hover { color: #F60; } #logo { padding: 0 0 2em 0; } #logo img { margin: 1em 0 -0.3em 1em; border: none; } -#versions abbr { background: #f0f0f0; margin: 0 0 0 1em; } +#versions abbr { background: var(--versions-abbr-background-color); margin: 0 0 0 1em; } .status-ok { } -.status-error { color: #F00; } -.status-timeout { color: #99EBFF; } +.status-error { color: var(--status-error-text-color); } +.status-timeout { color: var(--status-timeout-text-color); } #debug { position: fixed; bottom: 0; z-index: 9; width: 100%; text-align: center; padding: 0; margin: 0; } -#debug p { background: #F60; color: white; margin: 0; padding: 1em; font-size: 2em; } +#debug p { background: var(--debug-p-background-color); color: var(--debug-p-text-color); margin: 0; padding: 1em; font-size: 2em; } -#header { background: white; position: fixed; z-index: 1; width: 95%; margin: auto; padding: 1em 0 0 0; border-bottom: 1px solid #666; } +#header { background: var(--header-background-color); position: fixed; z-index: 1; width: 95%; margin: auto; padding: 1em 0 0 0; border-bottom: 1px solid var(--header-bottom-separator-color); } #topnav { float: right; padding: 0; margin: 0; list-style-type: none; } #topnav form { display: inline; } @@ -33,23 +33,23 @@ a:hover { color: #F60; } #menu ul { padding: 0; margin: 0; overflow: auto; } #menu li { float: left; list-style-type: none; padding: 0 0.1em 0 0; } #menu li a { display: block; padding: 0.7em 1.3em; margin-right: 5px; } -#menu a:hover { background-color: #F60; color: white; -moz-border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0; } -#menu a.selected { background-color: #666; color: white; -moz-border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0; } +#menu a:hover { background-color: var(--menu-a-hover-background-color); color: var(--menu-a-hover-text-color); -moz-border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0; } +#menu a.selected { background-color: var(--menu-a-selected-background-color); color: var(--menu-a-selected-text-color); -moz-border-radius: 8px 8px 0 0; border-radius: 8px 8px 0 0; } #vhost-form { float: right; padding: 0; margin: 0; } #main { padding-top: 10em; } #main.with-rhs { margin-right: 210px; } #main.with-warnings { padding-top: 18em; } -#rhs { float: right; width: 200px; background-color: white; position: relative; padding-top: 10em; } +#rhs { float: right; width: 200px; background-color: var(--rhs-background-color); position: relative; padding-top: 10em; } #rhs.with-warnings { padding-top: 18em; } #rhs ul { padding: 0; margin: 10px 0 0 0; } #rhs li { list-style-type: none; padding: 0; margin-bottom: 5px; } #rhs a { display: block; padding: 0.7em; font-weight: bold; text-decoration: none; } -#rhs a:hover { background-color: #F60; color: white; -moz-border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px; } -#rhs a.selected { background-color: #666; color: white; -moz-border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px; } +#rhs a:hover { background-color: var(--rhs-a-hover-background-color); color: var(--rhs-a-hover-text-color); -moz-border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px; } +#rhs a.selected { background-color: var(--rhs-a-selected-background-color); color: var(--rhs-a-selected-text-color); -moz-border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px; } h1 { font-size: 2em; font-weight: normal; padding: 0; margin-bottom: 0; } -b, dt { color: black; font-weight: normal; } +b, dt { color: var(--bold-text-color); font-weight: normal; } dd { margin-bottom: 5px; } div.box, div.section, div.section-hidden { overflow: auto; width: 100%; } @@ -61,53 +61,56 @@ div.box, div.section, div.section-hidden { overflow: auto; width: 100%; } .help:after { content: '?'; } .help, -.popup-options-link { background-color: #E4E4E4; padding: 2px 4px; cursor: pointer; } +.popup-options-link { background-color: var(--popup-options-link-background-color); padding: 2px 4px; cursor: pointer; } table th .help, table th .popup-options-link { border: none; } .help:hover, .popup-options-link:hover, -.popup-owner { background-color: #F60; color: white; } +.popup-owner { background-color: var(--popup-owner-background-color); color: var(--popup-owner-text-color); } -.rate-visibility-option { cursor: pointer; padding: 4px; background: #fafafa; border: 1px solid #f0f0f0; border-radius: 3px; display:block; } -.rate-visibility-option:hover { background: #ddf; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ddf),color-stop(1, #bbf)); - border: 1px solid #88d; +.rate-visibility-option { cursor: pointer; padding: 4px; background: var(--rate-visibility-option-background-color); border: 1px solid var(--rate-visibility-option-border-color); border-radius: 3px; display:block; } +.rate-visibility-option:hover { background: var(--rate-visibility-option-hover-background-color); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, var(--rate-visibility-option-hover-background-gradient-first-color)),color-stop(1, var(--rate-visibility-option-hover-background-gradient-second-color))); + border: 1px solid var(--rate-visibility-option-hover-border-color); border-radius: 3px; } -.rate-visibility-option-hidden { text-decoration: line-through; color: #888; } +.rate-visibility-option-hidden { text-decoration: line-through; color: var(--rate-visibility-option-hidden--text-color); } table.legend { float: left; } table.legend th { padding: 4px 10px 4px 0; width: 80px; } table.legend td { padding: 4px 0 4px 10px; width: 130px; } -.tag-link, .argument-link { color: #444; cursor: pointer; font-weight: bold; } -.tag-link:hover, .argument-link:hover { color: #F60; } +.tag-link { color: var(--tag-link-text-color); cursor: pointer; font-weight: bold; } +.tag-link:hover { color: var(--tag-link-hover-text-color); } +.argument-link { color: var(--argument-link-text-color); cursor: pointer; font-weight: bold; } +.argument-link:hover { color: var(--argument-link-hover-text-color); } .filter { overflow: auto; width: 100%; margin-bottom: 10px; } .filter table { float: left; } .filter label { margin-top: 4px;} .filter input#filter-regex-mode { vertical-align: middle; } .filter p#filter-truncate { float: right; padding: 4px; margin: 0; } -.filter p.filter-warning { border-radius: 5px; background: #ff8; } -.filter-active { background: #99EBFF; border-radius: 5px; } -.filter-highlight { background: #99EBFF; } +.filter p.filter-warning { border-radius: 5px; background: var(--filter-p-warning-background-color); } +.filter-active { background: var(--filter-active-background-color); border-radius: 5px; } +.filter-highlight { background: var(--filter-highlight-background-color); } input#truncate { width: 50px; text-align: right; } table { border-collapse: collapse; } -table th { font-weight: normal; color: black; padding: 6px 5px 5px 5px; line-height: 1em; } +table th { font-weight: normal; color: var(--table-th-text-color); padding: 6px 5px 5px 5px; line-height: 1em; } table td { padding: 2px 5px; } table.list th, table.list td { vertical-align: top; min-width: 5em; width: auto; } table.list { border-width: 1px; margin-bottom: 1em; } -table.list th, table.list td { border: 1px solid #ccc; } +table.list th { border: 1px solid var(--table-list-th-border-color); } +table.list td { border: 1px solid var(--table-list-td-border-color); } table.list th { text-align: left; } table.list th.plus-minus { border: none; min-width: 2em; } -table.list td a { display: block; color: black; text-decoration: none; font-weight: bold; } -table.list td a:hover { color: #F60; } -table.list th a.sort { display: block; width: 100%; cursor: pointer; color: black; font-weight: bold; } -table.list th a.sort .arrow { color: #F60; } +table.list td a { display: block; color: var(--table-list-td-a-text-color); text-decoration: none; font-weight: bold; } +table.list td a:hover { color: var(--table-list-td-a-hover-text-color); } +table.list th a.sort { display: block; width: 100%; cursor: pointer; color: var(--table-list-th-a-sort-text-color); font-weight: bold; } +table.list th a.sort .arrow { color: var(--table-list-th-a-sort-text-color-arrow); } table.list td p { margin: 0; padding: 1px 0 0 0; } table.list td p.warning { margin: 0; padding: 5px; } @@ -115,46 +118,46 @@ table.list td.plain, table.list td.plain td, table.list td.plain th { border: no table.list th.plain { border-left: none; border-top: none; border-right: none; background: none; } table.list th.plain h3 { margin: 0; border: 0; } -#main .internal-purpose, #main .internal-purpose * { color: #aaa; } +#main .internal-purpose, #main .internal-purpose * { color: var(--main-internal-purpose-default-text-color); } div.section table.list, div.section-hidden table.list { margin-bottom: 0; } -div.memory-bar { margin: 10px 0 5px 0; border-radius: 5px; border: 1px solid #ddd; float: left; } +div.memory-bar { margin: 10px 0 5px 0; border-radius: 5px; border: 1px solid var(--div-memory-bar-border-color); float: left; } div.memory-section { float: left; height: 30px; } div.colour-key { float: left; width: 10px; height: 10px; margin: 3px 5px 0 0;} div.memory-info { float: left; padding: 10px 10px 0 0; } button.memory-button { margin-top: 10px; } -div.memory_classic { background: #512E5F; } -div.memory_quorum { background: #9B59B6; } -div.memory_stream { background: #D7BDE2; } -div.memory_binary { background: url(../img/bg-binary.png); } -div.memory_conn { background: #dada66; } -div.memory_proc { background: #6abf59; } -div.memory_table { background: #6679da; } -div.memory_system { background: #999; } -div.memory_unused { background: #955; } - -div.memory-bar div.memory_classic { border-right: solid 1px #bbb; } -div.memory-bar div.memory_quorum { border-right: solid 1px #bbb; } -div.memory-bar div.memory_stream { border-right: solid 1px #bbb; } -div.memory-bar div.memory_binary { border-right: solid 1px #eb50a6; } -div.memory-bar div.memory_conn { border-right: solid 1px #ebeb8d; } -div.memory-bar div.memory_proc { border-right: solid 1px #79da66; } -div.memory-bar div.memory_table { border-right: solid 1px #8d9ceb; } -div.memory-bar div.memory_system { border-right: solid 1px #bbb; } -div.memory-bar div.memory_unused { border-right: solid 1px #bbb; } - -sub { display: block; font-size: 0.8em; color: #888; } -small { font-size: 0.8em; color: #888; } -#main sub a { color: #888; } -#main sub a:hover { color: #444; } -table.argument-links { color: #888; } +div.memory_classic { background: var(--memory-classic-background-color); } +div.memory_quorum { background: var(--memory-quorum-background-color); } +div.memory_stream { background: var(--memory-stream-background-color); } +div.memory_binary { background: var(--memory-binary-background-image); } +div.memory_conn { background: var(--memory-conn-background-color); } +div.memory_proc { background: var(--memory-proc-background-color); } +div.memory_table { background: var(--memory-table-background-color); } +div.memory_system { background: var(--memory-system-background-color); } +div.memory_unused { background: var(--memory-unused-background-color); } + +div.memory-bar div.memory_classic { border-right: solid 1px var(--memory-classic-right-border-color); } +div.memory-bar div.memory_quorum { border-right: solid 1px var(--memory-quorum-right-border-color); } +div.memory-bar div.memory_stream { border-right: solid 1px var(--memory-stream-right-border-color); } +div.memory-bar div.memory_binary { border-right: solid 1px var(--memory-binary-right-border-color); } +div.memory-bar div.memory_conn { border-right: solid 1px var(--memory-conn-right-border-color); } +div.memory-bar div.memory_proc { border-right: solid 1px var(--memory-proc-right-border-color); } +div.memory-bar div.memory_table { border-right: solid 1px var(--memory-table-right-border-color); } +div.memory-bar div.memory_system { border-right: solid 1px var(--memory-system-right-border-color); } +div.memory-bar div.memory_unused { border-right: solid 1px var(--memory-unused-right-border-color); } + +sub { display: block; font-size: 0.8em; color: var(--sub-text-color); } +small { font-size: 0.8em; color: var(--small-text-color); } +#main sub a { color: var(--main-sub-a-text-color); } +#main sub a:hover { color: var(--main-sub-a-hover-text-color); } +table.argument-links { color: var(--table-argument-links-default-color); } table.argument-links td { vertical-align: top; } -.unknown { color: #888; } +.unknown { color: var(--unknown-text-color); } table.facts { float: left; } -table.facts th, table.legend th { color: black; text-align: right; border-right: 1px solid #ccc; } +table.facts th, table.legend th { color: var(--table-facts-and-legend-header-text-color); text-align: right; border-right: 1px solid var(--table-facts-and-legend-header-border-color); } table.facts th, table.facts td { vertical-align: top; padding: 0 10px 10px 10px; } table.facts th.horizontal { border-right: none; padding: 0 10px 5px 10px; } @@ -167,14 +170,14 @@ table.mini th { border: none; padding: 0 2px 2px 2px; text-align: right; } table.mini td { border: none; padding: 0 2px 2px 2px; } tr.alt1>td { - background: #eee; - background: -moz-linear-gradient(center top, #f0f0f0 0%,#e0e0e0 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #f0f0f0),color-stop(1, #e0e0e0)); + background: var(--table-row-alt1-background-color); + background: -moz-linear-gradient(center top, var(--table-row-alt1-background-gradient-first-color) 0%, var(--table-row-alt1-background-gradient-second-color) 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, var(--table-row-alt1-background-gradient-first-color)),color-stop(1, var(--table-row-alt1-background-gradient-second-color))); } tr.alt2>td { - background: #fff; - background: -moz-linear-gradient(center top, #F8F8F8 0%,#ffffff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #F8F8F8),color-stop(1, #ffffff)); + background: var(--table-row-alt2-background-color); + background: -moz-linear-gradient(center top, var(--table-row-alt2-background-gradient-first-color) 0%, var(--table-row-alt2-background-gradient-second-color) 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, var(--table-row-alt2-background-gradient-first-color)),color-stop(1, var(--table-row-alt2-background-gradient-second-color))); } td span, @@ -188,18 +191,18 @@ div.status-bar, div.status-red, div.status-yellow, div.status-green, div.status- div.status-bar-main, div.status-red, div.status-yellow, div.status-green, div.status-grey { border-radius: 3px; -moz-border-radius: 3px; padding: 3px; } div.status-bar sub { white-space: nowrap; } -div.status-bar .grey, div.status-grey { background: #ddd; } -div.status-bar .red, div.status-red { background: #ff7a7a; color: white; } -div.status-bar .yellow, div.status-yellow { background: #ffff7b; } -div.status-bar .green, div.status-green { background: #98f898; } -div.status-bar .red-dark { background: #e24545; color: white; } +div.status-bar .grey, div.status-grey { background: var(--status-grey-background-color); } +div.status-bar .red, div.status-red { background: var(--status-red-background-color); color: var(--status-red-text-color); } +div.status-bar .yellow, div.status-yellow { background: var(--status-yellow-background-color); } +div.status-bar .green, div.status-green { background: var(--status-green-background-color); } +div.status-bar .red-dark { background: var(--status-red-dark-background-color); color: var(--status-red-dark-text-color); } /* yellow-dark and green-dark can never happen */ -div.status-bar .red *, div.status-bar .red-dark *, div.status-red * { color: white; } +div.status-bar .red *, div.status-bar .red-dark *, div.status-red * { color: var(--status-red-and-dark-red-childs-text-color); } -div.status-key-grey { background: #ddd; } -div.status-key-red { background: #ff7a7a; color: white; } -div.status-key-yellow { background: #ffff7b; } -div.status-key-green { background: #98f898; } +div.status-key-grey { background: var(--status-grey-background-color); } +div.status-key-red { background: var(--status-red-background-color); color: var(--status-red-text-color); } +div.status-key-yellow { background: var(--status-yellow-background-color); } +div.status-key-green { background: var(--status-green-background-color); } .l { text-align: left !important; } .c { text-align: center !important; } @@ -211,9 +214,9 @@ div.form-popup-info, div.form-popup-help, div.form-popup-options { -moz-border-radius: 5px 0 0 5px; - background: #EEE; + background: var(--form-popup-options-background-color); border-radius: 5px 0 0 5px; - border: 1px solid #ccc; + border: 1px solid var(--form-popup-options-border-color); right: 0; margin: 10px 0 10px 0; padding: 15px; @@ -232,7 +235,7 @@ div.form-popup-help { width: 500px; z-index: 2; } -div.warning, p.warning, div.form-popup-warn { background: #FF9; } +div.warning, p.warning, div.form-popup-warn { background: var(--form-popup-warning-background-color); } div.form-popup-options { z-index: 3; overflow:auto; max-height:95%; } @@ -240,8 +243,8 @@ div.form-popup-warn span, div.form-popup-info span, div.form-popup-help span, div.form-popup-options span { - color: white; - background-color: #666; + color: var(--form-popup-options-span-text-color); + background-color: var(--form-popup-options-span-background-color); cursor: pointer; padding: 4px 8px; border-radius: 5px; @@ -251,7 +254,7 @@ div.form-popup-warn span:hover, div.form-popup-info span:hover, div.form-popup-help span:hover, div.form-popup-options span:hover { - background-color: #F60; + background-color: var(--form-popup-options-span-hover-background-color); cursor: pointer; } @@ -264,8 +267,8 @@ div.warning button { margin: auto; } -.highlight { min-width: 120px; font-size: 120%; text-align:center; padding:10px; background-color: #ddd; margin: 0 20px 0 0; color: #888; border-radius: 5px; -moz-border-radius: 5px; } -.highlight strong { font-size: 2em; display: block; color: #444; font-weight: normal; } +.highlight { min-width: 120px; font-size: 120%; text-align:center; padding:10px; background-color: var(--highlight-background-color); margin: 0 20px 0 0; color: var(--highlight-text-color); border-radius: 5px; -moz-border-radius: 5px; } +.highlight strong { font-size: 2em; display: block; color: var(--highlight-strong-text-color); font-weight: normal; } .highlight { float: left; } .chart { margin: 0 20px 20px 0; float: left; } @@ -280,17 +283,17 @@ div.section, div.section-hidden { margin: 0 0 1em 0; } div.section-invisible div.hider { display: none; } div.section div.hider, div.section-hidden div.hider { padding: 0.5em 0; } div.section h2, div.section-hidden h2 { font-size: 1em; padding: 5px 5px 5px 25px; cursor: pointer; margin: 0; } -div.section h2:hover, div.section-hidden h2:hover { color: black; } -div.section-invisible h2 { background: white; background-image: url(../img/collapse.png); background-repeat:no-repeat; background-position:4px 4px; } -div.section-visible h2 { background: #F8F8F8; background-image: url(../img/expand.png); background-repeat:no-repeat; background-position:4px 4px; } +div.section h2:hover, div.section-hidden h2:hover { color: var(--section-h2-hover-text-color); } +div.section-invisible h2 { background: var(--section-invisible-h2-background-color); background-image: url(../img/collapse.png); background-repeat:no-repeat; background-position:4px 4px; } +div.section-visible h2 { background: var(--section-visible-h2-background-color); background-image: url(../img/expand.png); background-repeat:no-repeat; background-position:4px 4px; } form { margin: 0; } form.inline-form { float: left; } form.inline-form-right { float: right; padding-left: 5px; } input, select { padding: 0.2em; } -input[type=text], input[type=password] { font: 1.1em Andale Mono, Lucidatypewriter, Courier New, Courier, monospace; border: 1px solid #ccc; } -textarea { width: 600px; height: 200px; border: 1px solid #ccc; } -.mand { color: #f88; padding: 0 5px;} +input[type=text], input[type=password] { font: 1.1em Andale Mono, Lucidatypewriter, Courier New, Courier, monospace; border: 1px solid var(--input-border-color); } +textarea { width: 600px; height: 200px; border: 1px solid var(--textarea-border-color); } +.mand { color: var(--man-d-text-color); padding: 0 5px;} input[type=submit].wait { cursor: wait; } table.form { margin-bottom: 0.5em; } @@ -310,9 +313,9 @@ table.form table.subform { margin-bottom: 5px; } table.form table.subform th { text-align: left; } table.form table.subform th, table.form table.subform td { padding: 0; } -.multifield-sub { border: 1px solid #ddd; background: #F8F8F8; padding: 10px; border-radius: 5px; -moz-border-radius: 5px; float: left; margin-bottom: 10px; } +.multifield-sub { border: 1px solid var(--multifield-sub-border-color); background: var(--multifield-sub-background-color); padding: 10px; border-radius: 5px; -moz-border-radius: 5px; float: left; margin-bottom: 10px; } -label.radio, label.checkbox { padding: 5px; cursor: pointer; border-radius: 5px; -moz-border-radius: 5px; border: 1px solid #ccc; } +label.radio, label.checkbox { padding: 5px; cursor: pointer; border-radius: 5px; -moz-border-radius: 5px; border: 1px solid var(--label-radio-and-chackbox-border-color); } table.two-col-layout { width: 100%; } table.two-col-layout > tbody > tr > td { width: 50%; vertical-align: top; } @@ -322,45 +325,45 @@ table.list input[type=submit], table.list button { padding: 3px 7px; margin: 0 0 table.list input[type=submit], table.list button, table.list a.button { padding: 3px 7px; margin: 0 0 3px 0; } input[type=submit], button, a.button { - background: #666; - color: #FFF !important; + background: var(--input-submit-background-color); + color: var(--input-submit-text-color) !important; border: 0; } input[type=submit]:hover, button:hover, a.button:hover { - background: #F60; + background: var(--input-submit-hover-background-color); text-decoration: none !important; } -input[type=submit][disabled], button[disabled], a.button.disabled { pointer-events: none; background: #aaa; } -input[type=submit][disabled]:hover, button[disabled]:hover, a.button.disabled { background: #aaa; } +input[type=submit][disabled], button[disabled], a.button.disabled { pointer-events: none; background: var(--button-disabled-background-color); } +input[type=submit][disabled]:hover, button[disabled]:hover, a.button.disabled { background: var(--button-disabled-hover-background-color); } -h3 { padding: 0 0 2px 0; margin: 1em 0 1em 0; font-size: 1em; border-bottom: 1px solid #E4E4E4; font-weight: normal; } +h3 { padding: 0 0 2px 0; margin: 1em 0 1em 0; font-size: 1em; border-bottom: 1px solid var(--h3-bottom-border-color); font-weight: normal; } -abbr { background: #99EBFF; padding: 2px 4px; border-radius: 5px; -moz-border-radius: 5px; border: none; cursor: default; text-decoration: none; } +abbr { background: var(--abbr-background-color); padding: 2px 4px; border-radius: 5px; -moz-border-radius: 5px; border: none; cursor: default; text-decoration: none; } table.list td abbr a { display: inline; width: auto; } -abbr.warning { background: red; } +abbr.warning { background: var(--abbr-warning-background-color); } .status-red abbr, .status-yellow abbr, .status-green abbr, .status-grey abbr, small abbr, abbr.normal { background: none; color: inherit; padding: 0; border-bottom: 1px dotted; cursor: default; } -abbr.status-grey { background: #ddd; } -abbr.status-green { background: #98f898; } -abbr.status-yellow { background: #ffff7b; } -abbr.status-red { background: #ff7a7a; color: white; } +abbr.status-grey { background: var(--abbr-status-grey-background-color); } +abbr.status-green { background: var(--abbr-status-green-background-color); } +abbr.status-yellow { background: var(--abbr-status-yellow-background-color); } +abbr.status-red { background: var(--abbr-status-red-background-color); color: var(--abbr-status-red-text-color); } -abbr.type { background: none; color: inherit; padding: 0; border-bottom: 1px dotted #ddd; cursor: default; } +abbr.type { background: none; color: inherit; padding: 0; border-bottom: 1px dotted var(--abbr-type-bottom-border-color); cursor: default; } div.bindings-wrapper { display: inline-block; } div.bindings-wrapper table { margin: auto; } div.bindings-wrapper p { margin: 10px; text-align: center; } -div.bindings-wrapper span.exchange { border: 1px solid #bbb; padding: 10px; border-radius: 5px; -moz-border-radius: 5px; } -div.bindings-wrapper span.queue { border: 1px solid #666; padding: 10px; } -div.bindings-wrapper td span.exchange, div.bindings-wrapper td span.queue { background: white; display: block; } +div.bindings-wrapper span.exchange { border: 1px solid var(--bindings-wrapper-span-exchange-border-color); padding: 10px; border-radius: 5px; -moz-border-radius: 5px; } +div.bindings-wrapper span.queue { border: 1px solid var(--bindings-wrapper-span-queue-border-color); padding: 10px; } +div.bindings-wrapper td span.exchange, div.bindings-wrapper td span.queue { background: var(--bindings-wrapper-td-span-queue-and-exchange-background-color); display: block; } div.bindings-wrapper span.exchange a, div.bindings-wrapper span.queue a { font-weight: normal !important; } div.bindings-wrapper p.arrow { font-size: 200%; } -#footer { overflow: auto; width: 100%; border-top: 1px solid #666; } +#footer { overflow: auto; width: 100%; border-top: 1px solid var(--footer-border-color); } #footer ul { list-style-type: none; padding: 0; margin: 0; } #footer ul li { float: left; } #footer ul li a { display: block; padding: 0.7em 1em; } @@ -368,9 +371,9 @@ div.bindings-wrapper p.arrow { font-size: 200%; } #scratch { display: none; } .highlight, .mini-highlight, .micro-highlight { - background: -moz-linear-gradient(center top, #f0f0f0 0%,#e0e0e0 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #f0f0f0),color-stop(1, #e0e0e0)); - border: 1px solid #e0e0e0; + background: -moz-linear-gradient(center top, var(--highlight-background-gradient-first-color) 0%, var(--highlight-background-gradient-second-color) 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, var(--highlight-background-gradient-first-color)),color-stop(1, var(--highlight-background-gradient-second-color))); + border: 1px solid var(--highlight-border-color); } table.dynamic-shovels td label {width: 200px; margin-right:10px;padding: 4px 0px 5px 0px} @@ -384,7 +387,7 @@ label.toggle { text-indent: -9999px; width: 32px; height: 16px; - background: #ff5630; + background: var(--label-toggle-background-color); display: block; border-radius: 16px; position: relative; @@ -398,17 +401,17 @@ label.toggle:after { left: 2px; width: 12px; height: 12px; - background: #fff; + background: var(--label-toggle-after-background-color); border-radius: 12px; transition: 0.3s; } input.toggle:indeterminate + label.toggle { - background: #ffab00; + background: var(--label-toggle-intermediate-background-color); } input.toggle:checked + label.toggle { - background: #36b37e; + background: var(--input-toggle-checked-background-color); } input.toggle:indeterminate + label.toggle:after { @@ -422,9 +425,44 @@ input.toggle:checked + label.toggle:after { } .grey-background { - background-color: #f0f0f0; + background-color: var(--grey-background-color); } .yellow-background { - background-color: #ffff7b; + background-color: var(--yellow-background-color); } + +/* Theme switcher */ + +.theme-switcher { + position: relative; + width: 32px; + height: 32px; + border-radius: 45%; + border: 2px solid var(--input-border-color); + background-color: var(--dafault-background-color); +} + +.theme-switcher:after { + content: ""; + background-size: 24px; + background-repeat: no-repeat; + background-position: center; + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; +} + +.theme-switcher[x-scheme="auto"]:after { + background-image: url(../img/auto.svg); +} + +.theme-switcher[x-scheme="dark"]:after { + background-image: url(../img/dark.svg); +} + +.theme-switcher[x-scheme="light"]:after { + background-image: url(../img/light.svg); +} \ No newline at end of file diff --git a/deps/rabbitmq_management/priv/www/img/auto.svg b/deps/rabbitmq_management/priv/www/img/auto.svg new file mode 100644 index 000000000000..8f12e3b860c4 --- /dev/null +++ b/deps/rabbitmq_management/priv/www/img/auto.svg @@ -0,0 +1,63 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/deps/rabbitmq_management/priv/www/img/dark.svg b/deps/rabbitmq_management/priv/www/img/dark.svg new file mode 100644 index 000000000000..4fd733f453a4 --- /dev/null +++ b/deps/rabbitmq_management/priv/www/img/dark.svg @@ -0,0 +1,65 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/deps/rabbitmq_management/priv/www/img/light.svg b/deps/rabbitmq_management/priv/www/img/light.svg new file mode 100644 index 000000000000..beb3479e47f7 --- /dev/null +++ b/deps/rabbitmq_management/priv/www/img/light.svg @@ -0,0 +1,129 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/deps/rabbitmq_management/priv/www/index.html b/deps/rabbitmq_management/priv/www/index.html index 56b51206b436..3d22d816f8db 100644 --- a/deps/rabbitmq_management/priv/www/index.html +++ b/deps/rabbitmq_management/priv/www/index.html @@ -17,7 +17,10 @@ - + + + + @@ -37,5 +40,7 @@
+ + diff --git a/deps/rabbitmq_management/priv/www/js/dispatcher.js b/deps/rabbitmq_management/priv/www/js/dispatcher.js index 8413eb7b6f97..5789bc1b7254 100644 --- a/deps/rabbitmq_management/priv/www/js/dispatcher.js +++ b/deps/rabbitmq_management/priv/www/js/dispatcher.js @@ -1,3 +1,69 @@ +(function (factory) { + if (typeof define === 'function' && define.amd) { + define(['jquery', 'sammy'], factory); + } else { + (window.Sammy = window.Sammy || {}).Title = factory(window.jQuery, window.Sammy); + } +}(function ($, Sammy) { + + // Sammy.Title is a very simple plugin to easily set the document's title. + // It supplies a helper for setting the title (`title()`) within routes, + // and an app level method for setting the global title (`setTitle()`) + Sammy.Title = function() { + + // setTitle allows setting a global title or a function that modifies the + // title for each route/page. + // + // ### Example + // + // // setting a title prefix + // $.sammy(function() { + // + // this.setTitle('My App -'); + // + // this.get('#/', function() { + // this.title('Home'); // document's title == "My App - Home" + // }); + // }); + // + // // setting a title with a function + // $.sammy(function() { + // + // this.setTitle(function(title) { + // return [title, " /// My App"].join(''); + // }); + // + // this.get('#/', function() { + // this.title('Home'); // document's title == "Home /// My App"; + // }); + // }); + // + this.setTitle = function(title) { + if (!$.isFunction(title)) { + this.title_function = function(additional_title) { + return [title, additional_title].join(' '); + } + } else { + this.title_function = title; + } + }; + + // *Helper* title() sets the document title, passing it through the function + // defined by setTitle() if set. + this.helper('title', function() { + var new_title = $.makeArray(arguments).join(' '); + if (this.app.title_function) { + new_title = this.app.title_function(new_title); + } + document.title = new_title; + }); + + }; + + return Sammy.Title; + +})); + dispatcher_add(function(sammy) { function path(p, r, t) { sammy.get(p, function() { @@ -5,6 +71,7 @@ dispatcher_add(function(sammy) { }); } sammy.get('#/', function() { + this.title('Overview'); var reqs = {'overview': {path: '/overview', options: {ranges: ['lengths-over', 'msg-rates-over']}}, @@ -15,6 +82,7 @@ dispatcher_add(function(sammy) { render(reqs, 'overview', '#/'); }); sammy.get('#/', function() { + this.title('Overview'); var reqs = {'overview': {path: '/overview', options: {ranges: ['lengths-over', 'msg-rates-over']}}, @@ -34,6 +102,7 @@ dispatcher_add(function(sammy) { }); sammy.get('#/nodes/:name', function() { + this.title('Node ' + this.params['name']); var name = esc(this.params['name']); render({'node': {path: '/nodes/' + name, options: {ranges: ['node-stats']}}}, @@ -42,6 +111,7 @@ dispatcher_add(function(sammy) { if (ac.canAccessVhosts()) { sammy.get('#/connections', function() { + this.title('Connections'); renderConnections(); }); sammy.get('#/connections/:name', function() { @@ -74,6 +144,7 @@ dispatcher_add(function(sammy) { return false; }); sammy.get('#/channels', function() { + this.title('Channels'); renderChannels(); }); sammy.get('#/channels/:name', function() { @@ -81,10 +152,12 @@ dispatcher_add(function(sammy) { options:{ranges:['data-rates-ch','msg-rates-ch']}}}, 'channel', '#/channels'); }); - sammy.get('#/exchanges', function() { + sammy.get('#/exchanges', function() { + this.title('Exchanges'); renderExchanges(); }); sammy.get('#/exchanges/:vhost/:name', function() { + this.title('Exchange ' + esc(this.params['vhost']) + '/' + this.params['name']); var path = '/exchanges/' + esc(this.params['vhost']) + '/' + esc(this.params['name']); render({'exchange': {path: path, options: {ranges:['msg-rates-x']}}, @@ -108,12 +181,14 @@ dispatcher_add(function(sammy) { }); sammy.get('#/queues', function() { + this.title('Queues'); renderQueues(); }); sammy.get('#/queues/:vhost/:name', function() { var vhost = this.params['vhost']; var queue = this.params['name']; + this.title('Queue ' + esc(vhost) + '/' + queue); var path = '/queues/' + esc(vhost) + '/' + esc(queue); var requests = {'queue': {path: path, options: {ranges:['lengths-q', 'msg-rates-q', 'data-rates-q']}}, @@ -198,7 +273,8 @@ dispatcher_add(function(sammy) { }); sammy.get('#/users', function() { - renderUsers(); + this.title('Users'); + renderUsers(); }); sammy.get('#/users/:id', function() { var vhosts = JSON.parse(sync_get('/vhosts')); @@ -262,6 +338,7 @@ dispatcher_add(function(sammy) { 'operator_policies': '/operator-policies', 'vhosts': '/vhosts'}, 'policies'); sammy.get('#/policies/:vhost/:id', function() { + this.title('Policies'); render({'policy': '/policies/' + esc(this.params['vhost']) + '/' + esc(this.params['id'])}, 'policy', '#/policies'); diff --git a/deps/rabbitmq_management/priv/www/js/main.js b/deps/rabbitmq_management/priv/www/js/main.js index 7eebd3a6b1f4..a5379ffef235 100644 --- a/deps/rabbitmq_management/priv/www/js/main.js +++ b/deps/rabbitmq_management/priv/www/js/main.js @@ -74,6 +74,8 @@ function dispatcher_add(fun) { } function dispatcher() { + this.use('Title'); + this.setTitle('RabbitMQ: '); for (var i in dispatcher_modules) { dispatcher_modules[i](this); } diff --git a/deps/rabbitmq_management/priv/www/js/theme-switcher.js b/deps/rabbitmq_management/priv/www/js/theme-switcher.js new file mode 100644 index 000000000000..b49a545194a7 --- /dev/null +++ b/deps/rabbitmq_management/priv/www/js/theme-switcher.js @@ -0,0 +1,134 @@ +var lightStyles; +var darkStyles; +var darkSdhemeMedia; + +function initializeSwitcher() { + lightStyles = document.querySelectorAll('link[rel=stylesheet][media*=prefers-color-scheme][media*=light]'); + darkStyles = document.querySelectorAll('link[rel=stylesheet][media*=prefers-color-scheme][media*=dark]'); + darkSdhemeMedia = matchMedia('(prefers-color-scheme: dark)'); + + let savedScheme = getSavedScheme(); + let switcherButtons = document.getElementsByClassName('theme-switcher'); + + if(switcherButtons.length === 0) return; + + if(savedScheme !== null) + { + switcherButtons[0].setAttribute("x-scheme", savedScheme); + } + + [...switcherButtons].forEach((button) => { + button.addEventListener('click', function() { + let currentScheme = switcherButtons[0].getAttribute("x-scheme"); + let systemScheme = getSystemScheme(); + let newScheme; + switch (currentScheme) { + case "dark": + if(systemScheme === "dark") + { + newScheme = "auto"; + } + else + { + newScheme = "light"; + } + break; + case "light": + if(systemScheme === "light") + { + newScheme = "auto"; + } + else + { + newScheme = "dark"; + } + break; + default: + if(systemScheme === "light") + { + newScheme = "dark"; + } + else + { + newScheme = "light"; + } + break; + } + + setScheme(newScheme); + button.setAttribute("x-scheme", newScheme); + button.setAttribute("title", `Switch between dark and light mode (currently ${newScheme} mode)`); + button.setAttribute("aria-label", `Switch between dark and light mode (currently ${newScheme} mode)`); + }); + }); +} + +var initializeScheme = function initializeScheme() { + let savedScheme = getSavedScheme(); + let systemScheme = getSystemScheme(); + + if (savedScheme == null) return; + + if(savedScheme !== systemScheme) { + setScheme(savedScheme); + } +} + +function setScheme(scheme) { + switchMediaScheme(scheme); + + if (scheme === 'auto') { + clearScheme(); + } else { + saveScheme(scheme); + } +} + +function switchMediaScheme(scheme) { + let lightMedia; + let darkMedia; + + if (scheme === 'auto') { + lightMedia = '(prefers-color-scheme: light)'; + darkMedia = '(prefers-color-scheme: dark)'; + } else { + lightMedia = (scheme === 'light') ? 'all' : 'bot all'; + darkMedia = (scheme === 'dark') ? 'all' : 'bot all'; + } + + [...lightStyles].forEach((link) => { + link.media = lightMedia; + }); + + [...darkStyles].forEach((link) => { + link.media = darkMedia; + }); +} + +function getSystemScheme() { + let darkScheme = darkSdhemeMedia.matches; + + return darkScheme ? 'dark' : 'light'; +} + +function getSavedScheme() { + return localStorage.getItem('color-scheme'); +} + +function saveScheme(scheme) { + localStorage.setItem('color-scheme', scheme); +} + +function clearScheme() { + localStorage.removeItem('color-scheme'); +} + +$(window).on('popstate', function() { + initializeSwitcher(); + initializeScheme(); +}); + +$(document).ready(function() { + initializeSwitcher(); + initializeScheme(); +}); diff --git a/deps/rabbitmq_management/priv/www/js/tmpl/layout.ejs b/deps/rabbitmq_management/priv/www/js/tmpl/layout.ejs index ac31dbbb72c3..6ebe811522ee 100644 --- a/deps/rabbitmq_management/priv/www/js/tmpl/layout.ejs +++ b/deps/rabbitmq_management/priv/www/js/tmpl/layout.ejs @@ -54,4 +54,13 @@
  • Plugins
  • GitHub
  • + diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_dispatcher.erl b/deps/rabbitmq_management/src/rabbit_mgmt_dispatcher.erl index 891963148a19..d54567320e97 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_dispatcher.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_dispatcher.erl @@ -202,6 +202,10 @@ dispatcher() -> {"/health/checks/port-listener/:port", rabbit_mgmt_wm_health_check_port_listener, []}, {"/health/checks/protocol-listener/:protocol", rabbit_mgmt_wm_health_check_protocol_listener, []}, {"/health/checks/virtual-hosts", rabbit_mgmt_wm_health_check_virtual_hosts, []}, + {"/health/checks/quorum-queues-without-elected-leaders/all-vhosts/", rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders_across_all_vhosts, []}, + {"/health/checks/quorum-queues-without-elected-leaders/vhost/:vhost/", rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders, []}, + {"/health/checks/quorum-queues-without-elected-leaders/all-vhosts/pattern/:pattern", rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders_across_all_vhosts, []}, + {"/health/checks/quorum-queues-without-elected-leaders/vhost/:vhost/pattern/:pattern", rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders, []}, {"/health/checks/node-is-quorum-critical", rabbit_mgmt_wm_health_check_node_is_quorum_critical, []}, {"/reset", rabbit_mgmt_wm_reset, []}, {"/reset/:node", rabbit_mgmt_wm_reset, []}, diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders.erl new file mode 100644 index 000000000000..950351f4ca6c --- /dev/null +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders.erl @@ -0,0 +1,68 @@ +%% This Source Code Form is subject to the terms of the Mozilla Public +%% License, v. 2.0. If a copy of the MPL was not distributed with this +%% file, You can obtain one at https://mozilla.org/MPL/2.0/. +%% +%% Copyright (c) 2007-2025 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. +%% + +%% An HTTP API counterpart of 'rabbitmq-diagnostics check_for_quorum_queues_without_an_elected_leader' +-module(rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders). + +-export([init/2, to_json/2, content_types_provided/2, is_authorized/2]). +-export([resource_exists/2]). +-export([variances/2]). + +-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl"). + +-define(DEFAULT_PATTERN, <<".*">>). + +%%-------------------------------------------------------------------- + +init(Req, _State) -> + {cowboy_rest, rabbit_mgmt_headers:set_common_permission_headers(Req, ?MODULE), #context{}}. + +variances(Req, Context) -> + {[<<"accept-encoding">>, <<"origin">>], Req, Context}. + +content_types_provided(ReqData, Context) -> + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. + +resource_exists(ReqData, Context) -> + Result = case {vhost(ReqData), pattern(ReqData)} of + {none, _} -> false; + {_, none} -> false; + _ -> true + end, + {Result, ReqData, Context}. + +to_json(ReqData, Context) -> + case rabbit_quorum_queue:leader_health_check(pattern(ReqData), vhost(ReqData)) of + [] -> + rabbit_mgmt_util:reply(#{status => ok}, ReqData, Context); + Qs when length(Qs) > 0 -> + Msg = <<"Detected quorum queues without an elected leader">>, + failure(Msg, Qs, ReqData, Context) + end. + +failure(Message, Qs, ReqData, Context) -> + Body = #{status => failed, + reason => Message, + queues => Qs}, + {Response, ReqData1, Context1} = rabbit_mgmt_util:reply(Body, ReqData, Context), + {stop, cowboy_req:reply(503, #{}, Response, ReqData1), Context1}. + +is_authorized(ReqData, Context) -> + rabbit_mgmt_util:is_authorized(ReqData, Context). + +%% +%% Implementation +%% + +vhost(ReqData) -> + rabbit_mgmt_util:id(vhost, ReqData). + +pattern(ReqData) -> + case rabbit_mgmt_util:id(pattern, ReqData) of + none -> ?DEFAULT_PATTERN; + Other -> Other + end. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders_across_all_vhosts.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders_across_all_vhosts.erl new file mode 100644 index 000000000000..f56beb677c6d --- /dev/null +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders_across_all_vhosts.erl @@ -0,0 +1,61 @@ +%% This Source Code Form is subject to the terms of the Mozilla Public +%% License, v. 2.0. If a copy of the MPL was not distributed with this +%% file, You can obtain one at https://mozilla.org/MPL/2.0/. +%% +%% Copyright (c) 2007-2025 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved. +%% + +%% An HTTP API counterpart of 'rabbitmq-diagnostics check_for_quorum_queues_without_an_elected_leader --across-all-vhosts' +-module(rabbit_mgmt_wm_health_check_quorum_queues_without_elected_leaders_across_all_vhosts). + +-export([init/2, to_json/2, content_types_provided/2, is_authorized/2]). +-export([resource_exists/2]). +-export([variances/2]). + +-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl"). + +-define(ACROSS_ALL_VHOSTS, across_all_vhosts). +-define(DEFAULT_PATTERN, <<".*">>). + +%%-------------------------------------------------------------------- + +init(Req, _State) -> + {cowboy_rest, rabbit_mgmt_headers:set_common_permission_headers(Req, ?MODULE), #context{}}. + +variances(Req, Context) -> + {[<<"accept-encoding">>, <<"origin">>], Req, Context}. + +content_types_provided(ReqData, Context) -> + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. + +resource_exists(ReqData, Context) -> + {true, ReqData, Context}. + +to_json(ReqData, Context) -> + case rabbit_quorum_queue:leader_health_check(pattern(ReqData), ?ACROSS_ALL_VHOSTS) of + [] -> + rabbit_mgmt_util:reply(#{status => ok}, ReqData, Context); + Qs when length(Qs) > 0 -> + Msg = <<"Detected quorum queues without an elected leader">>, + failure(Msg, Qs, ReqData, Context) + end. + +failure(Message, Qs, ReqData, Context) -> + Body = #{status => failed, + reason => Message, + queues => Qs}, + {Response, ReqData1, Context1} = rabbit_mgmt_util:reply(Body, ReqData, Context), + {stop, cowboy_req:reply(503, #{}, Response, ReqData1), Context1}. + +is_authorized(ReqData, Context) -> + rabbit_mgmt_util:is_authorized(ReqData, Context). + +%% +%% Implementation +%% + +pattern(ReqData) -> + case rabbit_mgmt_util:id(pattern, ReqData) of + none -> ?DEFAULT_PATTERN; + Other -> Other + end. diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_http_health_checks_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_http_health_checks_SUITE.erl index 9cf2ae71f89b..96a34bb5859e 100644 --- a/deps/rabbitmq_management/test/rabbit_mgmt_http_health_checks_SUITE.erl +++ b/deps/rabbitmq_management/test/rabbit_mgmt_http_health_checks_SUITE.erl @@ -37,7 +37,10 @@ groups() -> local_alarms_test, metadata_store_initialized_test, metadata_store_initialized_with_data_test, - is_quorum_critical_single_node_test]} + is_quorum_critical_single_node_test, + quorum_queues_without_elected_leader_single_node_test, + quorum_queues_without_elected_leader_across_all_virtual_hosts_single_node_test + ]} ]. all_tests() -> [ @@ -165,7 +168,8 @@ local_alarms_test(Config) -> is_quorum_critical_single_node_test(Config) -> - Check0 = http_get(Config, "/health/checks/node-is-quorum-critical", ?OK), + EndpointPath = "/health/checks/node-is-quorum-critical", + Check0 = http_get(Config, EndpointPath, ?OK), ?assertEqual(<<"single node cluster">>, maps:get(reason, Check0)), ?assertEqual(<<"ok">>, maps:get(status, Check0)), @@ -178,13 +182,14 @@ is_quorum_critical_single_node_test(Config) -> durable = true, auto_delete = false, arguments = Args})), - Check1 = http_get(Config, "/health/checks/node-is-quorum-critical", ?OK), + Check1 = http_get(Config, EndpointPath, ?OK), ?assertEqual(<<"single node cluster">>, maps:get(reason, Check1)), passed. is_quorum_critical_test(Config) -> - Check0 = http_get(Config, "/health/checks/node-is-quorum-critical", ?OK), + EndpointPath = "/health/checks/node-is-quorum-critical", + Check0 = http_get(Config, EndpointPath, ?OK), ?assertEqual(false, maps:is_key(reason, Check0)), ?assertEqual(<<"ok">>, maps:get(status, Check0)), @@ -198,7 +203,7 @@ is_quorum_critical_test(Config) -> durable = true, auto_delete = false, arguments = Args})), - Check1 = http_get(Config, "/health/checks/node-is-quorum-critical", ?OK), + Check1 = http_get(Config, EndpointPath, ?OK), ?assertEqual(false, maps:is_key(reason, Check1)), RaName = binary_to_atom(<<"%2F_", QName/binary>>, utf8), @@ -207,7 +212,104 @@ is_quorum_critical_test(Config) -> ok = rabbit_ct_broker_helpers:stop_node(Config, Server2), ok = rabbit_ct_broker_helpers:stop_node(Config, Server3), - Body = http_get_failed(Config, "/health/checks/node-is-quorum-critical"), + Body = http_get_failed(Config, EndpointPath), + ?assertEqual(<<"failed">>, maps:get(<<"status">>, Body)), + ?assertEqual(true, maps:is_key(<<"reason">>, Body)), + Queues = maps:get(<<"queues">>, Body), + ?assert(lists:any( + fun(Item) -> + QName =:= maps:get(<<"name">>, Item) + end, Queues)), + + passed. + +quorum_queues_without_elected_leader_single_node_test(Config) -> + EndpointPath = "/health/checks/quorum-queues-without-elected-leaders/all-vhosts/", + Check0 = http_get(Config, EndpointPath, ?OK), + ?assertEqual(false, maps:is_key(reason, Check0)), + ?assertEqual(<<"ok">>, maps:get(status, Check0)), + + [Server | _] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename), + Ch = rabbit_ct_client_helpers:open_channel(Config, Server), + Args = [{<<"x-queue-type">>, longstr, <<"quorum">>}, + {<<"x-quorum-initial-group-size">>, long, 3}], + QName = <<"quorum_queues_without_elected_leader">>, + ?assertEqual({'queue.declare_ok', QName, 0, 0}, + amqp_channel:call(Ch, #'queue.declare'{ + queue = QName, + durable = true, + auto_delete = false, + arguments = Args + })), + + Check1 = http_get(Config, EndpointPath, ?OK), + ?assertEqual(false, maps:is_key(reason, Check1)), + + RaSystem = quorum_queues, + QResource = rabbit_misc:r(<<"/">>, queue, QName), + {ok, Q1} = rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_db_queue, get, [QResource]), + + _ = rabbit_ct_broker_helpers:rpc(Config, 0, ra, stop_server, [RaSystem, amqqueue:get_pid(Q1)]), + + Body = http_get_failed(Config, EndpointPath), + ?assertEqual(<<"failed">>, maps:get(<<"status">>, Body)), + ?assertEqual(true, maps:is_key(<<"reason">>, Body)), + Queues = maps:get(<<"queues">>, Body), + ?assert(lists:any( + fun(Item) -> + QName =:= maps:get(<<"name">>, Item) + end, Queues)), + + _ = rabbit_ct_broker_helpers:rpc(Config, 0, ra, restart_server, [RaSystem, amqqueue:get_pid(Q1)]), + rabbit_ct_helpers:await_condition( + fun() -> + try + Check2 = http_get(Config, EndpointPath, ?OK), + false =:= maps:is_key(reason, Check2) + catch _:_ -> + false + end + end), + + passed. + +quorum_queues_without_elected_leader_across_all_virtual_hosts_single_node_test(Config) -> + VH2 = <<"vh-2">>, + rabbit_ct_broker_helpers:add_vhost(Config, VH2), + + EndpointPath1 = "/health/checks/quorum-queues-without-elected-leaders/vhost/%2f/", + EndpointPath2 = "/health/checks/quorum-queues-without-elected-leaders/vhost/vh-2/", + %% ^other + EndpointPath3 = "/health/checks/quorum-queues-without-elected-leaders/vhost/vh-2/pattern/%5Eother", + + Check0 = http_get(Config, EndpointPath1, ?OK), + Check0 = http_get(Config, EndpointPath2, ?OK), + ?assertEqual(false, maps:is_key(reason, Check0)), + ?assertEqual(<<"ok">>, maps:get(status, Check0)), + + [Server | _] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename), + Ch = rabbit_ct_client_helpers:open_channel(Config, Server), + Args = [{<<"x-queue-type">>, longstr, <<"quorum">>}, + {<<"x-quorum-initial-group-size">>, long, 3}], + QName = <<"quorum_queues_without_elected_leader_across_all_virtual_hosts_single_node_test">>, + ?assertEqual({'queue.declare_ok', QName, 0, 0}, + amqp_channel:call(Ch, #'queue.declare'{ + queue = QName, + durable = true, + auto_delete = false, + arguments = Args + })), + + Check1 = http_get(Config, EndpointPath1, ?OK), + ?assertEqual(false, maps:is_key(reason, Check1)), + + RaSystem = quorum_queues, + QResource = rabbit_misc:r(<<"/">>, queue, QName), + {ok, Q1} = rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_db_queue, get, [QResource]), + + _ = rabbit_ct_broker_helpers:rpc(Config, 0, ra, stop_server, [RaSystem, amqqueue:get_pid(Q1)]), + + Body = http_get_failed(Config, EndpointPath1), ?assertEqual(<<"failed">>, maps:get(<<"status">>, Body)), ?assertEqual(true, maps:is_key(<<"reason">>, Body)), Queues = maps:get(<<"queues">>, Body), @@ -216,8 +318,30 @@ is_quorum_critical_test(Config) -> QName =:= maps:get(<<"name">>, Item) end, Queues)), + %% virtual host vh-2 is still fine + Check2 = http_get(Config, EndpointPath2, ?OK), + ?assertEqual(false, maps:is_key(reason, Check2)), + + %% a different queue name pattern succeeds + Check3 = http_get(Config, EndpointPath3, ?OK), + ?assertEqual(false, maps:is_key(reason, Check3)), + + _ = rabbit_ct_broker_helpers:rpc(Config, 0, ra, restart_server, [RaSystem, amqqueue:get_pid(Q1)]), + rabbit_ct_helpers:await_condition( + fun() -> + try + Check4 = http_get(Config, EndpointPath1, ?OK), + false =:= maps:is_key(reason, Check4) + catch _:_ -> + false + end + end), + + rabbit_ct_broker_helpers:delete_vhost(Config, VH2), + passed. + virtual_hosts_test(Config) -> VHost1 = <<"vhost1">>, VHost2 = <<"vhost2">>, diff --git a/deps/rabbitmq_management_agent/BUILD.bazel b/deps/rabbitmq_management_agent/BUILD.bazel deleted file mode 100644 index 5bdbd9fe7b3f..000000000000 --- a/deps/rabbitmq_management_agent/BUILD.bazel +++ /dev/null @@ -1,142 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_ENV = """[ - {rates_mode, basic}, - {sample_retention_policies, - %% List of {MaxAgeInSeconds, SampleEveryNSeconds} - [{global, [{605, 5}, {3660, 60}, {29400, 600}, {86400, 1800}]}, - {basic, [{605, 5}, {3600, 60}]}, - {detailed, [{605, 5}]}]} - ]""" - -APP_NAME = "rabbitmq_management_agent" - -APP_DESCRIPTION = "RabbitMQ Management Agent" - -APP_MODULE = "rabbit_mgmt_agent_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app xmerl -# gazelle:erlang_app_extra_app ssl -# gazelle:erlang_app_extra_app crypto -# gazelle:erlang_app_extra_app public_key - -# gazelle:erlang_app_dep ranch - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - "public_key", - "ssl", - "xmerl", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - "@ranch//:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", - deps = ["//deps/rabbitmq_cli:erlang_app"], # keep -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_suite( - name = "exometer_slide_SUITE", - size = "medium", - deps = [ - "@proper//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "metrics_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "rabbit_mgmt_gc_SUITE", - size = "medium", -) - -rabbitmq_suite( - name = "rabbit_mgmt_slide_SUITE", - size = "small", - deps = [ - "//deps/rabbitmq_ct_helpers:erlang_app", - "@proper//:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_management_agent", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_management_agent/Makefile b/deps/rabbitmq_management_agent/Makefile index 13531dd7da93..a1a3b064b832 100644 --- a/deps/rabbitmq_management_agent/Makefile +++ b/deps/rabbitmq_management_agent/Makefile @@ -21,7 +21,7 @@ DEPS = rabbit_common rabbit rabbitmq_web_dispatch TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers LOCAL_DEPS += xmerl ranch ssl crypto public_key -PLT_APPS += rabbitmqctl +PLT_APPS += rabbitmq_cli DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk diff --git a/deps/rabbitmq_management_agent/app.bzl b/deps/rabbitmq_management_agent/app.bzl deleted file mode 100644 index 674fc7a45f33..000000000000 --- a/deps/rabbitmq_management_agent/app.bzl +++ /dev/null @@ -1,171 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ResetStatsDbCommand.erl", - "src/exometer_slide.erl", - "src/rabbit_mgmt_agent_app.erl", - "src/rabbit_mgmt_agent_config.erl", - "src/rabbit_mgmt_agent_sup.erl", - "src/rabbit_mgmt_agent_sup_sup.erl", - "src/rabbit_mgmt_data.erl", - "src/rabbit_mgmt_data_compat.erl", - "src/rabbit_mgmt_db_handler.erl", - "src/rabbit_mgmt_external_stats.erl", - "src/rabbit_mgmt_ff.erl", - "src/rabbit_mgmt_format.erl", - "src/rabbit_mgmt_gc.erl", - "src/rabbit_mgmt_metrics_collector.erl", - "src/rabbit_mgmt_metrics_gc.erl", - "src/rabbit_mgmt_storage.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_management_agent", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ResetStatsDbCommand.erl", - "src/exometer_slide.erl", - "src/rabbit_mgmt_agent_app.erl", - "src/rabbit_mgmt_agent_config.erl", - "src/rabbit_mgmt_agent_sup.erl", - "src/rabbit_mgmt_agent_sup_sup.erl", - "src/rabbit_mgmt_data.erl", - "src/rabbit_mgmt_data_compat.erl", - "src/rabbit_mgmt_db_handler.erl", - "src/rabbit_mgmt_external_stats.erl", - "src/rabbit_mgmt_ff.erl", - "src/rabbit_mgmt_format.erl", - "src/rabbit_mgmt_gc.erl", - "src/rabbit_mgmt_metrics_collector.erl", - "src/rabbit_mgmt_metrics_gc.erl", - "src/rabbit_mgmt_storage.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_management_agent", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_management_agent.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ResetStatsDbCommand.erl", - "src/exometer_slide.erl", - "src/rabbit_mgmt_agent_app.erl", - "src/rabbit_mgmt_agent_config.erl", - "src/rabbit_mgmt_agent_sup.erl", - "src/rabbit_mgmt_agent_sup_sup.erl", - "src/rabbit_mgmt_data.erl", - "src/rabbit_mgmt_data_compat.erl", - "src/rabbit_mgmt_db_handler.erl", - "src/rabbit_mgmt_external_stats.erl", - "src/rabbit_mgmt_ff.erl", - "src/rabbit_mgmt_format.erl", - "src/rabbit_mgmt_gc.erl", - "src/rabbit_mgmt_metrics_collector.erl", - "src/rabbit_mgmt_metrics_gc.erl", - "src/rabbit_mgmt_storage.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = [ - "include/rabbit_mgmt_agent.hrl", - "include/rabbit_mgmt_metrics.hrl", - "include/rabbit_mgmt_records.hrl", - ], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "exometer_slide_SUITE_beam_files", - testonly = True, - srcs = ["test/exometer_slide_SUITE.erl"], - outs = ["test/exometer_slide_SUITE.beam"], - app_name = "rabbitmq_management_agent", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) - erlang_bytecode( - name = "metrics_SUITE_beam_files", - testonly = True, - srcs = ["test/metrics_SUITE.erl"], - outs = ["test/metrics_SUITE.beam"], - app_name = "rabbitmq_management_agent", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_mgmt_gc_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_gc_SUITE.erl"], - outs = ["test/rabbit_mgmt_gc_SUITE.beam"], - hdrs = ["include/rabbit_mgmt_metrics.hrl"], - app_name = "rabbitmq_management_agent", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_mgmt_slide_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mgmt_slide_SUITE.erl"], - outs = ["test/rabbit_mgmt_slide_SUITE.beam"], - app_name = "rabbitmq_management_agent", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) diff --git a/deps/rabbitmq_mqtt/BUILD.bazel b/deps/rabbitmq_mqtt/BUILD.bazel deleted file mode 100644 index 4c4ec30ffc78..000000000000 --- a/deps/rabbitmq_mqtt/BUILD.bazel +++ /dev/null @@ -1,310 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_mqtt" - -APP_DESCRIPTION = "RabbitMQ MQTT Adapter" - -APP_MODULE = "rabbit_mqtt" - -APP_ENV = """[ - {ssl_cert_login,false}, - {allow_anonymous, true}, - {vhost, <<"/">>}, - {exchange, <<"amq.topic">>}, - {max_session_expiry_interval_seconds, 86400}, %% 1 day - {retained_message_store, rabbit_mqtt_retained_msg_store_dets}, - %% only used by DETS store - {retained_message_store_dets_sync_interval, 2000}, - {prefetch, 10}, - {ssl_listeners, []}, - {tcp_listeners, [1883]}, - {num_tcp_acceptors, 10}, - {num_ssl_acceptors, 10}, - {tcp_listen_options, [{backlog, 128}, - {nodelay, true}, - {send_timeout, 15000}, - {send_timeout_close, true} - ]}, - {proxy_protocol, false}, - {sparkplug, false}, - {mailbox_soft_limit, 200}, - {max_packet_size_unauthenticated, 65536}, - %% 256 MB is upper limit defined by MQTT spec - %% We set 16 MB as defined in deps/rabbit/Makefile max_message_size - {max_packet_size_authenticated, 16777216}, - {topic_alias_maximum, 16} - ] -""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app ssl - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = ["ssl"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@cowlib//:erlang_app", - "@ranch//:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", - deps = ["//deps/rabbitmq_cli:erlang_app"], # keep -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [ - ":test_rabbit_auth_backend_mqtt_mock_beam", - ":test_event_recorder_beam", - ":test_util_beam", - ], - target = ":test_erlang_app", -) - -broker_for_integration_suites( - extra_plugins = [ - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_web_mqtt:erlang_app", - "//deps/rabbitmq_consistent_hash_exchange:erlang_app", - "//deps/rabbitmq_stomp:erlang_app", - "//deps/rabbitmq_stream:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "auth_SUITE", - additional_beam = [ - "test/rabbit_auth_backend_mqtt_mock.beam", - "test/util.beam", - ], - shard_count = 22, - runtime_deps = [ - "@emqtt//:erlang_app", - "@meck//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "cluster_SUITE", - size = "large", - additional_beam = [ - ":test_util_beam", - ], - flaky = True, - shard_count = 4, - sharding_method = "case", - runtime_deps = [ - "@emqtt//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "command_SUITE", - additional_beam = [ - ":test_util_beam", - ], - runtime_deps = [ - "@emqtt//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "config_SUITE", -) - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "java_SUITE", - additional_beam = [ - ":test_util_beam", - ], - shard_count = 2, - sharding_method = "group", -) - -rabbitmq_suite( - name = "processor_SUITE", - size = "small", - runtime_deps = [ - "@meck//:erlang_app", - ], - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "proxy_protocol_SUITE", - additional_beam = [ - ":test_util_beam", - ], -) - -rabbitmq_integration_suite( - name = "reader_SUITE", - additional_beam = [ - ":test_util_beam", - ":test_event_recorder_beam", - ], - runtime_deps = [ - "@emqtt//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "retainer_SUITE", - additional_beam = [ - ":test_util_beam", - ], - shard_count = 6, - runtime_deps = [ - "@emqtt//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "mqtt_shared_SUITE", - size = "large", - additional_beam = [ - ":test_util_beam", - ":test_event_recorder_beam", - ], - shard_count = 5, - runtime_deps = [ - "//deps/rabbitmq_management_agent:erlang_app", - "@emqtt//:erlang_app", - "@gun//:erlang_app", - "@meck//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "v5_SUITE", - size = "large", - additional_beam = [ - ":test_util_beam", - ], - shard_count = 2, - runtime_deps = [ - "@emqtt//:erlang_app", - "@gun//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "protocol_interop_SUITE", - size = "medium", - additional_beam = [ - ":test_util_beam", - ], - shard_count = 2, - runtime_deps = [ - "//deps/rabbitmq_amqp_client:erlang_app", - "//deps/rabbitmq_stomp:erlang_app", - "//deps/rabbitmq_stream_common:erlang_app", - "@emqtt//:erlang_app", - ], -) - -rabbitmq_suite( - name = "packet_prop_SUITE", - deps = [ - "//deps/rabbitmq_ct_helpers:erlang_app", - ], -) - -rabbitmq_suite( - name = "rabbit_mqtt_confirms_SUITE", - size = "small", - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_suite( - name = "util_SUITE", - size = "small", - data = [ - "test/rabbitmq_mqtt.app", - ], -) - -rabbitmq_suite( - name = "mc_mqtt_SUITE", - size = "small", - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit:erlang_app", - ], -) - -# assert_suites() - -alias( - name = "rabbitmq_mqtt", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_mqtt/Makefile b/deps/rabbitmq_mqtt/Makefile index 226711993ab0..fde095031a52 100644 --- a/deps/rabbitmq_mqtt/Makefile +++ b/deps/rabbitmq_mqtt/Makefile @@ -45,7 +45,7 @@ LOCAL_DEPS = ssl DEPS = ranch rabbit amqp10_common TEST_DEPS = cowlib emqtt ct_helper rabbitmq_ct_helpers rabbitmq_ct_client_helpers rabbitmq_management amqp_client rabbitmq_consistent_hash_exchange rabbitmq_amqp_client rabbitmq_stomp rabbitmq_stream rabbitmq_federation -PLT_APPS += rabbitmqctl elixir +PLT_APPS += rabbitmq_cli elixir dep_ct_helper = git https://github.com/extend/ct_helper.git master dep_emqtt = git https://github.com/emqx/emqtt.git 1.11.0 @@ -144,6 +144,7 @@ tpl_parallel_ct_test_spec_set_$1 = $$(call tpl_parallel_ct_test_spec,$(PARALLEL_ parallel-ct-set-$(1): test-build $(verbose) mkdir -p $(CT_LOGS_DIR) $(verbose) $$(call core_render,tpl_parallel_ct_test_spec_set_$(1),ct.set-$(1).spec) + $$(eval ERL := erl -noinput -boot no_dot_erlang) $$(call erlang,$$(call ct_master.erl,ct.set-$(1).spec),-sname parallel_ct_$(PROJECT)@localhost -hidden -kernel net_ticktime 5) endef diff --git a/deps/rabbitmq_mqtt/app.bzl b/deps/rabbitmq_mqtt/app.bzl deleted file mode 100644 index 40518d4304ad..000000000000 --- a/deps/rabbitmq_mqtt/app.bzl +++ /dev/null @@ -1,347 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":behaviours", ":other_beam"], - ) - erlang_bytecode( - name = "behaviours", - srcs = ["src/rabbit_mqtt_retained_msg_store.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_mqtt", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListMqttConnectionsCommand.erl", - "src/mc_mqtt.erl", - "src/rabbit_mqtt.erl", - "src/rabbit_mqtt_confirms.erl", - "src/rabbit_mqtt_ff.erl", - "src/rabbit_mqtt_internal_event_handler.erl", - "src/rabbit_mqtt_keepalive.erl", - "src/rabbit_mqtt_packet.erl", - "src/rabbit_mqtt_processor.erl", - "src/rabbit_mqtt_qos0_queue.erl", - "src/rabbit_mqtt_reader.erl", - "src/rabbit_mqtt_retained_msg_store_dets.erl", - "src/rabbit_mqtt_retained_msg_store_ets.erl", - "src/rabbit_mqtt_retained_msg_store_noop.erl", - "src/rabbit_mqtt_retainer.erl", - "src/rabbit_mqtt_retainer_sup.erl", - "src/rabbit_mqtt_sup.erl", - "src/rabbit_mqtt_util.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_mqtt", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/rabbit:erlang_app", "//deps/rabbit_common:erlang_app", "//deps/rabbitmq_cli:erlang_app", "@ranch//:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_behaviours", ":test_other_beam"], - ) - erlang_bytecode( - name = "test_behaviours", - testonly = True, - srcs = ["src/rabbit_mqtt_retained_msg_store.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_mqtt", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListMqttConnectionsCommand.erl", - "src/mc_mqtt.erl", - "src/rabbit_mqtt.erl", - "src/rabbit_mqtt_confirms.erl", - "src/rabbit_mqtt_ff.erl", - "src/rabbit_mqtt_internal_event_handler.erl", - "src/rabbit_mqtt_keepalive.erl", - "src/rabbit_mqtt_packet.erl", - "src/rabbit_mqtt_processor.erl", - "src/rabbit_mqtt_qos0_queue.erl", - "src/rabbit_mqtt_reader.erl", - "src/rabbit_mqtt_retained_msg_store_dets.erl", - "src/rabbit_mqtt_retained_msg_store_ets.erl", - "src/rabbit_mqtt_retained_msg_store_noop.erl", - "src/rabbit_mqtt_retainer.erl", - "src/rabbit_mqtt_retainer_sup.erl", - "src/rabbit_mqtt_sup.erl", - "src/rabbit_mqtt_util.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_mqtt", - beam = [":test_behaviours"], - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "@ranch//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_mqtt.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListMqttConnectionsCommand.erl", - "src/mc_mqtt.erl", - "src/rabbit_mqtt.erl", - "src/rabbit_mqtt_confirms.erl", - "src/rabbit_mqtt_ff.erl", - "src/rabbit_mqtt_internal_event_handler.erl", - "src/rabbit_mqtt_keepalive.erl", - "src/rabbit_mqtt_packet.erl", - "src/rabbit_mqtt_processor.erl", - "src/rabbit_mqtt_qos0_queue.erl", - "src/rabbit_mqtt_reader.erl", - "src/rabbit_mqtt_retained_msg_store.erl", - "src/rabbit_mqtt_retained_msg_store_dets.erl", - "src/rabbit_mqtt_retained_msg_store_ets.erl", - "src/rabbit_mqtt_retained_msg_store_noop.erl", - "src/rabbit_mqtt_retainer.erl", - "src/rabbit_mqtt_retainer_sup.erl", - "src/rabbit_mqtt_sup.erl", - "src/rabbit_mqtt_util.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = [ - "include/rabbit_mqtt.hrl", - "include/rabbit_mqtt_packet.hrl", - ], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "auth_SUITE_beam_files", - testonly = True, - srcs = ["test/auth_SUITE.erl"], - outs = ["test/auth_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "cluster_SUITE_beam_files", - testonly = True, - srcs = ["test/cluster_SUITE.erl"], - outs = ["test/cluster_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "command_SUITE_beam_files", - testonly = True, - srcs = ["test/command_SUITE.erl"], - outs = ["test/command_SUITE.beam"], - hdrs = ["include/rabbit_mqtt.hrl"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "java_SUITE_beam_files", - testonly = True, - srcs = ["test/java_SUITE.erl"], - outs = ["test/java_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - - erlang_bytecode( - name = "processor_SUITE_beam_files", - testonly = True, - srcs = ["test/processor_SUITE.erl"], - outs = ["test/processor_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "proxy_protocol_SUITE_beam_files", - testonly = True, - srcs = ["test/proxy_protocol_SUITE.erl"], - outs = ["test/proxy_protocol_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "reader_SUITE_beam_files", - testonly = True, - srcs = ["test/reader_SUITE.erl"], - outs = ["test/reader_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "retainer_SUITE_beam_files", - testonly = True, - srcs = ["test/retainer_SUITE.erl"], - outs = ["test/retainer_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_rabbit_auth_backend_mqtt_mock_beam", - testonly = True, - srcs = ["test/rabbit_auth_backend_mqtt_mock.erl"], - outs = ["test/rabbit_auth_backend_mqtt_mock.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "util_SUITE_beam_files", - testonly = True, - srcs = ["test/util_SUITE.erl"], - outs = ["test/util_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "config_SUITE_beam_files", - testonly = True, - srcs = ["test/config_SUITE.erl"], - outs = ["test/config_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - - erlang_bytecode( - name = "test_event_recorder_beam", - testonly = True, - srcs = ["test/event_recorder.erl"], - outs = ["test/event_recorder.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "test_util_beam", - testonly = True, - srcs = ["test/util.erl"], - outs = ["test/util.beam"], - hdrs = ["include/rabbit_mqtt.hrl"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "packet_prop_SUITE_beam_files", - testonly = True, - srcs = ["test/packet_prop_SUITE.erl"], - outs = ["test/packet_prop_SUITE.beam"], - hdrs = ["include/rabbit_mqtt_packet.hrl"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["@proper//:erlang_app"], - ) - erlang_bytecode( - name = "v5_SUITE_beam_files", - testonly = True, - srcs = ["test/v5_SUITE.erl"], - outs = ["test/v5_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_mqtt_confirms_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_mqtt_confirms_SUITE.erl"], - outs = ["test/rabbit_mqtt_confirms_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "mc_mqtt_SUITE_beam_files", - testonly = True, - srcs = ["test/mc_mqtt_SUITE.erl"], - outs = ["test/mc_mqtt_SUITE.beam"], - hdrs = ["include/rabbit_mqtt_packet.hrl"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/rabbit:erlang_app", "//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "protocol_interop_SUITE_beam_files", - testonly = True, - srcs = ["test/protocol_interop_SUITE.erl"], - outs = ["test/protocol_interop_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/amqp_client:erlang_app", "//deps/rabbitmq_stomp:erlang_app"], - ) - erlang_bytecode( - name = "mqtt_shared_SUITE_beam_files", - testonly = True, - srcs = ["test/mqtt_shared_SUITE.erl"], - outs = ["test/mqtt_shared_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "feature_flag_SUITE_beam_files", - testonly = True, - srcs = ["test/feature_flag_SUITE.erl"], - outs = ["test/feature_flag_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "federation_SUITE_beam_files", - testonly = True, - srcs = ["test/federation_SUITE.erl"], - outs = ["test/federation_SUITE.beam"], - app_name = "rabbitmq_mqtt", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_mqtt/test/java_SUITE_data/pom.xml b/deps/rabbitmq_mqtt/test/java_SUITE_data/pom.xml index 098be589144a..af54dbf4e53f 100644 --- a/deps/rabbitmq_mqtt/test/java_SUITE_data/pom.xml +++ b/deps/rabbitmq_mqtt/test/java_SUITE_data/pom.xml @@ -16,7 +16,7 @@ [1.2.5,) [1.2.5,) 5.25.0 - 5.12.0 + 5.12.1 3.27.3 1.2.13 3.5.2 diff --git a/deps/rabbitmq_peer_discovery_aws/BUILD.bazel b/deps/rabbitmq_peer_discovery_aws/BUILD.bazel deleted file mode 100644 index f5bc80aececb..000000000000 --- a/deps/rabbitmq_peer_discovery_aws/BUILD.bazel +++ /dev/null @@ -1,119 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_peer_discovery_aws" - -APP_DESCRIPTION = "AWS-based RabbitMQ peer discovery backend" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app inets - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = ["inets"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_aws:erlang_app", - "//deps/rabbitmq_peer_discovery_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [":test_aws_ecs_util_beam"], - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "config_schema_SUITE", - size = "medium", -) - -# NOTE: integration_SUITE requires aws credentials and a docker image. -# They can be supplied with: -# --test_env AWS_ACCESS_KEY_ID=... --test_env AWS_SECRET_ACCESS_KEY=... -# --test_env RABBITMQ_IMAGE=... -# bazel args -rabbitmq_suite( - name = "integration_SUITE", - size = "large", - additional_beam = [ - "test/aws_ecs_util.beam", - ], - tags = [ - "aws", - "external", - ], - deps = [ - "//deps/rabbitmq_ct_helpers:erlang_app", - ], -) - -rabbitmq_suite( - name = "unit_SUITE", - size = "small", - deps = [ - "@meck//:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_peer_discovery_aws", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_peer_discovery_aws/app.bzl b/deps/rabbitmq_peer_discovery_aws/app.bzl deleted file mode 100644 index 33648bbec08b..000000000000 --- a/deps/rabbitmq_peer_discovery_aws/app.bzl +++ /dev/null @@ -1,112 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_peer_discovery_aws.erl", - "src/rabbitmq_peer_discovery_aws.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_peer_discovery_aws", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_peer_discovery_common:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_peer_discovery_aws.erl", - "src/rabbitmq_peer_discovery_aws.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_peer_discovery_aws", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_peer_discovery_common:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_peer_discovery_aws.schema"], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_peer_discovery_aws.erl", - "src/rabbitmq_peer_discovery_aws.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_peer_discovery_aws", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "integration_SUITE_beam_files", - testonly = True, - srcs = ["test/integration_SUITE.erl"], - outs = ["test/integration_SUITE.beam"], - app_name = "rabbitmq_peer_discovery_aws", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "test_aws_ecs_util_beam", - testonly = True, - srcs = ["test/aws_ecs_util.erl"], - outs = ["test/aws_ecs_util.beam"], - app_name = "rabbitmq_peer_discovery_aws", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - app_name = "rabbitmq_peer_discovery_aws", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_peer_discovery_common/BUILD.bazel b/deps/rabbitmq_peer_discovery_common/BUILD.bazel deleted file mode 100644 index 8cb0c4f97453..000000000000 --- a/deps/rabbitmq_peer_discovery_common/BUILD.bazel +++ /dev/null @@ -1,89 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_peer_discovery_common" - -APP_DESCRIPTION = "Modules shared by various peer discovery backends" - -APP_MODULE = "rabbit_peer_discovery_common_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app inets - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = ["inets"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -assert_suites() - -alias( - name = "rabbitmq_peer_discovery_common", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_peer_discovery_common/app.bzl b/deps/rabbitmq_peer_discovery_common/app.bzl deleted file mode 100644 index e44ac78708e4..000000000000 --- a/deps/rabbitmq_peer_discovery_common/app.bzl +++ /dev/null @@ -1,98 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_peer_discovery_cleanup.erl", - "src/rabbit_peer_discovery_common_app.erl", - "src/rabbit_peer_discovery_common_sup.erl", - "src/rabbit_peer_discovery_config.erl", - "src/rabbit_peer_discovery_httpc.erl", - "src/rabbit_peer_discovery_util.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_peer_discovery_common", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_peer_discovery_cleanup.erl", - "src/rabbit_peer_discovery_common_app.erl", - "src/rabbit_peer_discovery_common_sup.erl", - "src/rabbit_peer_discovery_config.erl", - "src/rabbit_peer_discovery_httpc.erl", - "src/rabbit_peer_discovery_util.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_peer_discovery_common", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_peer_discovery_common.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_peer_discovery_cleanup.erl", - "src/rabbit_peer_discovery_common_app.erl", - "src/rabbit_peer_discovery_common_sup.erl", - "src/rabbit_peer_discovery_config.erl", - "src/rabbit_peer_discovery_httpc.erl", - "src/rabbit_peer_discovery_util.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbit_peer_discovery.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_peer_discovery_common", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_peer_discovery_consul/BUILD.bazel b/deps/rabbitmq_peer_discovery_consul/BUILD.bazel deleted file mode 100644 index 11e70ad3e34f..000000000000 --- a/deps/rabbitmq_peer_discovery_consul/BUILD.bazel +++ /dev/null @@ -1,101 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_peer_discovery_consul" - -APP_DESCRIPTION = "Consult-based RabbitMQ peer discovery backend" - -APP_MODULE = "rabbitmq_peer_discovery_consul_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_peer_discovery_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "system_SUITE", - size = "large", -) - -rabbitmq_suite( - name = "rabbitmq_peer_discovery_consul_SUITE", - size = "medium", - deps = [ - "@meck//:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_peer_discovery_consul", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_peer_discovery_consul/Makefile b/deps/rabbitmq_peer_discovery_consul/Makefile index f51ce7c8bd99..e8d0e7194061 100644 --- a/deps/rabbitmq_peer_discovery_consul/Makefile +++ b/deps/rabbitmq_peer_discovery_consul/Makefile @@ -1,6 +1,5 @@ PROJECT = rabbitmq_peer_discovery_consul PROJECT_DESCRIPTION = Consult-based RabbitMQ peer discovery backend -PROJECT_MOD = rabbitmq_peer_discovery_consul_app DEPS = rabbit_common rabbitmq_peer_discovery_common rabbit TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers ct_helper meck diff --git a/deps/rabbitmq_peer_discovery_consul/app.bzl b/deps/rabbitmq_peer_discovery_consul/app.bzl deleted file mode 100644 index 44ae06ccf848..000000000000 --- a/deps/rabbitmq_peer_discovery_consul/app.bzl +++ /dev/null @@ -1,117 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_peer_discovery_consul.erl", - "src/rabbitmq_peer_discovery_consul.erl", - "src/rabbitmq_peer_discovery_consul_app.erl", - "src/rabbitmq_peer_discovery_consul_health_check_helper.erl", - "src/rabbitmq_peer_discovery_consul_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_peer_discovery_consul", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_peer_discovery_common:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_peer_discovery_consul.erl", - "src/rabbitmq_peer_discovery_consul.erl", - "src/rabbitmq_peer_discovery_consul_app.erl", - "src/rabbitmq_peer_discovery_consul_health_check_helper.erl", - "src/rabbitmq_peer_discovery_consul_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_peer_discovery_consul", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_peer_discovery_common:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_peer_discovery_consul.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_peer_discovery_consul.erl", - "src/rabbitmq_peer_discovery_consul.erl", - "src/rabbitmq_peer_discovery_consul_app.erl", - "src/rabbitmq_peer_discovery_consul_health_check_helper.erl", - "src/rabbitmq_peer_discovery_consul_sup.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbit_peer_discovery_consul.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_peer_discovery_consul", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - app_name = "rabbitmq_peer_discovery_consul", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbitmq_peer_discovery_consul_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbitmq_peer_discovery_consul_SUITE.erl"], - outs = ["test/rabbitmq_peer_discovery_consul_SUITE.beam"], - app_name = "rabbitmq_peer_discovery_consul", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_peer_discovery_etcd/BUILD.bazel b/deps/rabbitmq_peer_discovery_etcd/BUILD.bazel deleted file mode 100644 index eea80562a689..000000000000 --- a/deps/rabbitmq_peer_discovery_etcd/BUILD.bazel +++ /dev/null @@ -1,116 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", - "without", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_peer_discovery_etcd" - -APP_DESCRIPTION = "etcd-based RabbitMQ peer discovery backend" - -APP_MODULE = "rabbitmq_peer_discovery_etcd_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep rabbit -# gazelle:erlang_app_dep gun -# gazelle:erlang_app_dep_exclude credentials_obfuscation - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_peer_discovery_common:erlang_app", - "@eetcd//:erlang_app", - "@gun//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - # rather that setting for_target, which will include @gun - # (via @eetcd) and fail, we produce the equivalent plt - # without it - for_target = None, # keep - ignore_warnings = True, - plt = "//:base_plt", - deps = [ - "//deps/rabbit:erlang_app", # keep - "//deps/rabbit_common:erlang_app", # keep - "//deps/rabbitmq_peer_discovery_common:erlang_app", # keep - ], -) - -dialyze( - name = "dialyze", - dialyzer_opts = without( - "-Wunknown", # also because of `eetcd' - RABBITMQ_DIALYZER_OPTS, - ), - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "system_SUITE", - size = "large", -) - -rabbitmq_suite( - name = "unit_SUITE", - size = "small", -) - -assert_suites() - -alias( - name = "rabbitmq_peer_discovery_etcd", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_peer_discovery_etcd/Makefile b/deps/rabbitmq_peer_discovery_etcd/Makefile index 510684901676..3e5021461d6c 100644 --- a/deps/rabbitmq_peer_discovery_etcd/Makefile +++ b/deps/rabbitmq_peer_discovery_etcd/Makefile @@ -1,6 +1,5 @@ PROJECT = rabbitmq_peer_discovery_etcd PROJECT_DESCRIPTION = etcd-based RabbitMQ peer discovery backend -PROJECT_MOD = rabbitmq_peer_discovery_etcd_app DEPS = rabbit_common rabbitmq_peer_discovery_common rabbit eetcd gun TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers ct_helper meck diff --git a/deps/rabbitmq_peer_discovery_etcd/app.bzl b/deps/rabbitmq_peer_discovery_etcd/app.bzl deleted file mode 100644 index e07a3b586750..000000000000 --- a/deps/rabbitmq_peer_discovery_etcd/app.bzl +++ /dev/null @@ -1,119 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_peer_discovery_etcd.erl", - "src/rabbitmq_peer_discovery_etcd.erl", - "src/rabbitmq_peer_discovery_etcd_app.erl", - "src/rabbitmq_peer_discovery_etcd_sup.erl", - "src/rabbitmq_peer_discovery_etcd_v3_client.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_peer_discovery_etcd", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_peer_discovery_common:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_peer_discovery_etcd.erl", - "src/rabbitmq_peer_discovery_etcd.erl", - "src/rabbitmq_peer_discovery_etcd_app.erl", - "src/rabbitmq_peer_discovery_etcd_sup.erl", - "src/rabbitmq_peer_discovery_etcd_v3_client.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_peer_discovery_etcd", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_peer_discovery_common:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_peer_discovery_etcd.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_peer_discovery_etcd.erl", - "src/rabbitmq_peer_discovery_etcd.erl", - "src/rabbitmq_peer_discovery_etcd_app.erl", - "src/rabbitmq_peer_discovery_etcd_sup.erl", - "src/rabbitmq_peer_discovery_etcd_v3_client.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbit_peer_discovery_etcd.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_peer_discovery_etcd", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - hdrs = ["include/rabbit_peer_discovery_etcd.hrl"], - app_name = "rabbitmq_peer_discovery_etcd", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - hdrs = ["include/rabbit_peer_discovery_etcd.hrl"], - app_name = "rabbitmq_peer_discovery_etcd", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_peer_discovery_k8s/BUILD.bazel b/deps/rabbitmq_peer_discovery_k8s/BUILD.bazel deleted file mode 100644 index 8e6347dcdc9a..000000000000 --- a/deps/rabbitmq_peer_discovery_k8s/BUILD.bazel +++ /dev/null @@ -1,92 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_peer_discovery_k8s" - -APP_DESCRIPTION = "Kubernetes-based RabbitMQ peer discovery backend" - -APP_MODULE = "rabbitmq_peer_discovery_k8s_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = ["//deps/rabbit_common:erlang_app"], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_suite( - name = "rabbitmq_peer_discovery_k8s_SUITE", - size = "small", - deps = [ - "@meck//:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_peer_discovery_k8s", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_peer_discovery_k8s/Makefile b/deps/rabbitmq_peer_discovery_k8s/Makefile index 8de21011f38b..8ab513efcd08 100644 --- a/deps/rabbitmq_peer_discovery_k8s/Makefile +++ b/deps/rabbitmq_peer_discovery_k8s/Makefile @@ -1,6 +1,5 @@ PROJECT = rabbitmq_peer_discovery_k8s PROJECT_DESCRIPTION = Kubernetes-based RabbitMQ peer discovery backend -PROJECT_MOD = rabbitmq_peer_discovery_k8s_app DEPS = rabbit_common rabbitmq_peer_discovery_common rabbit TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers meck diff --git a/deps/rabbitmq_peer_discovery_k8s/app.bzl b/deps/rabbitmq_peer_discovery_k8s/app.bzl deleted file mode 100644 index a067ad256f4f..000000000000 --- a/deps/rabbitmq_peer_discovery_k8s/app.bzl +++ /dev/null @@ -1,93 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_peer_discovery_k8s.erl", - "src/rabbitmq_peer_discovery_k8s.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_peer_discovery_k8s", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_peer_discovery_k8s.erl", - "src/rabbitmq_peer_discovery_k8s.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_peer_discovery_k8s", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_peer_discovery_k8s.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_peer_discovery_k8s.erl", - "src/rabbitmq_peer_discovery_k8s.erl", - ], - ) - filegroup( - name = "public_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_peer_discovery_k8s", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbitmq_peer_discovery_k8s_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbitmq_peer_discovery_k8s_SUITE.erl"], - outs = ["test/rabbitmq_peer_discovery_k8s_SUITE.beam"], - app_name = "rabbitmq_peer_discovery_k8s", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_prelaunch/BUILD.bazel b/deps/rabbitmq_prelaunch/BUILD.bazel deleted file mode 100644 index f9cd5eda7280..000000000000 --- a/deps/rabbitmq_prelaunch/BUILD.bazel +++ /dev/null @@ -1,105 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "APP_VERSION", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_prelaunch" - -APP_DESCRIPTION = "RabbitMQ prelaunch setup" - -APP_MODULE = "rabbit_prelaunch_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep thoas - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_module = APP_MODULE, - app_name = APP_NAME, - app_version = APP_VERSION, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit_common:erlang_app", - "@cuttlefish//:erlang_app", - "@thoas//:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "@systemd//:erlang_app", # keep - "@osiris//:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - apps = [ - "runtime_tools", # keep - "eunit", # keep - ], - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", - deps = [ - "@osiris//:erlang_app", # keep - "@systemd//:erlang_app", # keep - ], -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -rabbitmq_suite( - name = "rabbit_logger_std_h_SUITE", -) - -rabbitmq_suite( - name = "rabbit_prelaunch_file_SUITE", - size = "small", -) - -assert_suites() - -alias( - name = "rabbitmq_prelaunch", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_prelaunch/app.bzl b/deps/rabbitmq_prelaunch/app.bzl deleted file mode 100644 index cd50ff5cb8b1..000000000000 --- a/deps/rabbitmq_prelaunch/app.bzl +++ /dev/null @@ -1,136 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_boot_state.erl", - "src/rabbit_boot_state_sup.erl", - "src/rabbit_boot_state_systemd.erl", - "src/rabbit_boot_state_xterm_titlebar.erl", - "src/rabbit_logger_fmt_helpers.erl", - "src/rabbit_logger_json_fmt.erl", - "src/rabbit_logger_std_h.erl", - "src/rabbit_logger_text_fmt.erl", - "src/rabbit_prelaunch.erl", - "src/rabbit_prelaunch_app.erl", - "src/rabbit_prelaunch_conf.erl", - "src/rabbit_prelaunch_dist.erl", - "src/rabbit_prelaunch_early_logging.erl", - "src/rabbit_prelaunch_erlang_compat.erl", - "src/rabbit_prelaunch_errors.erl", - "src/rabbit_prelaunch_file.erl", - "src/rabbit_prelaunch_sighandler.erl", - "src/rabbit_prelaunch_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_prelaunch", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_boot_state.erl", - "src/rabbit_boot_state_sup.erl", - "src/rabbit_boot_state_systemd.erl", - "src/rabbit_boot_state_xterm_titlebar.erl", - "src/rabbit_logger_fmt_helpers.erl", - "src/rabbit_logger_json_fmt.erl", - "src/rabbit_logger_std_h.erl", - "src/rabbit_logger_text_fmt.erl", - "src/rabbit_prelaunch.erl", - "src/rabbit_prelaunch_app.erl", - "src/rabbit_prelaunch_conf.erl", - "src/rabbit_prelaunch_dist.erl", - "src/rabbit_prelaunch_early_logging.erl", - "src/rabbit_prelaunch_erlang_compat.erl", - "src/rabbit_prelaunch_errors.erl", - "src/rabbit_prelaunch_file.erl", - "src/rabbit_prelaunch_sighandler.erl", - "src/rabbit_prelaunch_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_prelaunch", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_boot_state.erl", - "src/rabbit_boot_state_sup.erl", - "src/rabbit_boot_state_systemd.erl", - "src/rabbit_boot_state_xterm_titlebar.erl", - "src/rabbit_logger_fmt_helpers.erl", - "src/rabbit_logger_json_fmt.erl", - "src/rabbit_logger_std_h.erl", - "src/rabbit_logger_text_fmt.erl", - "src/rabbit_prelaunch.erl", - "src/rabbit_prelaunch_app.erl", - "src/rabbit_prelaunch_conf.erl", - "src/rabbit_prelaunch_dist.erl", - "src/rabbit_prelaunch_early_logging.erl", - "src/rabbit_prelaunch_erlang_compat.erl", - "src/rabbit_prelaunch_errors.erl", - "src/rabbit_prelaunch_file.erl", - "src/rabbit_prelaunch_sighandler.erl", - "src/rabbit_prelaunch_sup.erl", - ], - ) - filegroup( - name = "priv", - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "public_hdrs", - ) - filegroup( - name = "license_files", - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "rabbit_logger_std_h_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_logger_std_h_SUITE.erl"], - outs = ["test/rabbit_logger_std_h_SUITE.beam"], - app_name = "rabbitmq_prelaunch", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_prelaunch_file_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_prelaunch_file_SUITE.erl"], - outs = ["test/rabbit_prelaunch_file_SUITE.beam"], - app_name = "rabbitmq_prelaunch", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_prometheus/BUILD.bazel b/deps/rabbitmq_prometheus/BUILD.bazel deleted file mode 100644 index b0d71c0cda52..000000000000 --- a/deps/rabbitmq_prometheus/BUILD.bazel +++ /dev/null @@ -1,107 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_prometheus" - -APP_MODULE = "rabbit_prometheus_app" - -APP_ENV = """[ - {return_per_object_metrics, false}, - {tcp_config, [{port, 15692}]}, - {ssl_config, []} -]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep rabbitmq_management_agent -# gazelle:erlang_app_dep_exclude amqp_client -# gazelle:erlang_app_dep_exclude rabbit_common - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = "Prometheus metrics for RabbitMQ", - app_env = APP_ENV, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - "@accept//:erlang_app", - "@cowboy//:erlang_app", - "@prometheus//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [":rabbitmq_prometheus_collector_test_proxy_beam_files"], #keep - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "config_schema_SUITE", - size = "small", -) - -rabbitmq_integration_suite( - name = "rabbit_prometheus_http_SUITE", - size = "medium", - flaky = True, -) - -assert_suites() - -alias( - name = "rabbitmq_prometheus", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_prometheus/Makefile b/deps/rabbitmq_prometheus/Makefile index be43cf45e9fa..75976e7cea8d 100644 --- a/deps/rabbitmq_prometheus/Makefile +++ b/deps/rabbitmq_prometheus/Makefile @@ -11,9 +11,7 @@ PROJECT_DESCRIPTION = Prometheus metrics for RabbitMQ PROJECT_MOD := rabbit_prometheus_app DEPS = accept cowboy rabbit rabbitmq_management_agent prometheus rabbitmq_web_dispatch BUILD_DEPS = amqp_client rabbit_common rabbitmq_management -TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers eunit_formatters rabbitmq_stream - -EUNIT_OPTS = no_tty, {report, {eunit_progress, [colored, profile]}} +TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers rabbitmq_stream DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk diff --git a/deps/rabbitmq_prometheus/app.bzl b/deps/rabbitmq_prometheus/app.bzl deleted file mode 100644 index 3084d1ced302..000000000000 --- a/deps/rabbitmq_prometheus/app.bzl +++ /dev/null @@ -1,136 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/collectors/prometheus_process_collector.erl", - "src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl", - "src/collectors/prometheus_rabbitmq_core_metrics_collector.erl", - "src/collectors/prometheus_rabbitmq_dynamic_collector.erl", - "src/collectors/prometheus_rabbitmq_global_metrics_collector.erl", - "src/collectors/prometheus_rabbitmq_message_size_metrics_collector.erl", - "src/rabbit_prometheus_app.erl", - "src/rabbit_prometheus_dispatcher.erl", - "src/rabbit_prometheus_handler.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_prometheus", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - "@prometheus//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/collectors/prometheus_process_collector.erl", - "src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl", - "src/collectors/prometheus_rabbitmq_core_metrics_collector.erl", - "src/collectors/prometheus_rabbitmq_dynamic_collector.erl", - "src/collectors/prometheus_rabbitmq_global_metrics_collector.erl", - "src/collectors/prometheus_rabbitmq_message_size_metrics_collector.erl", - "src/rabbit_prometheus_app.erl", - "src/rabbit_prometheus_dispatcher.erl", - "src/rabbit_prometheus_handler.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_prometheus", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - "@prometheus//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_prometheus.schema"], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/collectors/prometheus_process_collector.erl", - "src/collectors/prometheus_rabbitmq_alarm_metrics_collector.erl", - "src/collectors/prometheus_rabbitmq_core_metrics_collector.erl", - "src/collectors/prometheus_rabbitmq_dynamic_collector.erl", - "src/collectors/prometheus_rabbitmq_global_metrics_collector.erl", - "src/collectors/prometheus_rabbitmq_message_size_metrics_collector.erl", - "src/rabbit_prometheus_app.erl", - "src/rabbit_prometheus_dispatcher.erl", - "src/rabbit_prometheus_handler.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_prometheus", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_prometheus_http_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_prometheus_http_SUITE.erl"], - outs = ["test/rabbit_prometheus_http_SUITE.beam"], - app_name = "rabbitmq_prometheus", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbitmq_ct_helpers:erlang_app", - ], - ) - - erlang_bytecode( - name = "rabbitmq_prometheus_collector_test_proxy_beam_files", - testonly = True, - srcs = ["test/rabbitmq_prometheus_collector_test_proxy.erl"], - outs = ["test/rabbitmq_prometheus_collector_test_proxy.beam"], - app_name = "rabbitmq_prometheus", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_random_exchange/BUILD.bazel b/deps/rabbitmq_random_exchange/BUILD.bazel deleted file mode 100644 index c8e0ca6ede77..000000000000 --- a/deps/rabbitmq_random_exchange/BUILD.bazel +++ /dev/null @@ -1,71 +0,0 @@ -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -# gazelle:erlang_always_generate_test_beam_files - -APP_NAME = "rabbitmq_random_exchange" - -APP_DESCRIPTION = "RabbitMQ Random Exchange" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -alias( - name = "rabbitmq_random_exchange", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -assert_suites() diff --git a/deps/rabbitmq_random_exchange/app.bzl b/deps/rabbitmq_random_exchange/app.bzl deleted file mode 100644 index d60521990629..000000000000 --- a/deps/rabbitmq_random_exchange/app.bzl +++ /dev/null @@ -1,73 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = ["src/rabbit_exchange_type_random.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_random_exchange", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = ["src/rabbit_exchange_type_random.erl"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "public_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-APACHE2", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = ["src/rabbit_exchange_type_random.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_random_exchange", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit:erlang_app", "//deps/rabbit_common:erlang_app"], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - pass diff --git a/deps/rabbitmq_recent_history_exchange/BUILD.bazel b/deps/rabbitmq_recent_history_exchange/BUILD.bazel deleted file mode 100644 index 73121ad44906..000000000000 --- a/deps/rabbitmq_recent_history_exchange/BUILD.bazel +++ /dev/null @@ -1,90 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_recent_history_exchange" - -APP_DESCRIPTION = "RabbitMQ Recent History Exchange" - -all_beam_files(name = "all_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - apps = [ - "mnesia", # keep - ], - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "system_SUITE", -) - -assert_suites() - -alias( - name = "rabbitmq_recent_history_exchange", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -all_test_beam_files(name = "all_test_beam_files") diff --git a/deps/rabbitmq_recent_history_exchange/app.bzl b/deps/rabbitmq_recent_history_exchange/app.bzl deleted file mode 100644 index 3bd05fe8ae54..000000000000 --- a/deps/rabbitmq_recent_history_exchange/app.bzl +++ /dev/null @@ -1,101 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_db_rh_exchange.erl", - "src/rabbit_db_rh_exchange_m2k_converter.erl", - "src/rabbit_exchange_type_recent_history.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_recent_history_exchange", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_db_rh_exchange.erl", - "src/rabbit_db_rh_exchange_m2k_converter.erl", - "src/rabbit_exchange_type_recent_history.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_recent_history_exchange", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@khepri//:erlang_app", - "@khepri_mnesia_migration//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_db_rh_exchange.erl", - "src/rabbit_db_rh_exchange_m2k_converter.erl", - "src/rabbit_exchange_type_recent_history.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbit_recent_history.hrl"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - hdrs = ["include/rabbit_recent_history.hrl"], - app_name = "rabbitmq_recent_history_exchange", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) diff --git a/deps/rabbitmq_sharding/BUILD.bazel b/deps/rabbitmq_sharding/BUILD.bazel deleted file mode 100644 index ae9ae41ca761..000000000000 --- a/deps/rabbitmq_sharding/BUILD.bazel +++ /dev/null @@ -1,92 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_sharding" - -APP_DESCRIPTION = "RabbitMQ Sharding Plugin" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "rabbit_hash_exchange_SUITE", -) - -rabbitmq_integration_suite( - name = "rabbit_sharding_SUITE", - deps = [ - "//deps/rabbit:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_sharding", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_sharding/app.bzl b/deps/rabbitmq_sharding/app.bzl deleted file mode 100644 index 375bf57e3d3f..000000000000 --- a/deps/rabbitmq_sharding/app.bzl +++ /dev/null @@ -1,114 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_sharding_exchange_decorator.erl", - "src/rabbit_sharding_exchange_type_modulus_hash.erl", - "src/rabbit_sharding_interceptor.erl", - "src/rabbit_sharding_policy_validator.erl", - "src/rabbit_sharding_shard.erl", - "src/rabbit_sharding_util.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_sharding", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_sharding_exchange_decorator.erl", - "src/rabbit_sharding_exchange_type_modulus_hash.erl", - "src/rabbit_sharding_interceptor.erl", - "src/rabbit_sharding_policy_validator.erl", - "src/rabbit_sharding_shard.erl", - "src/rabbit_sharding_util.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_sharding", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_sharding_exchange_decorator.erl", - "src/rabbit_sharding_exchange_type_modulus_hash.erl", - "src/rabbit_sharding_interceptor.erl", - "src/rabbit_sharding_policy_validator.erl", - "src/rabbit_sharding_shard.erl", - "src/rabbit_sharding_util.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "public_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - "LICENSE-MPL2", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "rabbit_hash_exchange_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_hash_exchange_SUITE.erl"], - outs = ["test/rabbit_hash_exchange_SUITE.beam"], - app_name = "rabbitmq_sharding", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_sharding_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_sharding_SUITE.erl"], - outs = ["test/rabbit_sharding_SUITE.beam"], - app_name = "rabbitmq_sharding", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbit:erlang_app"], - ) diff --git a/deps/rabbitmq_shovel/BUILD.bazel b/deps/rabbitmq_shovel/BUILD.bazel deleted file mode 100644 index 0f40edd821a3..000000000000 --- a/deps/rabbitmq_shovel/BUILD.bazel +++ /dev/null @@ -1,200 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_shovel" - -APP_DESCRIPTION = "Data Shovel for RabbitMQ" - -APP_MODULE = "rabbit_shovel" - -APP_ENV = """[ - {defaults, [ - {prefetch_count, 1000}, - {ack_mode, on_confirm}, - {publish_fields, []}, - {publish_properties, []}, - {reconnect_delay, 5} - ]} - ]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app crypto - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = ["crypto"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp10_client:erlang_app", - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", - deps = ["//deps/rabbitmq_cli:erlang_app"], # keep -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [":test_shovel_test_utils_beam"], - target = ":test_erlang_app", -) - -rabbitmq_home( - name = "broker-for-tests-home", - plugins = [ - "//deps/rabbit:erlang_app", - "//deps/rabbitmq_amqp1_0:erlang_app", - ":erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-tests-run", - home = ":broker-for-tests-home", -) - -rabbitmq_integration_suite( - name = "amqp10_dynamic_SUITE", - additional_beam = [ - "test/shovel_test_utils.beam", - ], - flaky = True, -) - -rabbitmq_integration_suite( - name = "amqp10_inter_cluster_SUITE", - additional_beam = [ - "test/shovel_test_utils.beam", - ], -) - -rabbitmq_suite( - name = "amqp10_shovel_SUITE", - size = "small", - deps = [ - "//deps/amqp10_common:erlang_app", - "@meck//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "amqp10_SUITE", -) - -rabbitmq_suite( - name = "config_SUITE", - size = "small", -) - -rabbitmq_integration_suite( - name = "configuration_SUITE", -) - -rabbitmq_integration_suite( - name = "delete_shovel_command_SUITE", - additional_beam = [ - "test/shovel_test_utils.beam", - ], -) - -rabbitmq_integration_suite( - name = "dynamic_SUITE", - additional_beam = [ - "test/shovel_test_utils.beam", - ], - flaky = True, -) - -rabbitmq_suite( - name = "parameters_SUITE", - size = "medium", - deps = [ - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "rolling_upgrade_SUITE", - additional_beam = [ - "test/shovel_test_utils.beam", - ], - # FIXME: As of this writing, there is a bug in Khepri that makes this - # testsuite unstable. - flaky = True, - deps = [ - "@khepri//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "shovel_status_command_SUITE", - additional_beam = [ - "test/shovel_test_utils.beam", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_shovel", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_shovel/Makefile b/deps/rabbitmq_shovel/Makefile index 759423cc3f56..17c04f0890a7 100644 --- a/deps/rabbitmq_shovel/Makefile +++ b/deps/rabbitmq_shovel/Makefile @@ -25,7 +25,7 @@ LOCAL_DEPS = crypto TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers rabbitmq_amqp1_0 meck -PLT_APPS += rabbitmqctl +PLT_APPS += rabbitmq_cli DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk elvis_mk diff --git a/deps/rabbitmq_shovel/app.bzl b/deps/rabbitmq_shovel/app.bzl deleted file mode 100644 index 509242770a22..000000000000 --- a/deps/rabbitmq_shovel/app.bzl +++ /dev/null @@ -1,261 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":behaviours", ":other_beam"], - ) - erlang_bytecode( - name = "behaviours", - srcs = ["src/rabbit_shovel_behaviour.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_shovel", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteShovelCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartShovelCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ShovelStatusCommand.erl", - "src/rabbit_amqp091_shovel.erl", - "src/rabbit_amqp10_shovel.erl", - "src/rabbit_log_shovel.erl", - "src/rabbit_shovel.erl", - "src/rabbit_shovel_config.erl", - "src/rabbit_shovel_dyn_worker_sup.erl", - "src/rabbit_shovel_dyn_worker_sup_sup.erl", - "src/rabbit_shovel_locks.erl", - "src/rabbit_shovel_parameters.erl", - "src/rabbit_shovel_status.erl", - "src/rabbit_shovel_sup.erl", - "src/rabbit_shovel_util.erl", - "src/rabbit_shovel_worker.erl", - "src/rabbit_shovel_worker_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_shovel", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_behaviours", ":test_other_beam"], - ) - erlang_bytecode( - name = "test_behaviours", - testonly = True, - srcs = ["src/rabbit_shovel_behaviour.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_shovel", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteShovelCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartShovelCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ShovelStatusCommand.erl", - "src/rabbit_amqp091_shovel.erl", - "src/rabbit_amqp10_shovel.erl", - "src/rabbit_log_shovel.erl", - "src/rabbit_shovel.erl", - "src/rabbit_shovel_config.erl", - "src/rabbit_shovel_dyn_worker_sup.erl", - "src/rabbit_shovel_dyn_worker_sup_sup.erl", - "src/rabbit_shovel_locks.erl", - "src/rabbit_shovel_parameters.erl", - "src/rabbit_shovel_status.erl", - "src/rabbit_shovel_sup.erl", - "src/rabbit_shovel_util.erl", - "src/rabbit_shovel_worker.erl", - "src/rabbit_shovel_worker_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_shovel", - beam = [":test_behaviours"], - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_shovel.schema"], - ) - - filegroup( - name = "srcs", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteShovelCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.RestartShovelCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ShovelStatusCommand.erl", - "src/rabbit_amqp091_shovel.erl", - "src/rabbit_amqp10_shovel.erl", - "src/rabbit_log_shovel.erl", - "src/rabbit_shovel.erl", - "src/rabbit_shovel_behaviour.erl", - "src/rabbit_shovel_config.erl", - "src/rabbit_shovel_dyn_worker_sup.erl", - "src/rabbit_shovel_dyn_worker_sup_sup.erl", - "src/rabbit_shovel_locks.erl", - "src/rabbit_shovel_parameters.erl", - "src/rabbit_shovel_status.erl", - "src/rabbit_shovel_sup.erl", - "src/rabbit_shovel_util.erl", - "src/rabbit_shovel_worker.erl", - "src/rabbit_shovel_worker_sup.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = [ - "include/logging.hrl", - "include/rabbit_shovel.hrl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "amqp10_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp10_SUITE.erl"], - outs = ["test/amqp10_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "amqp10_dynamic_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp10_dynamic_SUITE.erl"], - outs = ["test/amqp10_dynamic_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "amqp10_shovel_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp10_shovel_SUITE.erl"], - outs = ["test/amqp10_shovel_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app"], - ) - erlang_bytecode( - name = "config_SUITE_beam_files", - testonly = True, - srcs = ["test/config_SUITE.erl"], - outs = ["test/config_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "configuration_SUITE_beam_files", - testonly = True, - srcs = ["test/configuration_SUITE.erl"], - outs = ["test/configuration_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "delete_shovel_command_SUITE_beam_files", - testonly = True, - srcs = ["test/delete_shovel_command_SUITE.erl"], - outs = ["test/delete_shovel_command_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "dynamic_SUITE_beam_files", - testonly = True, - srcs = ["test/dynamic_SUITE.erl"], - outs = ["test/dynamic_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "parameters_SUITE_beam_files", - testonly = True, - srcs = ["test/parameters_SUITE.erl"], - outs = ["test/parameters_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rolling_upgrade_SUITE_beam_files", - testonly = True, - srcs = ["test/rolling_upgrade_SUITE.erl"], - outs = ["test/rolling_upgrade_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "@khepri//:erlang_app"], - ) - erlang_bytecode( - name = "shovel_status_command_SUITE_beam_files", - testonly = True, - srcs = ["test/shovel_status_command_SUITE.erl"], - outs = ["test/shovel_status_command_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "test_shovel_test_utils_beam", - testonly = True, - srcs = ["test/shovel_test_utils.erl"], - outs = ["test/shovel_test_utils.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "amqp10_inter_cluster_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp10_inter_cluster_SUITE.erl"], - outs = ["test/amqp10_inter_cluster_SUITE.beam"], - app_name = "rabbitmq_shovel", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_shovel_management/BUILD.bazel b/deps/rabbitmq_shovel_management/BUILD.bazel deleted file mode 100644 index f92f0c86deef..000000000000 --- a/deps/rabbitmq_shovel_management/BUILD.bazel +++ /dev/null @@ -1,116 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_shovel_management" - -APP_DESCRIPTION = "Management extension for the Shovel plugin" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep rabbit -# gazelle:erlang_app_dep rabbitmq_shovel -# gazelle:erlang_app_dep_exclude cowboy -# gazelle:erlang_app_dep_exclude amqp_client -# gazelle:erlang_app_dep_exclude rabbitmq_management_agent - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_shovel:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -rabbitmq_home( - name = "broker-for-tests-home", - plugins = [ - "//deps/rabbit:erlang_app", - ":erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-tests-run", - home = ":broker-for-tests-home", -) - -rabbitmq_integration_suite( - name = "http_SUITE", -) - -rabbitmq_suite( - name = "unit_SUITE", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_shovel:erlang_app", - "@meck//:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_shovel_management", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_shovel_management/app.bzl b/deps/rabbitmq_shovel_management/app.bzl deleted file mode 100644 index 3c338cf4f318..000000000000 --- a/deps/rabbitmq_shovel_management/app.bzl +++ /dev/null @@ -1,111 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_shovel_mgmt_shovel.erl", - "src/rabbit_shovel_mgmt_shovels.erl", - "src/rabbit_shovel_mgmt_util.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_shovel_management", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_shovel_mgmt_shovel.erl", - "src/rabbit_shovel_mgmt_shovels.erl", - "src/rabbit_shovel_mgmt_util.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_shovel_management", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "priv", - srcs = [ - "priv/www/js/shovel.js", - "priv/www/js/tmpl/dynamic-shovel.ejs", - "priv/www/js/tmpl/dynamic-shovels.ejs", - "priv/www/js/tmpl/shovels.ejs", - ], - ) - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_shovel_mgmt_shovel.erl", - "src/rabbit_shovel_mgmt_shovels.erl", - "src/rabbit_shovel_mgmt_util.erl", - ], - ) - filegroup( - name = "private_hdrs", - srcs = ["src/rabbit_shovel_mgmt.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "http_SUITE_beam_files", - testonly = True, - srcs = ["test/http_SUITE.erl"], - outs = ["test/http_SUITE.beam"], - app_name = "rabbitmq_shovel_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - app_name = "rabbitmq_shovel_management", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_shovel_prometheus/BUILD.bazel b/deps/rabbitmq_shovel_prometheus/BUILD.bazel deleted file mode 100644 index d34bd895525a..000000000000 --- a/deps/rabbitmq_shovel_prometheus/BUILD.bazel +++ /dev/null @@ -1,115 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_shovel_prometheus" - -APP_DESCRIPTION = "Prometheus extension for the Shovel plugin" - -APP_ENV = """[ -]""" - -all_srcs(name = "all_srcs") - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app crypto -# gazelle:erlang_app_dep rabbit -# gazelle:erlang_app_dep rabbitmq_prometheus -# gazelle:erlang_app_dep_exclude prometheus - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = "rabbit_shovel_prometheus_app", - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbitmq_prometheus:erlang_app", - "//deps/rabbitmq_shovel:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -rabbitmq_home( - name = "broker-for-tests-home", - plugins = [ - "//deps/rabbit:erlang_app", - ":erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-tests-run", - home = ":broker-for-tests-home", -) - -rabbitmq_integration_suite( - name = "prometheus_rabbitmq_shovel_collector_SUITE", - size = "small", - additional_beam = [ - ], -) - -assert_suites() - -alias( - name = "rabbitmq_shovel_prometheus", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_shovel_prometheus/Makefile b/deps/rabbitmq_shovel_prometheus/Makefile index f448bde8c6ca..aa56ee9c0658 100644 --- a/deps/rabbitmq_shovel_prometheus/Makefile +++ b/deps/rabbitmq_shovel_prometheus/Makefile @@ -7,7 +7,7 @@ define PROJECT_APP_EXTRA_KEYS endef DEPS = rabbit_common rabbit rabbitmq_shovel rabbitmq_prometheus -TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers eunit_formatters +TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk diff --git a/deps/rabbitmq_shovel_prometheus/app.bzl b/deps/rabbitmq_shovel_prometheus/app.bzl deleted file mode 100644 index b79594dc27a4..000000000000 --- a/deps/rabbitmq_shovel_prometheus/app.bzl +++ /dev/null @@ -1,89 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_shovel_prometheus_app.erl", - "src/rabbit_shovel_prometheus_collector.erl", - "src/rabbit_shovel_prometheus_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_shovel_prometheus", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["@prometheus//:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_shovel_prometheus_app.erl", - "src/rabbit_shovel_prometheus_collector.erl", - "src/rabbit_shovel_prometheus_sup.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "public_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_shovel_prometheus_app.erl", - "src/rabbit_shovel_prometheus_collector.erl", - "src/rabbit_shovel_prometheus_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_shovel_prometheus", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["@prometheus//:erlang_app"], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "prometheus_rabbitmq_shovel_collector_SUITE_beam_files", - testonly = True, - srcs = ["test/prometheus_rabbitmq_shovel_collector_SUITE.erl"], - outs = ["test/prometheus_rabbitmq_shovel_collector_SUITE.beam"], - app_name = "rabbitmq_shovel_prometheus", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "@prometheus//:erlang_app"], - ) diff --git a/deps/rabbitmq_stomp/BUILD.bazel b/deps/rabbitmq_stomp/BUILD.bazel deleted file mode 100644 index e8193b124257..000000000000 --- a/deps/rabbitmq_stomp/BUILD.bazel +++ /dev/null @@ -1,187 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -# gazelle:exclude test/src - -APP_NAME = "rabbitmq_stomp" - -APP_DESCRIPTION = "RabbitMQ STOMP plugin" - -APP_MODULE = "rabbit_stomp" - -APP_ENV = """[ - {default_user, - [{login, <<"guest">>}, - {passcode, <<"guest">>}]}, - {default_vhost, <<"/">>}, - {default_topic_exchange, <<"amq.topic">>}, - {default_nack_requeue, true}, - {ssl_cert_login, false}, - {implicit_connect, false}, - {tcp_listeners, [61613]}, - {ssl_listeners, []}, - {num_tcp_acceptors, 10}, - {num_ssl_acceptors, 10}, - {tcp_listen_options, [{backlog, 128}, - {nodelay, true}]}, - %% see rabbitmq/rabbitmq-stomp#39 - {trailing_lf, true}, - %% see rabbitmq/rabbitmq-stomp#57 - {hide_server_info, false}, - {proxy_protocol, false} - ]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@ranch//:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", - deps = ["//deps/rabbitmq_cli:erlang_app"], # keep -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [ - ":test_src_rabbit_stomp_client_beam", - ":test_src_rabbit_stomp_publish_test_beam", - ], - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "command_SUITE", - size = "medium", - additional_beam = [ - "test/src/rabbit_stomp_client.beam", - ], -) - -rabbitmq_integration_suite( - name = "config_schema_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "connections_SUITE", - size = "medium", - additional_beam = [ - "test/src/rabbit_stomp_client.beam", - ], -) - -rabbitmq_suite( - name = "frame_SUITE", - size = "small", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "proxy_protocol_SUITE", - size = "medium", -) - -rabbitmq_integration_suite( - name = "python_SUITE", - flaky = True, - shard_count = 3, -) - -rabbitmq_integration_suite( - name = "system_SUITE", - size = "medium", - additional_beam = [ - "test/src/rabbit_stomp_client.beam", - ], -) - -rabbitmq_integration_suite( - name = "topic_SUITE", - size = "medium", - additional_beam = [ - "test/src/rabbit_stomp_client.beam", - ], -) - -rabbitmq_suite( - name = "util_SUITE", - size = "medium", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_stomp", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_stomp/Makefile b/deps/rabbitmq_stomp/Makefile index 0b14a1f95ab3..a49e5e49c8c0 100644 --- a/deps/rabbitmq_stomp/Makefile +++ b/deps/rabbitmq_stomp/Makefile @@ -33,7 +33,7 @@ endef DEPS = ranch rabbit_common rabbit amqp_client TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers -PLT_APPS += rabbitmqctl elixir +PLT_APPS += rabbitmq_cli elixir DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk diff --git a/deps/rabbitmq_stomp/app.bzl b/deps/rabbitmq_stomp/app.bzl deleted file mode 100644 index 90c3f0da04a1..000000000000 --- a/deps/rabbitmq_stomp/app.bzl +++ /dev/null @@ -1,218 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStompConnectionsCommand.erl", - "src/rabbit_stomp.erl", - "src/rabbit_stomp_client_sup.erl", - "src/rabbit_stomp_connection_info.erl", - "src/rabbit_stomp_frame.erl", - "src/rabbit_stomp_internal_event_handler.erl", - "src/rabbit_stomp_processor.erl", - "src/rabbit_stomp_reader.erl", - "src/rabbit_stomp_sup.erl", - "src/rabbit_stomp_util.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_stomp", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "@ranch//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStompConnectionsCommand.erl", - "src/rabbit_stomp.erl", - "src/rabbit_stomp_client_sup.erl", - "src/rabbit_stomp_connection_info.erl", - "src/rabbit_stomp_frame.erl", - "src/rabbit_stomp_internal_event_handler.erl", - "src/rabbit_stomp_processor.erl", - "src/rabbit_stomp_reader.erl", - "src/rabbit_stomp_sup.erl", - "src/rabbit_stomp_util.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_stomp", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "@ranch//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_stomp.schema"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "srcs", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStompConnectionsCommand.erl", - "src/rabbit_stomp.erl", - "src/rabbit_stomp_client_sup.erl", - "src/rabbit_stomp_connection_info.erl", - "src/rabbit_stomp_frame.erl", - "src/rabbit_stomp_internal_event_handler.erl", - "src/rabbit_stomp_processor.erl", - "src/rabbit_stomp_reader.erl", - "src/rabbit_stomp_sup.erl", - "src/rabbit_stomp_util.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = [ - "include/rabbit_stomp.hrl", - "include/rabbit_stomp_frame.hrl", - "include/rabbit_stomp_headers.hrl", - ], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "command_SUITE_beam_files", - testonly = True, - srcs = ["test/command_SUITE.erl"], - outs = ["test/command_SUITE.beam"], - hdrs = ["include/rabbit_stomp.hrl"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "connections_SUITE_beam_files", - testonly = True, - srcs = ["test/connections_SUITE.erl"], - outs = ["test/connections_SUITE.beam"], - hdrs = ["include/rabbit_stomp_frame.hrl"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "frame_SUITE_beam_files", - testonly = True, - srcs = ["test/frame_SUITE.erl"], - outs = ["test/frame_SUITE.beam"], - hdrs = ["include/rabbit_stomp_frame.hrl", "include/rabbit_stomp_headers.hrl"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "proxy_protocol_SUITE_beam_files", - testonly = True, - srcs = ["test/proxy_protocol_SUITE.erl"], - outs = ["test/proxy_protocol_SUITE.beam"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "python_SUITE_beam_files", - testonly = True, - srcs = ["test/python_SUITE.erl"], - outs = ["test/python_SUITE.beam"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - hdrs = ["include/rabbit_stomp.hrl", "include/rabbit_stomp_frame.hrl", "include/rabbit_stomp_headers.hrl"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "test_src_rabbit_stomp_client_beam", - testonly = True, - srcs = ["test/src/rabbit_stomp_client.erl"], - outs = ["test/src/rabbit_stomp_client.beam"], - hdrs = ["include/rabbit_stomp_frame.hrl"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_src_rabbit_stomp_publish_test_beam", - testonly = True, - srcs = ["test/src/rabbit_stomp_publish_test.erl"], - outs = ["test/src/rabbit_stomp_publish_test.beam"], - hdrs = ["include/rabbit_stomp_frame.hrl"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "topic_SUITE_beam_files", - testonly = True, - srcs = ["test/topic_SUITE.erl"], - outs = ["test/topic_SUITE.beam"], - hdrs = ["include/rabbit_stomp.hrl", "include/rabbit_stomp_frame.hrl"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "util_SUITE_beam_files", - testonly = True, - srcs = ["test/util_SUITE.erl"], - outs = ["test/util_SUITE.beam"], - hdrs = ["include/rabbit_stomp_frame.hrl"], - app_name = "rabbitmq_stomp", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) diff --git a/deps/rabbitmq_stream/BUILD.bazel b/deps/rabbitmq_stream/BUILD.bazel deleted file mode 100644 index cf4f3841b12b..000000000000 --- a/deps/rabbitmq_stream/BUILD.bazel +++ /dev/null @@ -1,161 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_stream" - -APP_DESCRIPTION = "RabbitMQ Stream" - -APP_MODULE = "rabbit_stream" - -APP_ENV = """[ - {tcp_listeners, [5552]}, - {num_tcp_acceptors, 10}, - {tcp_listen_options, [{backlog, 128}, - {nodelay, true}]}, - {ssl_listeners, []}, - {num_ssl_acceptors, 10}, - {ssl_listen_options, []}, - {initial_credits, 50000}, - {credits_required_for_unblocking, 12500}, - {frame_max, 1048576}, - {heartbeat, 60}, - {advertised_host, undefined}, - {advertised_port, undefined} -]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app ssl - -# gazelle:erlang_app_dep_exclude rabbit_common - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = ["ssl"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbitmq_stream_common:erlang_app", - "@osiris//:erlang_app", - "@ranch//:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", - deps = ["//deps/rabbitmq_cli:erlang_app"], # keep -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [":test_rabbit_list_test_event_handler_beam"], - target = ":test_erlang_app", -) - -broker_for_integration_suites( -) - -rabbitmq_integration_suite( - name = "commands_SUITE", - additional_beam = [ - ":rabbit_stream_SUITE_beam_files", - ], - data = glob(["test/rabbit_stream_SUITE_data/**/*"]), - flaky = True, - deps = [ - "//deps/rabbitmq_stream_common:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "rabbit_stream_utils_SUITE", -) - -rabbitmq_integration_suite( - name = "rabbit_stream_manager_SUITE", -) - -rabbitmq_integration_suite( - name = "rabbit_stream_reader_SUITE", - deps = [ - "//deps/rabbitmq_stream_common:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "rabbit_stream_SUITE", - shard_count = 3, - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbitmq_stream_common:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "protocol_interop_SUITE", - size = "medium", - runtime_deps = [ - "//deps/amqp10_client:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_stream", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_stream/Makefile b/deps/rabbitmq_stream/Makefile index 54b1237a589a..5633bbce9d14 100644 --- a/deps/rabbitmq_stream/Makefile +++ b/deps/rabbitmq_stream/Makefile @@ -25,7 +25,7 @@ LOCAL_DEPS = ssl DEPS = rabbit rabbitmq_stream_common osiris ranch TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers amqp_client amqp10_client -PLT_APPS += rabbitmqctl elixir +PLT_APPS += rabbitmq_cli elixir DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk diff --git a/deps/rabbitmq_stream/app.bzl b/deps/rabbitmq_stream/app.bzl deleted file mode 100644 index b99aed69d6d6..000000000000 --- a/deps/rabbitmq_stream/app.bzl +++ /dev/null @@ -1,208 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddSuperStreamCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteSuperStreamCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConnectionsCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumerGroupsCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumersCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamGroupConsumersCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamPublishersCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamTrackingCommand.erl", - "src/rabbit_stream.erl", - "src/rabbit_stream_connection_sup.erl", - "src/rabbit_stream_manager.erl", - "src/rabbit_stream_metrics.erl", - "src/rabbit_stream_metrics_gc.erl", - "src/rabbit_stream_reader.erl", - "src/rabbit_stream_sup.erl", - "src/rabbit_stream_utils.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_stream", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "//deps/rabbitmq_stream_common:erlang_app", - "@ranch//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddSuperStreamCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteSuperStreamCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConnectionsCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumerGroupsCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumersCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamGroupConsumersCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamPublishersCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamTrackingCommand.erl", - "src/rabbit_stream.erl", - "src/rabbit_stream_connection_sup.erl", - "src/rabbit_stream_manager.erl", - "src/rabbit_stream_metrics.erl", - "src/rabbit_stream_metrics_gc.erl", - "src/rabbit_stream_reader.erl", - "src/rabbit_stream_sup.erl", - "src/rabbit_stream_utils.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_stream", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "//deps/rabbitmq_stream_common:erlang_app", - "@ranch//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_stream.schema"], - ) - filegroup( - name = "private_hdrs", - srcs = ["src/rabbit_stream_reader.hrl"], - ) - filegroup( - name = "srcs", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.AddSuperStreamCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteSuperStreamCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConnectionsCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumerGroupsCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumersCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamGroupConsumersCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamPublishersCommand.erl", - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamTrackingCommand.erl", - "src/rabbit_stream.erl", - "src/rabbit_stream_connection_sup.erl", - "src/rabbit_stream_manager.erl", - "src/rabbit_stream_metrics.erl", - "src/rabbit_stream_metrics_gc.erl", - "src/rabbit_stream_reader.erl", - "src/rabbit_stream_sup.erl", - "src/rabbit_stream_utils.erl", - ], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbit_stream_metrics.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "commands_SUITE_beam_files", - testonly = True, - srcs = ["test/commands_SUITE.erl"], - outs = ["test/commands_SUITE.beam"], - app_name = "rabbitmq_stream", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app", "//deps/rabbitmq_stream_common:erlang_app"], - ) - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_stream", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_stream_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_stream_SUITE.erl"], - outs = ["test/rabbit_stream_SUITE.beam"], - hdrs = ["include/rabbit_stream_metrics.hrl"], - app_name = "rabbitmq_stream", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit:erlang_app", "//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app", "//deps/rabbitmq_stream_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_stream_manager_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_stream_manager_SUITE.erl"], - outs = ["test/rabbit_stream_manager_SUITE.beam"], - app_name = "rabbitmq_stream", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_stream_utils_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_stream_utils_SUITE.erl"], - outs = ["test/rabbit_stream_utils_SUITE.beam"], - app_name = "rabbitmq_stream", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app"], - ) - erlang_bytecode( - name = "rabbit_stream_reader_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_stream_reader_SUITE.erl"], - outs = ["test/rabbit_stream_reader_SUITE.beam"], - hdrs = ["src/rabbit_stream_reader.hrl"], - app_name = "rabbitmq_stream", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", #keep - "//deps/rabbitmq_stream_common:erlang_app", - ], - ) - erlang_bytecode( - name = "protocol_interop_SUITE_beam_files", - testonly = True, - srcs = ["test/protocol_interop_SUITE.erl"], - outs = ["test/protocol_interop_SUITE.beam"], - app_name = "rabbitmq_stream", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp10_common:erlang_app", "//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "test_rabbit_list_test_event_handler_beam", - testonly = True, - srcs = ["test/rabbit_list_test_event_handler.erl"], - outs = ["test/rabbit_list_test_event_handler.beam"], - app_name = "rabbitmq_stream", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/pom.xml b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/pom.xml index 979153704c8e..083153bdf363 100644 --- a/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/pom.xml +++ b/deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/pom.xml @@ -27,7 +27,7 @@ [0.12.0-SNAPSHOT,) - 5.12.0 + 5.12.1 3.27.3 1.2.13 3.14.0 diff --git a/deps/rabbitmq_stream_common/BUILD.bazel b/deps/rabbitmq_stream_common/BUILD.bazel deleted file mode 100644 index ec030f85a9ce..000000000000 --- a/deps/rabbitmq_stream_common/BUILD.bazel +++ /dev/null @@ -1,79 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_stream_common" - -APP_DESCRIPTION = "RabbitMQ Stream Common" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", - deps = [ - "@osiris//:erlang_app", # keep - ], -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -rabbitmq_suite( - name = "rabbit_stream_core_SUITE", -) - -assert_suites() - -alias( - name = "rabbitmq_stream_common", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_stream_common/app.bzl b/deps/rabbitmq_stream_common/app.bzl deleted file mode 100644 index 775ea5a04c51..000000000000 --- a/deps/rabbitmq_stream_common/app.bzl +++ /dev/null @@ -1,76 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = ["src/rabbit_stream_core.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_stream_common", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = ["src/rabbit_stream_core.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_stream_common", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = ["src/rabbit_stream_core.erl"], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbit_stream.hrl"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "rabbit_stream_core_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_stream_core_SUITE.erl"], - outs = ["test/rabbit_stream_core_SUITE.beam"], - hdrs = ["include/rabbit_stream.hrl"], - app_name = "rabbitmq_stream_common", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_stream_management/BUILD.bazel b/deps/rabbitmq_stream_management/BUILD.bazel deleted file mode 100644 index 539fdce66fc5..000000000000 --- a/deps/rabbitmq_stream_management/BUILD.bazel +++ /dev/null @@ -1,106 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_stream_management" - -APP_DESCRIPTION = "RabbitMQ Stream Management" - -APP_MODULE = "rabbit_stream_management" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep_exclude amqp_client -# gazelle:erlang_app_dep_exclude rabbit_common -# gazelle:erlang_app_dep_exclude rabbitmq_management_agent -# gazelle:erlang_app_dep_exclude cowboy - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_stream:erlang_app", - "@osiris//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -rabbitmq_home( - name = "broker-for-tests-home", - plugins = [ - "//deps/rabbit:erlang_app", - ":erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-tests-run", - home = ":broker-for-tests-home", -) - -rabbitmq_integration_suite( - name = "http_SUITE", -) - -assert_suites() - -alias( - name = "rabbitmq_stream_management", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_stream_management/Makefile b/deps/rabbitmq_stream_management/Makefile index cb2b4b0ff9cc..486600bf53ec 100644 --- a/deps/rabbitmq_stream_management/Makefile +++ b/deps/rabbitmq_stream_management/Makefile @@ -1,6 +1,5 @@ PROJECT = rabbitmq_stream_management PROJECT_DESCRIPTION = RabbitMQ Stream Management -PROJECT_MOD = rabbit_stream_management define PROJECT_ENV [ diff --git a/deps/rabbitmq_stream_management/app.bzl b/deps/rabbitmq_stream_management/app.bzl deleted file mode 100644 index 561ce83df507..000000000000 --- a/deps/rabbitmq_stream_management/app.bzl +++ /dev/null @@ -1,127 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_stream_connection_consumers_mgmt.erl", - "src/rabbit_stream_connection_mgmt.erl", - "src/rabbit_stream_connection_publishers_mgmt.erl", - "src/rabbit_stream_connections_mgmt.erl", - "src/rabbit_stream_connections_vhost_mgmt.erl", - "src/rabbit_stream_consumers_mgmt.erl", - "src/rabbit_stream_management_utils.erl", - "src/rabbit_stream_mgmt_db.erl", - "src/rabbit_stream_publishers_mgmt.erl", - "src/rabbit_stream_tracking_mgmt.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_stream_management", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - "//deps/rabbitmq_stream:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_stream_connection_consumers_mgmt.erl", - "src/rabbit_stream_connection_mgmt.erl", - "src/rabbit_stream_connection_publishers_mgmt.erl", - "src/rabbit_stream_connections_mgmt.erl", - "src/rabbit_stream_connections_vhost_mgmt.erl", - "src/rabbit_stream_consumers_mgmt.erl", - "src/rabbit_stream_management_utils.erl", - "src/rabbit_stream_mgmt_db.erl", - "src/rabbit_stream_publishers_mgmt.erl", - "src/rabbit_stream_tracking_mgmt.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_stream_management", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - "//deps/rabbitmq_stream:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = [ - "priv/www/js/stream.js", - "priv/www/js/tmpl/streamConnection.ejs", - "priv/www/js/tmpl/streamConnections.ejs", - "priv/www/js/tmpl/streamConsumersList.ejs", - "priv/www/js/tmpl/streamPublishersList.ejs", - ], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_stream_connection_consumers_mgmt.erl", - "src/rabbit_stream_connection_mgmt.erl", - "src/rabbit_stream_connection_publishers_mgmt.erl", - "src/rabbit_stream_connections_mgmt.erl", - "src/rabbit_stream_connections_vhost_mgmt.erl", - "src/rabbit_stream_consumers_mgmt.erl", - "src/rabbit_stream_management_utils.erl", - "src/rabbit_stream_mgmt_db.erl", - "src/rabbit_stream_publishers_mgmt.erl", - "src/rabbit_stream_tracking_mgmt.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "http_SUITE_beam_files", - testonly = True, - srcs = ["test/http_SUITE.erl"], - outs = ["test/http_SUITE.beam"], - app_name = "rabbitmq_stream_management", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) diff --git a/deps/rabbitmq_stream_management/test/http_SUITE_data/pom.xml b/deps/rabbitmq_stream_management/test/http_SUITE_data/pom.xml index 546ec14c6abe..b81dca085d14 100644 --- a/deps/rabbitmq_stream_management/test/http_SUITE_data/pom.xml +++ b/deps/rabbitmq_stream_management/test/http_SUITE_data/pom.xml @@ -27,7 +27,7 @@ [0.12.0-SNAPSHOT,) - 5.12.0 + 5.12.1 3.27.3 1.2.13 3.14.0 diff --git a/deps/rabbitmq_top/BUILD.bazel b/deps/rabbitmq_top/BUILD.bazel deleted file mode 100644 index c4ffad8dae3d..000000000000 --- a/deps/rabbitmq_top/BUILD.bazel +++ /dev/null @@ -1,81 +0,0 @@ -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -# gazelle:erlang_always_generate_test_beam_files - -APP_NAME = "rabbitmq_top" - -APP_DESCRIPTION = "RabbitMQ Top" - -APP_MODULE = "rabbit_top_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep_exclude rabbit -# gazelle:erlang_app_dep_exclude rabbitmq_management_agent - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", # keep - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -alias( - name = "rabbitmq_top", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -assert_suites() diff --git a/deps/rabbitmq_top/app.bzl b/deps/rabbitmq_top/app.bzl deleted file mode 100644 index 75f5a2b91fad..000000000000 --- a/deps/rabbitmq_top/app.bzl +++ /dev/null @@ -1,106 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_top_app.erl", - "src/rabbit_top_extension.erl", - "src/rabbit_top_sup.erl", - "src/rabbit_top_util.erl", - "src/rabbit_top_wm_ets_tables.erl", - "src/rabbit_top_wm_process.erl", - "src/rabbit_top_wm_processes.erl", - "src/rabbit_top_worker.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_top", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = [ - "priv/www/js/tmpl/ets_tables.ejs", - "priv/www/js/tmpl/process.ejs", - "priv/www/js/tmpl/processes.ejs", - "priv/www/js/top.js", - ], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_top_app.erl", - "src/rabbit_top_extension.erl", - "src/rabbit_top_sup.erl", - "src/rabbit_top_util.erl", - "src/rabbit_top_wm_ets_tables.erl", - "src/rabbit_top_wm_process.erl", - "src/rabbit_top_wm_processes.erl", - "src/rabbit_top_worker.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_top_app.erl", - "src/rabbit_top_extension.erl", - "src/rabbit_top_sup.erl", - "src/rabbit_top_util.erl", - "src/rabbit_top_wm_ets_tables.erl", - "src/rabbit_top_wm_process.erl", - "src/rabbit_top_wm_processes.erl", - "src/rabbit_top_worker.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_top", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_management:erlang_app", "//deps/rabbitmq_management_agent:erlang_app"], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - pass diff --git a/deps/rabbitmq_tracing/BUILD.bazel b/deps/rabbitmq_tracing/BUILD.bazel deleted file mode 100644 index 1a5113bbc349..000000000000 --- a/deps/rabbitmq_tracing/BUILD.bazel +++ /dev/null @@ -1,106 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_tracing" - -APP_DESCRIPTION = "RabbitMQ message logging / tracing" - -APP_MODULE = "rabbit_tracing_app" - -APP_ENV = """[ - {directory, "/var/tmp/rabbitmq-tracing"}, - {username, <<"guest">>}, - {password, <<"guest">>} - ]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep_exclude amqp_client -# gazelle:erlang_app_dep_exclude rabbitmq_management_agent - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "rabbit_tracing_SUITE", -) - -assert_suites() - -alias( - name = "rabbitmq_tracing", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_tracing/app.bzl b/deps/rabbitmq_tracing/app.bzl deleted file mode 100644 index 3b52a3e4b6da..000000000000 --- a/deps/rabbitmq_tracing/app.bzl +++ /dev/null @@ -1,139 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_tracing_app.erl", - "src/rabbit_tracing_consumer.erl", - "src/rabbit_tracing_consumer_sup.erl", - "src/rabbit_tracing_files.erl", - "src/rabbit_tracing_mgmt.erl", - "src/rabbit_tracing_sup.erl", - "src/rabbit_tracing_traces.erl", - "src/rabbit_tracing_util.erl", - "src/rabbit_tracing_wm_file.erl", - "src/rabbit_tracing_wm_files.erl", - "src/rabbit_tracing_wm_trace.erl", - "src/rabbit_tracing_wm_traces.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_tracing", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_tracing_app.erl", - "src/rabbit_tracing_consumer.erl", - "src/rabbit_tracing_consumer_sup.erl", - "src/rabbit_tracing_files.erl", - "src/rabbit_tracing_mgmt.erl", - "src/rabbit_tracing_sup.erl", - "src/rabbit_tracing_traces.erl", - "src/rabbit_tracing_util.erl", - "src/rabbit_tracing_wm_file.erl", - "src/rabbit_tracing_wm_files.erl", - "src/rabbit_tracing_wm_trace.erl", - "src/rabbit_tracing_wm_traces.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_tracing", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_management_agent:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = [ - "priv/schema/rabbitmq_tracing.schema", - "priv/www/js/tmpl/traces.ejs", - "priv/www/js/tracing.js", - ], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_tracing_app.erl", - "src/rabbit_tracing_consumer.erl", - "src/rabbit_tracing_consumer_sup.erl", - "src/rabbit_tracing_files.erl", - "src/rabbit_tracing_mgmt.erl", - "src/rabbit_tracing_sup.erl", - "src/rabbit_tracing_traces.erl", - "src/rabbit_tracing_util.erl", - "src/rabbit_tracing_wm_file.erl", - "src/rabbit_tracing_wm_files.erl", - "src/rabbit_tracing_wm_trace.erl", - "src/rabbit_tracing_wm_traces.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "rabbit_tracing_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_tracing_SUITE.erl"], - outs = ["test/rabbit_tracing_SUITE.beam"], - app_name = "rabbitmq_tracing", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"], - ) - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_tracing", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_trust_store/BUILD.bazel b/deps/rabbitmq_trust_store/BUILD.bazel deleted file mode 100644 index 700b7d47c8e8..000000000000 --- a/deps/rabbitmq_trust_store/BUILD.bazel +++ /dev/null @@ -1,128 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_trust_store" - -APP_DESCRIPTION = "Client X.509 certificates trust store" - -APP_MODULE = "rabbit_trust_store_app" - -APP_ENV = """[ - {default_refresh_interval, 30}, - {providers, [rabbit_trust_store_file_provider]} - ]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app ssl -# gazelle:erlang_app_extra_app crypto -# gazelle:erlang_app_extra_app public_key -# gazelle:erlang_app_extra_app inets - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = [ - "crypto", - "public_key", - "ssl", - "inets", - ], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -rabbitmq_home( - name = "broker-for-tests-home", - testonly = True, - plugins = [ - "//deps/rabbit:erlang_app", - ":erlang_app", - "//deps/amqp_client:erlang_app", - "@ct_helper//:erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-tests-run", - testonly = True, - home = ":broker-for-tests-home", -) - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "system_SUITE", - flaky = True, - runtime_deps = [ - "//deps/trust_store_http:erlang_app", - "@ct_helper//:erlang_app", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_trust_store", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_trust_store/app.bzl b/deps/rabbitmq_trust_store/app.bzl deleted file mode 100644 index 9f9c6bb21488..000000000000 --- a/deps/rabbitmq_trust_store/app.bzl +++ /dev/null @@ -1,122 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":behaviours", ":other_beam"], - ) - erlang_bytecode( - name = "behaviours", - srcs = ["src/rabbit_trust_store_certificate_provider.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_trust_store", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_trust_store.erl", - "src/rabbit_trust_store_app.erl", - "src/rabbit_trust_store_file_provider.erl", - "src/rabbit_trust_store_http_provider.erl", - "src/rabbit_trust_store_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_trust_store", - beam = [":behaviours"], - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_behaviours", ":test_other_beam"], - ) - erlang_bytecode( - name = "test_behaviours", - testonly = True, - srcs = ["src/rabbit_trust_store_certificate_provider.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_trust_store", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_trust_store.erl", - "src/rabbit_trust_store_app.erl", - "src/rabbit_trust_store_file_provider.erl", - "src/rabbit_trust_store_http_provider.erl", - "src/rabbit_trust_store_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_trust_store", - beam = [":test_behaviours"], - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_trust_store.schema"], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_trust_store.erl", - "src/rabbit_trust_store_app.erl", - "src/rabbit_trust_store_certificate_provider.erl", - "src/rabbit_trust_store_file_provider.erl", - "src/rabbit_trust_store_http_provider.erl", - "src/rabbit_trust_store_sup.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_trust_store", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "system_SUITE_beam_files", - testonly = True, - srcs = ["test/system_SUITE.erl"], - outs = ["test/system_SUITE.beam"], - app_name = "rabbitmq_trust_store", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) diff --git a/deps/rabbitmq_web_dispatch/BUILD.bazel b/deps/rabbitmq_web_dispatch/BUILD.bazel deleted file mode 100644 index e223f5addd6b..000000000000 --- a/deps/rabbitmq_web_dispatch/BUILD.bazel +++ /dev/null @@ -1,120 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") -load( - "//:rabbitmq.bzl", - "APP_VERSION", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -APP_NAME = "rabbitmq_web_dispatch" - -APP_DESCRIPTION = "RabbitMQ Web Dispatcher" - -APP_MODULE = "rabbit_web_dispatch_app" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app inets - -# gazelle:erlang_app_dep_exclude ranch - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - app_version = APP_VERSION, - beam_files = [":beam_files"], - extra_apps = ["inets"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "@cowboy//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - target = ":test_erlang_app", -) - -rabbitmq_home( - name = "broker-for-tests-home", - testonly = True, - plugins = [ - "//deps/rabbit:erlang_app", - ":test_erlang_app", - ], -) - -rabbitmq_run( - name = "rabbitmq-for-tests-run", - testonly = True, - home = ":broker-for-tests-home", -) - -rabbitmq_integration_suite( - name = "rabbit_web_dispatch_SUITE", - data = [ - "test/priv/www/index.html", - ], -) - -rabbitmq_suite( - name = "rabbit_web_dispatch_unit_SUITE", - size = "medium", -) - -assert_suites() - -alias( - name = "rabbitmq_web_dispatch", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_web_dispatch/app.bzl b/deps/rabbitmq_web_dispatch/app.bzl deleted file mode 100644 index af7a8c64828f..000000000000 --- a/deps/rabbitmq_web_dispatch/app.bzl +++ /dev/null @@ -1,130 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_cowboy_middleware.erl", - "src/rabbit_cowboy_redirect.erl", - "src/rabbit_cowboy_stream_h.erl", - "src/rabbit_web_dispatch.erl", - "src/rabbit_web_dispatch_access_control.erl", - "src/rabbit_web_dispatch_app.erl", - "src/rabbit_web_dispatch_listing_handler.erl", - "src/rabbit_web_dispatch_registry.erl", - "src/rabbit_web_dispatch_sup.erl", - "src/rabbit_web_dispatch_util.erl", - "src/webmachine_log.erl", - "src/webmachine_log_handler.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_web_dispatch", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "@cowboy//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_cowboy_middleware.erl", - "src/rabbit_cowboy_redirect.erl", - "src/rabbit_cowboy_stream_h.erl", - "src/rabbit_web_dispatch.erl", - "src/rabbit_web_dispatch_access_control.erl", - "src/rabbit_web_dispatch_app.erl", - "src/rabbit_web_dispatch_listing_handler.erl", - "src/rabbit_web_dispatch_registry.erl", - "src/rabbit_web_dispatch_sup.erl", - "src/rabbit_web_dispatch_util.erl", - "src/webmachine_log.erl", - "src/webmachine_log_handler.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_web_dispatch", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "@cowboy//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - filegroup( - name = "priv", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_cowboy_middleware.erl", - "src/rabbit_cowboy_redirect.erl", - "src/rabbit_cowboy_stream_h.erl", - "src/rabbit_web_dispatch.erl", - "src/rabbit_web_dispatch_access_control.erl", - "src/rabbit_web_dispatch_app.erl", - "src/rabbit_web_dispatch_listing_handler.erl", - "src/rabbit_web_dispatch_registry.erl", - "src/rabbit_web_dispatch_sup.erl", - "src/rabbit_web_dispatch_util.erl", - "src/webmachine_log.erl", - "src/webmachine_log_handler.erl", - ], - ) - filegroup( - name = "private_hdrs", - srcs = ["src/webmachine_logger.hrl"], - ) - filegroup( - name = "public_hdrs", - srcs = ["include/rabbitmq_web_dispatch_records.hrl"], - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "rabbit_web_dispatch_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_web_dispatch_SUITE.erl"], - outs = ["test/rabbit_web_dispatch_SUITE.beam"], - app_name = "rabbitmq_web_dispatch", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "rabbit_web_dispatch_unit_SUITE_beam_files", - testonly = True, - srcs = ["test/rabbit_web_dispatch_unit_SUITE.erl"], - outs = ["test/rabbit_web_dispatch_unit_SUITE.beam"], - app_name = "rabbitmq_web_dispatch", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_web_mqtt/BUILD.bazel b/deps/rabbitmq_web_mqtt/BUILD.bazel deleted file mode 100644 index 7536bb9615da..000000000000 --- a/deps/rabbitmq_web_mqtt/BUILD.bazel +++ /dev/null @@ -1,156 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -# gazelle:exclude test/src - -APP_NAME = "rabbitmq_web_mqtt" - -APP_DESCRIPTION = "RabbitMQ MQTT-over-WebSockets adapter" - -APP_MODULE = "rabbit_web_mqtt_app" - -APP_ENV = """[ - {tcp_config, [{port, 15675}]}, - {ssl_config, []}, - {num_tcp_acceptors, 10}, - {num_ssl_acceptors, 10}, - {cowboy_opts, []}, - {proxy_protocol, false} - ]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app ssl - -# gazelle:erlang_app_dep_exclude ranch - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - extra_apps = ["ssl"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_mqtt:erlang_app", - "@cowboy//:erlang_app", - ], -) - -xref( - name = "xref", - additional_libs = [ - "//deps/rabbitmq_cli:erlang_app", # keep - ], - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", - deps = ["//deps/rabbitmq_cli:erlang_app"], # keep -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [ - ":test_src_rabbit_ws_test_util_beam", - ":test_rabbit_web_mqtt_test_util_beam", - ], - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "web_mqtt_config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "web_mqtt_command_SUITE", - additional_beam = [ - "test/rabbit_web_mqtt_test_util.beam", - ], - runtime_deps = [ - "@emqtt//:erlang_app", - ], -) - -rabbitmq_integration_suite( - name = "web_mqtt_proxy_protocol_SUITE", - additional_beam = [ - "test/src/rabbit_ws_test_util.beam", - "test/src/rfc6455_client.beam", - ], -) - -rabbitmq_integration_suite( - name = "web_mqtt_shared_SUITE", - additional_beam = [ - "test/src/rabbit_ws_test_util.beam", - "test/src/rfc6455_client.beam", - ], -) - -rabbitmq_integration_suite( - name = "web_mqtt_system_SUITE", - additional_beam = [ - "test/src/rabbit_ws_test_util.beam", - "test/src/rfc6455_client.beam", - ], -) - -rabbitmq_integration_suite( - name = "web_mqtt_v5_SUITE", - additional_beam = [ - "test/src/rabbit_ws_test_util.beam", - "test/src/rfc6455_client.beam", - ], -) - -assert_suites() - -alias( - name = "rabbitmq_web_mqtt", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_web_mqtt/Makefile b/deps/rabbitmq_web_mqtt/Makefile index dbc17a8a46ec..d614e2a8ad8c 100644 --- a/deps/rabbitmq_web_mqtt/Makefile +++ b/deps/rabbitmq_web_mqtt/Makefile @@ -21,7 +21,7 @@ LOCAL_DEPS = ssl DEPS = rabbit cowboy rabbitmq_mqtt TEST_DEPS = emqtt rabbitmq_ct_helpers rabbitmq_ct_client_helpers rabbitmq_management rabbitmq_stomp rabbitmq_consistent_hash_exchange -PLT_APPS += rabbitmqctl elixir cowlib +PLT_APPS += rabbitmq_cli elixir cowlib # FIXME: Add Ranch as a BUILD_DEPS to be sure the correct version is picked. # See rabbitmq-components.mk. diff --git a/deps/rabbitmq_web_mqtt/app.bzl b/deps/rabbitmq_web_mqtt/app.bzl deleted file mode 100644 index a1488d695a0a..000000000000 --- a/deps/rabbitmq_web_mqtt/app.bzl +++ /dev/null @@ -1,160 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListWebMqttConnectionsCommand.erl", - "src/rabbit_web_mqtt_app.erl", - "src/rabbit_web_mqtt_handler.erl", - "src/rabbit_web_mqtt_stream_handler.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_web_mqtt", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "//deps/rabbitmq_mqtt:erlang_app", - "@cowboy//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListWebMqttConnectionsCommand.erl", - "src/rabbit_web_mqtt_app.erl", - "src/rabbit_web_mqtt_handler.erl", - "src/rabbit_web_mqtt_stream_handler.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_web_mqtt", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_cli:erlang_app", - "//deps/rabbitmq_mqtt:erlang_app", - "@cowboy//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_web_mqtt.schema"], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/Elixir.RabbitMQ.CLI.Ctl.Commands.ListWebMqttConnectionsCommand.erl", - "src/rabbit_web_mqtt_app.erl", - "src/rabbit_web_mqtt_handler.erl", - "src/rabbit_web_mqtt_stream_handler.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "test_src_rabbit_ws_test_util_beam", - testonly = True, - srcs = ["test/src/rabbit_ws_test_util.erl"], - outs = ["test/src/rabbit_ws_test_util.beam"], - app_name = "rabbitmq_web_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - - erlang_bytecode( - name = "test_rabbit_web_mqtt_test_util_beam", - testonly = True, - srcs = ["test/rabbit_web_mqtt_test_util.erl"], - outs = ["test/rabbit_web_mqtt_test_util.beam"], - app_name = "rabbitmq_web_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "web_mqtt_command_SUITE_beam_files", - testonly = True, - srcs = ["test/web_mqtt_command_SUITE.erl"], - outs = ["test/web_mqtt_command_SUITE.beam"], - app_name = "rabbitmq_web_mqtt", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_mqtt:erlang_app"], - ) - erlang_bytecode( - name = "web_mqtt_config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/web_mqtt_config_schema_SUITE.erl"], - outs = ["test/web_mqtt_config_schema_SUITE.beam"], - app_name = "rabbitmq_web_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "web_mqtt_proxy_protocol_SUITE_beam_files", - testonly = True, - srcs = ["test/web_mqtt_proxy_protocol_SUITE.erl"], - outs = ["test/web_mqtt_proxy_protocol_SUITE.beam"], - app_name = "rabbitmq_web_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "web_mqtt_shared_SUITE_beam_files", - testonly = True, - srcs = ["test/web_mqtt_shared_SUITE.erl"], - outs = ["test/web_mqtt_shared_SUITE.beam"], - app_name = "rabbitmq_web_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "web_mqtt_system_SUITE_beam_files", - testonly = True, - srcs = ["test/web_mqtt_system_SUITE.erl"], - outs = ["test/web_mqtt_system_SUITE.beam"], - app_name = "rabbitmq_web_mqtt", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "web_mqtt_v5_SUITE_beam_files", - testonly = True, - srcs = ["test/web_mqtt_v5_SUITE.erl"], - outs = ["test/web_mqtt_v5_SUITE.beam"], - app_name = "rabbitmq_web_mqtt", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_web_mqtt_examples/BUILD.bazel b/deps/rabbitmq_web_mqtt_examples/BUILD.bazel deleted file mode 100644 index da65b03b3459..000000000000 --- a/deps/rabbitmq_web_mqtt_examples/BUILD.bazel +++ /dev/null @@ -1,85 +0,0 @@ -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -# gazelle:erlang_always_generate_test_beam_files - -APP_NAME = "rabbitmq_web_mqtt_examples" - -APP_DESCRIPTION = "Rabbit WEB-MQTT - examples" - -APP_MODULE = "rabbit_web_mqtt_examples_app" - -APP_ENV = """[ - {listener, [{port, 15670}]} - ]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep rabbit_common -# gazelle:erlang_app_dep rabbit -# gazelle:erlang_app_dep rabbitmq_web_mqtt - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - "//deps/rabbitmq_web_mqtt:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -alias( - name = "rabbitmq_web_mqtt_examples", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -assert_suites() diff --git a/deps/rabbitmq_web_mqtt_examples/app.bzl b/deps/rabbitmq_web_mqtt_examples/app.bzl deleted file mode 100644 index 9068fa5811d9..000000000000 --- a/deps/rabbitmq_web_mqtt_examples/app.bzl +++ /dev/null @@ -1,76 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = ["src/rabbit_web_mqtt_examples_app.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_web_mqtt_examples", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = [ - "priv/bunny.html", - "priv/bunny.png", - "priv/echo.html", - "priv/index.html", - "priv/main.css", - "priv/mqttws31.js", - "priv/pencil.cur", - ], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = ["src/rabbit_web_mqtt_examples_app.erl"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = ["src/rabbit_web_mqtt_examples_app.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_web_mqtt_examples", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - pass diff --git a/deps/rabbitmq_web_stomp/BUILD.bazel b/deps/rabbitmq_web_stomp/BUILD.bazel deleted file mode 100644 index fdda5c599dc5..000000000000 --- a/deps/rabbitmq_web_stomp/BUILD.bazel +++ /dev/null @@ -1,155 +0,0 @@ -load("@rules_erlang//:eunit2.bzl", "eunit") -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "BROKER_VERSION_REQUIREMENTS_ANY", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "broker_for_integration_suites", - "rabbitmq_app", - "rabbitmq_integration_suite", - "rabbitmq_suite", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -# gazelle:exclude test/src - -APP_NAME = "rabbitmq_web_stomp" - -APP_DESCRIPTION = "RabbitMQ STOMP-over-WebSockets support" - -APP_MODULE = "rabbit_web_stomp_app" - -APP_ENV = """[ - {tcp_config, [{port, 15674}]}, - {ssl_config, []}, - {num_tcp_acceptors, 10}, - {num_ssl_acceptors, 10}, - {cowboy_opts, []}, - {proxy_protocol, false}, - {ws_frame, text}, - {use_http_auth, false} - ]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files(name = "all_test_beam_files") - -all_srcs(name = "all_srcs") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_dep_exclude amqp_client -# gazelle:erlang_app_dep_exclude cowlib -# gazelle:erlang_app_dep_exclude ranch - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_stomp:erlang_app", - "@cowboy//:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - libs = ["@rules_elixir//elixir"], # keep - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -eunit( - name = "eunit", - compiled_suites = [ - ":test_src_rabbit_ws_test_util_beam", - ":test_src_stomp_beam", - ], - target = ":test_erlang_app", -) - -broker_for_integration_suites() - -rabbitmq_integration_suite( - name = "amqp_stomp_SUITE", - additional_beam = [ - "test/src/rabbit_ws_test_util.beam", - "test/src/rfc6455_client.beam", - "test/src/stomp.beam", - ], -) - -rabbitmq_integration_suite( - name = "config_schema_SUITE", -) - -rabbitmq_integration_suite( - name = "cowboy_websocket_SUITE", - additional_beam = [ - "test/src/rabbit_ws_test_util.beam", - "test/src/rfc6455_client.beam", - "test/src/stomp.beam", - ], -) - -rabbitmq_integration_suite( - name = "proxy_protocol_SUITE", - additional_beam = [ - "test/src/rabbit_ws_test_util.beam", - "test/src/rfc6455_client.beam", - "test/src/stomp.beam", - ], -) - -rabbitmq_integration_suite( - name = "raw_websocket_SUITE", - additional_beam = [ - "test/src/rabbit_ws_test_util.beam", - "test/src/rfc6455_client.beam", - "test/src/stomp.beam", - ], -) - -rabbitmq_suite( - name = "unit_SUITE", - size = "small", -) - -assert_suites() - -alias( - name = "rabbitmq_web_stomp", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) diff --git a/deps/rabbitmq_web_stomp/app.bzl b/deps/rabbitmq_web_stomp/app.bzl deleted file mode 100644 index 7b921dedad38..000000000000 --- a/deps/rabbitmq_web_stomp/app.bzl +++ /dev/null @@ -1,174 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/rabbit_web_stomp_app.erl", - "src/rabbit_web_stomp_connection_sup.erl", - "src/rabbit_web_stomp_handler.erl", - "src/rabbit_web_stomp_internal_event_handler.erl", - "src/rabbit_web_stomp_listener.erl", - "src/rabbit_web_stomp_middleware.erl", - "src/rabbit_web_stomp_stream_handler.erl", - "src/rabbit_web_stomp_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_web_stomp", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_stomp:erlang_app", - "@cowboy//:erlang_app", - "@ranch//:erlang_app", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/rabbit_web_stomp_app.erl", - "src/rabbit_web_stomp_connection_sup.erl", - "src/rabbit_web_stomp_handler.erl", - "src/rabbit_web_stomp_internal_event_handler.erl", - "src/rabbit_web_stomp_listener.erl", - "src/rabbit_web_stomp_middleware.erl", - "src/rabbit_web_stomp_stream_handler.erl", - "src/rabbit_web_stomp_sup.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_web_stomp", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = [ - "//deps/amqp_client:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_stomp:erlang_app", - "@cowboy//:erlang_app", - "@ranch//:erlang_app", - ], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = ["priv/schema/rabbitmq_web_stomp.schema"], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = [ - "src/rabbit_web_stomp_app.erl", - "src/rabbit_web_stomp_connection_sup.erl", - "src/rabbit_web_stomp_handler.erl", - "src/rabbit_web_stomp_internal_event_handler.erl", - "src/rabbit_web_stomp_listener.erl", - "src/rabbit_web_stomp_middleware.erl", - "src/rabbit_web_stomp_stream_handler.erl", - "src/rabbit_web_stomp_sup.erl", - ], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - erlang_bytecode( - name = "amqp_stomp_SUITE_beam_files", - testonly = True, - srcs = ["test/amqp_stomp_SUITE.erl"], - outs = ["test/amqp_stomp_SUITE.beam"], - app_name = "rabbitmq_web_stomp", - erlc_opts = "//:test_erlc_opts", - deps = ["//deps/amqp_client:erlang_app"], - ) - erlang_bytecode( - name = "config_schema_SUITE_beam_files", - testonly = True, - srcs = ["test/config_schema_SUITE.erl"], - outs = ["test/config_schema_SUITE.beam"], - app_name = "rabbitmq_web_stomp", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "cowboy_websocket_SUITE_beam_files", - testonly = True, - srcs = ["test/cowboy_websocket_SUITE.erl"], - outs = ["test/cowboy_websocket_SUITE.beam"], - app_name = "rabbitmq_web_stomp", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "proxy_protocol_SUITE_beam_files", - testonly = True, - srcs = ["test/proxy_protocol_SUITE.erl"], - outs = ["test/proxy_protocol_SUITE.beam"], - app_name = "rabbitmq_web_stomp", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "raw_websocket_SUITE_beam_files", - testonly = True, - srcs = ["test/raw_websocket_SUITE.erl"], - outs = ["test/raw_websocket_SUITE.beam"], - app_name = "rabbitmq_web_stomp", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "test_src_rabbit_ws_test_util_beam", - testonly = True, - srcs = ["test/src/rabbit_ws_test_util.erl"], - outs = ["test/src/rabbit_ws_test_util.beam"], - app_name = "rabbitmq_web_stomp", - erlc_opts = "//:test_erlc_opts", - ) - - erlang_bytecode( - name = "test_src_stomp_beam", - testonly = True, - srcs = ["test/src/stomp.erl"], - outs = ["test/src/stomp.beam"], - app_name = "rabbitmq_web_stomp", - erlc_opts = "//:test_erlc_opts", - ) - erlang_bytecode( - name = "unit_SUITE_beam_files", - testonly = True, - srcs = ["test/unit_SUITE.erl"], - outs = ["test/unit_SUITE.beam"], - app_name = "rabbitmq_web_stomp", - erlc_opts = "//:test_erlc_opts", - ) diff --git a/deps/rabbitmq_web_stomp_examples/BUILD.bazel b/deps/rabbitmq_web_stomp_examples/BUILD.bazel deleted file mode 100644 index 7b9e8ce9ffb3..000000000000 --- a/deps/rabbitmq_web_stomp_examples/BUILD.bazel +++ /dev/null @@ -1,80 +0,0 @@ -load("@rules_erlang//:xref2.bzl", "xref") -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", -) - -APP_NAME = "rabbitmq_web_stomp_examples" - -APP_DESCRIPTION = "Rabbit WEB-STOMP - examples" - -APP_MODULE = "rabbit_web_stomp_examples_app" - -APP_ENV = """[ - {listener, [{port, 15670}]} - ]""" - -all_beam_files(name = "all_beam_files") - -all_test_beam_files() - -all_srcs(name = "all_srcs") - -# gazelle:erlang_app_dep rabbit_common -# gazelle:erlang_app_dep rabbit -# gazelle:erlang_app_dep rabbitmq_web_stomp - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = APP_DESCRIPTION, - app_env = APP_ENV, - app_module = APP_MODULE, - app_name = APP_NAME, - beam_files = [":beam_files"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "//deps/rabbit:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - "//deps/rabbitmq_web_stomp:erlang_app", - ], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", -) - -alias( - name = "rabbitmq_web_stomp_examples", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -assert_suites() diff --git a/deps/rabbitmq_web_stomp_examples/app.bzl b/deps/rabbitmq_web_stomp_examples/app.bzl deleted file mode 100644 index 1460dd4bb787..000000000000 --- a/deps/rabbitmq_web_stomp_examples/app.bzl +++ /dev/null @@ -1,78 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = ["src/rabbit_web_stomp_examples_app.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_web_stomp_examples", - dest = "ebin", - erlc_opts = "//:erlc_opts", - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "priv", - srcs = [ - "priv/bunny.html", - "priv/bunny.png", - "priv/echo.html", - "priv/index.html", - "priv/main.css", - "priv/pencil.cur", - "priv/stomp.js", - "priv/temp-queue.html", - ], - ) - filegroup( - name = "public_hdrs", - ) - - filegroup( - name = "srcs", - srcs = ["src/rabbit_web_stomp_examples_app.erl"], - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "license_files", - srcs = [ - "LICENSE", - "LICENSE-APL2-Stomp-Websocket", - "LICENSE-MPL-RabbitMQ", - ], - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = ["src/rabbit_web_stomp_examples_app.erl"], - hdrs = [":public_and_private_hdrs"], - app_name = "rabbitmq_web_stomp_examples", - dest = "test", - erlc_opts = "//:test_erlc_opts", - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - pass diff --git a/deps/trust_store_http/BUILD.bazel b/deps/trust_store_http/BUILD.bazel deleted file mode 100644 index 735f709cede4..000000000000 --- a/deps/trust_store_http/BUILD.bazel +++ /dev/null @@ -1,73 +0,0 @@ -load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") -load("@rules_erlang//:xref2.bzl", "xref") -load( - "//:rabbitmq.bzl", - "RABBITMQ_DIALYZER_OPTS", - "assert_suites", - "rabbitmq_app", -) -load( - ":app.bzl", - "all_beam_files", - "all_srcs", - "all_test_beam_files", - "test_suite_beam_files", -) - -# gazelle:erlang_always_generate_test_beam_files - -all_beam_files(name = "all_beam_files") - -all_srcs(name = "all_srcs") - -all_test_beam_files(name = "all_test_beam_files") - -test_suite_beam_files(name = "test_suite_beam_files") - -# gazelle:erlang_app_extra_app ssl - -rabbitmq_app( - name = "erlang_app", - srcs = [":all_srcs"], - hdrs = [":public_hdrs"], - app_description = "Trust store HTTP server", - app_module = "trust_store_http_app", - app_name = "trust_store_http", - app_version = "4.0.0", - beam_files = [":beam_files"], - extra_apps = ["ssl"], - license_files = [":license_files"], - priv = [":priv"], - deps = [ - "@cowboy//:erlang_app", - "@thoas//:erlang_app", - ], -) - -alias( - name = "trust_store_http", - actual = ":erlang_app", - visibility = ["//visibility:public"], -) - -xref( - name = "xref", - target = ":erlang_app", -) - -plt( - name = "deps_plt", - for_target = ":erlang_app", - ignore_warnings = True, - plt = "//:base_plt", -) - -dialyze( - name = "dialyze", - dialyzer_opts = RABBITMQ_DIALYZER_OPTS, - plt = ":deps_plt", - target = ":erlang_app", - warnings_as_errors = False, -) - -assert_suites() diff --git a/deps/trust_store_http/app.bzl b/deps/trust_store_http/app.bzl deleted file mode 100644 index 600ea4810c5e..000000000000 --- a/deps/trust_store_http/app.bzl +++ /dev/null @@ -1,82 +0,0 @@ -load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode") -load("@rules_erlang//:filegroup.bzl", "filegroup") - -def all_beam_files(name = "all_beam_files"): - filegroup( - name = "beam_files", - srcs = [":other_beam"], - ) - erlang_bytecode( - name = "other_beam", - srcs = [ - "src/trust_store_http.erl", - "src/trust_store_http_app.erl", - "src/trust_store_http_sup.erl", - "src/trust_store_invalid_handler.erl", - "src/trust_store_list_handler.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "trust_store_http", - dest = "ebin", - erlc_opts = "//:erlc_opts", - deps = ["@cowboy//:erlang_app"], - ) - -def all_srcs(name = "all_srcs"): - filegroup( - name = "all_srcs", - srcs = [":public_and_private_hdrs", ":srcs"], - ) - filegroup( - name = "public_and_private_hdrs", - srcs = [":private_hdrs", ":public_hdrs"], - ) - - filegroup( - name = "srcs", - srcs = [ - "src/trust_store_http.erl", - "src/trust_store_http_app.erl", - "src/trust_store_http_sup.erl", - "src/trust_store_invalid_handler.erl", - "src/trust_store_list_handler.erl", - ], - ) - filegroup( - name = "priv", - ) - filegroup( - name = "private_hdrs", - ) - filegroup( - name = "public_hdrs", - ) - filegroup( - name = "license_files", - ) - -def all_test_beam_files(name = "all_test_beam_files"): - filegroup( - name = "test_beam_files", - testonly = True, - srcs = [":test_other_beam"], - ) - erlang_bytecode( - name = "test_other_beam", - testonly = True, - srcs = [ - "src/trust_store_http.erl", - "src/trust_store_http_app.erl", - "src/trust_store_http_sup.erl", - "src/trust_store_invalid_handler.erl", - "src/trust_store_list_handler.erl", - ], - hdrs = [":public_and_private_hdrs"], - app_name = "trust_store_http", - dest = "test", - erlc_opts = "//:test_erlc_opts", - deps = ["@cowboy//:erlang_app"], - ) - -def test_suite_beam_files(name = "test_suite_beam_files"): - pass diff --git a/dist.bzl b/dist.bzl deleted file mode 100644 index bcd03269a653..000000000000 --- a/dist.bzl +++ /dev/null @@ -1,366 +0,0 @@ -load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_files") -load("@rules_pkg//:pkg.bzl", "pkg_tar") -load("@rules_erlang//:erlang_app_info.bzl", "ErlangAppInfo", "flat_deps") -load("@rules_erlang//:util.bzl", "path_join") -load("@rules_erlang//:ct.bzl", "additional_file_dest_relative_path") -load( - "@rules_erlang//tools:erlang_toolchain.bzl", - "erlang_dirs", - "maybe_install_erlang", -) -load("@rules_erlang//:source_tree.bzl", "source_tree") -load( - ":rabbitmq_home.bzl", - "RABBITMQ_HOME_ATTRS", - "copy_escript", - "flatten", -) -load( - ":rabbitmq.bzl", - "APP_VERSION", -) - -def _collect_licenses_impl(ctx): - srcs = ctx.files.srcs + flatten([ - d[ErlangAppInfo].license_files - for d in flat_deps(ctx.attr.deps) - ]) - - outs = {} - for src in srcs: - name = src.basename - if name not in outs: - dest = ctx.actions.declare_file(name) - ctx.actions.run( - inputs = [src], - outputs = [dest], - executable = "cp", - arguments = [ - src.path, - dest.path, - ], - ) - outs[name] = dest - - return [ - DefaultInfo( - files = depset(sorted(outs.values())), - ), - ] - -collect_licenses = rule( - implementation = _collect_licenses_impl, - attrs = { - "srcs": attr.label_list(allow_files = True), - "deps": attr.label_list(providers = [ErlangAppInfo]), - }, -) - -def _copy_script(ctx, script): - dest = ctx.actions.declare_file(path_join(ctx.label.name, "sbin", script.basename)) - ctx.actions.expand_template( - template = script, - output = dest, - substitutions = { - "SYS_PREFIX=": "SYS_PREFIX=${RABBITMQ_HOME}", - }, - ) - return dest - -def _sbin_dir_private_impl(ctx): - scripts = [_copy_script(ctx, script) for script in ctx.files._scripts] - - return [ - DefaultInfo( - files = depset(scripts), - ), - ] - -def _escript_dir_private_impl(ctx): - escripts = [copy_escript(ctx, escript) for escript in ctx.files._escripts] - - return [ - DefaultInfo( - files = depset(escripts), - ), - ] - -sbin_dir_private = rule( - implementation = _sbin_dir_private_impl, - attrs = RABBITMQ_HOME_ATTRS, -) - -escript_dir_private = rule( - implementation = _escript_dir_private_impl, - attrs = RABBITMQ_HOME_ATTRS, -) - -def sbin_dir(**kwargs): - sbin_dir_private( - is_windows = select({ - "@bazel_tools//src/conditions:host_windows": True, - "//conditions:default": False, - }), - **kwargs - ) - -def escript_dir(**kwargs): - escript_dir_private( - is_windows = select({ - "@bazel_tools//src/conditions:host_windows": True, - "//conditions:default": False, - }), - **kwargs - ) - -def _extract_version(lib_info): - for f in lib_info.beam: - if f.basename.endswith(".app"): - return "erl -eval '{ok, [{application, _, AppInfo}]} = file:consult(\"" + f.path + "\"), Version = proplists:get_value(vsn, AppInfo), io:fwrite(Version), halt().' -noshell" - if len(lib_info.beam) == 1 and lib_info.beam[0].is_directory: - return "erl -eval '{ok, [{application, _, AppInfo}]} = file:consult(\"" + lib_info.beam[0].path + "/" + lib_info.app_name + ".app\"), Version = proplists:get_value(vsn, AppInfo), io:fwrite(Version), halt().' -noshell" - fail("could not find .app file in", lib_info.beam) - -def _versioned_plugins_dir_impl(ctx): - plugins = flat_deps(ctx.attr.plugins) - - plugins_dir = ctx.actions.declare_directory(path_join(ctx.label.name, "plugins")) - - (erlang_home, _, runfiles) = erlang_dirs(ctx) - - inputs = runfiles.files.to_list() - - commands = [ - "set -euo pipefail", - "", - maybe_install_erlang(ctx), - ] - - commands.append( - "echo 'Put your EZs here and use rabbitmq-plugins to enable them.' > {plugins_dir}/README".format( - plugins_dir = plugins_dir.path, - ) - ) - - for plugin in plugins: - lib_info = plugin[ErlangAppInfo] - version = _extract_version(lib_info) - commands.append("PLUGIN_VERSION=$({erlang_home}/bin/{version})".format( - erlang_home = erlang_home, - version = version, - )) - - commands.append( - "mkdir -p {plugins_dir}/{lib_name}-$PLUGIN_VERSION/include".format( - plugins_dir = plugins_dir.path, - lib_name = lib_info.app_name, - ), - ) - for f in lib_info.include: - commands.append( - "cp {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION/include/{dest}".format( - src = f.path, - plugins_dir = plugins_dir.path, - lib_name = lib_info.app_name, - dest = f.basename, - ), - ) - inputs.extend(lib_info.include) - - commands.append( - "mkdir -p {plugins_dir}/{lib_name}-$PLUGIN_VERSION/ebin".format( - plugins_dir = plugins_dir.path, - lib_name = lib_info.app_name, - ), - ) - for f in lib_info.beam: - if f.is_directory: - if f.basename != "ebin": - fail("{} contains a directory in 'beam' that is not an ebin dir".format(lib_info.app_name)) - commands.append( - "cp -R {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION".format( - src = f.path, - plugins_dir = plugins_dir.path, - lib_name = lib_info.app_name, - ), - ) - else: - commands.append( - "cp {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION/ebin/{dest}".format( - src = f.path, - plugins_dir = plugins_dir.path, - lib_name = lib_info.app_name, - dest = f.basename, - ), - ) - inputs.extend(lib_info.beam) - - for f in lib_info.priv: - p = additional_file_dest_relative_path(plugin.label, f) - commands.append( - "mkdir -p $(dirname {plugins_dir}/{lib_name}-$PLUGIN_VERSION/{dest}) && cp {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION/{dest}".format( - src = f.path, - plugins_dir = plugins_dir.path, - lib_name = lib_info.app_name, - dest = p, - ), - ) - inputs.extend(lib_info.priv) - - commands.append("") - - ctx.actions.run_shell( - inputs = inputs, - outputs = [plugins_dir], - command = "\n".join(commands), - ) - - return [ - DefaultInfo( - files = depset([plugins_dir]), - ), - ] - -versioned_plugins_dir_private = rule( - implementation = _versioned_plugins_dir_impl, - attrs = RABBITMQ_HOME_ATTRS, - toolchains = ["@rules_erlang//tools:toolchain_type"], -) - -def versioned_plugins_dir(**kwargs): - versioned_plugins_dir_private( - is_windows = select({ - "@bazel_tools//src/conditions:host_windows": True, - "//conditions:default": False, - }), - **kwargs - ) - -def package_generic_unix( - name = "package-generic-unix", - extension = "tar.xz", - plugins = None, - extra_licenses = [], - package_dir = "rabbitmq_server-{}".format(APP_VERSION)): - collect_licenses( - name = "licenses", - srcs = [ - Label("@rabbitmq-server//:root-licenses"), - ] + extra_licenses, - deps = plugins, - ) - - pkg_files( - name = "license-files", - srcs = [ - ":licenses", - Label("@rabbitmq-server//deps/rabbit:INSTALL"), - ], - visibility = ["//visibility:public"], - ) - - sbin_dir( - name = "sbin-dir", - ) - - pkg_files( - name = "sbin-files", - srcs = [ - ":sbin-dir", - ], - attributes = pkg_attributes(mode = "0755"), - prefix = "sbin", - ) - - escript_dir( - name = "escript-dir", - ) - - pkg_files( - name = "escript-files", - srcs = [ - ":escript-dir", - ], - attributes = pkg_attributes(mode = "0755"), - prefix = "escript", - ) - - versioned_plugins_dir( - name = "plugins-dir", - plugins = plugins, - ) - - pkg_files( - name = "plugins-files", - srcs = [ - ":plugins-dir", - ], - ) - - pkg_tar( - name = name, - extension = extension, - package_dir = package_dir, - visibility = ["//visibility:public"], - srcs = [ - ":escript-files", - ":sbin-files", - ":plugins-files", - ":license-files", - Label("@rabbitmq-server//:release-notes-files"), - Label("@rabbitmq-server//:scripts-files"), - ], - deps = [ - Label("@rabbitmq-server//deps/rabbit:manpages-dir"), - ], - ) - -def source_archive( - name = "source_archive", - extension = "tar.xz", - plugins = None): - source_tree( - name = "source-tree", - deps = plugins + [ - Label("@rabbitmq-server//deps/rabbitmq_cli:erlang_app"), - ], - ) - - pkg_files( - name = "deps-files", - srcs = [ - ":source-tree", - ], - strip_prefix = "source-tree", - prefix = "deps", - ) - - pkg_files( - name = "json-files", - srcs = [ - "@json//:sources", - ], - strip_prefix = "", - prefix = "deps/json", - ) - - pkg_files( - name = "csv-files", - srcs = [ - "@csv//:sources", - ], - strip_prefix = "", - prefix = "deps/csv", - ) - - pkg_tar( - name = name, - extension = extension, - srcs = [ - ":deps-files", - ":json-files", - ":csv-files", - Label("@rabbitmq-server//:root-licenses"), - ], - visibility = ["//visibility:public"], - ) diff --git a/erlang.mk b/erlang.mk index 44e76f558ac3..48ca5306da36 100644 --- a/erlang.mk +++ b/erlang.mk @@ -17,7 +17,7 @@ ERLANG_MK_FILENAME := $(realpath $(lastword $(MAKEFILE_LIST))) export ERLANG_MK_FILENAME -ERLANG_MK_VERSION = 2022.05.31-72-gb8a27ab-dirty +ERLANG_MK_VERSION = 69fa181 ERLANG_MK_WITHOUT = # Make 3.81 and 3.82 are deprecated. @@ -36,7 +36,7 @@ PROJECT ?= $(notdir $(CURDIR)) PROJECT := $(strip $(PROJECT)) PROJECT_VERSION ?= rolling -PROJECT_MOD ?= $(PROJECT)_app +PROJECT_MOD ?= PROJECT_ENV ?= [] # Verbosity. @@ -47,7 +47,7 @@ verbose_0 = @ verbose_2 = set -x; verbose = $(verbose_$(V)) -ifeq ($(V),3) +ifeq ($V,3) SHELL := $(SHELL) -x endif @@ -66,7 +66,7 @@ export ERLANG_MK_TMP # "erl" command. -ERL = erl +A1 -noinput -boot no_dot_erlang +ERL = erl -noinput -boot no_dot_erlang -kernel start_distribution false +P 1024 +Q 1024 # Platform detection. @@ -162,7 +162,7 @@ define newline endef define comma_list -$(subst $(space),$(comma),$(strip $(1))) +$(subst $(space),$(comma),$(strip $1)) endef define escape_dquotes @@ -180,23 +180,23 @@ else core_native_path = $1 endif -core_http_get = curl -Lf$(if $(filter-out 0,$(V)),,s)o $(call core_native_path,$1) $2 +core_http_get = curl -Lf$(if $(filter-out 0,$V),,s)o $(call core_native_path,$1) $2 -core_eq = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1))) +core_eq = $(and $(findstring $1,$2),$(findstring $2,$1)) # We skip files that contain spaces because they end up causing issues. # Files that begin with a dot are already ignored by the wildcard function. core_find = $(foreach f,$(wildcard $(1:%/=%)/*),$(if $(wildcard $f/.),$(call core_find,$f,$2),$(if $(filter $(subst *,%,$2),$f),$(if $(wildcard $f),$f)))) -core_lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$(1))))))))))))))))))))))))))) +core_lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1)))))))))))))))))))))))))) -core_ls = $(filter-out $(1),$(shell echo $(1))) +core_ls = $(filter-out $1,$(shell echo $1)) # @todo Use a solution that does not require using perl. core_relpath = $(shell perl -e 'use File::Spec; print File::Spec->abs2rel(@ARGV) . "\n"' $1 $2) define core_render - printf -- '$(subst $(newline),\n,$(subst %,%%,$(subst ','\'',$(subst $(tab),$(WS),$(call $(1))))))\n' > $(2) + printf -- '$(subst $(newline),\n,$(subst %,%%,$(subst ','\'',$(subst $(tab),$(WS),$(call $1)))))\n' > $2 endef # Automated update. @@ -246,10 +246,10 @@ KERL_MAKEFLAGS ?= OTP_GIT ?= https://github.com/erlang/otp define kerl_otp_target -$(KERL_INSTALL_DIR)/$(1): $(KERL) +$(KERL_INSTALL_DIR)/$1: $(KERL) $(verbose) if [ ! -d $$@ ]; then \ - MAKEFLAGS="$(KERL_MAKEFLAGS)" $(KERL) build git $(OTP_GIT) $(1) $(1); \ - $(KERL) install $(1) $(KERL_INSTALL_DIR)/$(1); \ + MAKEFLAGS="$(KERL_MAKEFLAGS)" $(KERL) build git $(OTP_GIT) $1 $1; \ + $(KERL) install $1 $(KERL_INSTALL_DIR)/$1; \ fi endef @@ -291,54 +291,6 @@ endif endif -PACKAGES += aberth -pkg_aberth_name = aberth -pkg_aberth_description = Generic BERT-RPC server in Erlang -pkg_aberth_homepage = https://github.com/a13x/aberth -pkg_aberth_fetch = git -pkg_aberth_repo = https://github.com/a13x/aberth -pkg_aberth_commit = master - -PACKAGES += active -pkg_active_name = active -pkg_active_description = Active development for Erlang: rebuild and reload source/binary files while the VM is running -pkg_active_homepage = https://github.com/proger/active -pkg_active_fetch = git -pkg_active_repo = https://github.com/proger/active -pkg_active_commit = master - -PACKAGES += aleppo -pkg_aleppo_name = aleppo -pkg_aleppo_description = Alternative Erlang Pre-Processor -pkg_aleppo_homepage = https://github.com/ErlyORM/aleppo -pkg_aleppo_fetch = git -pkg_aleppo_repo = https://github.com/ErlyORM/aleppo -pkg_aleppo_commit = master - -PACKAGES += alog -pkg_alog_name = alog -pkg_alog_description = Simply the best logging framework for Erlang -pkg_alog_homepage = https://github.com/siberian-fast-food/alogger -pkg_alog_fetch = git -pkg_alog_repo = https://github.com/siberian-fast-food/alogger -pkg_alog_commit = master - -PACKAGES += annotations -pkg_annotations_name = annotations -pkg_annotations_description = Simple code instrumentation utilities -pkg_annotations_homepage = https://github.com/hyperthunk/annotations -pkg_annotations_fetch = git -pkg_annotations_repo = https://github.com/hyperthunk/annotations -pkg_annotations_commit = master - -PACKAGES += apns -pkg_apns_name = apns -pkg_apns_description = Apple Push Notification Server for Erlang -pkg_apns_homepage = http://inaka.github.com/apns4erl -pkg_apns_fetch = git -pkg_apns_repo = https://github.com/inaka/apns4erl -pkg_apns_commit = master - PACKAGES += asciideck pkg_asciideck_name = asciideck pkg_asciideck_description = Asciidoc for Erlang. @@ -347,421 +299,13 @@ pkg_asciideck_fetch = git pkg_asciideck_repo = https://github.com/ninenines/asciideck pkg_asciideck_commit = master -PACKAGES += backoff -pkg_backoff_name = backoff -pkg_backoff_description = Simple exponential backoffs in Erlang -pkg_backoff_homepage = https://github.com/ferd/backoff -pkg_backoff_fetch = git -pkg_backoff_repo = https://github.com/ferd/backoff -pkg_backoff_commit = master - -PACKAGES += barrel_tcp -pkg_barrel_tcp_name = barrel_tcp -pkg_barrel_tcp_description = barrel is a generic TCP acceptor pool with low latency in Erlang. -pkg_barrel_tcp_homepage = https://github.com/benoitc-attic/barrel_tcp -pkg_barrel_tcp_fetch = git -pkg_barrel_tcp_repo = https://github.com/benoitc-attic/barrel_tcp -pkg_barrel_tcp_commit = master - -PACKAGES += basho_bench -pkg_basho_bench_name = basho_bench -pkg_basho_bench_description = A load-generation and testing tool for basically whatever you can write a returning Erlang function for. -pkg_basho_bench_homepage = https://github.com/basho/basho_bench -pkg_basho_bench_fetch = git -pkg_basho_bench_repo = https://github.com/basho/basho_bench -pkg_basho_bench_commit = master - -PACKAGES += bcrypt -pkg_bcrypt_name = bcrypt -pkg_bcrypt_description = Bcrypt Erlang / C library -pkg_bcrypt_homepage = https://github.com/erlangpack/bcrypt -pkg_bcrypt_fetch = git -pkg_bcrypt_repo = https://github.com/erlangpack/bcrypt.git -pkg_bcrypt_commit = master - -PACKAGES += beam -pkg_beam_name = beam -pkg_beam_description = BEAM emulator written in Erlang -pkg_beam_homepage = https://github.com/tonyrog/beam -pkg_beam_fetch = git -pkg_beam_repo = https://github.com/tonyrog/beam -pkg_beam_commit = master - -PACKAGES += bear -pkg_bear_name = bear -pkg_bear_description = a set of statistics functions for erlang -pkg_bear_homepage = https://github.com/boundary/bear -pkg_bear_fetch = git -pkg_bear_repo = https://github.com/boundary/bear -pkg_bear_commit = master - -PACKAGES += bertconf -pkg_bertconf_name = bertconf -pkg_bertconf_description = Make ETS tables out of statc BERT files that are auto-reloaded -pkg_bertconf_homepage = https://github.com/ferd/bertconf -pkg_bertconf_fetch = git -pkg_bertconf_repo = https://github.com/ferd/bertconf -pkg_bertconf_commit = master - -PACKAGES += bifrost -pkg_bifrost_name = bifrost -pkg_bifrost_description = Erlang FTP Server Framework -pkg_bifrost_homepage = https://github.com/thorstadt/bifrost -pkg_bifrost_fetch = git -pkg_bifrost_repo = https://github.com/thorstadt/bifrost -pkg_bifrost_commit = master - -PACKAGES += binpp -pkg_binpp_name = binpp -pkg_binpp_description = Erlang Binary Pretty Printer -pkg_binpp_homepage = https://github.com/jtendo/binpp -pkg_binpp_fetch = git -pkg_binpp_repo = https://github.com/jtendo/binpp -pkg_binpp_commit = master - -PACKAGES += bisect -pkg_bisect_name = bisect -pkg_bisect_description = Ordered fixed-size binary dictionary in Erlang -pkg_bisect_homepage = https://github.com/knutin/bisect -pkg_bisect_fetch = git -pkg_bisect_repo = https://github.com/knutin/bisect -pkg_bisect_commit = master - -PACKAGES += bitcask -pkg_bitcask_name = bitcask -pkg_bitcask_description = because you need another a key/value storage engine -pkg_bitcask_homepage = https://github.com/basho/bitcask -pkg_bitcask_fetch = git -pkg_bitcask_repo = https://github.com/basho/bitcask -pkg_bitcask_commit = develop - -PACKAGES += bootstrap -pkg_bootstrap_name = bootstrap -pkg_bootstrap_description = A simple, yet powerful Erlang cluster bootstrapping application. -pkg_bootstrap_homepage = https://github.com/schlagert/bootstrap -pkg_bootstrap_fetch = git -pkg_bootstrap_repo = https://github.com/schlagert/bootstrap -pkg_bootstrap_commit = master - -PACKAGES += boss -pkg_boss_name = boss -pkg_boss_description = Erlang web MVC, now featuring Comet -pkg_boss_homepage = https://github.com/ChicagoBoss/ChicagoBoss -pkg_boss_fetch = git -pkg_boss_repo = https://github.com/ChicagoBoss/ChicagoBoss -pkg_boss_commit = master - -PACKAGES += boss_db -pkg_boss_db_name = boss_db -pkg_boss_db_description = BossDB: a sharded, caching, pooling, evented ORM for Erlang -pkg_boss_db_homepage = https://github.com/ErlyORM/boss_db -pkg_boss_db_fetch = git -pkg_boss_db_repo = https://github.com/ErlyORM/boss_db -pkg_boss_db_commit = master - -PACKAGES += brod -pkg_brod_name = brod -pkg_brod_description = Kafka client in Erlang -pkg_brod_homepage = https://github.com/klarna/brod -pkg_brod_fetch = git -pkg_brod_repo = https://github.com/klarna/brod.git -pkg_brod_commit = master - -PACKAGES += bson -pkg_bson_name = bson -pkg_bson_description = BSON documents in Erlang, see bsonspec.org -pkg_bson_homepage = https://github.com/comtihon/bson-erlang -pkg_bson_fetch = git -pkg_bson_repo = https://github.com/comtihon/bson-erlang -pkg_bson_commit = master - -PACKAGES += bullet -pkg_bullet_name = bullet -pkg_bullet_description = Simple, reliable, efficient streaming for Cowboy. -pkg_bullet_homepage = http://ninenines.eu -pkg_bullet_fetch = git -pkg_bullet_repo = https://github.com/ninenines/bullet -pkg_bullet_commit = master - -PACKAGES += cache -pkg_cache_name = cache -pkg_cache_description = Erlang in-memory cache -pkg_cache_homepage = https://github.com/fogfish/cache -pkg_cache_fetch = git -pkg_cache_repo = https://github.com/fogfish/cache -pkg_cache_commit = master - -PACKAGES += cake -pkg_cake_name = cake -pkg_cake_description = Really simple terminal colorization -pkg_cake_homepage = https://github.com/darach/cake-erl -pkg_cake_fetch = git -pkg_cake_repo = https://github.com/darach/cake-erl -pkg_cake_commit = master - -PACKAGES += cberl -pkg_cberl_name = cberl -pkg_cberl_description = NIF based Erlang bindings for Couchbase -pkg_cberl_homepage = https://github.com/chitika/cberl -pkg_cberl_fetch = git -pkg_cberl_repo = https://github.com/chitika/cberl -pkg_cberl_commit = master - -PACKAGES += cecho -pkg_cecho_name = cecho -pkg_cecho_description = An ncurses library for Erlang -pkg_cecho_homepage = https://github.com/mazenharake/cecho -pkg_cecho_fetch = git -pkg_cecho_repo = https://github.com/mazenharake/cecho -pkg_cecho_commit = master - -PACKAGES += cferl -pkg_cferl_name = cferl -pkg_cferl_description = Rackspace / Open Stack Cloud Files Erlang Client -pkg_cferl_homepage = https://github.com/ddossot/cferl -pkg_cferl_fetch = git -pkg_cferl_repo = https://github.com/ddossot/cferl -pkg_cferl_commit = master - -PACKAGES += chaos_monkey -pkg_chaos_monkey_name = chaos_monkey -pkg_chaos_monkey_description = This is The CHAOS MONKEY. It will kill your processes. -pkg_chaos_monkey_homepage = https://github.com/dLuna/chaos_monkey -pkg_chaos_monkey_fetch = git -pkg_chaos_monkey_repo = https://github.com/dLuna/chaos_monkey -pkg_chaos_monkey_commit = master - -PACKAGES += check_node -pkg_check_node_name = check_node -pkg_check_node_description = Nagios Scripts for monitoring Riak -pkg_check_node_homepage = https://github.com/basho-labs/riak_nagios -pkg_check_node_fetch = git -pkg_check_node_repo = https://github.com/basho-labs/riak_nagios -pkg_check_node_commit = master - -PACKAGES += chronos -pkg_chronos_name = chronos -pkg_chronos_description = Timer module for Erlang that makes it easy to abstract time out of the tests. -pkg_chronos_homepage = https://github.com/lehoff/chronos -pkg_chronos_fetch = git -pkg_chronos_repo = https://github.com/lehoff/chronos -pkg_chronos_commit = master - -PACKAGES += chumak -pkg_chumak_name = chumak -pkg_chumak_description = Pure Erlang implementation of ZeroMQ Message Transport Protocol. -pkg_chumak_homepage = http://choven.ca -pkg_chumak_fetch = git -pkg_chumak_repo = https://github.com/chovencorp/chumak -pkg_chumak_commit = master - -PACKAGES += cl -pkg_cl_name = cl -pkg_cl_description = OpenCL binding for Erlang -pkg_cl_homepage = https://github.com/tonyrog/cl -pkg_cl_fetch = git -pkg_cl_repo = https://github.com/tonyrog/cl -pkg_cl_commit = master - -PACKAGES += clique -pkg_clique_name = clique -pkg_clique_description = CLI Framework for Erlang -pkg_clique_homepage = https://github.com/basho/clique -pkg_clique_fetch = git -pkg_clique_repo = https://github.com/basho/clique -pkg_clique_commit = develop - -PACKAGES += cloudi_core -pkg_cloudi_core_name = cloudi_core -pkg_cloudi_core_description = CloudI internal service runtime -pkg_cloudi_core_homepage = http://cloudi.org/ -pkg_cloudi_core_fetch = git -pkg_cloudi_core_repo = https://github.com/CloudI/cloudi_core -pkg_cloudi_core_commit = master - -PACKAGES += cloudi_service_api_requests -pkg_cloudi_service_api_requests_name = cloudi_service_api_requests -pkg_cloudi_service_api_requests_description = CloudI Service API requests (JSON-RPC/Erlang-term support) -pkg_cloudi_service_api_requests_homepage = http://cloudi.org/ -pkg_cloudi_service_api_requests_fetch = git -pkg_cloudi_service_api_requests_repo = https://github.com/CloudI/cloudi_service_api_requests -pkg_cloudi_service_api_requests_commit = master - -PACKAGES += cloudi_service_db_mysql -pkg_cloudi_service_db_mysql_name = cloudi_service_db_mysql -pkg_cloudi_service_db_mysql_description = MySQL CloudI Service -pkg_cloudi_service_db_mysql_homepage = http://cloudi.org/ -pkg_cloudi_service_db_mysql_fetch = git -pkg_cloudi_service_db_mysql_repo = https://github.com/CloudI/cloudi_service_db_mysql -pkg_cloudi_service_db_mysql_commit = master - -PACKAGES += cloudi_service_db_pgsql -pkg_cloudi_service_db_pgsql_name = cloudi_service_db_pgsql -pkg_cloudi_service_db_pgsql_description = PostgreSQL CloudI Service -pkg_cloudi_service_db_pgsql_homepage = http://cloudi.org/ -pkg_cloudi_service_db_pgsql_fetch = git -pkg_cloudi_service_db_pgsql_repo = https://github.com/CloudI/cloudi_service_db_pgsql -pkg_cloudi_service_db_pgsql_commit = master - -PACKAGES += cloudi_service_filesystem -pkg_cloudi_service_filesystem_name = cloudi_service_filesystem -pkg_cloudi_service_filesystem_description = Filesystem CloudI Service -pkg_cloudi_service_filesystem_homepage = http://cloudi.org/ -pkg_cloudi_service_filesystem_fetch = git -pkg_cloudi_service_filesystem_repo = https://github.com/CloudI/cloudi_service_filesystem -pkg_cloudi_service_filesystem_commit = master - -PACKAGES += cloudi_service_http_client -pkg_cloudi_service_http_client_name = cloudi_service_http_client -pkg_cloudi_service_http_client_description = HTTP client CloudI Service -pkg_cloudi_service_http_client_homepage = http://cloudi.org/ -pkg_cloudi_service_http_client_fetch = git -pkg_cloudi_service_http_client_repo = https://github.com/CloudI/cloudi_service_http_client -pkg_cloudi_service_http_client_commit = master - -PACKAGES += cloudi_service_http_cowboy -pkg_cloudi_service_http_cowboy_name = cloudi_service_http_cowboy -pkg_cloudi_service_http_cowboy_description = cowboy HTTP/HTTPS CloudI Service -pkg_cloudi_service_http_cowboy_homepage = http://cloudi.org/ -pkg_cloudi_service_http_cowboy_fetch = git -pkg_cloudi_service_http_cowboy_repo = https://github.com/CloudI/cloudi_service_http_cowboy -pkg_cloudi_service_http_cowboy_commit = master - -PACKAGES += cloudi_service_http_elli -pkg_cloudi_service_http_elli_name = cloudi_service_http_elli -pkg_cloudi_service_http_elli_description = elli HTTP CloudI Service -pkg_cloudi_service_http_elli_homepage = http://cloudi.org/ -pkg_cloudi_service_http_elli_fetch = git -pkg_cloudi_service_http_elli_repo = https://github.com/CloudI/cloudi_service_http_elli -pkg_cloudi_service_http_elli_commit = master - -PACKAGES += cloudi_service_map_reduce -pkg_cloudi_service_map_reduce_name = cloudi_service_map_reduce -pkg_cloudi_service_map_reduce_description = Map/Reduce CloudI Service -pkg_cloudi_service_map_reduce_homepage = http://cloudi.org/ -pkg_cloudi_service_map_reduce_fetch = git -pkg_cloudi_service_map_reduce_repo = https://github.com/CloudI/cloudi_service_map_reduce -pkg_cloudi_service_map_reduce_commit = master - -PACKAGES += cloudi_service_oauth1 -pkg_cloudi_service_oauth1_name = cloudi_service_oauth1 -pkg_cloudi_service_oauth1_description = OAuth v1.0 CloudI Service -pkg_cloudi_service_oauth1_homepage = http://cloudi.org/ -pkg_cloudi_service_oauth1_fetch = git -pkg_cloudi_service_oauth1_repo = https://github.com/CloudI/cloudi_service_oauth1 -pkg_cloudi_service_oauth1_commit = master - -PACKAGES += cloudi_service_queue -pkg_cloudi_service_queue_name = cloudi_service_queue -pkg_cloudi_service_queue_description = Persistent Queue Service -pkg_cloudi_service_queue_homepage = http://cloudi.org/ -pkg_cloudi_service_queue_fetch = git -pkg_cloudi_service_queue_repo = https://github.com/CloudI/cloudi_service_queue -pkg_cloudi_service_queue_commit = master - -PACKAGES += cloudi_service_quorum -pkg_cloudi_service_quorum_name = cloudi_service_quorum -pkg_cloudi_service_quorum_description = CloudI Quorum Service -pkg_cloudi_service_quorum_homepage = http://cloudi.org/ -pkg_cloudi_service_quorum_fetch = git -pkg_cloudi_service_quorum_repo = https://github.com/CloudI/cloudi_service_quorum -pkg_cloudi_service_quorum_commit = master - -PACKAGES += cloudi_service_router -pkg_cloudi_service_router_name = cloudi_service_router -pkg_cloudi_service_router_description = CloudI Router Service -pkg_cloudi_service_router_homepage = http://cloudi.org/ -pkg_cloudi_service_router_fetch = git -pkg_cloudi_service_router_repo = https://github.com/CloudI/cloudi_service_router -pkg_cloudi_service_router_commit = master - -PACKAGES += cloudi_service_tcp -pkg_cloudi_service_tcp_name = cloudi_service_tcp -pkg_cloudi_service_tcp_description = TCP CloudI Service -pkg_cloudi_service_tcp_homepage = http://cloudi.org/ -pkg_cloudi_service_tcp_fetch = git -pkg_cloudi_service_tcp_repo = https://github.com/CloudI/cloudi_service_tcp -pkg_cloudi_service_tcp_commit = master - -PACKAGES += cloudi_service_udp -pkg_cloudi_service_udp_name = cloudi_service_udp -pkg_cloudi_service_udp_description = UDP CloudI Service -pkg_cloudi_service_udp_homepage = http://cloudi.org/ -pkg_cloudi_service_udp_fetch = git -pkg_cloudi_service_udp_repo = https://github.com/CloudI/cloudi_service_udp -pkg_cloudi_service_udp_commit = master - -PACKAGES += cloudi_service_validate -pkg_cloudi_service_validate_name = cloudi_service_validate -pkg_cloudi_service_validate_description = CloudI Validate Service -pkg_cloudi_service_validate_homepage = http://cloudi.org/ -pkg_cloudi_service_validate_fetch = git -pkg_cloudi_service_validate_repo = https://github.com/CloudI/cloudi_service_validate -pkg_cloudi_service_validate_commit = master - -PACKAGES += cloudi_service_zeromq -pkg_cloudi_service_zeromq_name = cloudi_service_zeromq -pkg_cloudi_service_zeromq_description = ZeroMQ CloudI Service -pkg_cloudi_service_zeromq_homepage = http://cloudi.org/ -pkg_cloudi_service_zeromq_fetch = git -pkg_cloudi_service_zeromq_repo = https://github.com/CloudI/cloudi_service_zeromq -pkg_cloudi_service_zeromq_commit = master - -PACKAGES += cluster_info -pkg_cluster_info_name = cluster_info -pkg_cluster_info_description = Fork of Hibari's nifty cluster_info OTP app -pkg_cluster_info_homepage = https://github.com/basho/cluster_info -pkg_cluster_info_fetch = git -pkg_cluster_info_repo = https://github.com/basho/cluster_info -pkg_cluster_info_commit = master - -PACKAGES += color -pkg_color_name = color -pkg_color_description = ANSI colors for your Erlang -pkg_color_homepage = https://github.com/julianduque/erlang-color -pkg_color_fetch = git -pkg_color_repo = https://github.com/julianduque/erlang-color -pkg_color_commit = master - -PACKAGES += confetti -pkg_confetti_name = confetti -pkg_confetti_description = Erlang configuration provider / application:get_env/2 on steroids -pkg_confetti_homepage = https://github.com/jtendo/confetti -pkg_confetti_fetch = git -pkg_confetti_repo = https://github.com/jtendo/confetti -pkg_confetti_commit = master - -PACKAGES += couchbeam -pkg_couchbeam_name = couchbeam -pkg_couchbeam_description = Apache CouchDB client in Erlang -pkg_couchbeam_homepage = https://github.com/benoitc/couchbeam -pkg_couchbeam_fetch = git -pkg_couchbeam_repo = https://github.com/benoitc/couchbeam -pkg_couchbeam_commit = master - -PACKAGES += covertool -pkg_covertool_name = covertool -pkg_covertool_description = Tool to convert Erlang cover data files into Cobertura XML reports -pkg_covertool_homepage = https://github.com/idubrov/covertool -pkg_covertool_fetch = git -pkg_covertool_repo = https://github.com/idubrov/covertool -pkg_covertool_commit = master - PACKAGES += cowboy pkg_cowboy_name = cowboy pkg_cowboy_description = Small, fast and modular HTTP server. pkg_cowboy_homepage = http://ninenines.eu pkg_cowboy_fetch = git pkg_cowboy_repo = https://github.com/ninenines/cowboy -pkg_cowboy_commit = 1.0.4 - -PACKAGES += cowdb -pkg_cowdb_name = cowdb -pkg_cowdb_description = Pure Key/Value database library for Erlang Applications -pkg_cowdb_homepage = https://github.com/refuge/cowdb -pkg_cowdb_fetch = git -pkg_cowdb_repo = https://github.com/refuge/cowdb -pkg_cowdb_commit = master +pkg_cowboy_commit = master PACKAGES += cowlib pkg_cowlib_name = cowlib @@ -769,600 +313,16 @@ pkg_cowlib_description = Support library for manipulating Web protocols. pkg_cowlib_homepage = http://ninenines.eu pkg_cowlib_fetch = git pkg_cowlib_repo = https://github.com/ninenines/cowlib -pkg_cowlib_commit = 1.0.2 - -PACKAGES += cpg -pkg_cpg_name = cpg -pkg_cpg_description = CloudI Process Groups -pkg_cpg_homepage = https://github.com/okeuday/cpg -pkg_cpg_fetch = git -pkg_cpg_repo = https://github.com/okeuday/cpg -pkg_cpg_commit = master - -PACKAGES += cqerl -pkg_cqerl_name = cqerl -pkg_cqerl_description = Native Erlang CQL client for Cassandra -pkg_cqerl_homepage = https://matehat.github.io/cqerl/ -pkg_cqerl_fetch = git -pkg_cqerl_repo = https://github.com/matehat/cqerl -pkg_cqerl_commit = master - -PACKAGES += cr -pkg_cr_name = cr -pkg_cr_description = Chain Replication -pkg_cr_homepage = https://synrc.com/apps/cr/doc/cr.htm -pkg_cr_fetch = git -pkg_cr_repo = https://github.com/spawnproc/cr -pkg_cr_commit = master - -PACKAGES += cuttlefish -pkg_cuttlefish_name = cuttlefish -pkg_cuttlefish_description = cuttlefish configuration abstraction -pkg_cuttlefish_homepage = https://github.com/Kyorai/cuttlefish -pkg_cuttlefish_fetch = git -pkg_cuttlefish_repo = https://github.com/Kyorai/cuttlefish -pkg_cuttlefish_commit = main - -PACKAGES += damocles -pkg_damocles_name = damocles -pkg_damocles_description = Erlang library for generating adversarial network conditions for QAing distributed applications/systems on a single Linux box. -pkg_damocles_homepage = https://github.com/lostcolony/damocles -pkg_damocles_fetch = git -pkg_damocles_repo = https://github.com/lostcolony/damocles -pkg_damocles_commit = master - -PACKAGES += debbie -pkg_debbie_name = debbie -pkg_debbie_description = .DEB Built In Erlang -pkg_debbie_homepage = https://github.com/crownedgrouse/debbie -pkg_debbie_fetch = git -pkg_debbie_repo = https://github.com/crownedgrouse/debbie -pkg_debbie_commit = master - -PACKAGES += decimal -pkg_decimal_name = decimal -pkg_decimal_description = An Erlang decimal arithmetic library -pkg_decimal_homepage = https://github.com/egobrain/decimal -pkg_decimal_fetch = git -pkg_decimal_repo = https://github.com/egobrain/decimal -pkg_decimal_commit = master - -PACKAGES += detergent -pkg_detergent_name = detergent -pkg_detergent_description = An emulsifying Erlang SOAP library -pkg_detergent_homepage = https://github.com/devinus/detergent -pkg_detergent_fetch = git -pkg_detergent_repo = https://github.com/devinus/detergent -pkg_detergent_commit = master - -PACKAGES += dh_date -pkg_dh_date_name = dh_date -pkg_dh_date_description = Date formatting / parsing library for erlang -pkg_dh_date_homepage = https://github.com/daleharvey/dh_date -pkg_dh_date_fetch = git -pkg_dh_date_repo = https://github.com/daleharvey/dh_date -pkg_dh_date_commit = master - -PACKAGES += dirbusterl -pkg_dirbusterl_name = dirbusterl -pkg_dirbusterl_description = DirBuster successor in Erlang -pkg_dirbusterl_homepage = https://github.com/silentsignal/DirBustErl -pkg_dirbusterl_fetch = git -pkg_dirbusterl_repo = https://github.com/silentsignal/DirBustErl -pkg_dirbusterl_commit = master - -PACKAGES += dispcount -pkg_dispcount_name = dispcount -pkg_dispcount_description = Erlang task dispatcher based on ETS counters. -pkg_dispcount_homepage = https://github.com/ferd/dispcount -pkg_dispcount_fetch = git -pkg_dispcount_repo = https://github.com/ferd/dispcount -pkg_dispcount_commit = master - -PACKAGES += dlhttpc -pkg_dlhttpc_name = dlhttpc -pkg_dlhttpc_description = dispcount-based lhttpc fork for massive amounts of requests to limited endpoints -pkg_dlhttpc_homepage = https://github.com/ferd/dlhttpc -pkg_dlhttpc_fetch = git -pkg_dlhttpc_repo = https://github.com/ferd/dlhttpc -pkg_dlhttpc_commit = master - -PACKAGES += dns -pkg_dns_name = dns -pkg_dns_description = Erlang DNS library -pkg_dns_homepage = https://github.com/aetrion/dns_erlang -pkg_dns_fetch = git -pkg_dns_repo = https://github.com/aetrion/dns_erlang -pkg_dns_commit = main - -PACKAGES += dynamic_compile -pkg_dynamic_compile_name = dynamic_compile -pkg_dynamic_compile_description = compile and load erlang modules from string input -pkg_dynamic_compile_homepage = https://github.com/jkvor/dynamic_compile -pkg_dynamic_compile_fetch = git -pkg_dynamic_compile_repo = https://github.com/jkvor/dynamic_compile -pkg_dynamic_compile_commit = master - -PACKAGES += e2 -pkg_e2_name = e2 -pkg_e2_description = Library to simply writing correct OTP applications. -pkg_e2_homepage = http://e2project.org -pkg_e2_fetch = git -pkg_e2_repo = https://github.com/gar1t/e2 -pkg_e2_commit = master - -PACKAGES += eamf -pkg_eamf_name = eamf -pkg_eamf_description = eAMF provides Action Message Format (AMF) support for Erlang -pkg_eamf_homepage = https://github.com/mrinalwadhwa/eamf -pkg_eamf_fetch = git -pkg_eamf_repo = https://github.com/mrinalwadhwa/eamf -pkg_eamf_commit = master - -PACKAGES += eavro -pkg_eavro_name = eavro -pkg_eavro_description = Apache Avro encoder/decoder -pkg_eavro_homepage = https://github.com/SIfoxDevTeam/eavro -pkg_eavro_fetch = git -pkg_eavro_repo = https://github.com/SIfoxDevTeam/eavro -pkg_eavro_commit = master - -PACKAGES += ecapnp -pkg_ecapnp_name = ecapnp -pkg_ecapnp_description = Cap'n Proto library for Erlang -pkg_ecapnp_homepage = https://github.com/kaos/ecapnp -pkg_ecapnp_fetch = git -pkg_ecapnp_repo = https://github.com/kaos/ecapnp -pkg_ecapnp_commit = master - -PACKAGES += econfig -pkg_econfig_name = econfig -pkg_econfig_description = simple Erlang config handler using INI files -pkg_econfig_homepage = https://github.com/benoitc/econfig -pkg_econfig_fetch = git -pkg_econfig_repo = https://github.com/benoitc/econfig -pkg_econfig_commit = master - -PACKAGES += edate -pkg_edate_name = edate -pkg_edate_description = date manipulation library for erlang -pkg_edate_homepage = https://github.com/dweldon/edate -pkg_edate_fetch = git -pkg_edate_repo = https://github.com/dweldon/edate -pkg_edate_commit = master - -PACKAGES += edgar -pkg_edgar_name = edgar -pkg_edgar_description = Erlang Does GNU AR -pkg_edgar_homepage = https://github.com/crownedgrouse/edgar -pkg_edgar_fetch = git -pkg_edgar_repo = https://github.com/crownedgrouse/edgar -pkg_edgar_commit = master - -PACKAGES += edns -pkg_edns_name = edns -pkg_edns_description = Erlang/OTP DNS server -pkg_edns_homepage = https://github.com/hcvst/erlang-dns -pkg_edns_fetch = git -pkg_edns_repo = https://github.com/hcvst/erlang-dns -pkg_edns_commit = master - -PACKAGES += edown -pkg_edown_name = edown -pkg_edown_description = EDoc extension for generating Github-flavored Markdown -pkg_edown_homepage = https://github.com/uwiger/edown -pkg_edown_fetch = git -pkg_edown_repo = https://github.com/uwiger/edown -pkg_edown_commit = master - -PACKAGES += eep -pkg_eep_name = eep -pkg_eep_description = Erlang Easy Profiling (eep) application provides a way to analyze application performance and call hierarchy -pkg_eep_homepage = https://github.com/virtan/eep -pkg_eep_fetch = git -pkg_eep_repo = https://github.com/virtan/eep -pkg_eep_commit = master - -PACKAGES += eep_app -pkg_eep_app_name = eep_app -pkg_eep_app_description = Embedded Event Processing -pkg_eep_app_homepage = https://github.com/darach/eep-erl -pkg_eep_app_fetch = git -pkg_eep_app_repo = https://github.com/darach/eep-erl -pkg_eep_app_commit = master - -PACKAGES += efene -pkg_efene_name = efene -pkg_efene_description = Alternative syntax for the Erlang Programming Language focusing on simplicity, ease of use and programmer UX -pkg_efene_homepage = https://github.com/efene/efene -pkg_efene_fetch = git -pkg_efene_repo = https://github.com/efene/efene -pkg_efene_commit = master - -PACKAGES += egeoip -pkg_egeoip_name = egeoip -pkg_egeoip_description = Erlang IP Geolocation module, currently supporting the MaxMind GeoLite City Database. -pkg_egeoip_homepage = https://github.com/mochi/egeoip -pkg_egeoip_fetch = git -pkg_egeoip_repo = https://github.com/mochi/egeoip -pkg_egeoip_commit = master - -PACKAGES += ehsa -pkg_ehsa_name = ehsa -pkg_ehsa_description = Erlang HTTP server basic and digest authentication modules -pkg_ehsa_homepage = https://github.com/a12n/ehsa -pkg_ehsa_fetch = git -pkg_ehsa_repo = https://github.com/a12n/ehsa -pkg_ehsa_commit = master - -PACKAGES += ej -pkg_ej_name = ej -pkg_ej_description = Helper module for working with Erlang terms representing JSON -pkg_ej_homepage = https://github.com/seth/ej -pkg_ej_fetch = git -pkg_ej_repo = https://github.com/seth/ej -pkg_ej_commit = master - -PACKAGES += ejabberd -pkg_ejabberd_name = ejabberd -pkg_ejabberd_description = Robust, ubiquitous and massively scalable Jabber / XMPP Instant Messaging platform -pkg_ejabberd_homepage = https://github.com/processone/ejabberd -pkg_ejabberd_fetch = git -pkg_ejabberd_repo = https://github.com/processone/ejabberd -pkg_ejabberd_commit = master - -PACKAGES += ejwt -pkg_ejwt_name = ejwt -pkg_ejwt_description = erlang library for JSON Web Token -pkg_ejwt_homepage = https://github.com/artefactop/ejwt -pkg_ejwt_fetch = git -pkg_ejwt_repo = https://github.com/artefactop/ejwt -pkg_ejwt_commit = master - -PACKAGES += ekaf -pkg_ekaf_name = ekaf -pkg_ekaf_description = A minimal, high-performance Kafka client in Erlang. -pkg_ekaf_homepage = https://github.com/helpshift/ekaf -pkg_ekaf_fetch = git -pkg_ekaf_repo = https://github.com/helpshift/ekaf -pkg_ekaf_commit = master - -PACKAGES += elarm -pkg_elarm_name = elarm -pkg_elarm_description = Alarm Manager for Erlang. -pkg_elarm_homepage = https://github.com/esl/elarm -pkg_elarm_fetch = git -pkg_elarm_repo = https://github.com/esl/elarm -pkg_elarm_commit = master - -PACKAGES += eleveldb -pkg_eleveldb_name = eleveldb -pkg_eleveldb_description = Erlang LevelDB API -pkg_eleveldb_homepage = https://github.com/basho/eleveldb -pkg_eleveldb_fetch = git -pkg_eleveldb_repo = https://github.com/basho/eleveldb -pkg_eleveldb_commit = develop +pkg_cowlib_commit = master PACKAGES += elixir pkg_elixir_name = elixir -pkg_elixir_description = Elixir is a dynamic, functional language designed for building scalable and maintainable applications -pkg_elixir_homepage = https://elixir-lang.org/ +pkg_elixir_description = Elixir is a dynamic, functional language for building scalable and maintainable applications. +pkg_elixir_homepage = https://elixir-lang.org pkg_elixir_fetch = git pkg_elixir_repo = https://github.com/elixir-lang/elixir pkg_elixir_commit = main -PACKAGES += elli -pkg_elli_name = elli -pkg_elli_description = Simple, robust and performant Erlang web server -pkg_elli_homepage = https://github.com/elli-lib/elli -pkg_elli_fetch = git -pkg_elli_repo = https://github.com/elli-lib/elli -pkg_elli_commit = main - -PACKAGES += elvis -pkg_elvis_name = elvis -pkg_elvis_description = Erlang Style Reviewer -pkg_elvis_homepage = https://github.com/inaka/elvis -pkg_elvis_fetch = git -pkg_elvis_repo = https://github.com/inaka/elvis -pkg_elvis_commit = master - -PACKAGES += emagick -pkg_emagick_name = emagick -pkg_emagick_description = Wrapper for Graphics/ImageMagick command line tool. -pkg_emagick_homepage = https://github.com/kivra/emagick -pkg_emagick_fetch = git -pkg_emagick_repo = https://github.com/kivra/emagick -pkg_emagick_commit = master - -PACKAGES += enm -pkg_enm_name = enm -pkg_enm_description = Erlang driver for nanomsg -pkg_enm_homepage = https://github.com/basho/enm -pkg_enm_fetch = git -pkg_enm_repo = https://github.com/basho/enm -pkg_enm_commit = master - -PACKAGES += entop -pkg_entop_name = entop -pkg_entop_description = A top-like tool for monitoring an Erlang node -pkg_entop_homepage = https://github.com/mazenharake/entop -pkg_entop_fetch = git -pkg_entop_repo = https://github.com/mazenharake/entop -pkg_entop_commit = master - -PACKAGES += epcap -pkg_epcap_name = epcap -pkg_epcap_description = Erlang packet capture interface using pcap -pkg_epcap_homepage = https://github.com/msantos/epcap -pkg_epcap_fetch = git -pkg_epcap_repo = https://github.com/msantos/epcap -pkg_epcap_commit = master - -PACKAGES += eper -pkg_eper_name = eper -pkg_eper_description = Erlang performance and debugging tools. -pkg_eper_homepage = https://github.com/massemanet/eper -pkg_eper_fetch = git -pkg_eper_repo = https://github.com/massemanet/eper -pkg_eper_commit = master - -PACKAGES += epgsql -pkg_epgsql_name = epgsql -pkg_epgsql_description = Erlang PostgreSQL client library. -pkg_epgsql_homepage = https://github.com/epgsql/epgsql -pkg_epgsql_fetch = git -pkg_epgsql_repo = https://github.com/epgsql/epgsql -pkg_epgsql_commit = master - -PACKAGES += episcina -pkg_episcina_name = episcina -pkg_episcina_description = A simple non intrusive resource pool for connections -pkg_episcina_homepage = https://github.com/erlware/episcina -pkg_episcina_fetch = git -pkg_episcina_repo = https://github.com/erlware/episcina -pkg_episcina_commit = master - -PACKAGES += eplot -pkg_eplot_name = eplot -pkg_eplot_description = A plot engine written in erlang. -pkg_eplot_homepage = https://github.com/psyeugenic/eplot -pkg_eplot_fetch = git -pkg_eplot_repo = https://github.com/psyeugenic/eplot -pkg_eplot_commit = master - -PACKAGES += epocxy -pkg_epocxy_name = epocxy -pkg_epocxy_description = Erlang Patterns of Concurrency -pkg_epocxy_homepage = https://github.com/duomark/epocxy -pkg_epocxy_fetch = git -pkg_epocxy_repo = https://github.com/duomark/epocxy -pkg_epocxy_commit = master - -PACKAGES += epubnub -pkg_epubnub_name = epubnub -pkg_epubnub_description = Erlang PubNub API -pkg_epubnub_homepage = https://github.com/tsloughter/epubnub -pkg_epubnub_fetch = git -pkg_epubnub_repo = https://github.com/tsloughter/epubnub -pkg_epubnub_commit = master - -PACKAGES += eqm -pkg_eqm_name = eqm -pkg_eqm_description = Erlang pub sub with supply-demand channels -pkg_eqm_homepage = https://github.com/loucash/eqm -pkg_eqm_fetch = git -pkg_eqm_repo = https://github.com/loucash/eqm -pkg_eqm_commit = master - -PACKAGES += eredis -pkg_eredis_name = eredis -pkg_eredis_description = Erlang Redis client -pkg_eredis_homepage = https://github.com/wooga/eredis -pkg_eredis_fetch = git -pkg_eredis_repo = https://github.com/wooga/eredis -pkg_eredis_commit = master - -PACKAGES += erl_streams -pkg_erl_streams_name = erl_streams -pkg_erl_streams_description = Streams in Erlang -pkg_erl_streams_homepage = https://github.com/epappas/erl_streams -pkg_erl_streams_fetch = git -pkg_erl_streams_repo = https://github.com/epappas/erl_streams -pkg_erl_streams_commit = master - -PACKAGES += erlang_localtime -pkg_erlang_localtime_name = erlang_localtime -pkg_erlang_localtime_description = Erlang library for conversion from one local time to another -pkg_erlang_localtime_homepage = https://github.com/dmitryme/erlang_localtime -pkg_erlang_localtime_fetch = git -pkg_erlang_localtime_repo = https://github.com/dmitryme/erlang_localtime -pkg_erlang_localtime_commit = master - -PACKAGES += erlang_smtp -pkg_erlang_smtp_name = erlang_smtp -pkg_erlang_smtp_description = Erlang SMTP and POP3 server code. -pkg_erlang_smtp_homepage = https://github.com/tonyg/erlang-smtp -pkg_erlang_smtp_fetch = git -pkg_erlang_smtp_repo = https://github.com/tonyg/erlang-smtp -pkg_erlang_smtp_commit = master - -PACKAGES += erlang_term -pkg_erlang_term_name = erlang_term -pkg_erlang_term_description = Erlang Term Info -pkg_erlang_term_homepage = https://github.com/okeuday/erlang_term -pkg_erlang_term_fetch = git -pkg_erlang_term_repo = https://github.com/okeuday/erlang_term -pkg_erlang_term_commit = master - -PACKAGES += erlastic_search -pkg_erlastic_search_name = erlastic_search -pkg_erlastic_search_description = An Erlang app for communicating with Elastic Search's rest interface. -pkg_erlastic_search_homepage = https://github.com/tsloughter/erlastic_search -pkg_erlastic_search_fetch = git -pkg_erlastic_search_repo = https://github.com/tsloughter/erlastic_search -pkg_erlastic_search_commit = master - -PACKAGES += erlbrake -pkg_erlbrake_name = erlbrake -pkg_erlbrake_description = Erlang Airbrake notification client -pkg_erlbrake_homepage = https://github.com/kenpratt/erlbrake -pkg_erlbrake_fetch = git -pkg_erlbrake_repo = https://github.com/kenpratt/erlbrake -pkg_erlbrake_commit = master - -PACKAGES += erlcloud -pkg_erlcloud_name = erlcloud -pkg_erlcloud_description = Cloud Computing library for erlang (Amazon EC2, S3, SQS, SimpleDB, Mechanical Turk, ELB) -pkg_erlcloud_homepage = https://github.com/gleber/erlcloud -pkg_erlcloud_fetch = git -pkg_erlcloud_repo = https://github.com/gleber/erlcloud -pkg_erlcloud_commit = master - -PACKAGES += erlcron -pkg_erlcron_name = erlcron -pkg_erlcron_description = Erlang cronish system -pkg_erlcron_homepage = https://github.com/erlware/erlcron -pkg_erlcron_fetch = git -pkg_erlcron_repo = https://github.com/erlware/erlcron -pkg_erlcron_commit = master - -PACKAGES += erldb -pkg_erldb_name = erldb -pkg_erldb_description = ORM (Object-relational mapping) application implemented in Erlang -pkg_erldb_homepage = http://erldb.org -pkg_erldb_fetch = git -pkg_erldb_repo = https://github.com/erldb/erldb -pkg_erldb_commit = master - -PACKAGES += erldis -pkg_erldis_name = erldis -pkg_erldis_description = redis erlang client library -pkg_erldis_homepage = https://github.com/cstar/erldis -pkg_erldis_fetch = git -pkg_erldis_repo = https://github.com/cstar/erldis -pkg_erldis_commit = master - -PACKAGES += erldns -pkg_erldns_name = erldns -pkg_erldns_description = DNS server, in erlang. -pkg_erldns_homepage = https://github.com/aetrion/erl-dns -pkg_erldns_fetch = git -pkg_erldns_repo = https://github.com/aetrion/erl-dns -pkg_erldns_commit = main - -PACKAGES += erldocker -pkg_erldocker_name = erldocker -pkg_erldocker_description = Docker Remote API client for Erlang -pkg_erldocker_homepage = https://github.com/proger/erldocker -pkg_erldocker_fetch = git -pkg_erldocker_repo = https://github.com/proger/erldocker -pkg_erldocker_commit = master - -PACKAGES += erlfsmon -pkg_erlfsmon_name = erlfsmon -pkg_erlfsmon_description = Erlang filesystem event watcher for Linux and OSX -pkg_erlfsmon_homepage = https://github.com/proger/erlfsmon -pkg_erlfsmon_fetch = git -pkg_erlfsmon_repo = https://github.com/proger/erlfsmon -pkg_erlfsmon_commit = master - -PACKAGES += erlgit -pkg_erlgit_name = erlgit -pkg_erlgit_description = Erlang convenience wrapper around git executable -pkg_erlgit_homepage = https://github.com/gleber/erlgit -pkg_erlgit_fetch = git -pkg_erlgit_repo = https://github.com/gleber/erlgit -pkg_erlgit_commit = master - -PACKAGES += erlguten -pkg_erlguten_name = erlguten -pkg_erlguten_description = ErlGuten is a system for high-quality typesetting, written purely in Erlang. -pkg_erlguten_homepage = https://github.com/richcarl/erlguten -pkg_erlguten_fetch = git -pkg_erlguten_repo = https://github.com/richcarl/erlguten -pkg_erlguten_commit = master - -PACKAGES += erlmc -pkg_erlmc_name = erlmc -pkg_erlmc_description = Erlang memcached binary protocol client -pkg_erlmc_homepage = https://github.com/jkvor/erlmc -pkg_erlmc_fetch = git -pkg_erlmc_repo = https://github.com/jkvor/erlmc -pkg_erlmc_commit = master - -PACKAGES += erlmongo -pkg_erlmongo_name = erlmongo -pkg_erlmongo_description = Record based Erlang driver for MongoDB with gridfs support -pkg_erlmongo_homepage = https://github.com/SergejJurecko/erlmongo -pkg_erlmongo_fetch = git -pkg_erlmongo_repo = https://github.com/SergejJurecko/erlmongo -pkg_erlmongo_commit = master - -PACKAGES += erlog -pkg_erlog_name = erlog -pkg_erlog_description = Prolog interpreter in and for Erlang -pkg_erlog_homepage = https://github.com/rvirding/erlog -pkg_erlog_fetch = git -pkg_erlog_repo = https://github.com/rvirding/erlog -pkg_erlog_commit = master - -PACKAGES += erlpass -pkg_erlpass_name = erlpass -pkg_erlpass_description = A library to handle password hashing and changing in a safe manner, independent from any kind of storage whatsoever. -pkg_erlpass_homepage = https://github.com/ferd/erlpass -pkg_erlpass_fetch = git -pkg_erlpass_repo = https://github.com/ferd/erlpass -pkg_erlpass_commit = master - -PACKAGES += erlsh -pkg_erlsh_name = erlsh -pkg_erlsh_description = Erlang shell tools -pkg_erlsh_homepage = https://github.com/proger/erlsh -pkg_erlsh_fetch = git -pkg_erlsh_repo = https://github.com/proger/erlsh -pkg_erlsh_commit = master - -PACKAGES += erlsha2 -pkg_erlsha2_name = erlsha2 -pkg_erlsha2_description = SHA-224, SHA-256, SHA-384, SHA-512 implemented in Erlang NIFs. -pkg_erlsha2_homepage = https://github.com/vinoski/erlsha2 -pkg_erlsha2_fetch = git -pkg_erlsha2_repo = https://github.com/vinoski/erlsha2 -pkg_erlsha2_commit = master - -PACKAGES += erlsom -pkg_erlsom_name = erlsom -pkg_erlsom_description = XML parser for Erlang -pkg_erlsom_homepage = https://github.com/willemdj/erlsom -pkg_erlsom_fetch = git -pkg_erlsom_repo = https://github.com/willemdj/erlsom -pkg_erlsom_commit = master - -PACKAGES += erlubi -pkg_erlubi_name = erlubi -pkg_erlubi_description = Ubigraph Erlang Client (and Process Visualizer) -pkg_erlubi_homepage = https://github.com/krestenkrab/erlubi -pkg_erlubi_fetch = git -pkg_erlubi_repo = https://github.com/krestenkrab/erlubi -pkg_erlubi_commit = master - -PACKAGES += erlvolt -pkg_erlvolt_name = erlvolt -pkg_erlvolt_description = VoltDB Erlang Client Driver -pkg_erlvolt_homepage = https://github.com/VoltDB/voltdb-client-erlang -pkg_erlvolt_fetch = git -pkg_erlvolt_repo = https://github.com/VoltDB/voltdb-client-erlang -pkg_erlvolt_commit = master - -PACKAGES += erlware_commons -pkg_erlware_commons_name = erlware_commons -pkg_erlware_commons_description = Erlware Commons is an Erlware project focused on all aspects of reusable Erlang components. -pkg_erlware_commons_homepage = https://github.com/erlware/erlware_commons -pkg_erlware_commons_fetch = git -pkg_erlware_commons_repo = https://github.com/erlware/erlware_commons -pkg_erlware_commons_commit = master - PACKAGES += erlydtl pkg_erlydtl_name = erlydtl pkg_erlydtl_description = Django Template Language for Erlang. @@ -1371,406 +331,6 @@ pkg_erlydtl_fetch = git pkg_erlydtl_repo = https://github.com/erlydtl/erlydtl pkg_erlydtl_commit = master -PACKAGES += errd -pkg_errd_name = errd -pkg_errd_description = Erlang RRDTool library -pkg_errd_homepage = https://github.com/archaelus/errd -pkg_errd_fetch = git -pkg_errd_repo = https://github.com/archaelus/errd -pkg_errd_commit = master - -PACKAGES += erserve -pkg_erserve_name = erserve -pkg_erserve_description = Erlang/Rserve communication interface -pkg_erserve_homepage = https://github.com/del/erserve -pkg_erserve_fetch = git -pkg_erserve_repo = https://github.com/del/erserve -pkg_erserve_commit = master - -PACKAGES += escalus -pkg_escalus_name = escalus -pkg_escalus_description = An XMPP client library in Erlang for conveniently testing XMPP servers -pkg_escalus_homepage = https://github.com/esl/escalus -pkg_escalus_fetch = git -pkg_escalus_repo = https://github.com/esl/escalus -pkg_escalus_commit = master - -PACKAGES += esh_mk -pkg_esh_mk_name = esh_mk -pkg_esh_mk_description = esh template engine plugin for erlang.mk -pkg_esh_mk_homepage = https://github.com/crownedgrouse/esh.mk -pkg_esh_mk_fetch = git -pkg_esh_mk_repo = https://github.com/crownedgrouse/esh.mk.git -pkg_esh_mk_commit = master - -PACKAGES += espec -pkg_espec_name = espec -pkg_espec_description = ESpec: Behaviour driven development framework for Erlang -pkg_espec_homepage = https://github.com/lucaspiller/espec -pkg_espec_fetch = git -pkg_espec_repo = https://github.com/lucaspiller/espec -pkg_espec_commit = master - -PACKAGES += estatsd -pkg_estatsd_name = estatsd -pkg_estatsd_description = Erlang stats aggregation app that periodically flushes data to graphite -pkg_estatsd_homepage = https://github.com/RJ/estatsd -pkg_estatsd_fetch = git -pkg_estatsd_repo = https://github.com/RJ/estatsd -pkg_estatsd_commit = master - -PACKAGES += etap -pkg_etap_name = etap -pkg_etap_description = etap is a simple erlang testing library that provides TAP compliant output. -pkg_etap_homepage = https://github.com/ngerakines/etap -pkg_etap_fetch = git -pkg_etap_repo = https://github.com/ngerakines/etap -pkg_etap_commit = master - -PACKAGES += etest -pkg_etest_name = etest -pkg_etest_description = A lightweight, convention over configuration test framework for Erlang -pkg_etest_homepage = https://github.com/wooga/etest -pkg_etest_fetch = git -pkg_etest_repo = https://github.com/wooga/etest -pkg_etest_commit = master - -PACKAGES += etest_http -pkg_etest_http_name = etest_http -pkg_etest_http_description = etest Assertions around HTTP (client-side) -pkg_etest_http_homepage = https://github.com/wooga/etest_http -pkg_etest_http_fetch = git -pkg_etest_http_repo = https://github.com/wooga/etest_http -pkg_etest_http_commit = master - -PACKAGES += etoml -pkg_etoml_name = etoml -pkg_etoml_description = TOML language erlang parser -pkg_etoml_homepage = https://github.com/kalta/etoml -pkg_etoml_fetch = git -pkg_etoml_repo = https://github.com/kalta/etoml -pkg_etoml_commit = master - -PACKAGES += eunit -pkg_eunit_name = eunit -pkg_eunit_description = The EUnit lightweight unit testing framework for Erlang - this is the canonical development repository. -pkg_eunit_homepage = https://github.com/richcarl/eunit -pkg_eunit_fetch = git -pkg_eunit_repo = https://github.com/richcarl/eunit -pkg_eunit_commit = master - -PACKAGES += eunit_formatters -pkg_eunit_formatters_name = eunit_formatters -pkg_eunit_formatters_description = Because eunit's output sucks. Let's make it better. -pkg_eunit_formatters_homepage = https://github.com/seancribbs/eunit_formatters -pkg_eunit_formatters_fetch = git -pkg_eunit_formatters_repo = https://github.com/seancribbs/eunit_formatters -pkg_eunit_formatters_commit = master - -PACKAGES += euthanasia -pkg_euthanasia_name = euthanasia -pkg_euthanasia_description = Merciful killer for your Erlang processes -pkg_euthanasia_homepage = https://github.com/doubleyou/euthanasia -pkg_euthanasia_fetch = git -pkg_euthanasia_repo = https://github.com/doubleyou/euthanasia -pkg_euthanasia_commit = master - -PACKAGES += evum -pkg_evum_name = evum -pkg_evum_description = Spawn Linux VMs as Erlang processes in the Erlang VM -pkg_evum_homepage = https://github.com/msantos/evum -pkg_evum_fetch = git -pkg_evum_repo = https://github.com/msantos/evum -pkg_evum_commit = master - -PACKAGES += exec -pkg_exec_name = erlexec -pkg_exec_description = Execute and control OS processes from Erlang/OTP. -pkg_exec_homepage = http://saleyn.github.com/erlexec -pkg_exec_fetch = git -pkg_exec_repo = https://github.com/saleyn/erlexec -pkg_exec_commit = master - -PACKAGES += exml -pkg_exml_name = exml -pkg_exml_description = XML parsing library in Erlang -pkg_exml_homepage = https://github.com/paulgray/exml -pkg_exml_fetch = git -pkg_exml_repo = https://github.com/paulgray/exml -pkg_exml_commit = master - -PACKAGES += exometer -pkg_exometer_name = exometer -pkg_exometer_description = Basic measurement objects and probe behavior -pkg_exometer_homepage = https://github.com/Feuerlabs/exometer -pkg_exometer_fetch = git -pkg_exometer_repo = https://github.com/Feuerlabs/exometer -pkg_exometer_commit = master - -PACKAGES += exs1024 -pkg_exs1024_name = exs1024 -pkg_exs1024_description = Xorshift1024star pseudo random number generator for Erlang. -pkg_exs1024_homepage = https://github.com/jj1bdx/exs1024 -pkg_exs1024_fetch = git -pkg_exs1024_repo = https://github.com/jj1bdx/exs1024 -pkg_exs1024_commit = master - -PACKAGES += exsplus116 -pkg_exsplus116_name = exsplus116 -pkg_exsplus116_description = Xorshift116plus for Erlang -pkg_exsplus116_homepage = https://github.com/jj1bdx/exsplus116 -pkg_exsplus116_fetch = git -pkg_exsplus116_repo = https://github.com/jj1bdx/exsplus116 -pkg_exsplus116_commit = master - -PACKAGES += ezmtp -pkg_ezmtp_name = ezmtp -pkg_ezmtp_description = ZMTP protocol in pure Erlang. -pkg_ezmtp_homepage = https://github.com/a13x/ezmtp -pkg_ezmtp_fetch = git -pkg_ezmtp_repo = https://github.com/a13x/ezmtp -pkg_ezmtp_commit = master - -PACKAGES += fast_disk_log -pkg_fast_disk_log_name = fast_disk_log -pkg_fast_disk_log_description = Pool-based asynchronous Erlang disk logger -pkg_fast_disk_log_homepage = https://github.com/lpgauth/fast_disk_log -pkg_fast_disk_log_fetch = git -pkg_fast_disk_log_repo = https://github.com/lpgauth/fast_disk_log -pkg_fast_disk_log_commit = master - -PACKAGES += feeder -pkg_feeder_name = feeder -pkg_feeder_description = Stream parse RSS and Atom formatted XML feeds. -pkg_feeder_homepage = https://github.com/michaelnisi/feeder -pkg_feeder_fetch = git -pkg_feeder_repo = https://github.com/michaelnisi/feeder -pkg_feeder_commit = master - -PACKAGES += find_crate -pkg_find_crate_name = find_crate -pkg_find_crate_description = Find Rust libs and exes in Erlang application priv directory -pkg_find_crate_homepage = https://github.com/goertzenator/find_crate -pkg_find_crate_fetch = git -pkg_find_crate_repo = https://github.com/goertzenator/find_crate -pkg_find_crate_commit = master - -PACKAGES += fix -pkg_fix_name = fix -pkg_fix_description = http://fixprotocol.org/ implementation. -pkg_fix_homepage = https://github.com/maxlapshin/fix -pkg_fix_fetch = git -pkg_fix_repo = https://github.com/maxlapshin/fix -pkg_fix_commit = master - -PACKAGES += flower -pkg_flower_name = flower -pkg_flower_description = FlowER - a Erlang OpenFlow development platform -pkg_flower_homepage = https://github.com/travelping/flower -pkg_flower_fetch = git -pkg_flower_repo = https://github.com/travelping/flower -pkg_flower_commit = master - -PACKAGES += fn -pkg_fn_name = fn -pkg_fn_description = Function utilities for Erlang -pkg_fn_homepage = https://github.com/reiddraper/fn -pkg_fn_fetch = git -pkg_fn_repo = https://github.com/reiddraper/fn -pkg_fn_commit = master - -PACKAGES += folsom -pkg_folsom_name = folsom -pkg_folsom_description = Expose Erlang Events and Metrics -pkg_folsom_homepage = https://github.com/boundary/folsom -pkg_folsom_fetch = git -pkg_folsom_repo = https://github.com/boundary/folsom -pkg_folsom_commit = master - -PACKAGES += folsom_cowboy -pkg_folsom_cowboy_name = folsom_cowboy -pkg_folsom_cowboy_description = A Cowboy based Folsom HTTP Wrapper. -pkg_folsom_cowboy_homepage = https://github.com/boundary/folsom_cowboy -pkg_folsom_cowboy_fetch = git -pkg_folsom_cowboy_repo = https://github.com/boundary/folsom_cowboy -pkg_folsom_cowboy_commit = master - -PACKAGES += fs -pkg_fs_name = fs -pkg_fs_description = Erlang FileSystem Listener -pkg_fs_homepage = https://github.com/synrc/fs -pkg_fs_fetch = git -pkg_fs_repo = https://github.com/synrc/fs -pkg_fs_commit = master - -PACKAGES += fuse -pkg_fuse_name = fuse -pkg_fuse_description = A Circuit Breaker for Erlang -pkg_fuse_homepage = https://github.com/jlouis/fuse -pkg_fuse_fetch = git -pkg_fuse_repo = https://github.com/jlouis/fuse -pkg_fuse_commit = master - -PACKAGES += gcm -pkg_gcm_name = gcm -pkg_gcm_description = An Erlang application for Google Cloud Messaging -pkg_gcm_homepage = https://github.com/pdincau/gcm-erlang -pkg_gcm_fetch = git -pkg_gcm_repo = https://github.com/pdincau/gcm-erlang -pkg_gcm_commit = master - -PACKAGES += gcprof -pkg_gcprof_name = gcprof -pkg_gcprof_description = Garbage Collection profiler for Erlang -pkg_gcprof_homepage = https://github.com/knutin/gcprof -pkg_gcprof_fetch = git -pkg_gcprof_repo = https://github.com/knutin/gcprof -pkg_gcprof_commit = master - -PACKAGES += geas -pkg_geas_name = geas -pkg_geas_description = Guess Erlang Application Scattering -pkg_geas_homepage = https://github.com/crownedgrouse/geas -pkg_geas_fetch = git -pkg_geas_repo = https://github.com/crownedgrouse/geas -pkg_geas_commit = master - -PACKAGES += geef -pkg_geef_name = geef -pkg_geef_description = Git NEEEEF (Erlang NIF) -pkg_geef_homepage = https://github.com/carlosmn/geef -pkg_geef_fetch = git -pkg_geef_repo = https://github.com/carlosmn/geef -pkg_geef_commit = master - -PACKAGES += gen_coap -pkg_gen_coap_name = gen_coap -pkg_gen_coap_description = Generic Erlang CoAP Client/Server -pkg_gen_coap_homepage = https://github.com/gotthardp/gen_coap -pkg_gen_coap_fetch = git -pkg_gen_coap_repo = https://github.com/gotthardp/gen_coap -pkg_gen_coap_commit = master - -PACKAGES += gen_cycle -pkg_gen_cycle_name = gen_cycle -pkg_gen_cycle_description = Simple, generic OTP behaviour for recurring tasks -pkg_gen_cycle_homepage = https://github.com/aerosol/gen_cycle -pkg_gen_cycle_fetch = git -pkg_gen_cycle_repo = https://github.com/aerosol/gen_cycle -pkg_gen_cycle_commit = develop - -PACKAGES += gen_icmp -pkg_gen_icmp_name = gen_icmp -pkg_gen_icmp_description = Erlang interface to ICMP sockets -pkg_gen_icmp_homepage = https://github.com/msantos/gen_icmp -pkg_gen_icmp_fetch = git -pkg_gen_icmp_repo = https://github.com/msantos/gen_icmp -pkg_gen_icmp_commit = master - -PACKAGES += gen_leader -pkg_gen_leader_name = gen_leader -pkg_gen_leader_description = leader election behavior -pkg_gen_leader_homepage = https://github.com/garret-smith/gen_leader_revival -pkg_gen_leader_fetch = git -pkg_gen_leader_repo = https://github.com/garret-smith/gen_leader_revival -pkg_gen_leader_commit = master - -PACKAGES += gen_nb_server -pkg_gen_nb_server_name = gen_nb_server -pkg_gen_nb_server_description = OTP behavior for writing non-blocking servers -pkg_gen_nb_server_homepage = https://github.com/kevsmith/gen_nb_server -pkg_gen_nb_server_fetch = git -pkg_gen_nb_server_repo = https://github.com/kevsmith/gen_nb_server -pkg_gen_nb_server_commit = master - -PACKAGES += gen_paxos -pkg_gen_paxos_name = gen_paxos -pkg_gen_paxos_description = An Erlang/OTP-style implementation of the PAXOS distributed consensus protocol -pkg_gen_paxos_homepage = https://github.com/gburd/gen_paxos -pkg_gen_paxos_fetch = git -pkg_gen_paxos_repo = https://github.com/gburd/gen_paxos -pkg_gen_paxos_commit = master - -PACKAGES += gen_rpc -pkg_gen_rpc_name = gen_rpc -pkg_gen_rpc_description = A scalable RPC library for Erlang-VM based languages -pkg_gen_rpc_homepage = https://github.com/priestjim/gen_rpc.git -pkg_gen_rpc_fetch = git -pkg_gen_rpc_repo = https://github.com/priestjim/gen_rpc.git -pkg_gen_rpc_commit = master - -PACKAGES += gen_smtp -pkg_gen_smtp_name = gen_smtp -pkg_gen_smtp_description = A generic Erlang SMTP server and client that can be extended via callback modules -pkg_gen_smtp_homepage = https://github.com/Vagabond/gen_smtp -pkg_gen_smtp_fetch = git -pkg_gen_smtp_repo = https://github.com/Vagabond/gen_smtp -pkg_gen_smtp_commit = master - -PACKAGES += gen_tracker -pkg_gen_tracker_name = gen_tracker -pkg_gen_tracker_description = supervisor with ets handling of children and their metadata -pkg_gen_tracker_homepage = https://github.com/erlyvideo/gen_tracker -pkg_gen_tracker_fetch = git -pkg_gen_tracker_repo = https://github.com/erlyvideo/gen_tracker -pkg_gen_tracker_commit = master - -PACKAGES += gen_unix -pkg_gen_unix_name = gen_unix -pkg_gen_unix_description = Erlang Unix socket interface -pkg_gen_unix_homepage = https://github.com/msantos/gen_unix -pkg_gen_unix_fetch = git -pkg_gen_unix_repo = https://github.com/msantos/gen_unix -pkg_gen_unix_commit = master - -PACKAGES += geode -pkg_geode_name = geode -pkg_geode_description = geohash/proximity lookup in pure, uncut erlang. -pkg_geode_homepage = https://github.com/bradfordw/geode -pkg_geode_fetch = git -pkg_geode_repo = https://github.com/bradfordw/geode -pkg_geode_commit = master - -PACKAGES += getopt -pkg_getopt_name = getopt -pkg_getopt_description = Module to parse command line arguments using the GNU getopt syntax -pkg_getopt_homepage = https://github.com/jcomellas/getopt -pkg_getopt_fetch = git -pkg_getopt_repo = https://github.com/jcomellas/getopt -pkg_getopt_commit = master - -PACKAGES += gettext -pkg_gettext_name = gettext -pkg_gettext_description = Erlang internationalization library. -pkg_gettext_homepage = https://github.com/etnt/gettext -pkg_gettext_fetch = git -pkg_gettext_repo = https://github.com/etnt/gettext -pkg_gettext_commit = master - -PACKAGES += giallo -pkg_giallo_name = giallo -pkg_giallo_description = Small and flexible web framework on top of Cowboy -pkg_giallo_homepage = https://github.com/kivra/giallo -pkg_giallo_fetch = git -pkg_giallo_repo = https://github.com/kivra/giallo -pkg_giallo_commit = master - -PACKAGES += gin -pkg_gin_name = gin -pkg_gin_description = The guards and for Erlang parse_transform -pkg_gin_homepage = https://github.com/mad-cocktail/gin -pkg_gin_fetch = git -pkg_gin_repo = https://github.com/mad-cocktail/gin -pkg_gin_commit = master - -PACKAGES += gitty -pkg_gitty_name = gitty -pkg_gitty_description = Git access in erlang -pkg_gitty_homepage = https://github.com/maxlapshin/gitty -pkg_gitty_fetch = git -pkg_gitty_repo = https://github.com/maxlapshin/gitty -pkg_gitty_commit = master - PACKAGES += gpb pkg_gpb_name = gpb pkg_gpb_description = A Google Protobuf implementation for Erlang @@ -1779,38 +339,6 @@ pkg_gpb_fetch = git pkg_gpb_repo = https://github.com/tomas-abrahamsson/gpb pkg_gpb_commit = master -PACKAGES += gproc -pkg_gproc_name = gproc -pkg_gproc_description = Extended process registry for Erlang -pkg_gproc_homepage = https://github.com/uwiger/gproc -pkg_gproc_fetch = git -pkg_gproc_repo = https://github.com/uwiger/gproc -pkg_gproc_commit = master - -PACKAGES += grapherl -pkg_grapherl_name = grapherl -pkg_grapherl_description = Create graphs of Erlang systems and programs -pkg_grapherl_homepage = https://github.com/eproxus/grapherl -pkg_grapherl_fetch = git -pkg_grapherl_repo = https://github.com/eproxus/grapherl -pkg_grapherl_commit = master - -PACKAGES += grpc -pkg_grpc_name = grpc -pkg_grpc_description = gRPC server in Erlang -pkg_grpc_homepage = https://github.com/Bluehouse-Technology/grpc -pkg_grpc_fetch = git -pkg_grpc_repo = https://github.com/Bluehouse-Technology/grpc -pkg_grpc_commit = master - -PACKAGES += grpc_client -pkg_grpc_client_name = grpc_client -pkg_grpc_client_description = gRPC client in Erlang -pkg_grpc_client_homepage = https://github.com/Bluehouse-Technology/grpc_client -pkg_grpc_client_fetch = git -pkg_grpc_client_repo = https://github.com/Bluehouse-Technology/grpc_client -pkg_grpc_client_commit = master - PACKAGES += gun pkg_gun_name = gun pkg_gun_description = Asynchronous SPDY, HTTP and Websocket client written in Erlang. @@ -1819,1045 +347,30 @@ pkg_gun_fetch = git pkg_gun_repo = https://github.com/ninenines/gun pkg_gun_commit = master -PACKAGES += hackney -pkg_hackney_name = hackney -pkg_hackney_description = simple HTTP client in Erlang -pkg_hackney_homepage = https://github.com/benoitc/hackney -pkg_hackney_fetch = git -pkg_hackney_repo = https://github.com/benoitc/hackney -pkg_hackney_commit = master - -PACKAGES += hamcrest -pkg_hamcrest_name = hamcrest -pkg_hamcrest_description = Erlang port of Hamcrest -pkg_hamcrest_homepage = https://github.com/hyperthunk/hamcrest-erlang -pkg_hamcrest_fetch = git -pkg_hamcrest_repo = https://github.com/hyperthunk/hamcrest-erlang -pkg_hamcrest_commit = master - -PACKAGES += hottub -pkg_hottub_name = hottub -pkg_hottub_description = Permanent Erlang Worker Pool -pkg_hottub_homepage = https://github.com/bfrog/hottub -pkg_hottub_fetch = git -pkg_hottub_repo = https://github.com/bfrog/hottub -pkg_hottub_commit = master - -PACKAGES += hpack -pkg_hpack_name = hpack -pkg_hpack_description = HPACK Implementation for Erlang -pkg_hpack_homepage = https://github.com/joedevivo/hpack -pkg_hpack_fetch = git -pkg_hpack_repo = https://github.com/joedevivo/hpack -pkg_hpack_commit = master - -PACKAGES += hyper -pkg_hyper_name = hyper -pkg_hyper_description = Erlang implementation of HyperLogLog -pkg_hyper_homepage = https://github.com/GameAnalytics/hyper -pkg_hyper_fetch = git -pkg_hyper_repo = https://github.com/GameAnalytics/hyper -pkg_hyper_commit = master - -PACKAGES += i18n -pkg_i18n_name = i18n -pkg_i18n_description = International components for unicode from Erlang (unicode, date, string, number, format, locale, localization, transliteration, icu4e) -pkg_i18n_homepage = https://github.com/erlang-unicode/i18n -pkg_i18n_fetch = git -pkg_i18n_repo = https://github.com/erlang-unicode/i18n -pkg_i18n_commit = master - -PACKAGES += ibrowse -pkg_ibrowse_name = ibrowse -pkg_ibrowse_description = Erlang HTTP client -pkg_ibrowse_homepage = https://github.com/cmullaparthi/ibrowse -pkg_ibrowse_fetch = git -pkg_ibrowse_repo = https://github.com/cmullaparthi/ibrowse -pkg_ibrowse_commit = master - -PACKAGES += idna -pkg_idna_name = idna -pkg_idna_description = Erlang IDNA lib -pkg_idna_homepage = https://github.com/benoitc/erlang-idna -pkg_idna_fetch = git -pkg_idna_repo = https://github.com/benoitc/erlang-idna -pkg_idna_commit = master - -PACKAGES += irc_lib -pkg_irc_lib_name = irc_lib -pkg_irc_lib_description = Erlang irc client library -pkg_irc_lib_homepage = https://github.com/OtpChatBot/irc_lib -pkg_irc_lib_fetch = git -pkg_irc_lib_repo = https://github.com/OtpChatBot/irc_lib -pkg_irc_lib_commit = master - -PACKAGES += ircd -pkg_ircd_name = ircd -pkg_ircd_description = A pluggable IRC daemon application/library for Erlang. -pkg_ircd_homepage = https://github.com/tonyg/erlang-ircd -pkg_ircd_fetch = git -pkg_ircd_repo = https://github.com/tonyg/erlang-ircd -pkg_ircd_commit = master - -PACKAGES += iris -pkg_iris_name = iris -pkg_iris_description = Iris Erlang binding -pkg_iris_homepage = https://github.com/project-iris/iris-erl -pkg_iris_fetch = git -pkg_iris_repo = https://github.com/project-iris/iris-erl -pkg_iris_commit = master - -PACKAGES += iso8601 -pkg_iso8601_name = iso8601 -pkg_iso8601_description = Erlang ISO 8601 date formatter/parser -pkg_iso8601_homepage = https://github.com/seansawyer/erlang_iso8601 -pkg_iso8601_fetch = git -pkg_iso8601_repo = https://github.com/seansawyer/erlang_iso8601 -pkg_iso8601_commit = master - -PACKAGES += jamdb_sybase -pkg_jamdb_sybase_name = jamdb_sybase -pkg_jamdb_sybase_description = Erlang driver for SAP Sybase ASE -pkg_jamdb_sybase_homepage = https://github.com/erlangbureau/jamdb_sybase -pkg_jamdb_sybase_fetch = git -pkg_jamdb_sybase_repo = https://github.com/erlangbureau/jamdb_sybase -pkg_jamdb_sybase_commit = master - -PACKAGES += jesse -pkg_jesse_name = jesse -pkg_jesse_description = jesse (JSon Schema Erlang) is an implementation of a json schema validator for Erlang. -pkg_jesse_homepage = https://github.com/for-GET/jesse -pkg_jesse_fetch = git -pkg_jesse_repo = https://github.com/for-GET/jesse -pkg_jesse_commit = master - -PACKAGES += jiffy -pkg_jiffy_name = jiffy -pkg_jiffy_description = JSON NIFs for Erlang. -pkg_jiffy_homepage = https://github.com/davisp/jiffy -pkg_jiffy_fetch = git -pkg_jiffy_repo = https://github.com/davisp/jiffy -pkg_jiffy_commit = master - -PACKAGES += jiffy_v -pkg_jiffy_v_name = jiffy_v -pkg_jiffy_v_description = JSON validation utility -pkg_jiffy_v_homepage = https://github.com/shizzard/jiffy-v -pkg_jiffy_v_fetch = git -pkg_jiffy_v_repo = https://github.com/shizzard/jiffy-v -pkg_jiffy_v_commit = master - -PACKAGES += jobs -pkg_jobs_name = jobs -pkg_jobs_description = Job scheduler for load regulation -pkg_jobs_homepage = https://github.com/uwiger/jobs -pkg_jobs_fetch = git -pkg_jobs_repo = https://github.com/uwiger/jobs -pkg_jobs_commit = master - -PACKAGES += joxa -pkg_joxa_name = joxa -pkg_joxa_description = A Modern Lisp for the Erlang VM -pkg_joxa_homepage = https://github.com/joxa/joxa -pkg_joxa_fetch = git -pkg_joxa_repo = https://github.com/joxa/joxa -pkg_joxa_commit = master - -PACKAGES += json_rec -pkg_json_rec_name = json_rec -pkg_json_rec_description = JSON to erlang record -pkg_json_rec_homepage = https://github.com/justinkirby/json_rec -pkg_json_rec_fetch = git -pkg_json_rec_repo = https://github.com/justinkirby/json_rec -pkg_json_rec_commit = master - -PACKAGES += jsone -pkg_jsone_name = jsone -pkg_jsone_description = An Erlang library for encoding, decoding JSON data. -pkg_jsone_homepage = https://github.com/sile/jsone.git -pkg_jsone_fetch = git -pkg_jsone_repo = https://github.com/sile/jsone.git -pkg_jsone_commit = master - -PACKAGES += jsonpath -pkg_jsonpath_name = jsonpath -pkg_jsonpath_description = Fast Erlang JSON data retrieval and updates via javascript-like notation -pkg_jsonpath_homepage = https://github.com/GeneStevens/jsonpath -pkg_jsonpath_fetch = git -pkg_jsonpath_repo = https://github.com/GeneStevens/jsonpath -pkg_jsonpath_commit = master - -PACKAGES += jsonx -pkg_jsonx_name = jsonx -pkg_jsonx_description = JSONX is an Erlang library for efficient decode and encode JSON, written in C. -pkg_jsonx_homepage = https://github.com/iskra/jsonx -pkg_jsonx_fetch = git -pkg_jsonx_repo = https://github.com/iskra/jsonx -pkg_jsonx_commit = master - -PACKAGES += jsx -pkg_jsx_name = jsx -pkg_jsx_description = An Erlang application for consuming, producing and manipulating JSON. -pkg_jsx_homepage = https://github.com/talentdeficit/jsx -pkg_jsx_fetch = git -pkg_jsx_repo = https://github.com/talentdeficit/jsx -pkg_jsx_commit = main - -PACKAGES += kafka_protocol -pkg_kafka_protocol_name = kafka_protocol -pkg_kafka_protocol_description = Kafka protocol Erlang library -pkg_kafka_protocol_homepage = https://github.com/kafka4beam/kafka_protocol -pkg_kafka_protocol_fetch = git -pkg_kafka_protocol_repo = https://github.com/kafka4beam/kafka_protocol -pkg_kafka_protocol_commit = master - -PACKAGES += kai -pkg_kai_name = kai -pkg_kai_description = DHT storage by Takeshi Inoue -pkg_kai_homepage = https://github.com/synrc/kai -pkg_kai_fetch = git -pkg_kai_repo = https://github.com/synrc/kai -pkg_kai_commit = master - -PACKAGES += katja -pkg_katja_name = katja -pkg_katja_description = A simple Riemann client written in Erlang. -pkg_katja_homepage = https://github.com/nifoc/katja -pkg_katja_fetch = git -pkg_katja_repo = https://github.com/nifoc/katja -pkg_katja_commit = master - -PACKAGES += key2value -pkg_key2value_name = key2value -pkg_key2value_description = Erlang 2-way map -pkg_key2value_homepage = https://github.com/okeuday/key2value -pkg_key2value_fetch = git -pkg_key2value_repo = https://github.com/okeuday/key2value -pkg_key2value_commit = master - -PACKAGES += keys1value -pkg_keys1value_name = keys1value -pkg_keys1value_description = Erlang set associative map for key lists -pkg_keys1value_homepage = https://github.com/okeuday/keys1value -pkg_keys1value_fetch = git -pkg_keys1value_repo = https://github.com/okeuday/keys1value -pkg_keys1value_commit = master - -PACKAGES += kinetic -pkg_kinetic_name = kinetic -pkg_kinetic_description = Erlang Kinesis Client -pkg_kinetic_homepage = https://github.com/AdRoll/kinetic -pkg_kinetic_fetch = git -pkg_kinetic_repo = https://github.com/AdRoll/kinetic -pkg_kinetic_commit = main - -PACKAGES += kjell -pkg_kjell_name = kjell -pkg_kjell_description = Erlang Shell -pkg_kjell_homepage = https://github.com/karlll/kjell -pkg_kjell_fetch = git -pkg_kjell_repo = https://github.com/karlll/kjell -pkg_kjell_commit = master - -PACKAGES += kraken -pkg_kraken_name = kraken -pkg_kraken_description = Distributed Pubsub Server for Realtime Apps -pkg_kraken_homepage = https://github.com/Asana/kraken -pkg_kraken_fetch = git -pkg_kraken_repo = https://github.com/Asana/kraken -pkg_kraken_commit = master - -PACKAGES += kucumberl -pkg_kucumberl_name = kucumberl -pkg_kucumberl_description = A pure-erlang, open-source, implementation of Cucumber -pkg_kucumberl_homepage = https://github.com/openshine/kucumberl -pkg_kucumberl_fetch = git -pkg_kucumberl_repo = https://github.com/openshine/kucumberl -pkg_kucumberl_commit = master - -PACKAGES += kvc -pkg_kvc_name = kvc -pkg_kvc_description = KVC - Key Value Coding for Erlang data structures -pkg_kvc_homepage = https://github.com/etrepum/kvc -pkg_kvc_fetch = git -pkg_kvc_repo = https://github.com/etrepum/kvc -pkg_kvc_commit = master - -PACKAGES += kvlists -pkg_kvlists_name = kvlists -pkg_kvlists_description = Lists of key-value pairs (decoded JSON) in Erlang -pkg_kvlists_homepage = https://github.com/jcomellas/kvlists -pkg_kvlists_fetch = git -pkg_kvlists_repo = https://github.com/jcomellas/kvlists -pkg_kvlists_commit = master - -PACKAGES += kvs -pkg_kvs_name = kvs -pkg_kvs_description = Container and Iterator -pkg_kvs_homepage = https://github.com/synrc/kvs -pkg_kvs_fetch = git -pkg_kvs_repo = https://github.com/synrc/kvs -pkg_kvs_commit = master - -PACKAGES += lager -pkg_lager_name = lager -pkg_lager_description = A logging framework for Erlang/OTP. -pkg_lager_homepage = https://github.com/erlang-lager/lager -pkg_lager_fetch = git -pkg_lager_repo = https://github.com/erlang-lager/lager -pkg_lager_commit = master - -PACKAGES += lager_syslog -pkg_lager_syslog_name = lager_syslog -pkg_lager_syslog_description = Syslog backend for lager -pkg_lager_syslog_homepage = https://github.com/erlang-lager/lager_syslog -pkg_lager_syslog_fetch = git -pkg_lager_syslog_repo = https://github.com/erlang-lager/lager_syslog -pkg_lager_syslog_commit = master - -PACKAGES += lasse -pkg_lasse_name = lasse -pkg_lasse_description = SSE handler for Cowboy -pkg_lasse_homepage = https://github.com/inaka/lasse -pkg_lasse_fetch = git -pkg_lasse_repo = https://github.com/inaka/lasse -pkg_lasse_commit = master - -PACKAGES += ldap -pkg_ldap_name = ldap -pkg_ldap_description = LDAP server written in Erlang -pkg_ldap_homepage = https://github.com/spawnproc/ldap -pkg_ldap_fetch = git -pkg_ldap_repo = https://github.com/spawnproc/ldap -pkg_ldap_commit = master - -PACKAGES += lfe -pkg_lfe_name = lfe -pkg_lfe_description = Lisp Flavoured Erlang (LFE) -pkg_lfe_homepage = https://github.com/rvirding/lfe -pkg_lfe_fetch = git -pkg_lfe_repo = https://github.com/rvirding/lfe -pkg_lfe_commit = master - -PACKAGES += live -pkg_live_name = live -pkg_live_description = Automated module and configuration reloader. -pkg_live_homepage = http://ninenines.eu -pkg_live_fetch = git -pkg_live_repo = https://github.com/ninenines/live -pkg_live_commit = master - -PACKAGES += locker -pkg_locker_name = locker -pkg_locker_description = Atomic distributed 'check and set' for short-lived keys -pkg_locker_homepage = https://github.com/wooga/locker -pkg_locker_fetch = git -pkg_locker_repo = https://github.com/wooga/locker -pkg_locker_commit = master - -PACKAGES += locks -pkg_locks_name = locks -pkg_locks_description = A scalable, deadlock-resolving resource locker -pkg_locks_homepage = https://github.com/uwiger/locks -pkg_locks_fetch = git -pkg_locks_repo = https://github.com/uwiger/locks -pkg_locks_commit = master - -PACKAGES += log4erl -pkg_log4erl_name = log4erl -pkg_log4erl_description = A logger for erlang in the spirit of Log4J. -pkg_log4erl_homepage = https://github.com/ahmednawras/log4erl -pkg_log4erl_fetch = git -pkg_log4erl_repo = https://github.com/ahmednawras/log4erl -pkg_log4erl_commit = master - -PACKAGES += lol -pkg_lol_name = lol -pkg_lol_description = Lisp on erLang, and programming is fun again -pkg_lol_homepage = https://github.com/b0oh/lol -pkg_lol_fetch = git -pkg_lol_repo = https://github.com/b0oh/lol -pkg_lol_commit = master - -PACKAGES += lucid -pkg_lucid_name = lucid -pkg_lucid_description = HTTP/2 server written in Erlang -pkg_lucid_homepage = https://github.com/tatsuhiro-t/lucid -pkg_lucid_fetch = git -pkg_lucid_repo = https://github.com/tatsuhiro-t/lucid -pkg_lucid_commit = master - -PACKAGES += luerl -pkg_luerl_name = luerl -pkg_luerl_description = Lua in Erlang -pkg_luerl_homepage = https://github.com/rvirding/luerl -pkg_luerl_fetch = git -pkg_luerl_repo = https://github.com/rvirding/luerl -pkg_luerl_commit = develop - -PACKAGES += lux -pkg_lux_name = lux -pkg_lux_description = Lux (LUcid eXpect scripting) simplifies test automation and provides an Expect-style execution of commands -pkg_lux_homepage = https://github.com/hawk/lux -pkg_lux_fetch = git -pkg_lux_repo = https://github.com/hawk/lux -pkg_lux_commit = master - -PACKAGES += mad -pkg_mad_name = mad -pkg_mad_description = Small and Fast Rebar Replacement -pkg_mad_homepage = https://github.com/synrc/mad -pkg_mad_fetch = git -pkg_mad_repo = https://github.com/synrc/mad -pkg_mad_commit = master - -PACKAGES += marina -pkg_marina_name = marina -pkg_marina_description = Non-blocking Erlang Cassandra CQL3 client -pkg_marina_homepage = https://github.com/lpgauth/marina -pkg_marina_fetch = git -pkg_marina_repo = https://github.com/lpgauth/marina -pkg_marina_commit = master - -PACKAGES += mavg -pkg_mavg_name = mavg -pkg_mavg_description = Erlang :: Exponential moving average library -pkg_mavg_homepage = https://github.com/EchoTeam/mavg -pkg_mavg_fetch = git -pkg_mavg_repo = https://github.com/EchoTeam/mavg -pkg_mavg_commit = master - -PACKAGES += meck -pkg_meck_name = meck -pkg_meck_description = A mocking library for Erlang -pkg_meck_homepage = https://github.com/eproxus/meck -pkg_meck_fetch = git -pkg_meck_repo = https://github.com/eproxus/meck -pkg_meck_commit = master - -PACKAGES += mekao -pkg_mekao_name = mekao -pkg_mekao_description = SQL constructor -pkg_mekao_homepage = https://github.com/ddosia/mekao -pkg_mekao_fetch = git -pkg_mekao_repo = https://github.com/ddosia/mekao -pkg_mekao_commit = master - -PACKAGES += merl -pkg_merl_name = merl -pkg_merl_description = Metaprogramming in Erlang -pkg_merl_homepage = https://github.com/richcarl/merl -pkg_merl_fetch = git -pkg_merl_repo = https://github.com/richcarl/merl -pkg_merl_commit = master - -PACKAGES += mimerl -pkg_mimerl_name = mimerl -pkg_mimerl_description = library to handle mimetypes -pkg_mimerl_homepage = https://github.com/benoitc/mimerl -pkg_mimerl_fetch = git -pkg_mimerl_repo = https://github.com/benoitc/mimerl -pkg_mimerl_commit = master - -PACKAGES += mimetypes -pkg_mimetypes_name = mimetypes -pkg_mimetypes_description = Erlang MIME types library -pkg_mimetypes_homepage = https://github.com/spawngrid/mimetypes -pkg_mimetypes_fetch = git -pkg_mimetypes_repo = https://github.com/spawngrid/mimetypes -pkg_mimetypes_commit = master - -PACKAGES += mixer -pkg_mixer_name = mixer -pkg_mixer_description = Mix in functions from other modules -pkg_mixer_homepage = https://github.com/chef/mixer -pkg_mixer_fetch = git -pkg_mixer_repo = https://github.com/chef/mixer -pkg_mixer_commit = main - -PACKAGES += mochiweb -pkg_mochiweb_name = mochiweb -pkg_mochiweb_description = MochiWeb is an Erlang library for building lightweight HTTP servers. -pkg_mochiweb_homepage = https://github.com/mochi/mochiweb -pkg_mochiweb_fetch = git -pkg_mochiweb_repo = https://github.com/mochi/mochiweb -pkg_mochiweb_commit = main - -PACKAGES += mochiweb_xpath -pkg_mochiweb_xpath_name = mochiweb_xpath -pkg_mochiweb_xpath_description = XPath support for mochiweb's html parser -pkg_mochiweb_xpath_homepage = https://github.com/retnuh/mochiweb_xpath -pkg_mochiweb_xpath_fetch = git -pkg_mochiweb_xpath_repo = https://github.com/retnuh/mochiweb_xpath -pkg_mochiweb_xpath_commit = master - -PACKAGES += mockgyver -pkg_mockgyver_name = mockgyver -pkg_mockgyver_description = A mocking library for Erlang -pkg_mockgyver_homepage = https://github.com/klajo/mockgyver -pkg_mockgyver_fetch = git -pkg_mockgyver_repo = https://github.com/klajo/mockgyver -pkg_mockgyver_commit = master - -PACKAGES += modlib -pkg_modlib_name = modlib -pkg_modlib_description = Web framework based on Erlang's inets httpd -pkg_modlib_homepage = https://github.com/gar1t/modlib -pkg_modlib_fetch = git -pkg_modlib_repo = https://github.com/gar1t/modlib -pkg_modlib_commit = master - -PACKAGES += mongodb -pkg_mongodb_name = mongodb -pkg_mongodb_description = MongoDB driver for Erlang -pkg_mongodb_homepage = https://github.com/comtihon/mongodb-erlang -pkg_mongodb_fetch = git -pkg_mongodb_repo = https://github.com/comtihon/mongodb-erlang -pkg_mongodb_commit = master - -PACKAGES += mongooseim -pkg_mongooseim_name = mongooseim -pkg_mongooseim_description = Jabber / XMPP server with focus on performance and scalability, by Erlang Solutions -pkg_mongooseim_homepage = https://www.erlang-solutions.com/products/mongooseim-massively-scalable-ejabberd-platform -pkg_mongooseim_fetch = git -pkg_mongooseim_repo = https://github.com/esl/MongooseIM -pkg_mongooseim_commit = master - -PACKAGES += moyo -pkg_moyo_name = moyo -pkg_moyo_description = Erlang utility functions library -pkg_moyo_homepage = https://github.com/dwango/moyo -pkg_moyo_fetch = git -pkg_moyo_repo = https://github.com/dwango/moyo -pkg_moyo_commit = master - -PACKAGES += msgpack -pkg_msgpack_name = msgpack -pkg_msgpack_description = MessagePack (de)serializer implementation for Erlang -pkg_msgpack_homepage = https://github.com/msgpack/msgpack-erlang -pkg_msgpack_fetch = git -pkg_msgpack_repo = https://github.com/msgpack/msgpack-erlang -pkg_msgpack_commit = master - -PACKAGES += mu2 -pkg_mu2_name = mu2 -pkg_mu2_description = Erlang mutation testing tool -pkg_mu2_homepage = https://github.com/ramsay-t/mu2 -pkg_mu2_fetch = git -pkg_mu2_repo = https://github.com/ramsay-t/mu2 -pkg_mu2_commit = master - -PACKAGES += mustache -pkg_mustache_name = mustache -pkg_mustache_description = Mustache template engine for Erlang. -pkg_mustache_homepage = https://github.com/mojombo/mustache.erl -pkg_mustache_fetch = git -pkg_mustache_repo = https://github.com/mojombo/mustache.erl -pkg_mustache_commit = master - -PACKAGES += myproto -pkg_myproto_name = myproto -pkg_myproto_description = MySQL Server Protocol in Erlang -pkg_myproto_homepage = https://github.com/altenwald/myproto -pkg_myproto_fetch = git -pkg_myproto_repo = https://github.com/altenwald/myproto -pkg_myproto_commit = master - -PACKAGES += mysql -pkg_mysql_name = mysql -pkg_mysql_description = MySQL client library for Erlang/OTP -pkg_mysql_homepage = https://github.com/mysql-otp/mysql-otp -pkg_mysql_fetch = git -pkg_mysql_repo = https://github.com/mysql-otp/mysql-otp -pkg_mysql_commit = 1.7.0 - -PACKAGES += n2o -pkg_n2o_name = n2o -pkg_n2o_description = WebSocket Application Server -pkg_n2o_homepage = https://github.com/5HT/n2o -pkg_n2o_fetch = git -pkg_n2o_repo = https://github.com/5HT/n2o -pkg_n2o_commit = master - -PACKAGES += nat_upnp -pkg_nat_upnp_name = nat_upnp -pkg_nat_upnp_description = Erlang library to map your internal port to an external using UNP IGD -pkg_nat_upnp_homepage = https://github.com/benoitc/nat_upnp -pkg_nat_upnp_fetch = git -pkg_nat_upnp_repo = https://github.com/benoitc/nat_upnp -pkg_nat_upnp_commit = master - -PACKAGES += neo4j -pkg_neo4j_name = neo4j -pkg_neo4j_description = Erlang client library for Neo4J. -pkg_neo4j_homepage = https://github.com/dmitriid/neo4j-erlang -pkg_neo4j_fetch = git -pkg_neo4j_repo = https://github.com/dmitriid/neo4j-erlang -pkg_neo4j_commit = master - -PACKAGES += neotoma -pkg_neotoma_name = neotoma -pkg_neotoma_description = Erlang library and packrat parser-generator for parsing expression grammars. -pkg_neotoma_homepage = https://github.com/seancribbs/neotoma -pkg_neotoma_fetch = git -pkg_neotoma_repo = https://github.com/seancribbs/neotoma -pkg_neotoma_commit = master - -PACKAGES += nifty -pkg_nifty_name = nifty -pkg_nifty_description = Erlang NIF wrapper generator -pkg_nifty_homepage = https://github.com/parapluu/nifty -pkg_nifty_fetch = git -pkg_nifty_repo = https://github.com/parapluu/nifty -pkg_nifty_commit = master - -PACKAGES += nitrogen_core -pkg_nitrogen_core_name = nitrogen_core -pkg_nitrogen_core_description = The core Nitrogen library. -pkg_nitrogen_core_homepage = http://nitrogenproject.com/ -pkg_nitrogen_core_fetch = git -pkg_nitrogen_core_repo = https://github.com/nitrogen/nitrogen_core -pkg_nitrogen_core_commit = master - -PACKAGES += nkpacket -pkg_nkpacket_name = nkpacket -pkg_nkpacket_description = Generic Erlang transport layer -pkg_nkpacket_homepage = https://github.com/Nekso/nkpacket -pkg_nkpacket_fetch = git -pkg_nkpacket_repo = https://github.com/Nekso/nkpacket -pkg_nkpacket_commit = master - -PACKAGES += nksip -pkg_nksip_name = nksip -pkg_nksip_description = Erlang SIP application server -pkg_nksip_homepage = https://github.com/kalta/nksip -pkg_nksip_fetch = git -pkg_nksip_repo = https://github.com/kalta/nksip -pkg_nksip_commit = master - -PACKAGES += nodefinder -pkg_nodefinder_name = nodefinder -pkg_nodefinder_description = automatic node discovery via UDP multicast -pkg_nodefinder_homepage = https://github.com/erlanger/nodefinder -pkg_nodefinder_fetch = git -pkg_nodefinder_repo = https://github.com/okeuday/nodefinder -pkg_nodefinder_commit = master - -PACKAGES += nprocreg -pkg_nprocreg_name = nprocreg -pkg_nprocreg_description = Minimal Distributed Erlang Process Registry -pkg_nprocreg_homepage = http://nitrogenproject.com/ -pkg_nprocreg_fetch = git -pkg_nprocreg_repo = https://github.com/nitrogen/nprocreg -pkg_nprocreg_commit = master - -PACKAGES += oauth -pkg_oauth_name = oauth -pkg_oauth_description = An Erlang OAuth 1.0 implementation -pkg_oauth_homepage = https://github.com/tim/erlang-oauth -pkg_oauth_fetch = git -pkg_oauth_repo = https://github.com/tim/erlang-oauth -pkg_oauth_commit = main - -PACKAGES += oauth2 -pkg_oauth2_name = oauth2 -pkg_oauth2_description = Erlang Oauth2 implementation -pkg_oauth2_homepage = https://github.com/kivra/oauth2 -pkg_oauth2_fetch = git -pkg_oauth2_repo = https://github.com/kivra/oauth2 -pkg_oauth2_commit = master - -PACKAGES += observer_cli -pkg_observer_cli_name = observer_cli -pkg_observer_cli_description = Visualize Erlang/Elixir Nodes On The Command Line -pkg_observer_cli_homepage = http://zhongwencool.github.io/observer_cli -pkg_observer_cli_fetch = git -pkg_observer_cli_repo = https://github.com/zhongwencool/observer_cli -pkg_observer_cli_commit = master - -PACKAGES += octopus -pkg_octopus_name = octopus -pkg_octopus_description = Small and flexible pool manager written in Erlang -pkg_octopus_homepage = https://github.com/erlangbureau/octopus -pkg_octopus_fetch = git -pkg_octopus_repo = https://github.com/erlangbureau/octopus -pkg_octopus_commit = master - -PACKAGES += openflow -pkg_openflow_name = openflow -pkg_openflow_description = An OpenFlow controller written in pure erlang -pkg_openflow_homepage = https://github.com/renatoaguiar/erlang-openflow -pkg_openflow_fetch = git -pkg_openflow_repo = https://github.com/renatoaguiar/erlang-openflow -pkg_openflow_commit = master - -PACKAGES += openid -pkg_openid_name = openid -pkg_openid_description = Erlang OpenID -pkg_openid_homepage = https://github.com/brendonh/erl_openid -pkg_openid_fetch = git -pkg_openid_repo = https://github.com/brendonh/erl_openid -pkg_openid_commit = master - -PACKAGES += openpoker -pkg_openpoker_name = openpoker -pkg_openpoker_description = Genesis Texas hold'em Game Server -pkg_openpoker_homepage = https://github.com/hpyhacking/openpoker -pkg_openpoker_fetch = git -pkg_openpoker_repo = https://github.com/hpyhacking/openpoker -pkg_openpoker_commit = master - -PACKAGES += otpbp -pkg_otpbp_name = otpbp -pkg_otpbp_description = Parse transformer for use new OTP functions in old Erlang/OTP releases (R15, R16, 17, 18, 19) -pkg_otpbp_homepage = https://github.com/Ledest/otpbp -pkg_otpbp_fetch = git -pkg_otpbp_repo = https://github.com/Ledest/otpbp -pkg_otpbp_commit = master - -PACKAGES += pal -pkg_pal_name = pal -pkg_pal_description = Pragmatic Authentication Library -pkg_pal_homepage = https://github.com/manifest/pal -pkg_pal_fetch = git -pkg_pal_repo = https://github.com/manifest/pal -pkg_pal_commit = master - -PACKAGES += parse_trans -pkg_parse_trans_name = parse_trans -pkg_parse_trans_description = Parse transform utilities for Erlang -pkg_parse_trans_homepage = https://github.com/uwiger/parse_trans -pkg_parse_trans_fetch = git -pkg_parse_trans_repo = https://github.com/uwiger/parse_trans -pkg_parse_trans_commit = master - -PACKAGES += parsexml -pkg_parsexml_name = parsexml -pkg_parsexml_description = Simple DOM XML parser with convenient and very simple API -pkg_parsexml_homepage = https://github.com/maxlapshin/parsexml -pkg_parsexml_fetch = git -pkg_parsexml_repo = https://github.com/maxlapshin/parsexml -pkg_parsexml_commit = master - -PACKAGES += partisan -pkg_partisan_name = partisan -pkg_partisan_description = High-performance, high-scalability distributed computing with Erlang and Elixir. -pkg_partisan_homepage = http://partisan.cloud -pkg_partisan_fetch = git -pkg_partisan_repo = https://github.com/lasp-lang/partisan -pkg_partisan_commit = master - -PACKAGES += pegjs -pkg_pegjs_name = pegjs -pkg_pegjs_description = An implementation of PEG.js grammar for Erlang. -pkg_pegjs_homepage = https://github.com/dmitriid/pegjs -pkg_pegjs_fetch = git -pkg_pegjs_repo = https://github.com/dmitriid/pegjs -pkg_pegjs_commit = master - -PACKAGES += percept2 -pkg_percept2_name = percept2 -pkg_percept2_description = Concurrent profiling tool for Erlang -pkg_percept2_homepage = https://github.com/huiqing/percept2 -pkg_percept2_fetch = git -pkg_percept2_repo = https://github.com/huiqing/percept2 -pkg_percept2_commit = master - -PACKAGES += pgo -pkg_pgo_name = pgo -pkg_pgo_description = Erlang Postgres client and connection pool -pkg_pgo_homepage = https://github.com/erleans/pgo.git -pkg_pgo_fetch = git -pkg_pgo_repo = https://github.com/erleans/pgo.git -pkg_pgo_commit = main - -PACKAGES += pgsql -pkg_pgsql_name = pgsql -pkg_pgsql_description = Erlang PostgreSQL driver -pkg_pgsql_homepage = https://github.com/semiocast/pgsql -pkg_pgsql_fetch = git -pkg_pgsql_repo = https://github.com/semiocast/pgsql -pkg_pgsql_commit = master - -PACKAGES += pkgx -pkg_pkgx_name = pkgx -pkg_pkgx_description = Build .deb packages from Erlang releases -pkg_pkgx_homepage = https://github.com/arjan/pkgx -pkg_pkgx_fetch = git -pkg_pkgx_repo = https://github.com/arjan/pkgx -pkg_pkgx_commit = master - -PACKAGES += pkt -pkg_pkt_name = pkt -pkg_pkt_description = Erlang network protocol library -pkg_pkt_homepage = https://github.com/msantos/pkt -pkg_pkt_fetch = git -pkg_pkt_repo = https://github.com/msantos/pkt -pkg_pkt_commit = master - -PACKAGES += plain_fsm -pkg_plain_fsm_name = plain_fsm -pkg_plain_fsm_description = A behaviour/support library for writing plain Erlang FSMs. -pkg_plain_fsm_homepage = https://github.com/uwiger/plain_fsm -pkg_plain_fsm_fetch = git -pkg_plain_fsm_repo = https://github.com/uwiger/plain_fsm -pkg_plain_fsm_commit = master - -PACKAGES += pmod_transform -pkg_pmod_transform_name = pmod_transform -pkg_pmod_transform_description = Parse transform for parameterized modules -pkg_pmod_transform_homepage = https://github.com/erlang/pmod_transform -pkg_pmod_transform_fetch = git -pkg_pmod_transform_repo = https://github.com/erlang/pmod_transform -pkg_pmod_transform_commit = master - -PACKAGES += pobox -pkg_pobox_name = pobox -pkg_pobox_description = External buffer processes to protect against mailbox overflow in Erlang -pkg_pobox_homepage = https://github.com/ferd/pobox -pkg_pobox_fetch = git -pkg_pobox_repo = https://github.com/ferd/pobox -pkg_pobox_commit = master - -PACKAGES += ponos -pkg_ponos_name = ponos -pkg_ponos_description = ponos is a simple yet powerful load generator written in erlang -pkg_ponos_homepage = https://github.com/klarna/ponos -pkg_ponos_fetch = git -pkg_ponos_repo = https://github.com/klarna/ponos -pkg_ponos_commit = master - -PACKAGES += poolboy -pkg_poolboy_name = poolboy -pkg_poolboy_description = A hunky Erlang worker pool factory -pkg_poolboy_homepage = https://github.com/devinus/poolboy -pkg_poolboy_fetch = git -pkg_poolboy_repo = https://github.com/devinus/poolboy -pkg_poolboy_commit = master - -PACKAGES += pooler -pkg_pooler_name = pooler -pkg_pooler_description = An OTP Process Pool Application -pkg_pooler_homepage = https://github.com/seth/pooler -pkg_pooler_fetch = git -pkg_pooler_repo = https://github.com/seth/pooler -pkg_pooler_commit = master - -PACKAGES += pqueue -pkg_pqueue_name = pqueue -pkg_pqueue_description = Erlang Priority Queues -pkg_pqueue_homepage = https://github.com/okeuday/pqueue -pkg_pqueue_fetch = git -pkg_pqueue_repo = https://github.com/okeuday/pqueue -pkg_pqueue_commit = master - -PACKAGES += procket -pkg_procket_name = procket -pkg_procket_description = Erlang interface to low level socket operations -pkg_procket_homepage = http://blog.listincomprehension.com/search/label/procket -pkg_procket_fetch = git -pkg_procket_repo = https://github.com/msantos/procket -pkg_procket_commit = master - -PACKAGES += prometheus -pkg_prometheus_name = prometheus -pkg_prometheus_description = Prometheus.io client in Erlang -pkg_prometheus_homepage = https://github.com/deadtrickster/prometheus.erl -pkg_prometheus_fetch = git -pkg_prometheus_repo = https://github.com/deadtrickster/prometheus.erl -pkg_prometheus_commit = master - -PACKAGES += prop -pkg_prop_name = prop -pkg_prop_description = An Erlang code scaffolding and generator system. -pkg_prop_homepage = https://github.com/nuex/prop -pkg_prop_fetch = git -pkg_prop_repo = https://github.com/nuex/prop -pkg_prop_commit = master +PACKAGES += hex_core +pkg_hex_core_name = hex_core +pkg_hex_core_description = Reference implementation of Hex specifications +pkg_hex_core_homepage = https://github.com/hexpm/hex_core +pkg_hex_core_fetch = git +HEX_CORE_GIT ?= https://github.com/hexpm/hex_core +pkg_hex_core_repo = $(HEX_CORE_GIT) +pkg_hex_core_commit = e57b4fb15cde710b3ae09b1d18f148f6999a63cc PACKAGES += proper pkg_proper_name = proper pkg_proper_description = PropEr: a QuickCheck-inspired property-based testing tool for Erlang. pkg_proper_homepage = http://proper.softlab.ntua.gr pkg_proper_fetch = git -pkg_proper_repo = https://github.com/proper-testing/proper +pkg_proper_repo = https://github.com/manopapad/proper pkg_proper_commit = master -PACKAGES += props -pkg_props_name = props -pkg_props_description = Property structure library -pkg_props_homepage = https://github.com/greyarea/props -pkg_props_fetch = git -pkg_props_repo = https://github.com/greyarea/props -pkg_props_commit = master - -PACKAGES += protobuffs -pkg_protobuffs_name = protobuffs -pkg_protobuffs_description = An implementation of Google's Protocol Buffers for Erlang, based on ngerakines/erlang_protobuffs. -pkg_protobuffs_homepage = https://github.com/basho/erlang_protobuffs -pkg_protobuffs_fetch = git -pkg_protobuffs_repo = https://github.com/basho/erlang_protobuffs -pkg_protobuffs_commit = master - -PACKAGES += psycho -pkg_psycho_name = psycho -pkg_psycho_description = HTTP server that provides a WSGI-like interface for applications and middleware. -pkg_psycho_homepage = https://github.com/gar1t/psycho -pkg_psycho_fetch = git -pkg_psycho_repo = https://github.com/gar1t/psycho -pkg_psycho_commit = master - -PACKAGES += purity -pkg_purity_name = purity -pkg_purity_description = A side-effect analyzer for Erlang -pkg_purity_homepage = https://github.com/mpitid/purity -pkg_purity_fetch = git -pkg_purity_repo = https://github.com/mpitid/purity -pkg_purity_commit = master - -PACKAGES += qdate -pkg_qdate_name = qdate -pkg_qdate_description = Date, time, and timezone parsing, formatting, and conversion for Erlang. -pkg_qdate_homepage = https://github.com/choptastic/qdate -pkg_qdate_fetch = git -pkg_qdate_repo = https://github.com/choptastic/qdate -pkg_qdate_commit = master - -PACKAGES += qrcode -pkg_qrcode_name = qrcode -pkg_qrcode_description = QR Code encoder in Erlang -pkg_qrcode_homepage = https://github.com/komone/qrcode -pkg_qrcode_fetch = git -pkg_qrcode_repo = https://github.com/komone/qrcode -pkg_qrcode_commit = master - -PACKAGES += quest -pkg_quest_name = quest -pkg_quest_description = Learn Erlang through this set of challenges. An interactive system for getting to know Erlang. -pkg_quest_homepage = https://github.com/eriksoe/ErlangQuest -pkg_quest_fetch = git -pkg_quest_repo = https://github.com/eriksoe/ErlangQuest -pkg_quest_commit = master - -PACKAGES += quickrand -pkg_quickrand_name = quickrand -pkg_quickrand_description = Quick Erlang Random Number Generation -pkg_quickrand_homepage = https://github.com/okeuday/quickrand -pkg_quickrand_fetch = git -pkg_quickrand_repo = https://github.com/okeuday/quickrand -pkg_quickrand_commit = master - -PACKAGES += rabbit_exchange_type_riak -pkg_rabbit_exchange_type_riak_name = rabbit_exchange_type_riak -pkg_rabbit_exchange_type_riak_description = Custom RabbitMQ exchange type for sticking messages in Riak -pkg_rabbit_exchange_type_riak_homepage = https://github.com/jbrisbin/riak-exchange -pkg_rabbit_exchange_type_riak_fetch = git -pkg_rabbit_exchange_type_riak_repo = https://github.com/jbrisbin/riak-exchange -pkg_rabbit_exchange_type_riak_commit = master - -PACKAGES += rack -pkg_rack_name = rack -pkg_rack_description = Rack handler for erlang -pkg_rack_homepage = https://github.com/erlyvideo/rack -pkg_rack_fetch = git -pkg_rack_repo = https://github.com/erlyvideo/rack -pkg_rack_commit = master - -PACKAGES += radierl -pkg_radierl_name = radierl -pkg_radierl_description = RADIUS protocol stack implemented in Erlang. -pkg_radierl_homepage = https://github.com/vances/radierl -pkg_radierl_fetch = git -pkg_radierl_repo = https://github.com/vances/radierl -pkg_radierl_commit = master - PACKAGES += ranch pkg_ranch_name = ranch pkg_ranch_description = Socket acceptor pool for TCP protocols. pkg_ranch_homepage = http://ninenines.eu pkg_ranch_fetch = git pkg_ranch_repo = https://github.com/ninenines/ranch -pkg_ranch_commit = 1.2.1 - -PACKAGES += rbeacon -pkg_rbeacon_name = rbeacon -pkg_rbeacon_description = LAN discovery and presence in Erlang. -pkg_rbeacon_homepage = https://github.com/refuge/rbeacon -pkg_rbeacon_fetch = git -pkg_rbeacon_repo = https://github.com/refuge/rbeacon -pkg_rbeacon_commit = master - -PACKAGES += re2 -pkg_re2_name = re2 -pkg_re2_description = Erlang NIF bindings for RE2 regex library -pkg_re2_homepage = https://github.com/dukesoferl/re2 -pkg_re2_fetch = git -pkg_re2_repo = https://github.com/dukesoferl/re2 -pkg_re2_commit = master - -PACKAGES += rebus -pkg_rebus_name = rebus -pkg_rebus_description = A stupid simple, internal, pub/sub event bus written in- and for Erlang. -pkg_rebus_homepage = https://github.com/olle/rebus -pkg_rebus_fetch = git -pkg_rebus_repo = https://github.com/olle/rebus -pkg_rebus_commit = master - -PACKAGES += rec2json -pkg_rec2json_name = rec2json -pkg_rec2json_description = Compile erlang record definitions into modules to convert them to/from json easily. -pkg_rec2json_homepage = https://github.com/lordnull/rec2json -pkg_rec2json_fetch = git -pkg_rec2json_repo = https://github.com/lordnull/rec2json -pkg_rec2json_commit = master - -PACKAGES += recon -pkg_recon_name = recon -pkg_recon_description = Collection of functions and scripts to debug Erlang in production. -pkg_recon_homepage = https://github.com/ferd/recon -pkg_recon_fetch = git -pkg_recon_repo = https://github.com/ferd/recon -pkg_recon_commit = master - -PACKAGES += record_info -pkg_record_info_name = record_info -pkg_record_info_description = Convert between record and proplist -pkg_record_info_homepage = https://github.com/bipthelin/erlang-record_info -pkg_record_info_fetch = git -pkg_record_info_repo = https://github.com/bipthelin/erlang-record_info -pkg_record_info_commit = master - -PACKAGES += redgrid -pkg_redgrid_name = redgrid -pkg_redgrid_description = automatic Erlang node discovery via redis -pkg_redgrid_homepage = https://github.com/jkvor/redgrid -pkg_redgrid_fetch = git -pkg_redgrid_repo = https://github.com/jkvor/redgrid -pkg_redgrid_commit = master - -PACKAGES += redo -pkg_redo_name = redo -pkg_redo_description = pipelined erlang redis client -pkg_redo_homepage = https://github.com/jkvor/redo -pkg_redo_fetch = git -pkg_redo_repo = https://github.com/jkvor/redo -pkg_redo_commit = master - -PACKAGES += reload_mk -pkg_reload_mk_name = reload_mk -pkg_reload_mk_description = Live reload plugin for erlang.mk. -pkg_reload_mk_homepage = https://github.com/bullno1/reload.mk -pkg_reload_mk_fetch = git -pkg_reload_mk_repo = https://github.com/bullno1/reload.mk -pkg_reload_mk_commit = master - -PACKAGES += reltool_util -pkg_reltool_util_name = reltool_util -pkg_reltool_util_description = Erlang reltool utility functionality application -pkg_reltool_util_homepage = https://github.com/okeuday/reltool_util -pkg_reltool_util_fetch = git -pkg_reltool_util_repo = https://github.com/okeuday/reltool_util -pkg_reltool_util_commit = master +pkg_ranch_commit = master PACKAGES += relx pkg_relx_name = relx @@ -2867,470 +380,6 @@ pkg_relx_fetch = git pkg_relx_repo = https://github.com/erlware/relx pkg_relx_commit = main -PACKAGES += resource_discovery -pkg_resource_discovery_name = resource_discovery -pkg_resource_discovery_description = An application used to dynamically discover resources present in an Erlang node cluster. -pkg_resource_discovery_homepage = http://erlware.org/ -pkg_resource_discovery_fetch = git -pkg_resource_discovery_repo = https://github.com/erlware/resource_discovery -pkg_resource_discovery_commit = master - -PACKAGES += restc -pkg_restc_name = restc -pkg_restc_description = Erlang Rest Client -pkg_restc_homepage = https://github.com/kivra/restclient -pkg_restc_fetch = git -pkg_restc_repo = https://github.com/kivra/restclient -pkg_restc_commit = master - -PACKAGES += rfc4627_jsonrpc -pkg_rfc4627_jsonrpc_name = rfc4627_jsonrpc -pkg_rfc4627_jsonrpc_description = Erlang RFC4627 (JSON) codec and JSON-RPC server implementation. -pkg_rfc4627_jsonrpc_homepage = https://github.com/tonyg/erlang-rfc4627 -pkg_rfc4627_jsonrpc_fetch = git -pkg_rfc4627_jsonrpc_repo = https://github.com/tonyg/erlang-rfc4627 -pkg_rfc4627_jsonrpc_commit = master - -PACKAGES += riak_core -pkg_riak_core_name = riak_core -pkg_riak_core_description = Distributed systems infrastructure used by Riak. -pkg_riak_core_homepage = https://github.com/basho/riak_core -pkg_riak_core_fetch = git -pkg_riak_core_repo = https://github.com/basho/riak_core -pkg_riak_core_commit = develop - -PACKAGES += riak_dt -pkg_riak_dt_name = riak_dt -pkg_riak_dt_description = Convergent replicated datatypes in Erlang -pkg_riak_dt_homepage = https://github.com/basho/riak_dt -pkg_riak_dt_fetch = git -pkg_riak_dt_repo = https://github.com/basho/riak_dt -pkg_riak_dt_commit = master - -PACKAGES += riak_ensemble -pkg_riak_ensemble_name = riak_ensemble -pkg_riak_ensemble_description = Multi-Paxos framework in Erlang -pkg_riak_ensemble_homepage = https://github.com/basho/riak_ensemble -pkg_riak_ensemble_fetch = git -pkg_riak_ensemble_repo = https://github.com/basho/riak_ensemble -pkg_riak_ensemble_commit = develop - -PACKAGES += riak_kv -pkg_riak_kv_name = riak_kv -pkg_riak_kv_description = Riak Key/Value Store -pkg_riak_kv_homepage = https://github.com/basho/riak_kv -pkg_riak_kv_fetch = git -pkg_riak_kv_repo = https://github.com/basho/riak_kv -pkg_riak_kv_commit = develop - -PACKAGES += riak_pipe -pkg_riak_pipe_name = riak_pipe -pkg_riak_pipe_description = Riak Pipelines -pkg_riak_pipe_homepage = https://github.com/basho/riak_pipe -pkg_riak_pipe_fetch = git -pkg_riak_pipe_repo = https://github.com/basho/riak_pipe -pkg_riak_pipe_commit = develop - -PACKAGES += riak_sysmon -pkg_riak_sysmon_name = riak_sysmon -pkg_riak_sysmon_description = Simple OTP app for managing Erlang VM system_monitor event messages -pkg_riak_sysmon_homepage = https://github.com/basho/riak_sysmon -pkg_riak_sysmon_fetch = git -pkg_riak_sysmon_repo = https://github.com/basho/riak_sysmon -pkg_riak_sysmon_commit = master - -PACKAGES += riakc -pkg_riakc_name = riakc -pkg_riakc_description = Erlang clients for Riak. -pkg_riakc_homepage = https://github.com/basho/riak-erlang-client -pkg_riakc_fetch = git -pkg_riakc_repo = https://github.com/basho/riak-erlang-client -pkg_riakc_commit = master - -PACKAGES += rlimit -pkg_rlimit_name = rlimit -pkg_rlimit_description = Magnus Klaar's rate limiter code from etorrent -pkg_rlimit_homepage = https://github.com/jlouis/rlimit -pkg_rlimit_fetch = git -pkg_rlimit_repo = https://github.com/jlouis/rlimit -pkg_rlimit_commit = master - -PACKAGES += rust_mk -pkg_rust_mk_name = rust_mk -pkg_rust_mk_description = Build Rust crates in an Erlang application -pkg_rust_mk_homepage = https://github.com/goertzenator/rust.mk -pkg_rust_mk_fetch = git -pkg_rust_mk_repo = https://github.com/goertzenator/rust.mk -pkg_rust_mk_commit = master - -PACKAGES += safetyvalve -pkg_safetyvalve_name = safetyvalve -pkg_safetyvalve_description = A safety valve for your erlang node -pkg_safetyvalve_homepage = https://github.com/jlouis/safetyvalve -pkg_safetyvalve_fetch = git -pkg_safetyvalve_repo = https://github.com/jlouis/safetyvalve -pkg_safetyvalve_commit = master - -PACKAGES += seestar -pkg_seestar_name = seestar -pkg_seestar_description = The Erlang client for Cassandra 1.2+ binary protocol -pkg_seestar_homepage = https://github.com/iamaleksey/seestar -pkg_seestar_fetch = git -pkg_seestar_repo = https://github.com/iamaleksey/seestar -pkg_seestar_commit = master - -PACKAGES += setup -pkg_setup_name = setup -pkg_setup_description = Generic setup utility for Erlang-based systems -pkg_setup_homepage = https://github.com/uwiger/setup -pkg_setup_fetch = git -pkg_setup_repo = https://github.com/uwiger/setup -pkg_setup_commit = master - -PACKAGES += sext -pkg_sext_name = sext -pkg_sext_description = Sortable Erlang Term Serialization -pkg_sext_homepage = https://github.com/uwiger/sext -pkg_sext_fetch = git -pkg_sext_repo = https://github.com/uwiger/sext -pkg_sext_commit = master - -PACKAGES += sfmt -pkg_sfmt_name = sfmt -pkg_sfmt_description = SFMT pseudo random number generator for Erlang. -pkg_sfmt_homepage = https://github.com/jj1bdx/sfmt-erlang -pkg_sfmt_fetch = git -pkg_sfmt_repo = https://github.com/jj1bdx/sfmt-erlang -pkg_sfmt_commit = master - -PACKAGES += sgte -pkg_sgte_name = sgte -pkg_sgte_description = A simple Erlang Template Engine -pkg_sgte_homepage = https://github.com/filippo/sgte -pkg_sgte_fetch = git -pkg_sgte_repo = https://github.com/filippo/sgte -pkg_sgte_commit = master - -PACKAGES += sheriff -pkg_sheriff_name = sheriff -pkg_sheriff_description = Parse transform for type based validation. -pkg_sheriff_homepage = http://ninenines.eu -pkg_sheriff_fetch = git -pkg_sheriff_repo = https://github.com/extend/sheriff -pkg_sheriff_commit = master - -PACKAGES += shotgun -pkg_shotgun_name = shotgun -pkg_shotgun_description = better than just a gun -pkg_shotgun_homepage = https://github.com/inaka/shotgun -pkg_shotgun_fetch = git -pkg_shotgun_repo = https://github.com/inaka/shotgun -pkg_shotgun_commit = master - -PACKAGES += sidejob -pkg_sidejob_name = sidejob -pkg_sidejob_description = Parallel worker and capacity limiting library for Erlang -pkg_sidejob_homepage = https://github.com/basho/sidejob -pkg_sidejob_fetch = git -pkg_sidejob_repo = https://github.com/basho/sidejob -pkg_sidejob_commit = develop - -PACKAGES += sieve -pkg_sieve_name = sieve -pkg_sieve_description = sieve is a simple TCP routing proxy (layer 7) in erlang -pkg_sieve_homepage = https://github.com/benoitc/sieve -pkg_sieve_fetch = git -pkg_sieve_repo = https://github.com/benoitc/sieve -pkg_sieve_commit = master - -PACKAGES += simhash -pkg_simhash_name = simhash -pkg_simhash_description = Simhashing for Erlang -- hashing algorithm to find near-duplicates in binary data. -pkg_simhash_homepage = https://github.com/ferd/simhash -pkg_simhash_fetch = git -pkg_simhash_repo = https://github.com/ferd/simhash -pkg_simhash_commit = master - -PACKAGES += simple_bridge -pkg_simple_bridge_name = simple_bridge -pkg_simple_bridge_description = A simple, standardized interface library to Erlang HTTP Servers. -pkg_simple_bridge_homepage = https://github.com/nitrogen/simple_bridge -pkg_simple_bridge_fetch = git -pkg_simple_bridge_repo = https://github.com/nitrogen/simple_bridge -pkg_simple_bridge_commit = master - -PACKAGES += simple_oauth2 -pkg_simple_oauth2_name = simple_oauth2 -pkg_simple_oauth2_description = Simple erlang OAuth2 client module for any http server framework (Google, Facebook, Yandex, Vkontakte are preconfigured) -pkg_simple_oauth2_homepage = https://github.com/virtan/simple_oauth2 -pkg_simple_oauth2_fetch = git -pkg_simple_oauth2_repo = https://github.com/virtan/simple_oauth2 -pkg_simple_oauth2_commit = master - -PACKAGES += skel -pkg_skel_name = skel -pkg_skel_description = A Streaming Process-based Skeleton Library for Erlang -pkg_skel_homepage = https://github.com/ParaPhrase/skel -pkg_skel_fetch = git -pkg_skel_repo = https://github.com/ParaPhrase/skel -pkg_skel_commit = master - -PACKAGES += slack -pkg_slack_name = slack -pkg_slack_description = Minimal slack notification OTP library. -pkg_slack_homepage = https://github.com/DonBranson/slack -pkg_slack_fetch = git -pkg_slack_repo = https://github.com/DonBranson/slack.git -pkg_slack_commit = master - -PACKAGES += snappyer -pkg_snappyer_name = snappyer -pkg_snappyer_description = Snappy as nif for Erlang -pkg_snappyer_homepage = https://github.com/zmstone/snappyer -pkg_snappyer_fetch = git -pkg_snappyer_repo = https://github.com/zmstone/snappyer.git -pkg_snappyer_commit = master - -PACKAGES += social -pkg_social_name = social -pkg_social_description = Cowboy handler for social login via OAuth2 providers -pkg_social_homepage = https://github.com/dvv/social -pkg_social_fetch = git -pkg_social_repo = https://github.com/dvv/social -pkg_social_commit = master - -PACKAGES += sqerl -pkg_sqerl_name = sqerl -pkg_sqerl_description = An Erlang-flavoured SQL DSL -pkg_sqerl_homepage = https://github.com/hairyhum/sqerl -pkg_sqerl_fetch = git -pkg_sqerl_repo = https://github.com/hairyhum/sqerl -pkg_sqerl_commit = master - -PACKAGES += srly -pkg_srly_name = srly -pkg_srly_description = Native Erlang Unix serial interface -pkg_srly_homepage = https://github.com/msantos/srly -pkg_srly_fetch = git -pkg_srly_repo = https://github.com/msantos/srly -pkg_srly_commit = master - -PACKAGES += sshrpc -pkg_sshrpc_name = sshrpc -pkg_sshrpc_description = Erlang SSH RPC module (experimental) -pkg_sshrpc_homepage = https://github.com/jj1bdx/sshrpc -pkg_sshrpc_fetch = git -pkg_sshrpc_repo = https://github.com/jj1bdx/sshrpc -pkg_sshrpc_commit = master - -PACKAGES += stable -pkg_stable_name = stable -pkg_stable_description = Library of assorted helpers for Cowboy web server. -pkg_stable_homepage = https://github.com/dvv/stable -pkg_stable_fetch = git -pkg_stable_repo = https://github.com/dvv/stable -pkg_stable_commit = master - -PACKAGES += statebox -pkg_statebox_name = statebox -pkg_statebox_description = Erlang state monad with merge/conflict-resolution capabilities. Useful for Riak. -pkg_statebox_homepage = https://github.com/mochi/statebox -pkg_statebox_fetch = git -pkg_statebox_repo = https://github.com/mochi/statebox -pkg_statebox_commit = master - -PACKAGES += statman -pkg_statman_name = statman -pkg_statman_description = Efficiently collect massive volumes of metrics inside the Erlang VM -pkg_statman_homepage = https://github.com/knutin/statman -pkg_statman_fetch = git -pkg_statman_repo = https://github.com/knutin/statman -pkg_statman_commit = master - -PACKAGES += statsderl -pkg_statsderl_name = statsderl -pkg_statsderl_description = StatsD client (erlang) -pkg_statsderl_homepage = https://github.com/lpgauth/statsderl -pkg_statsderl_fetch = git -pkg_statsderl_repo = https://github.com/lpgauth/statsderl -pkg_statsderl_commit = master - -PACKAGES += stdinout_pool -pkg_stdinout_pool_name = stdinout_pool -pkg_stdinout_pool_description = stdinout_pool : stuff goes in, stuff goes out. there's never any miscommunication. -pkg_stdinout_pool_homepage = https://github.com/mattsta/erlang-stdinout-pool -pkg_stdinout_pool_fetch = git -pkg_stdinout_pool_repo = https://github.com/mattsta/erlang-stdinout-pool -pkg_stdinout_pool_commit = master - -PACKAGES += stockdb -pkg_stockdb_name = stockdb -pkg_stockdb_description = Database for storing Stock Exchange quotes in erlang -pkg_stockdb_homepage = https://github.com/maxlapshin/stockdb -pkg_stockdb_fetch = git -pkg_stockdb_repo = https://github.com/maxlapshin/stockdb -pkg_stockdb_commit = master - -PACKAGES += subproc -pkg_subproc_name = subproc -pkg_subproc_description = unix subprocess manager with {active,once|false} modes -pkg_subproc_homepage = http://dozzie.jarowit.net/trac/wiki/subproc -pkg_subproc_fetch = git -pkg_subproc_repo = https://github.com/dozzie/subproc -pkg_subproc_commit = v0.1.0 - -PACKAGES += supervisor3 -pkg_supervisor3_name = supervisor3 -pkg_supervisor3_description = OTP supervisor with additional strategies -pkg_supervisor3_homepage = https://github.com/klarna/supervisor3 -pkg_supervisor3_fetch = git -pkg_supervisor3_repo = https://github.com/klarna/supervisor3.git -pkg_supervisor3_commit = master - -PACKAGES += swab -pkg_swab_name = swab -pkg_swab_description = General purpose buffer handling module -pkg_swab_homepage = https://github.com/crownedgrouse/swab -pkg_swab_fetch = git -pkg_swab_repo = https://github.com/crownedgrouse/swab -pkg_swab_commit = master - -PACKAGES += swarm -pkg_swarm_name = swarm -pkg_swarm_description = Fast and simple acceptor pool for Erlang -pkg_swarm_homepage = https://github.com/jeremey/swarm -pkg_swarm_fetch = git -pkg_swarm_repo = https://github.com/jeremey/swarm -pkg_swarm_commit = master - -PACKAGES += switchboard -pkg_switchboard_name = switchboard -pkg_switchboard_description = A framework for processing email using worker plugins. -pkg_switchboard_homepage = https://github.com/thusfresh/switchboard -pkg_switchboard_fetch = git -pkg_switchboard_repo = https://github.com/thusfresh/switchboard -pkg_switchboard_commit = master - -PACKAGES += syn -pkg_syn_name = syn -pkg_syn_description = A global Process Registry and Process Group manager for Erlang. -pkg_syn_homepage = https://github.com/ostinelli/syn -pkg_syn_fetch = git -pkg_syn_repo = https://github.com/ostinelli/syn -pkg_syn_commit = master - -PACKAGES += sync -pkg_sync_name = sync -pkg_sync_description = On-the-fly recompiling and reloading in Erlang. -pkg_sync_homepage = https://github.com/rustyio/sync -pkg_sync_fetch = git -pkg_sync_repo = https://github.com/rustyio/sync -pkg_sync_commit = master - -PACKAGES += syntaxerl -pkg_syntaxerl_name = syntaxerl -pkg_syntaxerl_description = Syntax checker for Erlang -pkg_syntaxerl_homepage = https://github.com/ten0s/syntaxerl -pkg_syntaxerl_fetch = git -pkg_syntaxerl_repo = https://github.com/ten0s/syntaxerl -pkg_syntaxerl_commit = master - -PACKAGES += syslog -pkg_syslog_name = syslog -pkg_syslog_description = Erlang port driver for interacting with syslog via syslog(3) -pkg_syslog_homepage = https://github.com/Vagabond/erlang-syslog -pkg_syslog_fetch = git -pkg_syslog_repo = https://github.com/Vagabond/erlang-syslog -pkg_syslog_commit = master - -PACKAGES += taskforce -pkg_taskforce_name = taskforce -pkg_taskforce_description = Erlang worker pools for controlled parallelisation of arbitrary tasks. -pkg_taskforce_homepage = https://github.com/g-andrade/taskforce -pkg_taskforce_fetch = git -pkg_taskforce_repo = https://github.com/g-andrade/taskforce -pkg_taskforce_commit = master - -PACKAGES += tddreloader -pkg_tddreloader_name = tddreloader -pkg_tddreloader_description = Shell utility for recompiling, reloading, and testing code as it changes -pkg_tddreloader_homepage = https://github.com/version2beta/tddreloader -pkg_tddreloader_fetch = git -pkg_tddreloader_repo = https://github.com/version2beta/tddreloader -pkg_tddreloader_commit = master - -PACKAGES += tempo -pkg_tempo_name = tempo -pkg_tempo_description = NIF-based date and time parsing and formatting for Erlang. -pkg_tempo_homepage = https://github.com/selectel/tempo -pkg_tempo_fetch = git -pkg_tempo_repo = https://github.com/selectel/tempo -pkg_tempo_commit = master - -PACKAGES += tinymq -pkg_tinymq_name = tinymq -pkg_tinymq_description = TinyMQ - a diminutive, in-memory message queue -pkg_tinymq_homepage = https://github.com/ChicagoBoss/tinymq -pkg_tinymq_fetch = git -pkg_tinymq_repo = https://github.com/ChicagoBoss/tinymq -pkg_tinymq_commit = master - -PACKAGES += tinymt -pkg_tinymt_name = tinymt -pkg_tinymt_description = TinyMT pseudo random number generator for Erlang. -pkg_tinymt_homepage = https://github.com/jj1bdx/tinymt-erlang -pkg_tinymt_fetch = git -pkg_tinymt_repo = https://github.com/jj1bdx/tinymt-erlang -pkg_tinymt_commit = master - -PACKAGES += tirerl -pkg_tirerl_name = tirerl -pkg_tirerl_description = Erlang interface to Elastic Search -pkg_tirerl_homepage = https://github.com/inaka/tirerl -pkg_tirerl_fetch = git -pkg_tirerl_repo = https://github.com/inaka/tirerl -pkg_tirerl_commit = master - -PACKAGES += toml -pkg_toml_name = toml -pkg_toml_description = TOML (0.4.0) config parser -pkg_toml_homepage = http://dozzie.jarowit.net/trac/wiki/TOML -pkg_toml_fetch = git -pkg_toml_repo = https://github.com/dozzie/toml -pkg_toml_commit = v0.2.0 - -PACKAGES += traffic_tools -pkg_traffic_tools_name = traffic_tools -pkg_traffic_tools_description = Simple traffic limiting library -pkg_traffic_tools_homepage = https://github.com/systra/traffic_tools -pkg_traffic_tools_fetch = git -pkg_traffic_tools_repo = https://github.com/systra/traffic_tools -pkg_traffic_tools_commit = master - -PACKAGES += trails -pkg_trails_name = trails -pkg_trails_description = A couple of improvements over Cowboy Routes -pkg_trails_homepage = http://inaka.github.io/cowboy-trails/ -pkg_trails_fetch = git -pkg_trails_repo = https://github.com/inaka/cowboy-trails -pkg_trails_commit = master - -PACKAGES += trane -pkg_trane_name = trane -pkg_trane_description = SAX style broken HTML parser in Erlang -pkg_trane_homepage = https://github.com/massemanet/trane -pkg_trane_fetch = git -pkg_trane_repo = https://github.com/massemanet/trane -pkg_trane_commit = master - -PACKAGES += trie -pkg_trie_name = trie -pkg_trie_description = Erlang Trie Implementation -pkg_trie_homepage = https://github.com/okeuday/trie -pkg_trie_fetch = git -pkg_trie_repo = https://github.com/okeuday/trie -pkg_trie_commit = master - PACKAGES += triq pkg_triq_name = triq pkg_triq_description = Trifork QuickCheck @@ -3339,182 +388,6 @@ pkg_triq_fetch = git pkg_triq_repo = https://gitlab.com/triq/triq.git pkg_triq_commit = master -PACKAGES += tunctl -pkg_tunctl_name = tunctl -pkg_tunctl_description = Erlang TUN/TAP interface -pkg_tunctl_homepage = https://github.com/msantos/tunctl -pkg_tunctl_fetch = git -pkg_tunctl_repo = https://github.com/msantos/tunctl -pkg_tunctl_commit = master - -PACKAGES += unicorn -pkg_unicorn_name = unicorn -pkg_unicorn_description = Generic configuration server -pkg_unicorn_homepage = https://github.com/shizzard/unicorn -pkg_unicorn_fetch = git -pkg_unicorn_repo = https://github.com/shizzard/unicorn -pkg_unicorn_commit = master - -PACKAGES += unsplit -pkg_unsplit_name = unsplit -pkg_unsplit_description = Resolves conflicts in Mnesia after network splits -pkg_unsplit_homepage = https://github.com/uwiger/unsplit -pkg_unsplit_fetch = git -pkg_unsplit_repo = https://github.com/uwiger/unsplit -pkg_unsplit_commit = master - -PACKAGES += uuid -pkg_uuid_name = uuid -pkg_uuid_description = Erlang UUID Implementation -pkg_uuid_homepage = https://github.com/okeuday/uuid -pkg_uuid_fetch = git -pkg_uuid_repo = https://github.com/okeuday/uuid -pkg_uuid_commit = master - -PACKAGES += ux -pkg_ux_name = ux -pkg_ux_description = Unicode eXtention for Erlang (Strings, Collation) -pkg_ux_homepage = https://github.com/erlang-unicode/ux -pkg_ux_fetch = git -pkg_ux_repo = https://github.com/erlang-unicode/ux -pkg_ux_commit = master - -PACKAGES += verx -pkg_verx_name = verx -pkg_verx_description = Erlang implementation of the libvirtd remote protocol -pkg_verx_homepage = https://github.com/msantos/verx -pkg_verx_fetch = git -pkg_verx_repo = https://github.com/msantos/verx -pkg_verx_commit = master - -PACKAGES += vmq_bridge -pkg_vmq_bridge_name = vmq_bridge -pkg_vmq_bridge_description = Component of VerneMQ: A distributed MQTT message broker -pkg_vmq_bridge_homepage = https://verne.mq/ -pkg_vmq_bridge_fetch = git -pkg_vmq_bridge_repo = https://github.com/erlio/vmq_bridge -pkg_vmq_bridge_commit = master - -PACKAGES += vmstats -pkg_vmstats_name = vmstats -pkg_vmstats_description = tiny Erlang app that works in conjunction with statsderl in order to generate information on the Erlang VM for graphite logs. -pkg_vmstats_homepage = https://github.com/ferd/vmstats -pkg_vmstats_fetch = git -pkg_vmstats_repo = https://github.com/ferd/vmstats -pkg_vmstats_commit = master - -PACKAGES += walrus -pkg_walrus_name = walrus -pkg_walrus_description = Walrus - Mustache-like Templating -pkg_walrus_homepage = https://github.com/devinus/walrus -pkg_walrus_fetch = git -pkg_walrus_repo = https://github.com/devinus/walrus -pkg_walrus_commit = master - -PACKAGES += webmachine -pkg_webmachine_name = webmachine -pkg_webmachine_description = A REST-based system for building web applications. -pkg_webmachine_homepage = https://github.com/basho/webmachine -pkg_webmachine_fetch = git -pkg_webmachine_repo = https://github.com/basho/webmachine -pkg_webmachine_commit = master - -PACKAGES += websocket_client -pkg_websocket_client_name = websocket_client -pkg_websocket_client_description = Erlang websocket client (ws and wss supported) -pkg_websocket_client_homepage = https://github.com/jeremyong/websocket_client -pkg_websocket_client_fetch = git -pkg_websocket_client_repo = https://github.com/jeremyong/websocket_client -pkg_websocket_client_commit = master - -PACKAGES += worker_pool -pkg_worker_pool_name = worker_pool -pkg_worker_pool_description = a simple erlang worker pool -pkg_worker_pool_homepage = https://github.com/inaka/worker_pool -pkg_worker_pool_fetch = git -pkg_worker_pool_repo = https://github.com/inaka/worker_pool -pkg_worker_pool_commit = main - -PACKAGES += wrangler -pkg_wrangler_name = wrangler -pkg_wrangler_description = Import of the Wrangler svn repository. -pkg_wrangler_homepage = http://www.cs.kent.ac.uk/projects/wrangler/Home.html -pkg_wrangler_fetch = git -pkg_wrangler_repo = https://github.com/RefactoringTools/wrangler -pkg_wrangler_commit = master - -PACKAGES += wsock -pkg_wsock_name = wsock -pkg_wsock_description = Erlang library to build WebSocket clients and servers -pkg_wsock_homepage = https://github.com/madtrick/wsock -pkg_wsock_fetch = git -pkg_wsock_repo = https://github.com/madtrick/wsock -pkg_wsock_commit = master - -PACKAGES += xhttpc -pkg_xhttpc_name = xhttpc -pkg_xhttpc_description = Extensible HTTP Client for Erlang -pkg_xhttpc_homepage = https://github.com/seriyps/xhttpc -pkg_xhttpc_fetch = git -pkg_xhttpc_repo = https://github.com/seriyps/xhttpc -pkg_xhttpc_commit = master - -PACKAGES += xref_runner -pkg_xref_runner_name = xref_runner -pkg_xref_runner_description = Erlang Xref Runner (inspired in rebar xref) -pkg_xref_runner_homepage = https://github.com/inaka/xref_runner -pkg_xref_runner_fetch = git -pkg_xref_runner_repo = https://github.com/inaka/xref_runner -pkg_xref_runner_commit = master - -PACKAGES += yamerl -pkg_yamerl_name = yamerl -pkg_yamerl_description = YAML 1.2 parser in pure Erlang -pkg_yamerl_homepage = https://github.com/yakaz/yamerl -pkg_yamerl_fetch = git -pkg_yamerl_repo = https://github.com/yakaz/yamerl -pkg_yamerl_commit = master - -PACKAGES += yamler -pkg_yamler_name = yamler -pkg_yamler_description = libyaml-based yaml loader for Erlang -pkg_yamler_homepage = https://github.com/goertzenator/yamler -pkg_yamler_fetch = git -pkg_yamler_repo = https://github.com/goertzenator/yamler -pkg_yamler_commit = master - -PACKAGES += yaws -pkg_yaws_name = yaws -pkg_yaws_description = Yaws webserver -pkg_yaws_homepage = http://yaws.hyber.org -pkg_yaws_fetch = git -pkg_yaws_repo = https://github.com/klacke/yaws -pkg_yaws_commit = master - -PACKAGES += zippers -pkg_zippers_name = zippers -pkg_zippers_description = A library for functional zipper data structures in Erlang. Read more on zippers -pkg_zippers_homepage = https://github.com/ferd/zippers -pkg_zippers_fetch = git -pkg_zippers_repo = https://github.com/ferd/zippers -pkg_zippers_commit = master - -PACKAGES += zlists -pkg_zlists_name = zlists -pkg_zlists_description = Erlang lazy lists library. -pkg_zlists_homepage = https://github.com/vjache/erlang-zlists -pkg_zlists_fetch = git -pkg_zlists_repo = https://github.com/vjache/erlang-zlists -pkg_zlists_commit = master - -PACKAGES += zucchini -pkg_zucchini_name = zucchini -pkg_zucchini_description = An Erlang INI parser -pkg_zucchini_homepage = https://github.com/devinus/zucchini -pkg_zucchini_fetch = git -pkg_zucchini_repo = https://github.com/devinus/zucchini -pkg_zucchini_commit = master - # Copyright (c) 2015-2016, Loïc Hoguin # This file is part of erlang.mk and subject to the terms of the ISC License. @@ -3522,7 +395,7 @@ pkg_zucchini_commit = master define pkg_print $(verbose) printf "%s\n" \ - $(if $(call core_eq,$(1),$(pkg_$(1)_name)),,"Pkg name: $(1)") \ + $(if $(call core_eq,$1,$(pkg_$(1)_name)),,"Pkg name: $1") \ "App name: $(pkg_$(1)_name)" \ "Description: $(pkg_$(1)_description)" \ "Home page: $(pkg_$(1)_homepage)" \ @@ -3536,10 +409,10 @@ endef search: ifdef q $(foreach p,$(PACKAGES), \ - $(if $(findstring $(call core_lc,$(q)),$(call core_lc,$(pkg_$(p)_name) $(pkg_$(p)_description))), \ - $(call pkg_print,$(p)))) + $(if $(findstring $(call core_lc,$q),$(call core_lc,$(pkg_$(p)_name) $(pkg_$(p)_description))), \ + $(call pkg_print,$p))) else - $(foreach p,$(PACKAGES),$(call pkg_print,$(p))) + $(foreach p,$(PACKAGES),$(call pkg_print,$p)) endif # Copyright (c) 2013-2016, Loïc Hoguin @@ -3575,16 +448,25 @@ CACHE_DEPS ?= 0 CACHE_DIR ?= $(if $(XDG_CACHE_HOME),$(XDG_CACHE_HOME),$(HOME)/.cache)/erlang.mk export CACHE_DIR +HEX_CONFIG ?= + +define hex_config.erl + begin + Config0 = hex_core:default_config(), + Config0$(HEX_CONFIG) + end +endef + # External "early" plugins (see core/plugins.mk for regular plugins). # They both use the core_dep_plugin macro. define core_dep_plugin -ifeq ($(2),$(PROJECT)) --include $$(patsubst $(PROJECT)/%,%,$(1)) +ifeq ($2,$(PROJECT)) +-include $$(patsubst $(PROJECT)/%,%,$1) else --include $(DEPS_DIR)/$(1) +-include $(DEPS_DIR)/$1 -$(DEPS_DIR)/$(1): $(DEPS_DIR)/$(2) ; +$(DEPS_DIR)/$1: $(DEPS_DIR)/$2 ; endif endef @@ -3597,44 +479,42 @@ $(foreach p,$(DEP_EARLY_PLUGINS),\ # Query functions. -query_fetch_method = $(if $(dep_$(1)),$(call _qfm_dep,$(word 1,$(dep_$(1)))),$(call _qfm_pkg,$(1))) -_qfm_dep = $(if $(dep_fetch_$(1)),$(1),$(if $(IS_DEP),legacy,fail)) +query_fetch_method = $(if $(dep_$(1)),$(call _qfm_dep,$(word 1,$(dep_$(1)))),$(call _qfm_pkg,$1)) +_qfm_dep = $(if $(dep_fetch_$(1)),$1,fail) _qfm_pkg = $(if $(pkg_$(1)_fetch),$(pkg_$(1)_fetch),fail) -query_name = $(if $(dep_$(1)),$(1),$(if $(pkg_$(1)_name),$(pkg_$(1)_name),$(1))) +query_name = $(if $(dep_$(1)),$1,$(if $(pkg_$(1)_name),$(pkg_$(1)_name),$1)) -query_repo = $(call _qr,$(1),$(call query_fetch_method,$(1))) -_qr = $(if $(query_repo_$(2)),$(call query_repo_$(2),$(1)),$(call dep_repo,$(1))) +query_repo = $(call _qr,$1,$(call query_fetch_method,$1)) +_qr = $(if $(query_repo_$(2)),$(call query_repo_$(2),$1),$(call query_repo_git,$1)) query_repo_default = $(if $(dep_$(1)),$(word 2,$(dep_$(1))),$(pkg_$(1)_repo)) -query_repo_git = $(patsubst git://github.com/%,https://github.com/%,$(call query_repo_default,$(1))) -query_repo_git-subfolder = $(call query_repo_git,$(1)) +query_repo_git = $(patsubst git://github.com/%,https://github.com/%,$(call query_repo_default,$1)) +query_repo_git-subfolder = $(call query_repo_git,$1) query_repo_git-submodule = - -query_repo_hg = $(call query_repo_default,$(1)) -query_repo_svn = $(call query_repo_default,$(1)) -query_repo_cp = $(call query_repo_default,$(1)) -query_repo_ln = $(call query_repo_default,$(1)) -query_repo_hex = https://hex.pm/packages/$(if $(word 3,$(dep_$(1))),$(word 3,$(dep_$(1))),$(1)) +query_repo_hg = $(call query_repo_default,$1) +query_repo_svn = $(call query_repo_default,$1) +query_repo_cp = $(call query_repo_default,$1) +query_repo_ln = $(call query_repo_default,$1) +query_repo_hex = https://hex.pm/packages/$(if $(word 3,$(dep_$(1))),$(word 3,$(dep_$(1))),$1) query_repo_fail = - -query_repo_legacy = - -query_version = $(call _qv,$(1),$(call query_fetch_method,$(1))) -_qv = $(if $(query_version_$(2)),$(call query_version_$(2),$(1)),$(call dep_commit,$(1))) +query_version = $(call _qv,$1,$(call query_fetch_method,$1)) +_qv = $(if $(query_version_$(2)),$(call query_version_$(2),$1),$(call query_version_default,$1)) query_version_default = $(if $(dep_$(1)_commit),$(dep_$(1)_commit),$(if $(dep_$(1)),$(word 3,$(dep_$(1))),$(pkg_$(1)_commit))) -query_version_git = $(call query_version_default,$(1)) -query_version_git-subfolder = $(call query_version_git,$(1)) +query_version_git = $(call query_version_default,$1) +query_version_git-subfolder = $(call query_version_default,$1) query_version_git-submodule = - -query_version_hg = $(call query_version_default,$(1)) +query_version_hg = $(call query_version_default,$1) query_version_svn = - query_version_cp = - query_version_ln = - query_version_hex = $(if $(dep_$(1)_commit),$(dep_$(1)_commit),$(if $(dep_$(1)),$(word 2,$(dep_$(1))),$(pkg_$(1)_commit))) query_version_fail = - -query_version_legacy = - -query_extra = $(call _qe,$(1),$(call query_fetch_method,$(1))) -_qe = $(if $(query_extra_$(2)),$(call query_extra_$(2),$(1)),-) +query_extra = $(call _qe,$1,$(call query_fetch_method,$1)) +_qe = $(if $(query_extra_$(2)),$(call query_extra_$(2),$1),-) query_extra_git = - query_extra_git-subfolder = $(if $(dep_$(1)),subfolder=$(word 4,$(dep_$(1))),-) @@ -3645,18 +525,19 @@ query_extra_cp = - query_extra_ln = - query_extra_hex = $(if $(dep_$(1)),package-name=$(word 3,$(dep_$(1))),-) query_extra_fail = - -query_extra_legacy = - -query_absolute_path = $(addprefix $(DEPS_DIR)/,$(call query_name,$(1))) +query_absolute_path = $(addprefix $(DEPS_DIR)/,$(call query_name,$1)) -# Deprecated legacy query functions. -dep_fetch = $(call query_fetch_method,$(1)) +# Deprecated legacy query function. Used by RabbitMQ and its third party plugins. +# Can be removed once RabbitMQ has been updated and enough time has passed. dep_name = $(call query_name,$(1)) -dep_repo = $(call query_repo_git,$(1)) -dep_commit = $(if $(dep_$(1)_commit),$(dep_$(1)_commit),$(if $(dep_$(1)),$(if $(filter hex,$(word 1,$(dep_$(1)))),$(word 2,$(dep_$(1))),$(word 3,$(dep_$(1)))),$(pkg_$(1)_commit))) -LOCAL_DEPS_DIRS = $(foreach a,$(LOCAL_DEPS),$(if $(wildcard $(APPS_DIR)/$(a)),$(APPS_DIR)/$(a))) -ALL_DEPS_DIRS = $(addprefix $(DEPS_DIR)/,$(foreach dep,$(filter-out $(IGNORE_DEPS),$(BUILD_DEPS) $(DEPS)),$(call dep_name,$(dep)))) +# Application directories. + +LOCAL_DEPS_DIRS = $(foreach a,$(LOCAL_DEPS),$(if $(wildcard $(APPS_DIR)/$a),$(APPS_DIR)/$a)) +# Elixir is handled specially as it must be built before all other deps +# when Mix autopatching is necessary. +ALL_DEPS_DIRS = $(addprefix $(DEPS_DIR)/,$(foreach dep,$(filter-out $(IGNORE_DEPS),$(BUILD_DEPS) $(DEPS)),$(call query_name,$(dep)))) # When we are calling an app directly we don't want to include it here # otherwise it'll be treated both as an apps and a top-level project. @@ -3680,7 +561,7 @@ export NO_AUTOPATCH # Verbosity. -dep_verbose_0 = @echo " DEP $1 ($(call dep_commit,$1))"; +dep_verbose_0 = @echo " DEP $1 ($(call query_version,$1))"; dep_verbose_2 = set -x; dep_verbose = $(dep_verbose_$(V)) @@ -3748,9 +629,11 @@ endif ifneq ($(SKIP_DEPS),) deps:: else -deps:: $(ALL_DEPS_DIRS) apps clean-tmp-deps.log | $(ERLANG_MK_TMP) -ifneq ($(ALL_DEPS_DIRS),) - $(verbose) set -e; for dep in $(ALL_DEPS_DIRS); do \ +ALL_DEPS_DIRS_TO_BUILD = $(if $(filter-out $(DEPS_DIR)/elixir,$(ALL_DEPS_DIRS)),$(filter-out $(DEPS_DIR)/elixir,$(ALL_DEPS_DIRS)),$(ALL_DEPS_DIRS)) + +deps:: $(ALL_DEPS_DIRS_TO_BUILD) apps clean-tmp-deps.log | $(ERLANG_MK_TMP) +ifneq ($(ALL_DEPS_DIRS_TO_BUILD),) + $(verbose) set -e; for dep in $(ALL_DEPS_DIRS_TO_BUILD); do \ if grep -qs ^$$dep$$ $(ERLANG_MK_TMP)/deps.log; then \ :; \ else \ @@ -3774,51 +657,78 @@ endif # Deps related targets. -# @todo rename GNUmakefile and makefile into Makefile first, if they exist -# While Makefile file could be GNUmakefile or makefile, -# in practice only Makefile is needed so far. -define dep_autopatch - if [ -f $(DEPS_DIR)/$(1)/erlang.mk ]; then \ - rm -rf $(DEPS_DIR)/$1/ebin/; \ - $(call erlang,$(call dep_autopatch_appsrc.erl,$(1))); \ - $(call dep_autopatch_erlang_mk,$(1)); \ - elif [ -f $(DEPS_DIR)/$(1)/Makefile ]; then \ - if [ -f $(DEPS_DIR)/$1/rebar.lock ]; then \ - $(call dep_autopatch2,$1); \ - elif [ 0 != `grep -c "include ../\w*\.mk" $(DEPS_DIR)/$(1)/Makefile` ]; then \ - $(call dep_autopatch2,$(1)); \ - elif [ 0 != `grep -ci "^[^#].*rebar" $(DEPS_DIR)/$(1)/Makefile` ]; then \ - $(call dep_autopatch2,$(1)); \ - elif [ -n "`find $(DEPS_DIR)/$(1)/ -type f -name \*.mk -not -name erlang.mk -exec grep -i "^[^#].*rebar" '{}' \;`" ]; then \ - $(call dep_autopatch2,$(1)); \ +autopatch_verbose_0 = @echo " PATCH " $(subst autopatch-,,$@) "(method: $(AUTOPATCH_METHOD))"; +autopatch_verbose_2 = set -x; +autopatch_verbose = $(autopatch_verbose_$(V)) + +define dep_autopatch_detect + if [ -f $(DEPS_DIR)/$1/erlang.mk ]; then \ + echo erlang.mk; \ + elif [ -f $(DEPS_DIR)/$1/mix.exs -a -d $(DEPS_DIR)/$1/lib ]; then \ + if [ "$(ELIXIR)" != "disable" ]; then \ + echo mix; \ + elif [ -f $(DEPS_DIR)/$1/rebar.lock -o -f $(DEPS_DIR)/$1/rebar.config ]; then \ + echo rebar3; \ + else \ + exit 99; \ fi \ - else \ - if [ ! -d $(DEPS_DIR)/$(1)/src/ ]; then \ - $(call dep_autopatch_noop,$(1)); \ + elif [ -f $(DEPS_DIR)/$1/Makefile ]; then \ + if [ -f $(DEPS_DIR)/$1/rebar.lock ]; then \ + echo rebar3; \ + elif [ 0 != \`grep -c "include ../\w*\.mk" $(DEPS_DIR)/$1/Makefile\` ]; then \ + echo rebar3; \ + elif [ 0 != \`grep -ci "^[^#].*rebar" $(DEPS_DIR)/$1/Makefile\` ]; then \ + echo rebar3; \ + elif [ -n "\`find $(DEPS_DIR)/$1/ -type f -name \*.mk -not -name erlang.mk -exec grep -i "^[^#].*rebar" '{}' \;\`" ]; then \ + echo rebar3; \ else \ - $(call dep_autopatch2,$(1)); \ + echo noop; \ fi \ + elif [ ! -d $(DEPS_DIR)/$1/src/ ]; then \ + echo noop; \ + else \ + echo rebar3; \ fi endef -define dep_autopatch2 +define dep_autopatch_for_erlang.mk + rm -rf $(DEPS_DIR)/$1/ebin/; \ + $(call erlang,$(call dep_autopatch_appsrc.erl,$1)); \ + $(call dep_autopatch_erlang_mk,$1) +endef + +define dep_autopatch_for_rebar3 ! test -f $(DEPS_DIR)/$1/ebin/$1.app || \ mv -n $(DEPS_DIR)/$1/ebin/$1.app $(DEPS_DIR)/$1/src/$1.app.src; \ rm -f $(DEPS_DIR)/$1/ebin/$1.app; \ if [ -f $(DEPS_DIR)/$1/src/$1.app.src.script ]; then \ - $(call erlang,$(call dep_autopatch_appsrc_script.erl,$(1))); \ + $(call erlang,$(call dep_autopatch_appsrc_script.erl,$1)); \ fi; \ - $(call erlang,$(call dep_autopatch_appsrc.erl,$(1))); \ - if [ -f $(DEPS_DIR)/$(1)/rebar -o -f $(DEPS_DIR)/$(1)/rebar.config -o -f $(DEPS_DIR)/$(1)/rebar.config.script -o -f $(DEPS_DIR)/$1/rebar.lock ]; then \ + $(call erlang,$(call dep_autopatch_appsrc.erl,$1)); \ + if [ -f $(DEPS_DIR)/$1/rebar -o -f $(DEPS_DIR)/$1/rebar.config -o -f $(DEPS_DIR)/$1/rebar.config.script -o -f $(DEPS_DIR)/$1/rebar.lock ]; then \ $(call dep_autopatch_fetch_rebar); \ - $(call dep_autopatch_rebar,$(1)); \ + $(call dep_autopatch_rebar,$1); \ else \ - $(call dep_autopatch_gen,$(1)); \ + $(call dep_autopatch_gen,$1); \ fi endef -define dep_autopatch_noop - printf "noop:\n" > $(DEPS_DIR)/$(1)/Makefile +define dep_autopatch_for_mix + $(call dep_autopatch_mix,$1) +endef + +define dep_autopatch_for_noop + test -f $(DEPS_DIR)/$1/Makefile || printf "noop:\n" > $(DEPS_DIR)/$1/Makefile +endef + +define maybe_flock + if command -v flock >/dev/null; then \ + flock $1 sh -c "$2"; \ + elif command -v lockf >/dev/null; then \ + lockf $1 sh -c "$2"; \ + else \ + $2; \ + fi endef # Replace "include erlang.mk" with a line that will load the parent Erlang.mk @@ -3840,18 +750,12 @@ endif define dep_autopatch_gen printf "%s\n" \ "ERLC_OPTS = +debug_info" \ - "include ../../erlang.mk" > $(DEPS_DIR)/$(1)/Makefile + "include ../../erlang.mk" > $(DEPS_DIR)/$1/Makefile endef # We use flock/lockf when available to avoid concurrency issues. define dep_autopatch_fetch_rebar - if command -v flock >/dev/null; then \ - flock $(ERLANG_MK_TMP)/rebar.lock sh -c "$(call dep_autopatch_fetch_rebar2)"; \ - elif command -v lockf >/dev/null; then \ - lockf $(ERLANG_MK_TMP)/rebar.lock sh -c "$(call dep_autopatch_fetch_rebar2)"; \ - else \ - $(call dep_autopatch_fetch_rebar2); \ - fi + $(call maybe_flock,$(ERLANG_MK_TMP)/rebar.lock,$(call dep_autopatch_fetch_rebar2)) endef define dep_autopatch_fetch_rebar2 @@ -3865,11 +769,11 @@ define dep_autopatch_fetch_rebar2 endef define dep_autopatch_rebar - if [ -f $(DEPS_DIR)/$(1)/Makefile ]; then \ - mv $(DEPS_DIR)/$(1)/Makefile $(DEPS_DIR)/$(1)/Makefile.orig.mk; \ + if [ -f $(DEPS_DIR)/$1/Makefile ]; then \ + mv $(DEPS_DIR)/$1/Makefile $(DEPS_DIR)/$1/Makefile.orig.mk; \ fi; \ - $(call erlang,$(call dep_autopatch_rebar.erl,$(1))); \ - rm -f $(DEPS_DIR)/$(1)/ebin/$(1).app + $(call erlang,$(call dep_autopatch_rebar.erl,$1)); \ + rm -f $(DEPS_DIR)/$1/ebin/$1.app endef define dep_autopatch_rebar.erl @@ -3935,7 +839,6 @@ define dep_autopatch_rebar.erl GetHexVsn2 = fun(N, NP) -> case file:consult("$(call core_native_path,$(DEPS_DIR)/$1/rebar.lock)") of {ok, Lock} -> - io:format("~p~n", [Lock]), LockPkgs = case lists:keyfind("1.2.0", 1, Lock) of {_, LP} -> LP; @@ -3949,10 +852,8 @@ define dep_autopatch_rebar.erl end, if is_list(LockPkgs) -> - io:format("~p~n", [LockPkgs]), case lists:keyfind(atom_to_binary(N, latin1), 1, LockPkgs) of {_, {pkg, _, Vsn}, _} -> - io:format("~p~n", [Vsn]), {N, {hex, NP, binary_to_list(Vsn)}}; _ -> false @@ -3988,6 +889,12 @@ define dep_autopatch_rebar.erl GetHexVsn3Common(N, NP, S0); (N, NP, S) -> {N, {hex, NP, S}} end, + ConvertCommit = fun + ({branch, C}) -> C; + ({ref, C}) -> C; + ({tag, C}) -> C; + (C) -> C + end, fun() -> File = case lists:keyfind(deps, 1, Conf) of false -> []; @@ -4003,16 +910,15 @@ define dep_autopatch_rebar.erl _ -> false end of false -> ok; + {Name, {git_subdir, Repo, Commit, SubDir}} -> + Write(io_lib:format("DEPS += ~s\ndep_~s = git-subfolder ~s ~s ~s~n", [Name, Name, Repo, ConvertCommit(Commit), SubDir])); {Name, Source} -> {Method, Repo, Commit} = case Source of {hex, NPV, V} -> {hex, V, NPV}; {git, R} -> {git, R, master}; - {M, R, {branch, C}} -> {M, R, C}; - {M, R, {ref, C}} -> {M, R, C}; - {M, R, {tag, C}} -> {M, R, C}; {M, R, C} -> {M, R, C} end, - Write(io_lib:format("DEPS += ~s\ndep_~s = ~s ~s ~s~n", [Name, Name, Method, Repo, Commit])) + Write(io_lib:format("DEPS += ~s\ndep_~s = ~s ~s ~s~n", [Name, Name, Method, Repo, ConvertCommit(Commit)])) end end || Dep <- Deps] end end(), @@ -4242,7 +1148,7 @@ define dep_autopatch_appsrc.erl case filelib:is_regular(AppSrcIn) of false -> ok; true -> - {ok, [{application, $(1), L0}]} = file:consult(AppSrcIn), + {ok, [{application, $1, L0}]} = file:consult(AppSrcIn), L1 = lists:keystore(modules, 1, L0, {modules, []}), L2 = case lists:keyfind(vsn, 1, L1) of {_, git} -> lists:keyreplace(vsn, 1, L1, {vsn, lists:droplast(os:cmd("git -C $(DEPS_DIR)/$1 describe --dirty --tags --always"))}); @@ -4250,7 +1156,7 @@ define dep_autopatch_appsrc.erl _ -> L1 end, L3 = case lists:keyfind(registered, 1, L2) of false -> [{registered, []}|L2]; _ -> L2 end, - ok = file:write_file(AppSrcOut, io_lib:format("~p.~n", [{application, $(1), L3}])), + ok = file:write_file(AppSrcOut, io_lib:format("~p.~n", [{application, $1, L3}])), case AppSrcOut of AppSrcIn -> ok; _ -> ok = file:delete(AppSrcIn) end end, halt() @@ -4260,45 +1166,46 @@ ifeq ($(CACHE_DEPS),1) define dep_cache_fetch_git mkdir -p $(CACHE_DIR)/git; \ - if test -d "$(join $(CACHE_DIR)/git/,$(call dep_name,$1))"; then \ - cd $(join $(CACHE_DIR)/git/,$(call dep_name,$1)); \ - if ! git checkout -q $(call dep_commit,$1); then \ - git remote set-url origin $(call dep_repo,$1) && \ + if test -d "$(join $(CACHE_DIR)/git/,$(call query_name,$1))"; then \ + cd $(join $(CACHE_DIR)/git/,$(call query_name,$1)); \ + if ! git checkout -q $(call query_version,$1); then \ + git remote set-url origin $(call query_repo_git,$1) && \ git pull --all && \ - git cat-file -e $(call dep_commit,$1) 2>/dev/null; \ + git cat-file -e $(call query_version_git,$1) 2>/dev/null; \ fi; \ else \ - git clone -q -n -- $(call dep_repo,$1) $(join $(CACHE_DIR)/git/,$(call dep_name,$1)); \ + git clone -q -n -- $(call query_repo_git,$1) $(join $(CACHE_DIR)/git/,$(call query_name,$1)); \ fi; \ - git clone -q --branch $(call dep_commit,$1) --single-branch -- $(join $(CACHE_DIR)/git/,$(call dep_name,$1)) $2 + git clone -q --single-branch -- $(join $(CACHE_DIR)/git/,$(call query_name,$1)) $2; \ + cd $2 && git checkout -q $(call query_version_git,$1) endef define dep_fetch_git - $(call dep_cache_fetch_git,$1,$(DEPS_DIR)/$(call dep_name,$1)); + $(call dep_cache_fetch_git,$1,$(DEPS_DIR)/$(call query_name,$1)); endef define dep_fetch_git-subfolder mkdir -p $(ERLANG_MK_TMP)/git-subfolder; \ - $(call dep_cache_fetch_git,$1,$(ERLANG_MK_TMP)/git-subfolder/$(call dep_name,$1)); \ - ln -s $(ERLANG_MK_TMP)/git-subfolder/$(call dep_name,$1)/$(word 4,$(dep_$1)) \ - $(DEPS_DIR)/$(call dep_name,$1); + $(call dep_cache_fetch_git,$1,$(ERLANG_MK_TMP)/git-subfolder/$(call query_name,$1)); \ + ln -s $(ERLANG_MK_TMP)/git-subfolder/$(call query_name,$1)/$(word 4,$(dep_$1)) \ + $(DEPS_DIR)/$(call query_name,$1); endef else define dep_fetch_git - git clone -q -n -- $(call dep_repo,$1) $(DEPS_DIR)/$(call dep_name,$1); \ - cd $(DEPS_DIR)/$(call dep_name,$1) && git checkout -q $(call dep_commit,$1); + git clone -q -n -- $(call query_repo_git,$1) $(DEPS_DIR)/$(call query_name,$1); \ + cd $(DEPS_DIR)/$(call query_name,$1) && git checkout -q $(call query_version_git,$1); endef define dep_fetch_git-subfolder mkdir -p $(ERLANG_MK_TMP)/git-subfolder; \ - git clone -q -n -- $(call dep_repo,$1) \ - $(ERLANG_MK_TMP)/git-subfolder/$(call dep_name,$1); \ - cd $(ERLANG_MK_TMP)/git-subfolder/$(call dep_name,$1) \ - && git checkout -q $(call dep_commit,$1); \ - ln -s $(ERLANG_MK_TMP)/git-subfolder/$(call dep_name,$1)/$(word 4,$(dep_$1)) \ - $(DEPS_DIR)/$(call dep_name,$1); + git clone -q -n -- $(call query_repo_git-subfolder,$1) \ + $(ERLANG_MK_TMP)/git-subfolder/$(call query_name,$1); \ + cd $(ERLANG_MK_TMP)/git-subfolder/$(call query_name,$1) \ + && git checkout -q $(call query_version_git-subfolder,$1); \ + ln -s $(ERLANG_MK_TMP)/git-subfolder/$(call query_name,$1)/$(word 4,$(dep_$1)) \ + $(DEPS_DIR)/$(call query_name,$1); endef endif @@ -4308,20 +1215,34 @@ define dep_fetch_git-submodule endef define dep_fetch_hg - hg clone -q -U $(call dep_repo,$(1)) $(DEPS_DIR)/$(call dep_name,$(1)); \ - cd $(DEPS_DIR)/$(call dep_name,$(1)) && hg update -q $(call dep_commit,$(1)); + hg clone -q -U $(call query_repo_hg,$1) $(DEPS_DIR)/$(call query_name,$1); \ + cd $(DEPS_DIR)/$(call query_name,$1) && hg update -q $(call query_version_hg,$1); endef define dep_fetch_svn - svn checkout -q $(call dep_repo,$(1)) $(DEPS_DIR)/$(call dep_name,$(1)); + svn checkout -q $(call query_repo_svn,$1) $(DEPS_DIR)/$(call query_name,$1); endef define dep_fetch_cp - cp -R $(call dep_repo,$(1)) $(DEPS_DIR)/$(call dep_name,$(1)); + cp -R $(call query_repo_cp,$1) $(DEPS_DIR)/$(call query_name,$1); endef define dep_fetch_ln - ln -s $(call dep_repo,$(1)) $(DEPS_DIR)/$(call dep_name,$(1)); + ln -s $(call query_repo_ln,$1) $(DEPS_DIR)/$(call query_name,$1); +endef + +define hex_get_tarball.erl + {ok, _} = application:ensure_all_started(ssl), + {ok, _} = application:ensure_all_started(inets), + Config = $(hex_config.erl), + case hex_repo:get_tarball(Config, <<"$1">>, <<"$(strip $2)">>) of + {ok, {200, _, Tarball}} -> + ok = file:write_file("$(call core_native_path,$3)", Tarball), + halt(0); + {ok, {Status, _, Errors}} -> + io:format("Error ~b: ~0p~n", [Status, Errors]), + halt(79) + end endef ifeq ($(CACHE_DEPS),1) @@ -4329,9 +1250,10 @@ ifeq ($(CACHE_DEPS),1) # Hex only has a package version. No need to look in the Erlang.mk packages. define dep_fetch_hex mkdir -p $(CACHE_DIR)/hex $(DEPS_DIR)/$1; \ - $(eval hex_tar_name=$(if $(word 3,$(dep_$1)),$(word 3,$(dep_$1)),$1)-$(strip $(word 2,$(dep_$1))).tar) \ - $(if $(wildcard $(CACHE_DIR)/hex/$(hex_tar_name)),,$(call core_http_get,$(CACHE_DIR)/hex/$(hex_tar_name),\ - https://repo.hex.pm/tarballs/$(hex_tar_name);)) \ + $(eval hex_pkg_name := $(if $(word 3,$(dep_$1)),$(word 3,$(dep_$1)),$1)) \ + $(eval hex_tar_name := $(hex_pkg_name)-$(strip $(word 2,$(dep_$1))).tar) \ + $(if $(wildcard $(CACHE_DIR)/hex/$(hex_tar_name)),,\ + $(call erlang,$(call hex_get_tarball.erl,$(hex_pkg_name),$(word 2,$(dep_$1)),$(CACHE_DIR)/hex/$(hex_tar_name)));) \ tar -xOf $(CACHE_DIR)/hex/$(hex_tar_name) contents.tar.gz | tar -C $(DEPS_DIR)/$1 -xzf -; endef @@ -4340,58 +1262,76 @@ else # Hex only has a package version. No need to look in the Erlang.mk packages. define dep_fetch_hex mkdir -p $(ERLANG_MK_TMP)/hex $(DEPS_DIR)/$1; \ - $(call core_http_get,$(ERLANG_MK_TMP)/hex/$1.tar,\ - https://repo.hex.pm/tarballs/$(if $(word 3,$(dep_$1)),$(word 3,$(dep_$1)),$1)-$(strip $(word 2,$(dep_$1))).tar); \ + $(call erlang,$(call hex_get_tarball.erl,$(if $(word 3,$(dep_$1)),$(word 3,$(dep_$1)),$1),$(word 2,$(dep_$1)),$(ERLANG_MK_TMP)/hex/$1.tar)); \ tar -xOf $(ERLANG_MK_TMP)/hex/$1.tar contents.tar.gz | tar -C $(DEPS_DIR)/$1 -xzf -; endef endif define dep_fetch_fail - echo "Error: Unknown or invalid dependency: $(1)." >&2; \ + echo "Error: Unknown or invalid dependency: $1." >&2; \ exit 78; endef -# Kept for compatibility purposes with older Erlang.mk configuration. -define dep_fetch_legacy - $(warning WARNING: '$(1)' dependency configuration uses deprecated format.) \ - git clone -q -n -- $(word 1,$(dep_$(1))) $(DEPS_DIR)/$(1); \ - cd $(DEPS_DIR)/$(1) && git checkout -q $(if $(word 2,$(dep_$(1))),$(word 2,$(dep_$(1))),master); -endef - define dep_target -$(DEPS_DIR)/$(call dep_name,$1): | $(ERLANG_MK_TMP) - $(eval DEP_NAME := $(call dep_name,$1)) +$(DEPS_DIR)/$(call query_name,$1): $(if $(filter elixir,$(BUILD_DEPS) $(DEPS)),$(if $(filter-out elixir,$1),$(DEPS_DIR)/elixir/ebin/dep_built)) $(if $(filter hex,$(call query_fetch_method,$1)),$(if $(wildcard $(DEPS_DIR)/$(call query_name,$1)),,$(DEPS_DIR)/hex_core/ebin/dep_built)) | $(ERLANG_MK_TMP) + $(eval DEP_NAME := $(call query_name,$1)) $(eval DEP_STR := $(if $(filter $1,$(DEP_NAME)),$1,"$1 ($(DEP_NAME))")) $(verbose) if test -d $(APPS_DIR)/$(DEP_NAME); then \ echo "Error: Dependency" $(DEP_STR) "conflicts with application found in $(APPS_DIR)/$(DEP_NAME)." >&2; \ exit 17; \ fi $(verbose) mkdir -p $(DEPS_DIR) - $(dep_verbose) $(call dep_fetch_$(strip $(call dep_fetch,$(1))),$(1)) - $(verbose) if [ -f $(DEPS_DIR)/$(1)/configure.ac -o -f $(DEPS_DIR)/$(1)/configure.in ] \ - && [ ! -f $(DEPS_DIR)/$(1)/configure ]; then \ + $(dep_verbose) $(call dep_fetch_$(strip $(call query_fetch_method,$1)),$1) + $(verbose) if [ -f $(DEPS_DIR)/$1/configure.ac -o -f $(DEPS_DIR)/$1/configure.in ] \ + && [ ! -f $(DEPS_DIR)/$1/configure ]; then \ echo " AUTO " $(DEP_STR); \ - cd $(DEPS_DIR)/$(1) && autoreconf -Wall -vif -I m4; \ + cd $(DEPS_DIR)/$1 && autoreconf -Wall -vif -I m4; \ fi - $(verbose) if [ -f $(DEPS_DIR)/$(DEP_NAME)/configure ]; then \ echo " CONF " $(DEP_STR); \ cd $(DEPS_DIR)/$(DEP_NAME) && ./configure; \ fi -ifeq ($(filter $(1),$(NO_AUTOPATCH)),) - $(verbose) $$(MAKE) --no-print-directory autopatch-$(DEP_NAME) +ifeq ($(filter $1,$(NO_AUTOPATCH)),) + $(verbose) AUTOPATCH_METHOD=`$(call dep_autopatch_detect,$1)`; \ + if [ $$$$? -eq 99 ]; then \ + echo "Elixir is currently disabled. Please set 'ELIXIR = system' in the Makefile to enable"; \ + exit 99; \ + fi; \ + $$(MAKE) --no-print-directory autopatch-$(DEP_NAME) AUTOPATCH_METHOD=$$$$AUTOPATCH_METHOD endif -.PHONY: autopatch-$(call dep_name,$1) +.PHONY: autopatch-$(call query_name,$1) -autopatch-$(call dep_name,$1):: - $(verbose) if [ "$1" = "elixir" -a "$(ELIXIR_PATCH)" ]; then \ - ln -s lib/elixir/ebin $(DEPS_DIR)/elixir/; \ - else \ - $$(call dep_autopatch,$(call dep_name,$1)) \ - fi +ifeq ($1,elixir) +autopatch-elixir:: + $$(verbose) ln -s lib/elixir/ebin $(DEPS_DIR)/elixir/ +else +autopatch-$(call query_name,$1):: + $$(autopatch_verbose) $$(call dep_autopatch_for_$(AUTOPATCH_METHOD),$(call query_name,$1)) +endif endef +# We automatically depend on hex_core when the project isn't already. +$(if $(filter hex_core,$(DEPS) $(BUILD_DEPS) $(DOC_DEPS) $(REL_DEPS) $(TEST_DEPS)),,\ + $(eval $(call dep_target,hex_core))) + +$(DEPS_DIR)/hex_core/ebin/dep_built: | $(ERLANG_MK_TMP) + $(verbose) $(call maybe_flock,$(ERLANG_MK_TMP)/hex_core.lock,\ + if [ ! -e $(DEPS_DIR)/hex_core/ebin/dep_built ]; then \ + $(MAKE) $(DEPS_DIR)/hex_core; \ + $(MAKE) -C $(DEPS_DIR)/hex_core IS_DEP=1; \ + touch $(DEPS_DIR)/hex_core/ebin/dep_built; \ + fi) + +$(DEPS_DIR)/elixir/ebin/dep_built: | $(ERLANG_MK_TMP) + $(verbose) $(call maybe_flock,$(ERLANG_MK_TMP)/elixir.lock,\ + if [ ! -e $(DEPS_DIR)/elixir/ebin/dep_built ]; then \ + $(MAKE) $(DEPS_DIR)/elixir; \ + $(MAKE) -C $(DEPS_DIR)/elixir; \ + touch $(DEPS_DIR)/elixir/ebin/dep_built; \ + fi) + $(foreach dep,$(BUILD_DEPS) $(DEPS),$(eval $(call dep_target,$(dep)))) ifndef IS_APP @@ -4536,7 +1476,7 @@ mib_verbose_0 = @echo " MIB " $(filter %.bin %.mib,$(?F)); mib_verbose_2 = set -x; mib_verbose = $(mib_verbose_$(V)) -ifneq ($(wildcard src/),) +ifneq ($(wildcard src/)$(wildcard lib/),) # Targets. @@ -4544,34 +1484,21 @@ app:: $(if $(wildcard ebin/test),beam-cache-restore-app) deps $(verbose) $(MAKE) --no-print-directory $(PROJECT).d $(verbose) $(MAKE) --no-print-directory app-build -ifeq ($(wildcard src/$(PROJECT_MOD).erl),) -define app_file -{application, '$(PROJECT)', [ - {description, "$(PROJECT_DESCRIPTION)"}, - {vsn, "$(PROJECT_VERSION)"},$(if $(IS_DEP), - {id$(comma)$(space)"$(1)"}$(comma)) - {modules, [$(call comma_list,$(2))]}, - {registered, []}, - {applications, [$(call comma_list,kernel stdlib $(OTP_DEPS) $(LOCAL_DEPS) $(OPTIONAL_DEPS) $(foreach dep,$(DEPS),$(call dep_name,$(dep))))]}, - {optional_applications, [$(call comma_list,$(OPTIONAL_DEPS))]}, - {env, $(subst \,\\,$(PROJECT_ENV))}$(if $(findstring {,$(PROJECT_APP_EXTRA_KEYS)),$(comma)$(newline)$(tab)$(subst \,\\,$(PROJECT_APP_EXTRA_KEYS)),) -]}. -endef -else +PROJECT_MOD := $(if $(PROJECT_MOD),$(PROJECT_MOD),$(if $(wildcard src/$(PROJECT)_app.erl),$(PROJECT)_app)) + define app_file {application, '$(PROJECT)', [ {description, "$(PROJECT_DESCRIPTION)"}, {vsn, "$(PROJECT_VERSION)"},$(if $(IS_DEP), - {id$(comma)$(space)"$(1)"}$(comma)) - {modules, [$(call comma_list,$(2))]}, - {registered, [$(call comma_list,$(PROJECT)_sup $(PROJECT_REGISTERED))]}, - {applications, [$(call comma_list,kernel stdlib $(OTP_DEPS) $(LOCAL_DEPS) $(OPTIONAL_DEPS) $(foreach dep,$(DEPS),$(call dep_name,$(dep))))]}, - {optional_applications, [$(call comma_list,$(OPTIONAL_DEPS))]}, - {mod, {$(PROJECT_MOD), []}}, + {id$(comma)$(space)"$1"}$(comma)) + {modules, [$(call comma_list,$2)]}, + {registered, [$(if $(PROJECT_MOD),$(call comma_list,$(if $(filter $(PROJECT_MOD),$(PROJECT)_app),$(PROJECT)_sup) $(PROJECT_REGISTERED)))]}, + {applications, [$(call comma_list,kernel stdlib $(OTP_DEPS) $(LOCAL_DEPS) $(OPTIONAL_DEPS) $(foreach dep,$(DEPS),$(call query_name,$(dep))))]}, + {optional_applications, [$(call comma_list,$(OPTIONAL_DEPS))]},$(if $(PROJECT_MOD), + {mod$(comma)$(space){$(patsubst %,'%',$(PROJECT_MOD))$(comma)$(space)[]}}$(comma)) {env, $(subst \,\\,$(PROJECT_ENV))}$(if $(findstring {,$(PROJECT_APP_EXTRA_KEYS)),$(comma)$(newline)$(tab)$(subst \,\\,$(PROJECT_APP_EXTRA_KEYS)),) ]}. endef -endif app-build: ebin/$(PROJECT).app $(verbose) : @@ -4583,6 +1510,9 @@ ALL_SRC_FILES := $(sort $(call core_find,src/,*)) ERL_FILES := $(filter %.erl,$(ALL_SRC_FILES)) CORE_FILES := $(filter %.core,$(ALL_SRC_FILES)) +ALL_LIB_FILES := $(sort $(call core_find,lib/,*)) +EX_FILES := $(filter-out lib/mix/%,$(filter %.ex,$(ALL_SRC_FILES) $(ALL_LIB_FILES))) + # ASN.1 files. ifneq ($(wildcard asn1/),) @@ -4591,7 +1521,7 @@ ERL_FILES += $(addprefix src/,$(patsubst %.asn1,%.erl,$(notdir $(ASN1_FILES)))) define compile_asn1 $(verbose) mkdir -p include/ - $(asn1_verbose) erlc -v -I include/ -o asn1/ +noobj $(ERLC_ASN1_OPTS) $(1) + $(asn1_verbose) erlc -v -I include/ -o asn1/ +noobj $(ERLC_ASN1_OPTS) $1 $(verbose) mv asn1/*.erl src/ -$(verbose) mv asn1/*.hrl include/ $(verbose) mv asn1/*.asn1db include/ @@ -4753,26 +1683,26 @@ define makedep.erl [233] -> unicode:characters_to_binary(Output0); _ -> Output0 end, - ok = file:write_file("$(1)", Output), + ok = file:write_file("$1", Output), halt() endef ifeq ($(if $(NO_MAKEDEP),$(wildcard $(PROJECT).d),),) -$(PROJECT).d:: $(ERL_FILES) $(call core_find,include/,*.hrl) $(MAKEFILE_LIST) +$(PROJECT).d:: $(ERL_FILES) $(EX_FILES) $(call core_find,include/,*.hrl) $(MAKEFILE_LIST) $(makedep_verbose) $(call erlang,$(call makedep.erl,$@)) endif ifeq ($(IS_APP)$(IS_DEP),) -ifneq ($(words $(ERL_FILES) $(CORE_FILES) $(ASN1_FILES) $(MIB_FILES) $(XRL_FILES) $(YRL_FILES)),0) +ifneq ($(words $(ERL_FILES) $(EX_FILES) $(CORE_FILES) $(ASN1_FILES) $(MIB_FILES) $(XRL_FILES) $(YRL_FILES) $(EX_FILES)),0) # Rebuild everything when the Makefile changes. $(ERLANG_MK_TMP)/last-makefile-change: $(MAKEFILE_LIST) | $(ERLANG_MK_TMP) $(verbose) if test -f $@; then \ - touch $(ERL_FILES) $(CORE_FILES) $(ASN1_FILES) $(MIB_FILES) $(XRL_FILES) $(YRL_FILES); \ + touch $(ERL_FILES) $(EX_FILES) $(CORE_FILES) $(ASN1_FILES) $(MIB_FILES) $(XRL_FILES) $(YRL_FILES) $(EX_FILES); \ touch -c $(PROJECT).d; \ fi $(verbose) touch $@ -$(ERL_FILES) $(CORE_FILES) $(ASN1_FILES) $(MIB_FILES) $(XRL_FILES) $(YRL_FILES):: $(ERLANG_MK_TMP)/last-makefile-change +$(ERL_FILES) $(EX_FILES) $(CORE_FILES) $(ASN1_FILES) $(MIB_FILES) $(XRL_FILES) $(YRL_FILES):: $(ERLANG_MK_TMP)/last-makefile-change ebin/$(PROJECT).app:: $(ERLANG_MK_TMP)/last-makefile-change endif endif @@ -4789,7 +1719,7 @@ ebin/: define compile_erl $(erlc_verbose) erlc -v $(if $(IS_DEP),$(filter-out -Werror,$(ERLC_OPTS)),$(ERLC_OPTS)) -o ebin/ \ - -pa ebin/ -I include/ $(filter-out $(ERLC_EXCLUDE_PATHS),$(COMPILE_FIRST_PATHS) $(1)) + -pa ebin/ -I include/ $(filter-out $(ERLC_EXCLUDE_PATHS),$(COMPILE_FIRST_PATHS) $1) endef define validate_app_file @@ -4799,13 +1729,16 @@ define validate_app_file end endef -ebin/$(PROJECT).app:: $(ERL_FILES) $(CORE_FILES) $(wildcard src/$(PROJECT).app.src) - $(eval FILES_TO_COMPILE := $(filter-out src/$(PROJECT).app.src,$?)) +ebin/$(PROJECT).app:: $(ERL_FILES) $(CORE_FILES) $(wildcard src/$(PROJECT).app.src) $(EX_FILES) + $(eval FILES_TO_COMPILE := $(filter-out $(EX_FILES) src/$(PROJECT).app.src,$?)) $(if $(strip $(FILES_TO_COMPILE)),$(call compile_erl,$(FILES_TO_COMPILE))) + $(if $(filter $(ELIXIR),disable),,$(if $(filter $?,$(EX_FILES)),$(elixirc_verbose) $(eval MODULES := $(shell $(call erlang,$(call compile_ex.erl,$(EX_FILES))))))) + $(eval ELIXIR_COMP_FAILED := $(if $(filter _ERROR_,$(firstword $(MODULES))),true,false)) # Older git versions do not have the --first-parent flag. Do without in that case. + $(verbose) if $(ELIXIR_COMP_FAILED); then exit 1; fi $(eval GITDESCRIBE := $(shell git describe --dirty --abbrev=7 --tags --always --first-parent 2>/dev/null \ || git describe --dirty --abbrev=7 --tags --always 2>/dev/null || true)) - $(eval MODULES := $(patsubst %,'%',$(sort $(notdir $(basename \ + $(eval MODULES := $(MODULES) $(patsubst %,'%',$(sort $(notdir $(basename \ $(filter-out $(ERLC_EXCLUDE_PATHS),$(ERL_FILES) $(CORE_FILES) $(BEAM_FILES))))))) ifeq ($(wildcard src/$(PROJECT).app.src),) $(app_verbose) printf '$(subst %,%%,$(subst $(newline),\n,$(subst ','\'',$(call app_file,$(GITDESCRIBE),$(MODULES)))))' \ @@ -4839,6 +1772,208 @@ clean-app: endif +# Copyright (c) 2024, Tyler Hughes +# Copyright (c) 2024, Loïc Hoguin +# This file is part of erlang.mk and subject to the terms of the ISC License. + +# Elixir is automatically enabled in all cases except when +# an Erlang project uses an Elixir dependency. In that case +# $(ELIXIR) must be set explicitly. +ELIXIR ?= $(if $(filter elixir,$(BUILD_DEPS) $(DEPS)),dep,$(if $(EX_FILES),system,disable)) +export ELIXIR + +ifeq ($(ELIXIR),system) +# We expect 'elixir' to be on the path. +ELIXIR_LIBS ?= $(dir $(shell readlink -f `which elixir`))/../lib +ELIXIR_LIBS := $(ELIXIR_LIBS) +export ELIXIR_LIBS +ERL_LIBS := $(ERL_LIBS):$(ELIXIR_LIBS) +else +ifeq ($(ELIXIR),dep) +ERL_LIBS := $(ERL_LIBS):$(DEPS_DIR)/elixir/lib/ +endif +endif + +elixirc_verbose_0 = @echo " EXC $(words $(EX_FILES)) files"; +elixirc_verbose_2 = set -x; +elixirc_verbose = $(elixirc_verbose_$(V)) + +# Unfortunately this currently requires Elixir. +# https://github.com/jelly-beam/verl is a good choice +# for an Erlang implementation, but we already have to +# pull hex_core and Rebar3 so adding yet another pull +# is annoying, especially one that would be necessary +# every time we autopatch Rebar projects. Wait and see. +define hex_version_resolver.erl + HexVersionResolve = fun(Name, Req) -> + application:ensure_all_started(ssl), + application:ensure_all_started(inets), + Config = $(hex_config.erl), + case hex_repo:get_package(Config, atom_to_binary(Name)) of + {ok, {200, _RespHeaders, Package}} -> + #{releases := List} = Package, + {value, #{version := Version}} = lists:search(fun(#{version := Vsn}) -> + M = list_to_atom("Elixir.Version"), + F = list_to_atom("match?"), + M:F(Vsn, Req) + end, List), + {ok, Version}; + {ok, {Status, _, Errors}} -> + {error, Status, Errors} + end + end, + HexVersionResolveAndPrint = fun(Name, Req) -> + case HexVersionResolve(Name, Req) of + {ok, Version} -> + io:format("~s", [Version]), + halt(0); + {error, Status, Errors} -> + io:format("Error ~b: ~0p~n", [Status, Errors]), + halt(77) + end + end +endef + +define dep_autopatch_mix.erl + $(call hex_version_resolver.erl), + {ok, _} = application:ensure_all_started(elixir), + {ok, _} = application:ensure_all_started(mix), + MixFile = <<"$(call core_native_path,$(DEPS_DIR)/$1/mix.exs)">>, + {Mod, Bin} = + case elixir_compiler:file(MixFile, fun(_File, _LexerPid) -> ok end) of + [{T = {_, _}, _CheckerPid}] -> T; + [T = {_, _}] -> T + end, + {module, Mod} = code:load_binary(Mod, binary_to_list(MixFile), Bin), + Project = Mod:project(), + Application = try Mod:application() catch error:undef -> [] end, + StartMod = case lists:keyfind(mod, 1, Application) of + {mod, {StartMod0, _StartArgs}} -> + atom_to_list(StartMod0); + _ -> + "" + end, + Write = fun (Text) -> + file:write_file("$(call core_native_path,$(DEPS_DIR)/$1/Makefile)", Text, [append]) + end, + Write([ + "PROJECT = ", atom_to_list(proplists:get_value(app, Project)), "\n" + "PROJECT_DESCRIPTION = ", proplists:get_value(description, Project, ""), "\n" + "PROJECT_VERSION = ", proplists:get_value(version, Project, ""), "\n" + "PROJECT_MOD = ", StartMod, "\n" + "define PROJECT_ENV\n", + io_lib:format("~p", [proplists:get_value(env, Application, [])]), "\n" + "endef\n\n"]), + ExtraApps = lists:usort([eex, elixir, logger, mix] ++ proplists:get_value(extra_applications, Application, [])), + Write(["LOCAL_DEPS += ", lists:join(" ", [atom_to_list(App) || App <- ExtraApps]), "\n\n"]), + Deps = proplists:get_value(deps, Project, []) -- [elixir_make], + IsRequiredProdDep = fun(Opts) -> + (proplists:get_value(optional, Opts) =/= true) + andalso + case proplists:get_value(only, Opts, prod) of + prod -> true; + L when is_list(L) -> lists:member(prod, L); + _ -> false + end + end, + lists:foreach(fun + ({Name, Req}) when is_binary(Req) -> + {ok, Vsn} = HexVersionResolve(Name, Req), + Write(["DEPS += ", atom_to_list(Name), "\n"]), + Write(["dep_", atom_to_list(Name), " = hex ", Vsn, " ", atom_to_list(Name), "\n"]); + ({Name, Opts}) when is_list(Opts) -> + Path = proplists:get_value(path, Opts), + case IsRequiredProdDep(Opts) of + true when Path =/= undefined -> + Write(["DEPS += ", atom_to_list(Name), "\n"]), + Write(["dep_", atom_to_list(Name), " = ln ", Path, "\n"]); + true when Path =:= undefined -> + Write(["DEPS += ", atom_to_list(Name), "\n"]), + io:format(standard_error, "Warning: No version given for ~p.", [Name]); + false -> + ok + end; + ({Name, Req, Opts}) -> + case IsRequiredProdDep(Opts) of + true -> + {ok, Vsn} = HexVersionResolve(Name, Req), + Write(["DEPS += ", atom_to_list(Name), "\n"]), + Write(["dep_", atom_to_list(Name), " = hex ", Vsn, " ", atom_to_list(Name), "\n"]); + false -> + ok + end; + (_) -> + ok + end, Deps), + case lists:member(elixir_make, proplists:get_value(compilers, Project, [])) of + false -> + ok; + true -> + Write("# https://hexdocs.pm/elixir_make/Mix.Tasks.Compile.ElixirMake.html\n"), + MakeVal = fun(Key, Proplist, DefaultVal, DefaultReplacement) -> + case proplists:get_value(Key, Proplist, DefaultVal) of + DefaultVal -> DefaultReplacement; + Value -> Value + end + end, + MakeMakefile = binary_to_list(MakeVal(make_makefile, Project, default, <<"Makefile">>)), + MakeExe = MakeVal(make_executable, Project, default, "$$\(MAKE)"), + MakeCwd = MakeVal(make_cwd, Project, undefined, <<".">>), + MakeTargets = MakeVal(make_targets, Project, [], []), + MakeArgs = MakeVal(make_args, Project, undefined, []), + case file:rename("$(DEPS_DIR)/$1/" ++ MakeMakefile, "$(DEPS_DIR)/$1/elixir_make.mk") of + ok -> ok; + Err = {error, _} -> + io:format(standard_error, "Failed to copy Makefile with error ~p~n", [Err]), + halt(90) + end, + Write(["app::\n" + "\t", MakeExe, " -C ", MakeCwd, " -f $(DEPS_DIR)/$1/elixir_make.mk", + lists:join(" ", MakeTargets), + lists:join(" ", MakeArgs), + "\n\n"]), + case MakeVal(make_clean, Project, nil, undefined) of + undefined -> + ok; + Clean -> + Write(["clean::\n\t", Clean, "\n\n"]) + end + end, + Write("ERLC_OPTS = +debug_info\n\n"), + Write("include $$\(if $$\(ERLANG_MK_FILENAME),$$\(ERLANG_MK_FILENAME),erlang.mk)"), + halt() +endef + +define dep_autopatch_mix + sed 's|\(defmodule.*do\)|\1\n try do\n Code.compiler_options(on_undefined_variable: :warn)\n rescue _ -> :ok\n end\n|g' -i $(DEPS_DIR)/$(1)/mix.exs; \ + $(MAKE) $(DEPS_DIR)/hex_core/ebin/dep_built; \ + MIX_ENV="$(if $(MIX_ENV),$(strip $(MIX_ENV)),prod)" \ + $(call erlang,$(call dep_autopatch_mix.erl,$1)) +endef + +# We change the group leader so the Elixir io:format output +# isn't captured as we need to either print the modules on +# success, or print _ERROR_ on failure. +define compile_ex.erl + {ok, _} = application:ensure_all_started(elixir), + {ok, _} = application:ensure_all_started(mix), + ModCode = list_to_atom("Elixir.Code"), + ModCode:put_compiler_option(ignore_module_conflict, true), + ModComp = list_to_atom("Elixir.Kernel.ParallelCompiler"), + ModMixProject = list_to_atom("Elixir.Mix.Project"), + erlang:group_leader(whereis(standard_error), self()), + ModMixProject:in_project($(PROJECT), ".", [], fun(_MixFile) -> + case ModComp:compile_to_path([$(call comma_list,$(patsubst %,<<"%">>,$1))], <<"ebin/">>) of + {ok, Modules, _} -> + lists:foreach(fun(E) -> io:format(user, "~p ", [E]) end, Modules), + halt(0); + {error, _ErroredModules, _WarnedModules} -> + io:format(user, "_ERROR_", []), + halt(1) + end + end) +endef + # Copyright (c) 2016, Loïc Hoguin # Copyright (c) 2015, Viktor Söderqvist # This file is part of erlang.mk and subject to the terms of the ISC License. @@ -4923,7 +2058,7 @@ test_erlc_verbose = $(test_erlc_verbose_$(V)) define compile_test_erl $(test_erlc_verbose) erlc -v $(TEST_ERLC_OPTS) -o $(TEST_DIR) \ - -pa ebin/ -I include/ $(1) + -pa ebin/ -I include/ $1 endef ERL_TEST_FILES = $(call core_find,$(TEST_DIR)/,*.erl) @@ -4977,6 +2112,8 @@ endif .PHONY: rebar.config +compat_ref = {$(shell (git -C $(DEPS_DIR)/$1 show-ref -q --verify "refs/heads/$2" && echo branch) || (git -C $(DEPS_DIR)/$1 show-ref -q --verify "refs/tags/$2" && echo tag) || echo ref),"$2"} + # We strip out -Werror because we don't want to fail due to # warnings when used as a dependency. @@ -4995,231 +2132,208 @@ endef define compat_rebar_config {deps, [ $(call comma_list,$(foreach d,$(DEPS),\ - $(if $(filter hex,$(call dep_fetch,$d)),\ - {$(call dep_name,$d)$(comma)"$(call dep_repo,$d)"},\ - {$(call dep_name,$d)$(comma)".*"$(comma){git,"$(call dep_repo,$d)"$(comma)"$(call dep_commit,$d)"}}))) + $(if $(filter hex,$(call query_fetch_method,$d)),\ + {$(call query_name,$d)$(comma)"$(call query_version_hex,$d)"},\ + {$(call query_name,$d)$(comma)".*"$(comma){git,"$(call query_repo,$d)"$(comma)$(call compat_ref,$(call query_name,$d),$(call query_version,$d))}}))) ]}. {erl_opts, $(call compat_erlc_opts_to_list,$(ERLC_OPTS))}. endef -rebar.config: +rebar.config: deps $(gen_verbose) $(call core_render,compat_rebar_config,rebar.config) -# Copyright (c) 2015-2016, Loïc Hoguin -# This file is part of erlang.mk and subject to the terms of the ISC License. +define tpl_application.app.src +{application, project_name, [ + {description, ""}, + {vsn, "0.1.0"}, + {id, "git"}, + {modules, []}, + {registered, []}, + {applications, [ + kernel, + stdlib + ]}, + {mod, {project_name_app, []}}, + {env, []} +]}. +endef -ifeq ($(filter asciideck,$(DEPS) $(DOC_DEPS)),asciideck) +define tpl_application +-module(project_name_app). +-behaviour(application). -.PHONY: asciidoc asciidoc-guide asciidoc-manual install-asciidoc distclean-asciidoc-guide distclean-asciidoc-manual +-export([start/2]). +-export([stop/1]). -# Core targets. +start(_Type, _Args) -> + project_name_sup:start_link(). -docs:: asciidoc +stop(_State) -> + ok. +endef -distclean:: distclean-asciidoc-guide distclean-asciidoc-manual +define tpl_apps_Makefile +PROJECT = project_name +PROJECT_DESCRIPTION = New project +PROJECT_VERSION = 0.1.0 +template_sp +# Make sure we know where the applications are located. +ROOT_DIR ?= rel_root_dir +APPS_DIR ?= .. +DEPS_DIR ?= rel_deps_dir -# Plugin-specific targets. +include rel_root_dir/erlang.mk +endef -asciidoc: asciidoc-guide asciidoc-manual +define tpl_cowboy_http_h +-module(template_name). +-behaviour(cowboy_http_handler). -# User guide. +-export([init/3]). +-export([handle/2]). +-export([terminate/3]). -ifeq ($(wildcard doc/src/guide/book.asciidoc),) -asciidoc-guide: -else -asciidoc-guide: distclean-asciidoc-guide doc-deps - a2x -v -f pdf doc/src/guide/book.asciidoc && mv doc/src/guide/book.pdf doc/guide.pdf - a2x -v -f chunked doc/src/guide/book.asciidoc && mv doc/src/guide/book.chunked/ doc/html/ +-record(state, { +}). -distclean-asciidoc-guide: - $(gen_verbose) rm -rf doc/html/ doc/guide.pdf -endif +init(_, Req, _Opts) -> + {ok, Req, #state{}}. -# Man pages. +handle(Req, State=#state{}) -> + {ok, Req2} = cowboy_req:reply(200, Req), + {ok, Req2, State}. -ASCIIDOC_MANUAL_FILES := $(wildcard doc/src/manual/*.asciidoc) +terminate(_Reason, _Req, _State) -> + ok. +endef -ifeq ($(ASCIIDOC_MANUAL_FILES),) -asciidoc-manual: -else +define tpl_cowboy_loop_h +-module(template_name). +-behaviour(cowboy_loop_handler). -# Configuration. +-export([init/3]). +-export([info/3]). +-export([terminate/3]). -MAN_INSTALL_PATH ?= /usr/local/share/man -MAN_SECTIONS ?= 3 7 -MAN_PROJECT ?= $(shell echo $(PROJECT) | sed 's/^./\U&\E/') -MAN_VERSION ?= $(PROJECT_VERSION) +-record(state, { +}). -# Plugin-specific targets. +init(_, Req, _Opts) -> + {loop, Req, #state{}, 5000, hibernate}. -define asciidoc2man.erl -try - [begin - io:format(" ADOC ~s~n", [F]), - ok = asciideck:to_manpage(asciideck:parse_file(F), #{ - compress => gzip, - outdir => filename:dirname(F), - extra2 => "$(MAN_PROJECT) $(MAN_VERSION)", - extra3 => "$(MAN_PROJECT) Function Reference" - }) - end || F <- [$(shell echo $(addprefix $(comma)\",$(addsuffix \",$1)) | sed 's/^.//')]], - halt(0) -catch C:E$(if $V,:S) -> - io:format("Exception: ~p:~p~n$(if $V,Stacktrace: ~p~n)", [C, E$(if $V,$(comma) S)]), - halt(1) -end. +info(_Info, Req, State) -> + {loop, Req, State, hibernate}. + +terminate(_Reason, _Req, _State) -> + ok. endef -asciidoc-manual:: doc-deps +define tpl_cowboy_rest_h +-module(template_name). -asciidoc-manual:: $(ASCIIDOC_MANUAL_FILES) - $(gen_verbose) $(call erlang,$(call asciidoc2man.erl,$?)) - $(verbose) $(foreach s,$(MAN_SECTIONS),mkdir -p doc/man$s/ && mv doc/src/manual/*.$s.gz doc/man$s/;) +-export([init/3]). +-export([content_types_provided/2]). +-export([get_html/2]). -install-docs:: install-asciidoc +init(_, _Req, _Opts) -> + {upgrade, protocol, cowboy_rest}. -install-asciidoc: asciidoc-manual - $(foreach s,$(MAN_SECTIONS),\ - mkdir -p $(MAN_INSTALL_PATH)/man$s/ && \ - install -g `id -g` -o `id -u` -m 0644 doc/man$s/*.gz $(MAN_INSTALL_PATH)/man$s/;) +content_types_provided(Req, State) -> + {[{{<<"text">>, <<"html">>, '*'}, get_html}], Req, State}. -distclean-asciidoc-manual: - $(gen_verbose) rm -rf $(addprefix doc/man,$(MAN_SECTIONS)) -endif -endif +get_html(Req, State) -> + {<<"This is REST!">>, Req, State}. +endef -# Copyright (c) 2014-2016, Loïc Hoguin -# This file is part of erlang.mk and subject to the terms of the ISC License. +define tpl_cowboy_websocket_h +-module(template_name). +-behaviour(cowboy_websocket_handler). -.PHONY: bootstrap bootstrap-lib bootstrap-rel new list-templates +-export([init/3]). +-export([websocket_init/3]). +-export([websocket_handle/3]). +-export([websocket_info/3]). +-export([websocket_terminate/3]). -# Core targets. +-record(state, { +}). -help:: - $(verbose) printf "%s\n" "" \ - "Bootstrap targets:" \ - " bootstrap Generate a skeleton of an OTP application" \ - " bootstrap-lib Generate a skeleton of an OTP library" \ - " bootstrap-rel Generate the files needed to build a release" \ - " new-app in=NAME Create a new local OTP application NAME" \ - " new-lib in=NAME Create a new local OTP library NAME" \ - " new t=TPL n=NAME Generate a module NAME based on the template TPL" \ - " new t=T n=N in=APP Generate a module NAME based on the template TPL in APP" \ - " list-templates List available templates" +init(_, _, _) -> + {upgrade, protocol, cowboy_websocket}. -# Bootstrap templates. +websocket_init(_, Req, _Opts) -> + Req2 = cowboy_req:compact(Req), + {ok, Req2, #state{}}. -define bs_appsrc -{application, $p, [ - {description, ""}, - {vsn, "0.1.0"}, - {id, "git"}, - {modules, []}, - {registered, []}, - {applications, [ - kernel, - stdlib - ]}, - {mod, {$p_app, []}}, - {env, []} -]}. -endef +websocket_handle({text, Data}, Req, State) -> + {reply, {text, Data}, Req, State}; +websocket_handle({binary, Data}, Req, State) -> + {reply, {binary, Data}, Req, State}; +websocket_handle(_Frame, Req, State) -> + {ok, Req, State}. -define bs_appsrc_lib -{application, $p, [ - {description, ""}, - {vsn, "0.1.0"}, - {id, "git"}, - {modules, []}, - {registered, []}, - {applications, [ - kernel, - stdlib - ]} -]}. -endef +websocket_info(_Info, Req, State) -> + {ok, Req, State}. -# To prevent autocompletion issues with ZSH, we add "include erlang.mk" -# separately during the actual bootstrap. -define bs_Makefile -PROJECT = $p -PROJECT_DESCRIPTION = New project -PROJECT_VERSION = 0.1.0 -$(if $(SP), -# Whitespace to be used when creating files from templates. -SP = $(SP) -) +websocket_terminate(_Reason, _Req, _State) -> + ok. endef -define bs_apps_Makefile -PROJECT = $p -PROJECT_DESCRIPTION = New project -PROJECT_VERSION = 0.1.0 -$(if $(SP), -# Whitespace to be used when creating files from templates. -SP = $(SP) -) -# Make sure we know where the applications are located. -ROOT_DIR ?= $(call core_relpath,$(dir $(ERLANG_MK_FILENAME)),$(APPS_DIR)/app) -APPS_DIR ?= .. -DEPS_DIR ?= $(call core_relpath,$(DEPS_DIR),$(APPS_DIR)/app) +define tpl_gen_fsm +-module(template_name). +-behaviour(gen_fsm). -include $$(ROOT_DIR)/erlang.mk -endef +%% API. +-export([start_link/0]). -define bs_app --module($p_app). --behaviour(application). +%% gen_fsm. +-export([init/1]). +-export([state_name/2]). +-export([handle_event/3]). +-export([state_name/3]). +-export([handle_sync_event/4]). +-export([handle_info/3]). +-export([terminate/3]). +-export([code_change/4]). --export([start/2]). --export([stop/1]). +-record(state, { +}). -start(_Type, _Args) -> - $p_sup:start_link(). +%% API. -stop(_State) -> - ok. -endef +-spec start_link() -> {ok, pid()}. +start_link() -> + gen_fsm:start_link(?MODULE, [], []). -define bs_relx_config -{release, {$p_release, "1"}, [$p, sasl, runtime_tools]}. -{dev_mode, false}. -{include_erts, true}. -{extended_start_script, true}. -{sys_config, "config/sys.config"}. -{vm_args, "config/vm.args"}. -endef +%% gen_fsm. -define bs_sys_config -[ -]. -endef +init([]) -> + {ok, state_name, #state{}}. -define bs_vm_args --name $p@127.0.0.1 --setcookie $p --heart -endef +state_name(_Event, StateData) -> + {next_state, state_name, StateData}. -# Normal templates. +handle_event(_Event, StateName, StateData) -> + {next_state, StateName, StateData}. -define tpl_supervisor --module($(n)). --behaviour(supervisor). +state_name(_Event, _From, StateData) -> + {reply, ignored, state_name, StateData}. --export([start_link/0]). --export([init/1]). +handle_sync_event(_Event, _From, StateName, StateData) -> + {reply, ignored, StateName, StateData}. -start_link() -> - supervisor:start_link({local, ?MODULE}, ?MODULE, []). +handle_info(_Info, StateName, StateData) -> + {next_state, StateName, StateData}. -init([]) -> - Procs = [], - {ok, {{one_for_one, 1, 5}, Procs}}. +terminate(_Reason, _StateName, _StateData) -> + ok. + +code_change(_OldVsn, StateName, StateData, _Extra) -> + {ok, StateName, StateData}. endef define tpl_gen_server --module($(n)). +-module(template_name). -behaviour(gen_server). %% API. @@ -5263,88 +2377,8 @@ code_change(_OldVsn, State, _Extra) -> {ok, State}. endef -define tpl_module --module($(n)). --export([]). -endef - -define tpl_cowboy_http --module($(n)). --behaviour(cowboy_http_handler). - --export([init/3]). --export([handle/2]). --export([terminate/3]). - --record(state, { -}). - -init(_, Req, _Opts) -> - {ok, Req, #state{}}. - -handle(Req, State=#state{}) -> - {ok, Req2} = cowboy_req:reply(200, Req), - {ok, Req2, State}. - -terminate(_Reason, _Req, _State) -> - ok. -endef - -define tpl_gen_fsm --module($(n)). --behaviour(gen_fsm). - -%% API. --export([start_link/0]). - -%% gen_fsm. --export([init/1]). --export([state_name/2]). --export([handle_event/3]). --export([state_name/3]). --export([handle_sync_event/4]). --export([handle_info/3]). --export([terminate/3]). --export([code_change/4]). - --record(state, { -}). - -%% API. - --spec start_link() -> {ok, pid()}. -start_link() -> - gen_fsm:start_link(?MODULE, [], []). - -%% gen_fsm. - -init([]) -> - {ok, state_name, #state{}}. - -state_name(_Event, StateData) -> - {next_state, state_name, StateData}. - -handle_event(_Event, StateName, StateData) -> - {next_state, StateName, StateData}. - -state_name(_Event, _From, StateData) -> - {reply, ignored, state_name, StateData}. - -handle_sync_event(_Event, _From, StateName, StateData) -> - {reply, ignored, StateName, StateData}. - -handle_info(_Info, StateName, StateData) -> - {next_state, StateName, StateData}. - -terminate(_Reason, _StateName, _StateData) -> - ok. - -code_change(_OldVsn, StateName, StateData, _Extra) -> - {ok, StateName, StateData}. -endef - define tpl_gen_statem --module($(n)). +-module(template_name). -behaviour(gen_statem). %% API. @@ -5388,80 +2422,27 @@ code_change(_OldVsn, StateName, StateData, _Extra) -> {ok, StateName, StateData}. endef -define tpl_cowboy_loop --module($(n)). --behaviour(cowboy_loop_handler). - --export([init/3]). --export([info/3]). --export([terminate/3]). - --record(state, { -}). - -init(_, Req, _Opts) -> - {loop, Req, #state{}, 5000, hibernate}. - -info(_Info, Req, State) -> - {loop, Req, State, hibernate}. - -terminate(_Reason, _Req, _State) -> - ok. -endef - -define tpl_cowboy_rest --module($(n)). - --export([init/3]). --export([content_types_provided/2]). --export([get_html/2]). - -init(_, _Req, _Opts) -> - {upgrade, protocol, cowboy_rest}. - -content_types_provided(Req, State) -> - {[{{<<"text">>, <<"html">>, '*'}, get_html}], Req, State}. - -get_html(Req, State) -> - {<<"This is REST!">>, Req, State}. +define tpl_library.app.src +{application, project_name, [ + {description, ""}, + {vsn, "0.1.0"}, + {id, "git"}, + {modules, []}, + {registered, []}, + {applications, [ + kernel, + stdlib + ]} +]}. endef -define tpl_cowboy_ws --module($(n)). --behaviour(cowboy_websocket_handler). - --export([init/3]). --export([websocket_init/3]). --export([websocket_handle/3]). --export([websocket_info/3]). --export([websocket_terminate/3]). - --record(state, { -}). - -init(_, _, _) -> - {upgrade, protocol, cowboy_websocket}. - -websocket_init(_, Req, _Opts) -> - Req2 = cowboy_req:compact(Req), - {ok, Req2, #state{}}. - -websocket_handle({text, Data}, Req, State) -> - {reply, {text, Data}, Req, State}; -websocket_handle({binary, Data}, Req, State) -> - {reply, {binary, Data}, Req, State}; -websocket_handle(_Frame, Req, State) -> - {ok, Req, State}. - -websocket_info(_Info, Req, State) -> - {ok, Req, State}. - -websocket_terminate(_Reason, _Req, _State) -> - ok. +define tpl_module +-module(template_name). +-export([]). endef define tpl_ranch_protocol --module($(n)). +-module(template_name). -behaviour(ranch_protocol). -export([start_link/4]). @@ -5488,6 +2469,152 @@ loop(State) -> loop(State). endef +define tpl_relx.config +{release, {project_name_release, "1"}, [project_name, sasl, runtime_tools]}. +{dev_mode, false}. +{include_erts, true}. +{extended_start_script, true}. +{sys_config, "config/sys.config"}. +{vm_args, "config/vm.args"}. +endef + +define tpl_supervisor +-module(template_name). +-behaviour(supervisor). + +-export([start_link/0]). +-export([init/1]). + +start_link() -> + supervisor:start_link({local, ?MODULE}, ?MODULE, []). + +init([]) -> + Procs = [], + {ok, {{one_for_one, 1, 5}, Procs}}. +endef + +define tpl_sys.config +[ +]. +endef + +define tpl_top_Makefile +PROJECT = project_name +PROJECT_DESCRIPTION = New project +PROJECT_VERSION = 0.1.0 +template_sp +include erlang.mk +endef + +define tpl_vm.args +-name project_name@127.0.0.1 +-setcookie project_name +-heart +endef + + +# Copyright (c) 2015-2016, Loïc Hoguin +# This file is part of erlang.mk and subject to the terms of the ISC License. + +ifeq ($(filter asciideck,$(DEPS) $(DOC_DEPS)),asciideck) + +.PHONY: asciidoc asciidoc-guide asciidoc-manual install-asciidoc distclean-asciidoc-guide distclean-asciidoc-manual + +# Core targets. + +docs:: asciidoc + +distclean:: distclean-asciidoc-guide distclean-asciidoc-manual + +# Plugin-specific targets. + +asciidoc: asciidoc-guide asciidoc-manual + +# User guide. + +ifeq ($(wildcard doc/src/guide/book.asciidoc),) +asciidoc-guide: +else +asciidoc-guide: distclean-asciidoc-guide doc-deps + a2x -v -f pdf doc/src/guide/book.asciidoc && mv doc/src/guide/book.pdf doc/guide.pdf + a2x -v -f chunked doc/src/guide/book.asciidoc && mv doc/src/guide/book.chunked/ doc/html/ + +distclean-asciidoc-guide: + $(gen_verbose) rm -rf doc/html/ doc/guide.pdf +endif + +# Man pages. + +ASCIIDOC_MANUAL_FILES := $(wildcard doc/src/manual/*.asciidoc) + +ifeq ($(ASCIIDOC_MANUAL_FILES),) +asciidoc-manual: +else + +# Configuration. + +MAN_INSTALL_PATH ?= /usr/local/share/man +MAN_SECTIONS ?= 3 7 +MAN_PROJECT ?= $(shell echo $(PROJECT) | sed 's/^./\U&\E/') +MAN_VERSION ?= $(PROJECT_VERSION) + +# Plugin-specific targets. + +define asciidoc2man.erl +try + [begin + io:format(" ADOC ~s~n", [F]), + ok = asciideck:to_manpage(asciideck:parse_file(F), #{ + compress => gzip, + outdir => filename:dirname(F), + extra2 => "$(MAN_PROJECT) $(MAN_VERSION)", + extra3 => "$(MAN_PROJECT) Function Reference" + }) + end || F <- [$(shell echo $(addprefix $(comma)\",$(addsuffix \",$1)) | sed 's/^.//')]], + halt(0) +catch C:E$(if $V,:S) -> + io:format("Exception: ~p:~p~n$(if $V,Stacktrace: ~p~n)", [C, E$(if $V,$(comma) S)]), + halt(1) +end. +endef + +asciidoc-manual:: doc-deps + +asciidoc-manual:: $(ASCIIDOC_MANUAL_FILES) + $(gen_verbose) $(call erlang,$(call asciidoc2man.erl,$?)) + $(verbose) $(foreach s,$(MAN_SECTIONS),mkdir -p doc/man$s/ && mv doc/src/manual/*.$s.gz doc/man$s/;) + +install-docs:: install-asciidoc + +install-asciidoc: asciidoc-manual + $(foreach s,$(MAN_SECTIONS),\ + mkdir -p $(MAN_INSTALL_PATH)/man$s/ && \ + install -g `id -g` -o `id -u` -m 0644 doc/man$s/*.gz $(MAN_INSTALL_PATH)/man$s/;) + +distclean-asciidoc-manual: + $(gen_verbose) rm -rf $(addprefix doc/man,$(MAN_SECTIONS)) +endif +endif + +# Copyright (c) 2014-2016, Loïc Hoguin +# This file is part of erlang.mk and subject to the terms of the ISC License. + +.PHONY: bootstrap bootstrap-lib bootstrap-rel new list-templates + +# Core targets. + +help:: + $(verbose) printf "%s\n" "" \ + "Bootstrap targets:" \ + " bootstrap Generate a skeleton of an OTP application" \ + " bootstrap-lib Generate a skeleton of an OTP library" \ + " bootstrap-rel Generate the files needed to build a release" \ + " new-app in=NAME Create a new local OTP application NAME" \ + " new-lib in=NAME Create a new local OTP library NAME" \ + " new t=TPL n=NAME Generate a module NAME based on the template TPL" \ + " new t=T n=N in=APP Generate a module NAME based on the template TPL in APP" \ + " list-templates List available templates" + # Plugin-specific targets. ifndef WS @@ -5498,6 +2625,26 @@ WS = $(tab) endif endif +ifdef SP +define template_sp + +# By default templates indent with a single tab per indentation +# level. Set this variable to the number of spaces you prefer: +SP = $(SP) + +endef +else +template_sp = +endif + +# @todo Additional template placeholders could be added. +subst_template = $(subst rel_root_dir,$(call core_relpath,$(dir $(ERLANG_MK_FILENAME)),$(APPS_DIR)/app),$(subst rel_deps_dir,$(call core_relpath,$(DEPS_DIR),$(APPS_DIR)/app),$(subst template_sp,$(template_sp),$(subst project_name,$p,$(subst template_name,$n,$1))))) + +define core_render_template + $(eval define _tpl_$(1)$(newline)$(call subst_template,$(tpl_$(1)))$(newline)endef) + $(verbose) $(call core_render,_tpl_$(1),$2) +endef + bootstrap: ifneq ($(wildcard src/),) $(error Error: src/ directory already exists) @@ -5506,14 +2653,13 @@ endif $(if $(shell echo $p | LC_ALL=C grep -x "[a-z0-9_]*"),,\ $(error Error: Invalid characters in the application name)) $(eval n := $(PROJECT)_sup) - $(verbose) $(call core_render,bs_Makefile,Makefile) - $(verbose) echo "include erlang.mk" >> Makefile + $(verbose) $(call core_render_template,top_Makefile,Makefile) $(verbose) mkdir src/ ifdef LEGACY - $(verbose) $(call core_render,bs_appsrc,src/$(PROJECT).app.src) + $(verbose) $(call core_render_template,application.app.src,src/$(PROJECT).app.src) endif - $(verbose) $(call core_render,bs_app,src/$(PROJECT)_app.erl) - $(verbose) $(call core_render,tpl_supervisor,src/$(PROJECT)_sup.erl) + $(verbose) $(call core_render_template,application,src/$(PROJECT)_app.erl) + $(verbose) $(call core_render_template,supervisor,src/$(PROJECT)_sup.erl) bootstrap-lib: ifneq ($(wildcard src/),) @@ -5522,11 +2668,10 @@ endif $(eval p := $(PROJECT)) $(if $(shell echo $p | LC_ALL=C grep -x "[a-z0-9_]*"),,\ $(error Error: Invalid characters in the application name)) - $(verbose) $(call core_render,bs_Makefile,Makefile) - $(verbose) echo "include erlang.mk" >> Makefile + $(verbose) $(call core_render_template,top_Makefile,Makefile) $(verbose) mkdir src/ ifdef LEGACY - $(verbose) $(call core_render,bs_appsrc_lib,src/$(PROJECT).app.src) + $(verbose) $(call core_render_template,library.app.src,src/$(PROJECT).app.src) endif bootstrap-rel: @@ -5537,10 +2682,10 @@ ifneq ($(wildcard config/),) $(error Error: config/ directory already exists) endif $(eval p := $(PROJECT)) - $(verbose) $(call core_render,bs_relx_config,relx.config) + $(verbose) $(call core_render_template,relx.config,relx.config) $(verbose) mkdir config/ - $(verbose) $(call core_render,bs_sys_config,config/sys.config) - $(verbose) $(call core_render,bs_vm_args,config/vm.args) + $(verbose) $(call core_render_template,sys.config,config/sys.config) + $(verbose) $(call core_render_template,vm.args,config/vm.args) $(verbose) awk '/^include erlang.mk/ && !ins {print "REL_DEPS += relx";ins=1};{print}' Makefile > Makefile.bak $(verbose) mv Makefile.bak Makefile @@ -5556,12 +2701,12 @@ endif $(error Error: Invalid characters in the application name)) $(eval n := $(in)_sup) $(verbose) mkdir -p $(APPS_DIR)/$p/src/ - $(verbose) $(call core_render,bs_apps_Makefile,$(APPS_DIR)/$p/Makefile) + $(verbose) $(call core_render_template,apps_Makefile,$(APPS_DIR)/$p/Makefile) ifdef LEGACY - $(verbose) $(call core_render,bs_appsrc,$(APPS_DIR)/$p/src/$p.app.src) + $(verbose) $(call core_render_template,application.app.src,$(APPS_DIR)/$p/src/$p.app.src) endif - $(verbose) $(call core_render,bs_app,$(APPS_DIR)/$p/src/$p_app.erl) - $(verbose) $(call core_render,tpl_supervisor,$(APPS_DIR)/$p/src/$p_sup.erl) + $(verbose) $(call core_render_template,application,$(APPS_DIR)/$p/src/$p_app.erl) + $(verbose) $(call core_render_template,supervisor,$(APPS_DIR)/$p/src/$p_sup.erl) new-lib: ifndef in @@ -5574,30 +2719,40 @@ endif $(if $(shell echo $p | LC_ALL=C grep -x "[a-z0-9_]*"),,\ $(error Error: Invalid characters in the application name)) $(verbose) mkdir -p $(APPS_DIR)/$p/src/ - $(verbose) $(call core_render,bs_apps_Makefile,$(APPS_DIR)/$p/Makefile) + $(verbose) $(call core_render_template,apps_Makefile,$(APPS_DIR)/$p/Makefile) ifdef LEGACY - $(verbose) $(call core_render,bs_appsrc_lib,$(APPS_DIR)/$p/src/$p.app.src) + $(verbose) $(call core_render_template,library.app.src,$(APPS_DIR)/$p/src/$p.app.src) endif +# These are not necessary because we don't expose those as "normal" templates. +BOOTSTRAP_TEMPLATES = apps_Makefile top_Makefile \ + application.app.src library.app.src application \ + relx.config sys.config vm.args + +# Templates may override the path they will be written to when using 'new'. +# Only special template paths must be listed. Default is src/template_name.erl +# Substitution is also applied to the paths. Examples: +# +#tplp_top_Makefile = Makefile +#tplp_application.app.src = src/project_name.app.src +#tplp_application = src/project_name_app.erl +#tplp_relx.config = relx.config + +# Erlang.mk bundles its own templates at build time into the erlang.mk file. + new: -ifeq ($(wildcard src/)$(in),) - $(error Error: src/ directory does not exist) -endif -ifndef t - $(error Usage: $(MAKE) new t=TEMPLATE n=NAME [in=APP]) -endif -ifndef n - $(error Usage: $(MAKE) new t=TEMPLATE n=NAME [in=APP]) -endif -ifdef in - $(verbose) $(call core_render,tpl_$(t),$(APPS_DIR)/$(in)/src/$(n).erl) -else - $(verbose) $(call core_render,tpl_$(t),src/$(n).erl) -endif + $(if $(t),,$(error Usage: $(MAKE) new t=TEMPLATE n=NAME [in=APP])) + $(if $(n),,$(error Usage: $(MAKE) new t=TEMPLATE n=NAME [in=APP])) + $(if $(tpl_$(t)),,$(error Error: $t template does not exist; try $(Make) list-templates)) + $(eval dest := $(if $(in),$(APPS_DIR)/$(in)/)$(call subst_template,$(if $(tplp_$(t)),$(tplp_$(t)),src/template_name.erl))) + $(if $(wildcard $(dir $(dest))),,$(error Error: $(dir $(dest)) directory does not exist)) + $(if $(wildcard $(dest)),$(error Error: The file $(dest) already exists)) + $(eval p := $(PROJECT)) + $(call core_render_template,$(t),$(dest)) list-templates: $(verbose) @echo Available templates: - $(verbose) printf " %s\n" $(sort $(patsubst tpl_%,%,$(filter tpl_%,$(.VARIABLES)))) + $(verbose) printf " %s\n" $(sort $(filter-out $(BOOTSTRAP_TEMPLATES),$(patsubst tpl_%,%,$(filter tpl_%,$(.VARIABLES))))) # Copyright (c) 2014-2016, Loïc Hoguin # This file is part of erlang.mk and subject to the terms of the ISC License. @@ -5894,7 +3049,7 @@ ci-setup:: ci-extra:: $(verbose) : -ci_verbose_0 = @echo " CI " $(1); +ci_verbose_0 = @echo " CI " $1; ci_verbose = $(ci_verbose_$(V)) define ci_target @@ -6291,17 +3446,45 @@ help:: # Plugin-specific targets. -escript-zip:: FULL=1 -escript-zip:: deps app +ALL_ESCRIPT_DEPS_DIRS = $(LOCAL_DEPS_DIRS) $(addprefix $(DEPS_DIR)/,$(foreach dep,$(filter-out $(IGNORE_DEPS),$(DEPS)),$(call query_name,$(dep)))) + +ESCRIPT_RUNTIME_DEPS_FILE ?= $(ERLANG_MK_TMP)/escript-deps.log + +escript-list-runtime-deps: +ifeq ($(IS_DEP),) + $(verbose) rm -f $(ESCRIPT_RUNTIME_DEPS_FILE) +endif + $(verbose) touch $(ESCRIPT_RUNTIME_DEPS_FILE) + $(verbose) set -e; for dep in $(ALL_ESCRIPT_DEPS_DIRS) ; do \ + if ! grep -qs ^$$dep$$ $(ESCRIPT_RUNTIME_DEPS_FILE); then \ + echo $$dep >> $(ESCRIPT_RUNTIME_DEPS_FILE); \ + if grep -qs -E "^[[:blank:]]*include[[:blank:]]+(erlang\.mk|.*/erlang\.mk|.*ERLANG_MK_FILENAME.*)$$" \ + $$dep/GNUmakefile $$dep/makefile $$dep/Makefile; then \ + $(MAKE) -C $$dep escript-list-runtime-deps \ + IS_DEP=1 \ + ESCRIPT_RUNTIME_DEPS_FILE=$(ESCRIPT_RUNTIME_DEPS_FILE); \ + fi \ + fi \ + done +ifeq ($(IS_DEP),) + $(verbose) sort < $(ESCRIPT_RUNTIME_DEPS_FILE) | uniq > $(ESCRIPT_RUNTIME_DEPS_FILE).sorted + $(verbose) mv $(ESCRIPT_RUNTIME_DEPS_FILE).sorted $(ESCRIPT_RUNTIME_DEPS_FILE) +endif + +escript-prepare: deps app + $(MAKE) escript-list-runtime-deps + +escript-zip:: escript-prepare $(verbose) mkdir -p $(dir $(abspath $(ESCRIPT_ZIP_FILE))) $(verbose) rm -f $(abspath $(ESCRIPT_ZIP_FILE)) - $(gen_verbose) cd .. && $(ESCRIPT_ZIP) $(abspath $(ESCRIPT_ZIP_FILE)) $(PROJECT)/ebin/* + $(gen_verbose) cd .. && $(ESCRIPT_ZIP) $(abspath $(ESCRIPT_ZIP_FILE)) $(notdir $(CURDIR))/ebin/* ifneq ($(DEPS),) $(verbose) cd $(DEPS_DIR) && $(ESCRIPT_ZIP) $(abspath $(ESCRIPT_ZIP_FILE)) \ $(subst $(DEPS_DIR)/,,$(addsuffix /*,$(wildcard \ - $(addsuffix /ebin,$(shell cat $(ERLANG_MK_TMP)/deps.log))))) + $(addsuffix /ebin,$(shell cat $(ESCRIPT_RUNTIME_DEPS_FILE)))))) endif +# @todo Only generate the zip file if there were changes. escript:: escript-zip $(gen_verbose) printf "%s\n" \ "#!$(ESCRIPT_SHEBANG)" \ @@ -6319,6 +3502,11 @@ distclean-escript: .PHONY: eunit apps-eunit +# Eunit can be disabled by setting this to any other value. +EUNIT ?= system + +ifeq ($(EUNIT),system) + # Configuration EUNIT_OPTS ?= @@ -6377,40 +3565,11 @@ apps-eunit: test-build endif endif +endif + # Copyright (c) 2020, Loïc Hoguin # This file is part of erlang.mk and subject to the terms of the ISC License. -HEX_CORE_GIT ?= https://github.com/hexpm/hex_core -HEX_CORE_COMMIT ?= v0.7.0 - -PACKAGES += hex_core -pkg_hex_core_name = hex_core -pkg_hex_core_description = Reference implementation of Hex specifications -pkg_hex_core_homepage = $(HEX_CORE_GIT) -pkg_hex_core_fetch = git -pkg_hex_core_repo = $(HEX_CORE_GIT) -pkg_hex_core_commit = $(HEX_CORE_COMMIT) - -# We automatically depend on hex_core when the project isn't already. -$(if $(filter hex_core,$(DEPS) $(BUILD_DEPS) $(DOC_DEPS) $(REL_DEPS) $(TEST_DEPS)),,\ - $(eval $(call dep_target,hex_core))) - -hex-core: $(DEPS_DIR)/hex_core - $(verbose) if [ ! -e $(DEPS_DIR)/hex_core/ebin/dep_built ]; then \ - $(MAKE) -C $(DEPS_DIR)/hex_core IS_DEP=1; \ - touch $(DEPS_DIR)/hex_core/ebin/dep_built; \ - fi - -# @todo This must also apply to fetching. -HEX_CONFIG ?= - -define hex_config.erl - begin - Config0 = hex_core:default_config(), - Config0$(HEX_CONFIG) - end -endef - define hex_user_create.erl {ok, _} = application:ensure_all_started(ssl), {ok, _} = application:ensure_all_started(inets), @@ -6429,7 +3588,7 @@ define hex_user_create.erl endef # The $(info ) call inserts a new line after the password prompt. -hex-user-create: hex-core +hex-user-create: $(DEPS_DIR)/hex_core/ebin/dep_built $(if $(HEX_USERNAME),,$(eval HEX_USERNAME := $(shell read -p "Username: " username; echo $$username))) $(if $(HEX_PASSWORD),,$(eval HEX_PASSWORD := $(shell stty -echo; read -p "Password: " password; stty echo; echo $$password) $(info ))) $(if $(HEX_EMAIL),,$(eval HEX_EMAIL := $(shell read -p "Email: " email; echo $$email))) @@ -6459,7 +3618,7 @@ define hex_key_add.erl end endef -hex-key-add: hex-core +hex-key-add: $(DEPS_DIR)/hex_core/ebin/dep_built $(if $(HEX_USERNAME),,$(eval HEX_USERNAME := $(shell read -p "Username: " username; echo $$username))) $(if $(HEX_PASSWORD),,$(eval HEX_PASSWORD := $(shell stty -echo; read -p "Password: " password; stty echo; echo $$password) $(info ))) $(gen_verbose) $(call erlang,$(call hex_key_add.erl,$(HEX_USERNAME),$(HEX_PASSWORD),\ @@ -6481,7 +3640,7 @@ HEX_TARBALL_FILES ?= \ $(sort $(call core_find,priv/,*)) \ $(wildcard README*) \ $(wildcard rebar.config) \ - $(sort $(call core_find,src/,*)) + $(sort $(if $(LEGACY),$(filter-out src/$(PROJECT).app.src,$(call core_find,src/,*)),$(call core_find,src/,*))) HEX_TARBALL_OUTPUT_FILE ?= $(ERLANG_MK_TMP)/$(PROJECT).tar @@ -6501,7 +3660,7 @@ define hex_tarball_create.erl <<"$(if $(subst hex,,$(call query_fetch_method,$d)),$d,$(if $(word 3,$(dep_$d)),$(word 3,$(dep_$d)),$d))">> => #{ <<"app">> => <<"$d">>, <<"optional">> => false, - <<"requirement">> => <<"$(call query_version,$d)">> + <<"requirement">> => <<"$(if $(hex_req_$d),$(strip $(hex_req_$d)),$(call query_version,$d))">> },) $(if $(DEPS),dummy => dummy) }, @@ -6537,7 +3696,7 @@ hex_tar_verbose_0 = @echo " TAR $(notdir $(ERLANG_MK_TMP))/$(@F)"; hex_tar_verbose_2 = set -x; hex_tar_verbose = $(hex_tar_verbose_$(V)) -$(HEX_TARBALL_OUTPUT_FILE): hex-core app +$(HEX_TARBALL_OUTPUT_FILE): $(DEPS_DIR)/hex_core/ebin/dep_built app $(hex_tar_verbose) $(call erlang,$(call hex_tarball_create.erl)) hex-tarball-create: $(HEX_TARBALL_OUTPUT_FILE) @@ -6588,14 +3747,14 @@ define hex_release_publish.erl end endef -hex-release-tarball: hex-core $(HEX_TARBALL_OUTPUT_FILE) +hex-release-tarball: $(DEPS_DIR)/hex_core/ebin/dep_built $(HEX_TARBALL_OUTPUT_FILE) $(verbose) $(call erlang,$(call hex_release_publish_summary.erl)) -hex-release-publish: hex-core hex-release-tarball +hex-release-publish: $(DEPS_DIR)/hex_core/ebin/dep_built hex-release-tarball $(if $(HEX_SECRET),,$(eval HEX_SECRET := $(shell stty -echo; read -p "Secret: " secret; stty echo; echo $$secret) $(info ))) $(gen_verbose) $(call erlang,$(call hex_release_publish.erl,$(HEX_SECRET),false)) -hex-release-replace: hex-core hex-release-tarball +hex-release-replace: $(DEPS_DIR)/hex_core/ebin/dep_built hex-release-tarball $(if $(HEX_SECRET),,$(eval HEX_SECRET := $(shell stty -echo; read -p "Secret: " secret; stty echo; echo $$secret) $(info ))) $(gen_verbose) $(call erlang,$(call hex_release_publish.erl,$(HEX_SECRET),true)) @@ -6614,7 +3773,7 @@ define hex_release_delete.erl end endef -hex-release-delete: hex-core +hex-release-delete: $(DEPS_DIR)/hex_core/ebin/dep_built $(if $(HEX_SECRET),,$(eval HEX_SECRET := $(shell stty -echo; read -p "Secret: " secret; stty echo; echo $$secret) $(info ))) $(gen_verbose) $(call erlang,$(call hex_release_delete.erl,$(HEX_SECRET))) @@ -6634,7 +3793,7 @@ define hex_release_retire.erl end endef -hex-release-retire: hex-core +hex-release-retire: $(DEPS_DIR)/hex_core/ebin/dep_built $(if $(HEX_SECRET),,$(eval HEX_SECRET := $(shell stty -echo; read -p "Secret: " secret; stty echo; echo $$secret) $(info ))) $(gen_verbose) $(call erlang,$(call hex_release_retire.erl,$(HEX_SECRET),\ $(if $(HEX_VERSION),$(HEX_VERSION),$(PROJECT_VERSION)),\ @@ -6656,7 +3815,7 @@ define hex_release_unretire.erl end endef -hex-release-unretire: hex-core +hex-release-unretire: $(DEPS_DIR)/hex_core/ebin/dep_built $(if $(HEX_SECRET),,$(eval HEX_SECRET := $(shell stty -echo; read -p "Secret: " secret; stty echo; echo $$secret) $(info ))) $(gen_verbose) $(call erlang,$(call hex_release_unretire.erl,$(HEX_SECRET),\ $(if $(HEX_VERSION),$(HEX_VERSION),$(PROJECT_VERSION)))) @@ -6665,7 +3824,7 @@ HEX_DOCS_DOC_DIR ?= doc/ HEX_DOCS_TARBALL_FILES ?= $(sort $(call core_find,$(HEX_DOCS_DOC_DIR),*)) HEX_DOCS_TARBALL_OUTPUT_FILE ?= $(ERLANG_MK_TMP)/$(PROJECT)-docs.tar.gz -$(HEX_DOCS_TARBALL_OUTPUT_FILE): hex-core app docs +$(HEX_DOCS_TARBALL_OUTPUT_FILE): $(DEPS_DIR)/hex_core/ebin/dep_built app docs $(hex_tar_verbose) tar czf $(HEX_DOCS_TARBALL_OUTPUT_FILE) -C $(HEX_DOCS_DOC_DIR) \ $(HEX_DOCS_TARBALL_FILES:$(HEX_DOCS_DOC_DIR)%=%) @@ -6689,7 +3848,7 @@ define hex_docs_publish.erl end endef -hex-docs-publish: hex-core hex-docs-tarball-create +hex-docs-publish: $(DEPS_DIR)/hex_core/ebin/dep_built hex-docs-tarball-create $(if $(HEX_SECRET),,$(eval HEX_SECRET := $(shell stty -echo; read -p "Secret: " secret; stty echo; echo $$secret) $(info ))) $(gen_verbose) $(call erlang,$(call hex_docs_publish.erl,$(HEX_SECRET))) @@ -6709,7 +3868,7 @@ define hex_docs_delete.erl end endef -hex-docs-delete: hex-core +hex-docs-delete: $(DEPS_DIR)/hex_core/ebin/dep_built $(if $(HEX_SECRET),,$(eval HEX_SECRET := $(shell stty -echo; read -p "Secret: " secret; stty echo; echo $$secret) $(info ))) $(gen_verbose) $(call erlang,$(call hex_docs_delete.erl,$(HEX_SECRET),\ $(if $(HEX_VERSION),$(HEX_VERSION),$(PROJECT_VERSION)))) @@ -6940,17 +4099,13 @@ endef relx-rel: rel-deps app $(call erlang,$(call relx_release.erl),-pa ebin/) $(verbose) $(MAKE) relx-post-rel -ifeq ($(RELX_TAR),1) - $(call erlang,$(call relx_tar.erl),-pa ebin/) -endif + $(if $(filter-out 0,$(RELX_TAR)),$(call erlang,$(call relx_tar.erl),-pa ebin/)) relx-relup: rel-deps app $(call erlang,$(call relx_release.erl),-pa ebin/) $(MAKE) relx-post-rel $(call erlang,$(call relx_relup.erl),-pa ebin/) -ifeq ($(RELX_TAR),1) - $(call erlang,$(call relx_tar.erl),-pa ebin/) -endif + $(if $(filter-out 0,$(RELX_TAR)),$(call erlang,$(call relx_tar.erl),-pa ebin/)) distclean-relx-rel: $(gen_verbose) rm -rf $(RELX_OUTPUT_DIR) @@ -6993,6 +4148,7 @@ ifeq ($(PLATFORM),msys2) RELX_REL_EXT := .cmd endif +run:: RELX_TAR := 0 run:: all $(verbose) $(RELX_OUTPUT_DIR)/$(RELX_REL_NAME)/bin/$(RELX_REL_NAME)$(RELX_REL_EXT) $(RELX_REL_CMD) @@ -7721,9 +4877,7 @@ endif ifeq ($(IS_APP)$(IS_DEP),) $(verbose) sort < $(ERLANG_MK_RECURSIVE_TMP_LIST) | \ uniq > $(ERLANG_MK_RECURSIVE_TMP_LIST).sorted - $(verbose) cmp -s $(ERLANG_MK_RECURSIVE_TMP_LIST).sorted $@ \ - || mv $(ERLANG_MK_RECURSIVE_TMP_LIST).sorted $@ - $(verbose) rm -f $(ERLANG_MK_RECURSIVE_TMP_LIST).sorted + $(verbose) mv $(ERLANG_MK_RECURSIVE_TMP_LIST).sorted $@ $(verbose) rm $(ERLANG_MK_RECURSIVE_TMP_LIST) endif endif # ifneq ($(SKIP_DEPS),) @@ -7750,14 +4904,14 @@ list-deps list-doc-deps list-rel-deps list-test-deps list-shell-deps: QUERY ?= name fetch_method repo version define query_target -$(1): $(2) clean-tmp-query.log +$1: $2 clean-tmp-query.log ifeq ($(IS_APP)$(IS_DEP),) - $(verbose) rm -f $(4) + $(verbose) rm -f $4 endif - $(verbose) $(foreach dep,$(3),\ - echo $(PROJECT): $(foreach q,$(QUERY),$(call query_$(q),$(dep))) >> $(4) ;) - $(if $(filter-out query-deps,$(1)),,\ - $(verbose) set -e; for dep in $(3) ; do \ + $(verbose) $(foreach dep,$3,\ + echo $(PROJECT): $(foreach q,$(QUERY),$(call query_$(q),$(dep))) >> $4 ;) + $(if $(filter-out query-deps,$1),,\ + $(verbose) set -e; for dep in $3 ; do \ if grep -qs ^$$$$dep$$$$ $(ERLANG_MK_TMP)/query.log; then \ :; \ else \ @@ -7766,8 +4920,8 @@ endif fi \ done) ifeq ($(IS_APP)$(IS_DEP),) - $(verbose) touch $(4) - $(verbose) cat $(4) + $(verbose) touch $4 + $(verbose) cat $4 endif endef diff --git a/mk/bazel.mk b/mk/bazel.mk deleted file mode 100644 index 9924fe0f85e1..000000000000 --- a/mk/bazel.mk +++ /dev/null @@ -1,42 +0,0 @@ -BAZELISK ?= /usr/local/bin/bazelisk -ifeq (darwin,$(PLATFORM)) -$(BAZELISK): - brew install bazelisk -else -$(BAZELISK): - $(error Install bazelisk for your platform: https://github.com/bazelbuild/bazelisk) -endif - -define USER_BAZELRC -build --@rules_erlang//:erlang_home=$(shell dirname $$(dirname $$(which erl))) -build --@rules_erlang//:erlang_version=$(shell erl -eval '{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(Version), halt().' -noshell) -build --//:elixir_home=$(shell dirname $$(dirname $$(which iex)))/lib/elixir - -# rabbitmqctl wait shells out to 'ps', which is broken in the bazel macOS -# sandbox (https://github.com/bazelbuild/bazel/issues/7448) -# adding "--spawn_strategy=local" to the invocation is a workaround -build --spawn_strategy=local - -build --incompatible_strict_action_env - -# run one test at a time on the local machine -build --test_strategy=exclusive - -# don't re-run flakes automatically on the local machine -build --flaky_test_attempts=1 - -build:buildbuddy --remote_header=x-buildbuddy-api-key=YOUR_API_KEY -endef - -user.bazelrc: export USER_BAZELRC -user.bazelrc: - echo "$$USER_BAZELRC" > $@ - -bazel-test: $(BAZELISK) | user.bazelrc -ifeq ($(DEP),) - $(error DEP must be set to the dependency that this test is for, e.g. deps/rabbit) -endif -ifeq ($(SUITE),) - $(error SUITE must be set to the ct suite to run, e.g. queue_type if DEP=deps/rabbit) -endif - $(BAZELISK) test //deps/$(notdir $(DEP)):$(SUITE)_SUITE diff --git a/mk/rabbitmq-mix.mk b/mk/rabbitmq-mix.mk deleted file mode 100644 index c6f73163e04a..000000000000 --- a/mk/rabbitmq-mix.mk +++ /dev/null @@ -1,21 +0,0 @@ -# This file is copied to rabbitmq_cli (and possibly other Elixir-based -# components) when the RabbitMQ source archive is created, to allow -# those Elixir applications to build even with no access to Hex.pm, -# using the bundled sources only. - -HEX_OFFLINE := 1 - -# mix(1) centralizes its data in `$MIX_HOME`. When unset, it defaults -# to something under `$XDG_DATA_HOME`/`$XDG_CONFIG_HOME` or `$HOME` -# depending on the Elixir version. -# -# We store those data for offline build in `$(DEPS_DIR)`. - -override MIX_HOME := $(DEPS_DIR)/.mix - -# In addition to `$MIX_HOME`, we still have to set `$HEX_HOME` which is used to -# find `~/.hex` where the Hex.pm cache and packages are stored. - -override HEX_HOME := $(DEPS_DIR)/.hex - -export HEX_OFFLINE MIX_HOME HEX_HOME diff --git a/moduleindex.yaml b/moduleindex.yaml deleted file mode 100755 index 72ac46f4c621..000000000000 --- a/moduleindex.yaml +++ /dev/null @@ -1,1344 +0,0 @@ -accept: -- accept_encoding_header -- accept_header -- accept_neg -- accept_parser -amqp_client: -- amqp_auth_mechanisms -- amqp_channel -- amqp_channel_sup -- amqp_channel_sup_sup -- amqp_channels_manager -- amqp_client -- amqp_connection -- amqp_connection_sup -- amqp_connection_type_sup -- amqp_direct_connection -- amqp_direct_consumer -- amqp_gen_connection -- amqp_gen_consumer -- amqp_main_reader -- amqp_network_connection -- amqp_rpc_client -- amqp_rpc_server -- amqp_selective_consumer -- amqp_ssl -- amqp_sup -- amqp_uri -- amqp_util -- rabbit_routing_util -- uri_parser -amqp10_client: -- amqp10_client -- amqp10_client_app -- amqp10_client_connection -- amqp10_client_connection_sup -- amqp10_client_frame_reader -- amqp10_client_session -- amqp10_client_sessions_sup -- amqp10_client_socket -- amqp10_client_sup -- amqp10_client_types -- amqp10_msg -amqp10_common: -- amqp10_binary_generator -- amqp10_binary_parser -- amqp10_framing -- amqp10_framing0 -- amqp10_util -- serial_number -aten: -- aten -- aten_app -- aten_detect -- aten_detector -- aten_emitter -- aten_sink -- aten_sup -base64url: -- base64url -cowboy: -- cowboy -- cowboy_app -- cowboy_bstr -- cowboy_children -- cowboy_clear -- cowboy_clock -- cowboy_compress_h -- cowboy_constraints -- cowboy_decompress_h -- cowboy_handler -- cowboy_http -- cowboy_http2 -- cowboy_loop -- cowboy_metrics_h -- cowboy_middleware -- cowboy_req -- cowboy_rest -- cowboy_router -- cowboy_static -- cowboy_stream -- cowboy_stream_h -- cowboy_sub_protocol -- cowboy_sup -- cowboy_tls -- cowboy_tracer_h -- cowboy_websocket -cowlib: -- cow_base64url -- cow_cookie -- cow_date -- cow_hpack -- cow_http -- cow_http2 -- cow_http2_machine -- cow_http_hd -- cow_http_struct_hd -- cow_http_te -- cow_iolists -- cow_link -- cow_mimetypes -- cow_multipart -- cow_qs -- cow_spdy -- cow_sse -- cow_uri -- cow_uri_template -- cow_ws -credentials_obfuscation: -- credentials_obfuscation -- credentials_obfuscation_app -- credentials_obfuscation_pbe -- credentials_obfuscation_sup -- credentials_obfuscation_svc -ct_helper: -- ct_helper -- ct_helper_error_h -cuttlefish: -- conf_parse -- cuttlefish -- cuttlefish_advanced -- cuttlefish_bytesize -- cuttlefish_conf -- cuttlefish_datatypes -- cuttlefish_duration -- cuttlefish_duration_parse -- cuttlefish_effective -- cuttlefish_enum -- cuttlefish_error -- cuttlefish_escript -- cuttlefish_flag -- cuttlefish_generator -- cuttlefish_mapping -- cuttlefish_rebar_plugin -- cuttlefish_schema -- cuttlefish_translation -- cuttlefish_unit -- cuttlefish_util -- cuttlefish_validator -- cuttlefish_variable -- cuttlefish_vmargs -eetcd: -- auth_pb -- eetcd -- eetcd_app -- eetcd_auth -- eetcd_auth_gen -- eetcd_cluster -- eetcd_cluster_gen -- eetcd_compare -- eetcd_conn -- eetcd_conn_sup -- eetcd_data_coercion -- eetcd_election -- eetcd_election_gen -- eetcd_grpc -- eetcd_health_gen -- eetcd_kv -- eetcd_kv_gen -- eetcd_lease -- eetcd_lease_gen -- eetcd_lease_sup -- eetcd_lock -- eetcd_lock_gen -- eetcd_maintenance -- eetcd_maintenance_gen -- eetcd_op -- eetcd_stream -- eetcd_sup -- eetcd_watch -- eetcd_watch_gen -- gogo_pb -- health_pb -- kv_pb -- router_pb -emqtt: -- emqtt -- emqtt_cli -- emqtt_frame -- emqtt_inflight -- emqtt_props -- emqtt_quic -- emqtt_quic_connection -- emqtt_quic_stream -- emqtt_secret -- emqtt_sock -- emqtt_ws -enough: -- enough -eunit_formatters: -- binomial_heap -- eunit_progress -gen_batch_server: -- gen_batch_server -getopt: -- getopt -gun: -- gun -- gun_app -- gun_content_handler -- gun_data_h -- gun_http -- gun_http2 -- gun_sse_h -- gun_sup -- gun_tcp -- gun_tls -- gun_ws -- gun_ws_h -horus: -- horus -- horus_cover -- horus_utils -host_triple: -- host_triple -inet_tcp_proxy_dist: -- inet_tcp_proxy_dist -- inet_tcp_proxy_dist_app -- inet_tcp_proxy_dist_conn_sup -- inet_tcp_proxy_dist_controller -- inet_tcp_proxy_dist_sup -jose: -- jose -- jose_app -- jose_base64 -- jose_base64url -- jose_block_encryptor -- jose_chacha20_poly1305 -- jose_chacha20_poly1305_crypto -- jose_chacha20_poly1305_libsodium -- jose_chacha20_poly1305_unsupported -- jose_crypto_compat -- jose_curve25519 -- jose_curve25519_crypto -- jose_curve25519_fallback -- jose_curve25519_libdecaf -- jose_curve25519_libsodium -- jose_curve25519_unsupported -- jose_curve448 -- jose_curve448_crypto -- jose_curve448_fallback -- jose_curve448_libdecaf -- jose_curve448_unsupported -- jose_json -- jose_json_jason -- jose_json_jiffy -- jose_json_jsone -- jose_json_jsx -- jose_json_ojson -- jose_json_poison -- jose_json_poison_compat_encoder -- jose_json_poison_lexical_encoder -- jose_json_thoas -- jose_json_unsupported -- jose_jwa -- jose_jwa_aes -- jose_jwa_aes_kw -- jose_jwa_base64url -- jose_jwa_bench -- jose_jwa_chacha20 -- jose_jwa_chacha20_poly1305 -- jose_jwa_concat_kdf -- jose_jwa_curve25519 -- jose_jwa_curve448 -- jose_jwa_ed25519 -- jose_jwa_ed448 -- jose_jwa_hchacha20 -- jose_jwa_math -- jose_jwa_pkcs1 -- jose_jwa_pkcs5 -- jose_jwa_pkcs7 -- jose_jwa_poly1305 -- jose_jwa_sha3 -- jose_jwa_unsupported -- jose_jwa_x25519 -- jose_jwa_x448 -- jose_jwa_xchacha20 -- jose_jwa_xchacha20_poly1305 -- jose_jwe -- jose_jwe_alg -- jose_jwe_alg_aes_kw -- jose_jwe_alg_c20p_kw -- jose_jwe_alg_dir -- jose_jwe_alg_ecdh_1pu -- jose_jwe_alg_ecdh_es -- jose_jwe_alg_ecdh_ss -- jose_jwe_alg_pbes2 -- jose_jwe_alg_rsa -- jose_jwe_alg_xc20p_kw -- jose_jwe_enc -- jose_jwe_enc_aes -- jose_jwe_enc_c20p -- jose_jwe_enc_xc20p -- jose_jwe_zip -- jose_jwk -- jose_jwk_der -- jose_jwk_kty -- jose_jwk_kty_ec -- jose_jwk_kty_oct -- jose_jwk_kty_okp_ed25519 -- jose_jwk_kty_okp_ed25519ph -- jose_jwk_kty_okp_ed448 -- jose_jwk_kty_okp_ed448ph -- jose_jwk_kty_okp_x25519 -- jose_jwk_kty_okp_x448 -- jose_jwk_kty_rsa -- jose_jwk_oct -- jose_jwk_openssh_key -- jose_jwk_pem -- jose_jwk_set -- jose_jwk_use_enc -- jose_jwk_use_sig -- jose_jws -- jose_jws_alg -- jose_jws_alg_ecdsa -- jose_jws_alg_eddsa -- jose_jws_alg_hmac -- jose_jws_alg_none -- jose_jws_alg_poly1305 -- jose_jws_alg_rsa_pkcs1_v1_5 -- jose_jws_alg_rsa_pss -- jose_jwt -- jose_public_key -- jose_server -- jose_sha3 -- jose_sha3_keccakf1600_driver -- jose_sha3_keccakf1600_nif -- jose_sha3_libdecaf -- jose_sha3_unsupported -- jose_sup -- jose_xchacha20_poly1305 -- jose_xchacha20_poly1305_crypto -- jose_xchacha20_poly1305_libsodium -- jose_xchacha20_poly1305_unsupported -katana_code: -- ktn_code -- ktn_dodger -- ktn_io_string -khepri: -- khepri -- khepri_adv -- khepri_app -- khepri_cluster -- khepri_condition -- khepri_event_handler -- khepri_evf -- khepri_export_erlang -- khepri_import_export -- khepri_machine -- khepri_machine_v0 -- khepri_path -- khepri_pattern_tree -- khepri_payload -- khepri_projection -- khepri_sproc -- khepri_sup -- khepri_tree -- khepri_tx -- khepri_tx_adv -- khepri_utils -khepri_mnesia_migration: -- khepri_mnesia_migration_app -- khepri_mnesia_migration_sup -- kmm_utils -- m2k_cluster_sync -- m2k_cluster_sync_sup -- m2k_export -- m2k_subscriber -- m2k_table_copy -- m2k_table_copy_sup -- m2k_table_copy_sup_sup -- mnesia_to_khepri -- mnesia_to_khepri_converter -- mnesia_to_khepri_example_converter -meck: -- meck -- meck_args_matcher -- meck_code -- meck_code_gen -- meck_cover -- meck_expect -- meck_history -- meck_matcher -- meck_proc -- meck_ret_spec -- meck_util -my_plugin: -- my_plugin -oauth2_client: -- jwt_helper -- oauth2_client -observer_cli: -- observer_cli -- observer_cli_application -- observer_cli_escriptize -- observer_cli_ets -- observer_cli_help -- observer_cli_inet -- observer_cli_lib -- observer_cli_mnesia -- observer_cli_plugin -- observer_cli_port -- observer_cli_process -- observer_cli_store -- observer_cli_system -osiris: -- osiris -- osiris_app -- osiris_bench -- osiris_bloom -- osiris_counters -- osiris_ets -- osiris_log -- osiris_log_shared -- osiris_replica -- osiris_replica_reader -- osiris_replica_reader_sup -- osiris_retention -- osiris_server_sup -- osiris_sup -- osiris_tracking -- osiris_util -- osiris_writer -prometheus: -- prometheus -- prometheus_boolean -- prometheus_buckets -- prometheus_collector -- prometheus_counter -- prometheus_format -- prometheus_gauge -- prometheus_histogram -- prometheus_http -- prometheus_instrumenter -- prometheus_metric -- prometheus_metric_spec -- prometheus_misc -- prometheus_mnesia -- prometheus_mnesia_collector -- prometheus_model -- prometheus_model_helpers -- prometheus_protobuf_format -- prometheus_quantile_summary -- prometheus_registry -- prometheus_summary -- prometheus_sup -- prometheus_test_instrumenter -- prometheus_text_format -- prometheus_time -- prometheus_vm_dist_collector -- prometheus_vm_memory_collector -- prometheus_vm_msacc_collector -- prometheus_vm_statistics_collector -- prometheus_vm_system_info_collector -proper: -- proper -- proper_arith -- proper_array -- proper_dict -- proper_erlang_abstract_code -- proper_fsm -- proper_gb_sets -- proper_gb_trees -- proper_gen -- proper_gen_next -- proper_orddict -- proper_ordsets -- proper_prop_remover -- proper_queue -- proper_sa -- proper_sets -- proper_shrink -- proper_statem -- proper_symb -- proper_target -- proper_transformer -- proper_types -- proper_typeserver -- proper_unicode -- proper_unused_imports_remover -- vararg -quantile_estimator: -- quantile -- quantile_estimator -ra: -- ra -- ra_app -- ra_aux -- ra_bench -- ra_counters -- ra_dbg -- ra_directory -- ra_env -- ra_ets_queue -- ra_file -- ra_file_handle -- ra_flru -- ra_leaderboard -- ra_lib -- ra_log -- ra_log_cache -- ra_log_ets -- ra_log_meta -- ra_log_pre_init -- ra_log_reader -- ra_log_segment -- ra_log_segment_writer -- ra_log_snapshot -- ra_log_sup -- ra_log_wal -- ra_log_wal_sup -- ra_machine -- ra_machine_ets -- ra_machine_simple -- ra_metrics_ets -- ra_monitors -- ra_server -- ra_server_proc -- ra_server_sup -- ra_server_sup_sup -- ra_snapshot -- ra_sup -- ra_system -- ra_system_recover -- ra_system_sup -- ra_systems_sup -rabbit: -- amqqueue -- background_gc -- code_server_cache -- gatherer -- gm -- internal_user -- lqueue -- mc -- mc_amqp -- mc_amqpl -- mc_compat -- mc_util -- mirrored_supervisor -- mirrored_supervisor_sups -- pg_local -- pid_recomposition -- rabbit -- rabbit_access_control -- rabbit_alarm -- rabbit_amqp1_0 -- rabbit_amqp_filtex -- rabbit_amqp_management -- rabbit_amqp_reader -- rabbit_amqp_session -- rabbit_amqp_session_sup -- rabbit_amqp_util -- rabbit_amqp_writer -- rabbit_amqqueue -- rabbit_amqqueue_control -- rabbit_amqqueue_process -- rabbit_amqqueue_sup -- rabbit_amqqueue_sup_sup -- rabbit_auth_backend_internal -- rabbit_auth_mechanism_amqplain -- rabbit_auth_mechanism_anonymous -- rabbit_auth_mechanism_cr_demo -- rabbit_auth_mechanism_plain -- rabbit_autoheal -- rabbit_backing_queue -- rabbit_basic -- rabbit_binding -- rabbit_boot_steps -- rabbit_channel -- rabbit_channel_interceptor -- rabbit_channel_sup -- rabbit_channel_sup_sup -- rabbit_channel_tracking -- rabbit_channel_tracking_handler -- rabbit_classic_queue -- rabbit_classic_queue_index_v2 -- rabbit_classic_queue_store_v2 -- rabbit_client_sup -- rabbit_config -- rabbit_confirms -- rabbit_connection_helper_sup -- rabbit_connection_sup -- rabbit_connection_tracking -- rabbit_connection_tracking_handler -- rabbit_control_pbe -- rabbit_core_ff -- rabbit_core_metrics_gc -- rabbit_credential_validation -- rabbit_credential_validator -- rabbit_credential_validator_accept_everything -- rabbit_credential_validator_min_password_length -- rabbit_credential_validator_password_regexp -- rabbit_cuttlefish -- rabbit_db -- rabbit_db_binding -- rabbit_db_binding_m2k_converter -- rabbit_db_cluster -- rabbit_db_exchange -- rabbit_db_exchange_m2k_converter -- rabbit_db_m2k_converter -- rabbit_db_maintenance -- rabbit_db_maintenance_m2k_converter -- rabbit_db_msup -- rabbit_db_msup_m2k_converter -- rabbit_db_policy -- rabbit_db_queue -- rabbit_db_queue_m2k_converter -- rabbit_db_rtparams -- rabbit_db_rtparams_m2k_converter -- rabbit_db_topic_exchange -- rabbit_db_user -- rabbit_db_user_m2k_converter -- rabbit_db_vhost -- rabbit_db_vhost_defaults -- rabbit_db_vhost_m2k_converter -- rabbit_dead_letter -- rabbit_definitions -- rabbit_definitions_hashing -- rabbit_definitions_import_https -- rabbit_definitions_import_local_filesystem -- rabbit_depr_ff_extra -- rabbit_deprecated_features -- rabbit_diagnostics -- rabbit_direct -- rabbit_direct_reply_to -- rabbit_disk_monitor -- rabbit_epmd_monitor -- rabbit_event_consumer -- rabbit_exchange -- rabbit_exchange_decorator -- rabbit_exchange_parameters -- rabbit_exchange_type -- rabbit_exchange_type_direct -- rabbit_exchange_type_fanout -- rabbit_exchange_type_headers -- rabbit_exchange_type_invalid -- rabbit_exchange_type_local_random -- rabbit_exchange_type_topic -- rabbit_feature_flags -- rabbit_ff_controller -- rabbit_ff_extra -- rabbit_ff_registry -- rabbit_ff_registry_factory -- rabbit_ff_registry_wrapper -- rabbit_fhc_helpers -- rabbit_fifo -- rabbit_fifo_client -- rabbit_fifo_dlx -- rabbit_fifo_dlx_client -- rabbit_fifo_dlx_sup -- rabbit_fifo_dlx_worker -- rabbit_fifo_index -- rabbit_fifo_q -- rabbit_fifo_v0 -- rabbit_fifo_v1 -- rabbit_fifo_v3 -- rabbit_file -- rabbit_global_counters -- rabbit_guid -- rabbit_health_check -- rabbit_khepri -- rabbit_limiter -- rabbit_log_channel -- rabbit_log_connection -- rabbit_log_mirroring -- rabbit_log_prelaunch -- rabbit_log_queue -- rabbit_log_tail -- rabbit_logger_exchange_h -- rabbit_maintenance -- rabbit_message_interceptor -- rabbit_metrics -- rabbit_mirror_queue_misc -- rabbit_mnesia -- rabbit_msg_size_metrics -- rabbit_msg_store -- rabbit_msg_store_gc -- rabbit_networking -- rabbit_networking_store -- rabbit_node_monitor -- rabbit_nodes -- rabbit_observer_cli -- rabbit_observer_cli_classic_queues -- rabbit_observer_cli_quorum_queues -- rabbit_osiris_metrics -- rabbit_parameter_validation -- rabbit_peer_discovery -- rabbit_peer_discovery_classic_config -- rabbit_peer_discovery_dns -- rabbit_plugins -- rabbit_policies -- rabbit_policy -- rabbit_policy_merge_strategy -- rabbit_prelaunch_cluster -- rabbit_prelaunch_enabled_plugins_file -- rabbit_prelaunch_feature_flags -- rabbit_prelaunch_logging -- rabbit_priority_queue -- rabbit_process -- rabbit_process_flag -- rabbit_queue_consumers -- rabbit_queue_decorator -- rabbit_queue_index -- rabbit_queue_location -- rabbit_queue_type -- rabbit_queue_type_util -- rabbit_quorum_memory_manager -- rabbit_quorum_queue -- rabbit_quorum_queue_periodic_membership_reconciliation -- rabbit_ra_registry -- rabbit_ra_systems -- rabbit_reader -- rabbit_recovery_terms -- rabbit_release_series -- rabbit_restartable_sup -- rabbit_router -- rabbit_runtime_parameters -- rabbit_ssl -- rabbit_stream_coordinator -- rabbit_stream_queue -- rabbit_stream_sac_coordinator -- rabbit_sup -- rabbit_sysmon_handler -- rabbit_sysmon_minder -- rabbit_table -- rabbit_time_travel_dbg -- rabbit_trace -- rabbit_tracking -- rabbit_tracking_store -- rabbit_upgrade_preparation -- rabbit_variable_queue -- rabbit_version -- rabbit_vhost -- rabbit_vhost_limit -- rabbit_vhost_msg_store -- rabbit_vhost_process -- rabbit_vhost_sup -- rabbit_vhost_sup_sup -- rabbit_vhost_sup_wrapper -- rabbit_vhosts -- rabbit_vm -- supervised_lifecycle -- tcp_listener -- tcp_listener_sup -- term_to_binary_compat -- vhost -rabbit_common: -- app_utils -- code_version -- credit_flow -- delegate -- delegate_sup -- file_handle_cache -- gen_server2 -- mirrored_supervisor_locks -- mnesia_sync -- pmon -- priority_queue -- rabbit_amqp_connection -- rabbit_amqqueue_common -- rabbit_auth_backend_dummy -- rabbit_auth_mechanism -- rabbit_authn_backend -- rabbit_authz_backend -- rabbit_basic_common -- rabbit_binary_generator -- rabbit_binary_parser -- rabbit_cert_info -- rabbit_channel_common -- rabbit_command_assembler -- rabbit_control_misc -- rabbit_core_metrics -- rabbit_data_coercion -- rabbit_date_time -- rabbit_env -- rabbit_error_logger_handler -- rabbit_event -- rabbit_framing -- rabbit_framing_amqp_0_8 -- rabbit_framing_amqp_0_9_1 -- rabbit_heartbeat -- rabbit_http_util -- rabbit_json -- rabbit_log -- rabbit_misc -- rabbit_net -- rabbit_nodes_common -- rabbit_numerical -- rabbit_password -- rabbit_password_hashing -- rabbit_password_hashing_md5 -- rabbit_password_hashing_sha256 -- rabbit_password_hashing_sha512 -- rabbit_pbe -- rabbit_peer_discovery_backend -- rabbit_policy_validator -- rabbit_queue_collector -- rabbit_registry -- rabbit_registry_class -- rabbit_resource_monitor_misc -- rabbit_routing_parser -- rabbit_runtime -- rabbit_runtime_parameter -- rabbit_semver -- rabbit_semver_parser -- rabbit_ssl_options -- rabbit_types -- rabbit_writer -- supervisor2 -- vm_memory_monitor -- worker_pool -- worker_pool_sup -- worker_pool_worker -rabbitmq_amqp_client: -- rabbitmq_amqp_address -- rabbitmq_amqp_client -rabbitmq_amqp1_0: -- rabbitmq_amqp1_0_noop -rabbitmq_auth_backend_cache: -- Elixir.RabbitMQ.CLI.Ctl.Commands.ClearAuthBackendCacheCommand -- rabbit_auth_backend_cache -- rabbit_auth_backend_cache_app -- rabbit_auth_cache -- rabbit_auth_cache_dict -- rabbit_auth_cache_ets -- rabbit_auth_cache_ets_segmented -- rabbit_auth_cache_ets_segmented_stateless -rabbitmq_auth_backend_http: -- rabbit_auth_backend_http -- rabbit_auth_backend_http_app -rabbitmq_auth_backend_ldap: -- rabbit_auth_backend_ldap -- rabbit_auth_backend_ldap_app -- rabbit_auth_backend_ldap_util -- rabbit_log_ldap -rabbitmq_auth_backend_oauth2: -- Elixir.RabbitMQ.CLI.Ctl.Commands.AddSigningKeyCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.AddUaaKeyCommand -- rabbit_auth_backend_oauth2 -- rabbit_auth_backend_oauth2_app -- rabbit_oauth2_provider -- rabbit_oauth2_rar -- rabbit_oauth2_resource_server -- rabbit_oauth2_schema -- rabbit_oauth2_scope -- uaa_jwks -- uaa_jwt -- uaa_jwt_jwk -- uaa_jwt_jwt -- wildcard -rabbitmq_auth_mechanism_ssl: -- rabbit_auth_mechanism_ssl -- rabbit_auth_mechanism_ssl_app -rabbitmq_aws: -- rabbitmq_aws -- rabbitmq_aws_app -- rabbitmq_aws_config -- rabbitmq_aws_json -- rabbitmq_aws_sign -- rabbitmq_aws_sup -- rabbitmq_aws_urilib -- rabbitmq_aws_xml -rabbitmq_consistent_hash_exchange: -- Elixir.RabbitMQ.CLI.Diagnostics.Commands.ConsistentHashExchangeRingStateCommand -- rabbit_db_ch_exchange -- rabbit_db_ch_exchange_m2k_converter -- rabbit_exchange_type_consistent_hash -rabbitmq_ct_client_helpers: -- rabbit_ct_client_helpers -- rfc6455_client -rabbitmq_ct_helpers: -- ct_master_event_fork -- ct_master_fork -- ct_master_logs_fork -- cth_log_redirect_any_domains -- rabbit_control_helper -- rabbit_ct_broker_helpers -- rabbit_ct_config_schema -- rabbit_ct_helpers -- rabbit_ct_proper_helpers -- rabbit_ct_vm_helpers -- rabbit_mgmt_test_util -- stream_test_utils -rabbitmq_event_exchange: -- rabbit_event_exchange_decorator -- rabbit_exchange_type_event -rabbitmq_federation: -- Elixir.RabbitMQ.CLI.Ctl.Commands.FederationStatusCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.RestartFederationLinkCommand -- rabbit_federation_app -- rabbit_federation_db -- rabbit_federation_event -- rabbit_federation_exchange -- rabbit_federation_exchange_link -- rabbit_federation_exchange_link_sup_sup -- rabbit_federation_link_sup -- rabbit_federation_link_util -- rabbit_federation_parameters -- rabbit_federation_pg -- rabbit_federation_queue -- rabbit_federation_queue_link -- rabbit_federation_queue_link_sup_sup -- rabbit_federation_status -- rabbit_federation_sup -- rabbit_federation_upstream -- rabbit_federation_upstream_exchange -- rabbit_federation_util -- rabbit_log_federation -rabbitmq_federation_management: -- rabbit_federation_mgmt -rabbitmq_federation_prometheus: -- rabbit_federation_prometheus_app -- rabbit_federation_prometheus_collector -- rabbit_federation_prometheus_sup -rabbitmq_jms_topic_exchange: -- rabbit_db_jms_exchange -- rabbit_db_jms_exchange_m2k_converter -- rabbit_jms_topic_exchange -- sjx_evaluator -rabbitmq_management: -- rabbit_mgmt_app -- rabbit_mgmt_cors -- rabbit_mgmt_csp -- rabbit_mgmt_db -- rabbit_mgmt_db_cache -- rabbit_mgmt_db_cache_sup -- rabbit_mgmt_dispatcher -- rabbit_mgmt_extension -- rabbit_mgmt_features -- rabbit_mgmt_headers -- rabbit_mgmt_hsts -- rabbit_mgmt_load_definitions -- rabbit_mgmt_login -- rabbit_mgmt_nodes -- rabbit_mgmt_oauth_bootstrap -- rabbit_mgmt_reset_handler -- rabbit_mgmt_schema -- rabbit_mgmt_stats -- rabbit_mgmt_sup -- rabbit_mgmt_sup_sup -- rabbit_mgmt_util -- rabbit_mgmt_wm_aliveness_test -- rabbit_mgmt_wm_auth -- rabbit_mgmt_wm_auth_attempts -- rabbit_mgmt_wm_binding -- rabbit_mgmt_wm_bindings -- rabbit_mgmt_wm_channel -- rabbit_mgmt_wm_channels -- rabbit_mgmt_wm_channels_vhost -- rabbit_mgmt_wm_cluster_name -- rabbit_mgmt_wm_connection -- rabbit_mgmt_wm_connection_channels -- rabbit_mgmt_wm_connection_sessions -- rabbit_mgmt_wm_connection_user_name -- rabbit_mgmt_wm_connections -- rabbit_mgmt_wm_connections_vhost -- rabbit_mgmt_wm_consumers -- rabbit_mgmt_wm_definitions -- rabbit_mgmt_wm_deprecated_features -- rabbit_mgmt_wm_environment -- rabbit_mgmt_wm_exchange -- rabbit_mgmt_wm_exchange_publish -- rabbit_mgmt_wm_exchanges -- rabbit_mgmt_wm_extensions -- rabbit_mgmt_wm_feature_flag_enable -- rabbit_mgmt_wm_feature_flags -- rabbit_mgmt_wm_global_parameter -- rabbit_mgmt_wm_global_parameters -- rabbit_mgmt_wm_hash_password -- rabbit_mgmt_wm_health_check_alarms -- rabbit_mgmt_wm_health_check_certificate_expiration -- rabbit_mgmt_wm_health_check_local_alarms -- rabbit_mgmt_wm_health_check_metadata_store_initialized -- rabbit_mgmt_wm_health_check_metadata_store_initialized_with_data -- rabbit_mgmt_wm_health_check_node_is_quorum_critical -- rabbit_mgmt_wm_health_check_port_listener -- rabbit_mgmt_wm_health_check_protocol_listener -- rabbit_mgmt_wm_health_check_virtual_hosts -- rabbit_mgmt_wm_healthchecks -- rabbit_mgmt_wm_limit -- rabbit_mgmt_wm_limits -- rabbit_mgmt_wm_login -- rabbit_mgmt_wm_node -- rabbit_mgmt_wm_node_memory -- rabbit_mgmt_wm_node_memory_ets -- rabbit_mgmt_wm_nodes -- rabbit_mgmt_wm_operator_policies -- rabbit_mgmt_wm_operator_policy -- rabbit_mgmt_wm_overview -- rabbit_mgmt_wm_parameter -- rabbit_mgmt_wm_parameters -- rabbit_mgmt_wm_permission -- rabbit_mgmt_wm_permissions -- rabbit_mgmt_wm_permissions_user -- rabbit_mgmt_wm_permissions_vhost -- rabbit_mgmt_wm_policies -- rabbit_mgmt_wm_policy -- rabbit_mgmt_wm_queue -- rabbit_mgmt_wm_queue_actions -- rabbit_mgmt_wm_queue_get -- rabbit_mgmt_wm_queue_purge -- rabbit_mgmt_wm_queues -- rabbit_mgmt_wm_quorum_queue_replicas_add_member -- rabbit_mgmt_wm_quorum_queue_replicas_delete_member -- rabbit_mgmt_wm_quorum_queue_replicas_grow -- rabbit_mgmt_wm_quorum_queue_replicas_shrink -- rabbit_mgmt_wm_quorum_queue_status -- rabbit_mgmt_wm_rebalance_queues -- rabbit_mgmt_wm_redirect -- rabbit_mgmt_wm_reset -- rabbit_mgmt_wm_static -- rabbit_mgmt_wm_topic_permission -- rabbit_mgmt_wm_topic_permissions -- rabbit_mgmt_wm_topic_permissions_user -- rabbit_mgmt_wm_topic_permissions_vhost -- rabbit_mgmt_wm_user -- rabbit_mgmt_wm_user_limit -- rabbit_mgmt_wm_user_limits -- rabbit_mgmt_wm_users -- rabbit_mgmt_wm_users_bulk_delete -- rabbit_mgmt_wm_version -- rabbit_mgmt_wm_vhost -- rabbit_mgmt_wm_vhost_deletion_protection -- rabbit_mgmt_wm_vhost_restart -- rabbit_mgmt_wm_vhosts -- rabbit_mgmt_wm_whoami -rabbitmq_management_agent: -- Elixir.RabbitMQ.CLI.Ctl.Commands.ResetStatsDbCommand -- exometer_slide -- rabbit_mgmt_agent_app -- rabbit_mgmt_agent_config -- rabbit_mgmt_agent_sup -- rabbit_mgmt_agent_sup_sup -- rabbit_mgmt_data -- rabbit_mgmt_data_compat -- rabbit_mgmt_db_handler -- rabbit_mgmt_external_stats -- rabbit_mgmt_ff -- rabbit_mgmt_format -- rabbit_mgmt_gc -- rabbit_mgmt_metrics_collector -- rabbit_mgmt_metrics_gc -- rabbit_mgmt_storage -rabbitmq_mqtt: -- Elixir.RabbitMQ.CLI.Ctl.Commands.ListMqttConnectionsCommand -- mc_mqtt -- rabbit_mqtt -- rabbit_mqtt_confirms -- rabbit_mqtt_ff -- rabbit_mqtt_internal_event_handler -- rabbit_mqtt_keepalive -- rabbit_mqtt_packet -- rabbit_mqtt_processor -- rabbit_mqtt_qos0_queue -- rabbit_mqtt_reader -- rabbit_mqtt_retained_msg_store -- rabbit_mqtt_retained_msg_store_dets -- rabbit_mqtt_retained_msg_store_ets -- rabbit_mqtt_retained_msg_store_noop -- rabbit_mqtt_retainer -- rabbit_mqtt_retainer_sup -- rabbit_mqtt_sup -- rabbit_mqtt_util -rabbitmq_peer_discovery_aws: -- rabbit_peer_discovery_aws -- rabbitmq_peer_discovery_aws -rabbitmq_peer_discovery_common: -- rabbit_peer_discovery_cleanup -- rabbit_peer_discovery_common_app -- rabbit_peer_discovery_common_sup -- rabbit_peer_discovery_config -- rabbit_peer_discovery_httpc -- rabbit_peer_discovery_util -rabbitmq_peer_discovery_consul: -- rabbit_peer_discovery_consul -- rabbitmq_peer_discovery_consul -- rabbitmq_peer_discovery_consul_app -- rabbitmq_peer_discovery_consul_health_check_helper -- rabbitmq_peer_discovery_consul_sup -rabbitmq_peer_discovery_etcd: -- rabbit_peer_discovery_etcd -- rabbitmq_peer_discovery_etcd -- rabbitmq_peer_discovery_etcd_app -- rabbitmq_peer_discovery_etcd_sup -- rabbitmq_peer_discovery_etcd_v3_client -rabbitmq_peer_discovery_k8s: -- rabbit_peer_discovery_k8s -- rabbitmq_peer_discovery_k8s -rabbitmq_prelaunch: -- rabbit_boot_state -- rabbit_boot_state_sup -- rabbit_boot_state_systemd -- rabbit_boot_state_xterm_titlebar -- rabbit_logger_fmt_helpers -- rabbit_logger_json_fmt -- rabbit_logger_std_h -- rabbit_logger_text_fmt -- rabbit_prelaunch -- rabbit_prelaunch_app -- rabbit_prelaunch_conf -- rabbit_prelaunch_dist -- rabbit_prelaunch_early_logging -- rabbit_prelaunch_erlang_compat -- rabbit_prelaunch_errors -- rabbit_prelaunch_file -- rabbit_prelaunch_sighandler -- rabbit_prelaunch_sup -rabbitmq_prometheus: -- prometheus_process_collector -- prometheus_rabbitmq_alarm_metrics_collector -- prometheus_rabbitmq_core_metrics_collector -- prometheus_rabbitmq_dynamic_collector -- prometheus_rabbitmq_global_metrics_collector -- prometheus_rabbitmq_message_size_metrics_collector -- rabbit_prometheus_app -- rabbit_prometheus_dispatcher -- rabbit_prometheus_handler -rabbitmq_random_exchange: -- rabbit_exchange_type_random -rabbitmq_recent_history_exchange: -- rabbit_db_rh_exchange -- rabbit_db_rh_exchange_m2k_converter -- rabbit_exchange_type_recent_history -rabbitmq_sharding: -- rabbit_sharding_exchange_decorator -- rabbit_sharding_exchange_type_modulus_hash -- rabbit_sharding_interceptor -- rabbit_sharding_policy_validator -- rabbit_sharding_shard -- rabbit_sharding_util -rabbitmq_shovel: -- Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteShovelCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.RestartShovelCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.ShovelStatusCommand -- rabbit_amqp091_shovel -- rabbit_amqp10_shovel -- rabbit_log_shovel -- rabbit_shovel -- rabbit_shovel_behaviour -- rabbit_shovel_config -- rabbit_shovel_dyn_worker_sup -- rabbit_shovel_dyn_worker_sup_sup -- rabbit_shovel_locks -- rabbit_shovel_parameters -- rabbit_shovel_status -- rabbit_shovel_sup -- rabbit_shovel_util -- rabbit_shovel_worker -- rabbit_shovel_worker_sup -rabbitmq_shovel_management: -- rabbit_shovel_mgmt_shovel -- rabbit_shovel_mgmt_shovels -- rabbit_shovel_mgmt_util -rabbitmq_shovel_prometheus: -- rabbit_shovel_prometheus_app -- rabbit_shovel_prometheus_collector -- rabbit_shovel_prometheus_sup -rabbitmq_stomp: -- Elixir.RabbitMQ.CLI.Ctl.Commands.ListStompConnectionsCommand -- rabbit_stomp -- rabbit_stomp_client_sup -- rabbit_stomp_connection_info -- rabbit_stomp_frame -- rabbit_stomp_internal_event_handler -- rabbit_stomp_processor -- rabbit_stomp_reader -- rabbit_stomp_sup -- rabbit_stomp_util -rabbitmq_stream: -- Elixir.RabbitMQ.CLI.Ctl.Commands.AddSuperStreamCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.DeleteSuperStreamCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConnectionsCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumerGroupsCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamConsumersCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamGroupConsumersCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamPublishersCommand -- Elixir.RabbitMQ.CLI.Ctl.Commands.ListStreamTrackingCommand -- rabbit_stream -- rabbit_stream_connection_sup -- rabbit_stream_manager -- rabbit_stream_metrics -- rabbit_stream_metrics_gc -- rabbit_stream_reader -- rabbit_stream_sup -- rabbit_stream_utils -rabbitmq_stream_common: -- rabbit_stream_core -rabbitmq_stream_management: -- rabbit_stream_connection_consumers_mgmt -- rabbit_stream_connection_mgmt -- rabbit_stream_connection_publishers_mgmt -- rabbit_stream_connections_mgmt -- rabbit_stream_connections_vhost_mgmt -- rabbit_stream_consumers_mgmt -- rabbit_stream_management_utils -- rabbit_stream_mgmt_db -- rabbit_stream_publishers_mgmt -- rabbit_stream_tracking_mgmt -rabbitmq_top: -- rabbit_top_app -- rabbit_top_extension -- rabbit_top_sup -- rabbit_top_util -- rabbit_top_wm_ets_tables -- rabbit_top_wm_process -- rabbit_top_wm_processes -- rabbit_top_worker -rabbitmq_tracing: -- rabbit_tracing_app -- rabbit_tracing_consumer -- rabbit_tracing_consumer_sup -- rabbit_tracing_files -- rabbit_tracing_mgmt -- rabbit_tracing_sup -- rabbit_tracing_traces -- rabbit_tracing_util -- rabbit_tracing_wm_file -- rabbit_tracing_wm_files -- rabbit_tracing_wm_trace -- rabbit_tracing_wm_traces -rabbitmq_trust_store: -- rabbit_trust_store -- rabbit_trust_store_app -- rabbit_trust_store_certificate_provider -- rabbit_trust_store_file_provider -- rabbit_trust_store_http_provider -- rabbit_trust_store_sup -rabbitmq_web_dispatch: -- rabbit_cowboy_middleware -- rabbit_cowboy_redirect -- rabbit_cowboy_stream_h -- rabbit_web_dispatch -- rabbit_web_dispatch_access_control -- rabbit_web_dispatch_app -- rabbit_web_dispatch_listing_handler -- rabbit_web_dispatch_registry -- rabbit_web_dispatch_sup -- rabbit_web_dispatch_util -- webmachine_log -- webmachine_log_handler -rabbitmq_web_mqtt: -- Elixir.RabbitMQ.CLI.Ctl.Commands.ListWebMqttConnectionsCommand -- rabbit_web_mqtt_app -- rabbit_web_mqtt_handler -- rabbit_web_mqtt_stream_handler -rabbitmq_web_mqtt_examples: -- rabbit_web_mqtt_examples_app -rabbitmq_web_stomp: -- rabbit_web_stomp_app -- rabbit_web_stomp_connection_sup -- rabbit_web_stomp_handler -- rabbit_web_stomp_internal_event_handler -- rabbit_web_stomp_listener -- rabbit_web_stomp_middleware -- rabbit_web_stomp_stream_handler -- rabbit_web_stomp_sup -rabbitmq_web_stomp_examples: -- rabbit_web_stomp_examples_app -ranch: -- ranch -- ranch_acceptor -- ranch_acceptors_sup -- ranch_app -- ranch_conns_sup -- ranch_conns_sup_sup -- ranch_crc32c -- ranch_embedded_sup -- ranch_listener_sup -- ranch_protocol -- ranch_proxy_header -- ranch_server -- ranch_server_proxy -- ranch_ssl -- ranch_sup -- ranch_tcp -- ranch_transport -rebar3_format: -- default_formatter -- erlfmt_formatter -- otp_formatter -- rebar3_ast_formatter -- rebar3_format -- rebar3_format_prv -- rebar3_formatter -- sr_formatter -recon: -- recon -- recon_alloc -- recon_lib -- recon_map -- recon_rec -- recon_trace -redbug: -- redbug -- redbug_compiler -- redbug_dtop -- redbug_lexer -- redbug_parser -- redbug_targ -seshat: -- seshat -- seshat_app -- seshat_counters_server -- seshat_sup -stdout_formatter: -- stdout_formatter -- stdout_formatter_paragraph -- stdout_formatter_table -- stdout_formatter_utils -syslog: -- syslog -- syslog_error_h -- syslog_lager_backend -- syslog_lib -- syslog_logger -- syslog_logger_h -- syslog_monitor -- syslog_rfc3164 -- syslog_rfc5424 -sysmon_handler: -- sysmon_handler_app -- sysmon_handler_example_handler -- sysmon_handler_filter -- sysmon_handler_sup -- sysmon_handler_testhandler -systemd: -- systemd -- systemd_app -- systemd_journal_h -- systemd_kmsg_formatter -- systemd_protocol -- systemd_socket -- systemd_sup -- systemd_watchdog -thoas: -- thoas -- thoas_decode -- thoas_encode -trust_store_http: -- trust_store_http -- trust_store_http_app -- trust_store_http_sup -- trust_store_invalid_handler -- trust_store_list_handler diff --git a/packaging/BUILD.bazel b/packaging/BUILD.bazel deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packaging/docker-image/.dockerignore b/packaging/docker-image/.dockerignore index ab874d7224d8..52cbbe0af0e6 100644 --- a/packaging/docker-image/.dockerignore +++ b/packaging/docker-image/.dockerignore @@ -1,3 +1,2 @@ test_configs -BUILD.bazel Makefile diff --git a/packaging/docker-image/BUILD.bazel b/packaging/docker-image/BUILD.bazel deleted file mode 100644 index 2828f8a8e2ea..000000000000 --- a/packaging/docker-image/BUILD.bazel +++ /dev/null @@ -1,151 +0,0 @@ -load("@bazel_skylib//rules:write_file.bzl", "write_file") -load("@container_structure_test//:defs.bzl", "container_structure_test") -load( - "@rules_oci//oci:defs.bzl", - "oci_image", - "oci_image_index", - "oci_push", - "oci_tarball", -) -load("//:rabbitmq.bzl", "APP_VERSION") - -filegroup( - name = "context-files", - srcs = [ - "10-defaults.conf", - "20-management_agent.disable_metrics_collector.conf", - "Dockerfile", - "docker-entrypoint.sh", - "//:package-generic-unix", - ], -) - -_ARCHS = [ - "amd64", - "arm64", -] - -_TAGS = [ - "docker", - "manual", - "no-sandbox", - "no-remote-exec", # buildbuddy runners do not have the emulator available -] - -[ - genrule( - name = "docker-build-%s" % arch, - srcs = [ - ":context-files", - ], - outs = [ - "image-%s.tar" % arch, - ], - cmd = """set -euo pipefail - -CONTEXT="$$(mktemp -d)" - -cp $(locations :context-files) "$$CONTEXT" - -docker buildx \\ - build \\ - "$$CONTEXT" \\ - --platform linux/{arch} \\ - --build-arg RABBITMQ_VERSION="{rmq_version}" \\ - --output type=tar,dest=$(location image-{arch}.tar) $${{EXTRA_BUILDX_OPTS:-}} -""".format( - arch = arch, - rmq_version = APP_VERSION, - ), - tags = _TAGS, - ) - for arch in _ARCHS -] - -write_file( - name = "cmd", - out = "cmd.txt", - # must match Dockerfile - content = ["rabbitmq-server"], -) - -write_file( - name = "entrypoint", - out = "entrypoint.txt", - # must match Dockerfile - content = ["docker-entrypoint.sh"], -) - -[ - oci_image( - name = "image-%s" % arch, - architecture = arch, - cmd = ":cmd", - entrypoint = ":entrypoint", - # must match Dockerfile - # docker inspect bazel/packaging/docker-image:rabbitmq-amd64 - # after - # bazel run //packaging/docker-image:rabbitmq-amd64 - # to check values - env = { - "PATH": "/opt/rabbitmq/sbin:/opt/erlang/bin:/opt/openssl/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", - "ERLANG_INSTALL_PATH_PREFIX": "/opt/erlang", - "OPENSSL_INSTALL_PATH_PREFIX": "/opt/openssl", - "RABBITMQ_DATA_DIR": "/var/lib/rabbitmq", - "RABBITMQ_VERSION": APP_VERSION, - "RABBITMQ_HOME": "/opt/rabbitmq", - "HOME": "/var/lib/rabbitmq", - "LANG": "C.UTF-8", - "LANGUAGE": "C.UTF-8", - "LC_ALL": "C.UTF-8", - }, - os = "linux", - tags = _TAGS, - tars = [":image-%s.tar" % arch], - ) - for arch in _ARCHS -] - -[ - oci_tarball( - name = "rabbitmq-%s" % arch, - image = ":image-%s" % arch, - repo_tags = ["bazel/%s:rabbitmq-%s" % (package_name(), arch)], - tags = _TAGS, - ) - for arch in _ARCHS -] - -oci_image_index( - name = "image", - images = [ - ":image-%s" % arch - for arch in _ARCHS - ], - tags = _TAGS, -) - -oci_tarball( - name = "rabbitmq", - format = "oci", - image = ":image", - repo_tags = ["bazel/%s:rabbitmq" % package_name()], - tags = _TAGS, -) - -[ - container_structure_test( - name = "rabbitmq_test_%s" % arch, - configs = ["//packaging/docker-image/test_configs:rabbitmq_ubuntu.yaml"], - image = ":image-%s" % arch, - tags = _TAGS, - ) - for arch in _ARCHS -] - -oci_push( - name = "push", - image = ":image", - repository = "index.docker.io/pivotalrabbitmq/rabbitmq", - tags = _TAGS, -) diff --git a/packaging/docker-image/test_configs/BUILD.bazel b/packaging/docker-image/test_configs/BUILD.bazel deleted file mode 100644 index a87c57fece5d..000000000000 --- a/packaging/docker-image/test_configs/BUILD.bazel +++ /dev/null @@ -1 +0,0 @@ -exports_files(glob(["*.yaml"])) diff --git a/packaging/generic-unix/Makefile b/packaging/generic-unix/Makefile index 69f86ae4ec97..a2868d027dd8 100644 --- a/packaging/generic-unix/Makefile +++ b/packaging/generic-unix/Makefile @@ -44,11 +44,8 @@ dist: # Umbrella. Those manpages are copied to www.rabbitmq.com # # We explicitely set $HOME as a Make variable below because some package -# builders do that, as part of cleaning the build environment. It -# exercises our hack to convince mix(1) to work offline because that -# hack depends on `$HOME`. A Make variable on the command line takes -# precedence over variables declared in Makefiles, so our hack needs -# to consider this. We do the same with the Freedesktop.org-specified +# builders do that, as part of cleaning the build environment. +# We do the same with the Freedesktop.org-specified # variables ($XDG_*_HOME). $(MAKE) -C $(SOURCE_DIR) \ HOME="$(HOME)" \ diff --git a/rabbitmq.bzl b/rabbitmq.bzl deleted file mode 100644 index c338031934d6..000000000000 --- a/rabbitmq.bzl +++ /dev/null @@ -1,308 +0,0 @@ -load( - "@rules_erlang//:erlang_app.bzl", - "DEFAULT_ERLC_OPTS", - "DEFAULT_TEST_ERLC_OPTS", - "erlang_app", - "test_erlang_app", -) -load( - "@rules_erlang//:ct.bzl", - "assert_suites2", - "ct_test", -) -load("//:rabbitmq_home.bzl", "rabbitmq_home") -load("//:rabbitmq_run.bzl", "rabbitmq_run") - -def without(item, elements): - c = list(elements) - c.remove(item) - return c - -STARTS_BACKGROUND_BROKER_TAG = "starts-background-broker" - -MIXED_VERSION_CLUSTER_TAG = "mixed-version-cluster" - -RABBITMQ_ERLC_OPTS = DEFAULT_ERLC_OPTS + [ - "-DINSTR_MOD=gm", -] - -RABBITMQ_TEST_ERLC_OPTS = DEFAULT_TEST_ERLC_OPTS + [ - "+nowarn_export_all", - "-DINSTR_MOD=gm", -] - -RABBITMQ_DIALYZER_OPTS = [ - "-Werror_handling", - "-Wunmatched_returns", - "-Wunknown", -] - -APP_VERSION = "4.0.0" - -BROKER_VERSION_REQUIREMENTS_ANY = """ - {broker_version_requirements, []} -""" - -ALL_PLUGINS = [ - "//deps/rabbit:erlang_app", - "//deps/rabbitmq_amqp1_0:erlang_app", - "//deps/rabbitmq_auth_backend_cache:erlang_app", - "//deps/rabbitmq_auth_backend_http:erlang_app", - "//deps/rabbitmq_auth_backend_ldap:erlang_app", - "//deps/rabbitmq_auth_backend_oauth2:erlang_app", - "//deps/rabbitmq_auth_mechanism_ssl:erlang_app", - "//deps/rabbitmq_consistent_hash_exchange:erlang_app", - "//deps/rabbitmq_event_exchange:erlang_app", - "//deps/rabbitmq_federation:erlang_app", - "//deps/rabbitmq_federation_management:erlang_app", - "//deps/rabbitmq_federation_prometheus:erlang_app", - "//deps/rabbitmq_jms_topic_exchange:erlang_app", - "//deps/rabbitmq_management:erlang_app", - "//deps/rabbitmq_mqtt:erlang_app", - "//deps/rabbitmq_peer_discovery_aws:erlang_app", - "//deps/rabbitmq_peer_discovery_consul:erlang_app", - "//deps/rabbitmq_peer_discovery_etcd:erlang_app", - "//deps/rabbitmq_peer_discovery_k8s:erlang_app", - "//deps/rabbitmq_prometheus:erlang_app", - "//deps/rabbitmq_random_exchange:erlang_app", - "//deps/rabbitmq_recent_history_exchange:erlang_app", - "//deps/rabbitmq_sharding:erlang_app", - "//deps/rabbitmq_shovel:erlang_app", - "//deps/rabbitmq_shovel_management:erlang_app", - "//deps/rabbitmq_shovel_prometheus:erlang_app", - "//deps/rabbitmq_stomp:erlang_app", - "//deps/rabbitmq_stream:erlang_app", - "//deps/rabbitmq_stream_management:erlang_app", - "//deps/rabbitmq_top:erlang_app", - "//deps/rabbitmq_tracing:erlang_app", - "//deps/rabbitmq_trust_store:erlang_app", - "//deps/rabbitmq_web_dispatch:erlang_app", - "//deps/rabbitmq_web_mqtt:erlang_app", - "//deps/rabbitmq_web_mqtt_examples:erlang_app", - "//deps/rabbitmq_web_stomp:erlang_app", - "//deps/rabbitmq_web_stomp_examples:erlang_app", -] - -LABELS_WITH_TEST_VERSIONS = [ - "//deps/amqp10_common:erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_prelaunch:erlang_app", - "//deps/rabbit:erlang_app", -] - -def all_plugins(rabbitmq_workspace = "@rabbitmq-server"): - return [ - Label("{}{}".format(rabbitmq_workspace, p)) - for p in ALL_PLUGINS - ] - -def with_test_versions(deps): - r = [] - for d in deps: - if d in LABELS_WITH_TEST_VERSIONS: - r.append(d.replace(":erlang_app", ":test_erlang_app")) - else: - r.append(d) - return r - -def rabbitmq_app( - name = "erlang_app", - app_name = "", - app_version = APP_VERSION, - app_description = "", - app_module = "", - app_registered = [], - app_env = "", - app_extra_keys = "", - extra_apps = [], - beam_files = [":beam_files"], - hdrs = None, - srcs = [":all_srcs"], - priv = [":priv"], - license_files = [":license_files"], - deps = [], - testonly = False): - if name != "erlang_app": - fail("name attr exists for compatibility only, and must be set to '\"erlang_app\"'") - if beam_files != [":beam_files"]: - fail("beam_files attr exists for compatibility only, and must be set to '[\":beam_files\"]'") - if hdrs != [":public_hdrs"]: - fail("hdrs attr exists for compatibility only, and must be set to '[\":public_hdrs\"]'") - - erlang_app( - name = "erlang_app", - app_name = app_name, - app_version = app_version, - app_description = app_description, - app_module = app_module, - app_registered = app_registered, - app_env = app_env, - app_extra_keys = app_extra_keys, - extra_apps = extra_apps, - beam_files = beam_files, - hdrs = [":public_hdrs"], - srcs = srcs, - priv = priv, - license_files = license_files, - deps = deps, - testonly = testonly, - ) - - test_erlang_app( - name = "test_erlang_app", - app_name = app_name, - app_version = app_version, - app_description = app_description, - app_module = app_module, - app_registered = app_registered, - app_env = app_env, - app_extra_keys = app_extra_keys, - extra_apps = extra_apps, - beam_files = [":test_beam_files"], - hdrs = [":public_and_private_hdrs"], - srcs = srcs, - priv = priv, - license_files = license_files, - deps = with_test_versions(deps), - ) - -def rabbitmq_suite( - name = None, - suite_name = None, - data = [], - additional_beam = [], - test_env = {}, - deps = [], - runtime_deps = [], - **kwargs): - app_name = native.package_name().rpartition("/")[-1] - # suite_name exists in the underying ct_test macro, but we don't - # want to use the arg in rabbitmq-server, for the sake of clarity - if suite_name != None: - fail("rabbitmq_suite cannot be called with a suite_name attr") - ct_test( - name = name, - app_name = app_name, - compiled_suites = [":{}_beam_files".format(name)] + additional_beam, - data = native.glob(["test/{}_data/**/*".format(name)]) + data, - test_env = dict({ - "RABBITMQ_CT_SKIP_AS_ERROR": "true", - "LANG": "C.UTF-8", - "COVERDATA_TO_LCOV_APPS_DIRS": "deps:deps/rabbit/apps", - }.items() + test_env.items()), - deps = [":test_erlang_app"] + deps + runtime_deps, - ct_run_extra_args = ["-kernel net_ticktime 5"], - **kwargs - ) - return name - -def broker_for_integration_suites(extra_plugins = []): - rabbitmq_home( - name = "broker-for-tests-home", - plugins = [ - "//deps/rabbit:test_erlang_app", - ":test_erlang_app", - ] + extra_plugins, - testonly = True, - ) - - rabbitmq_run( - name = "rabbitmq-for-tests-run", - home = ":broker-for-tests-home", - testonly = True, - ) - -def rabbitmq_integration_suite( - name = None, - suite_name = None, - tags = [], - data = [], - erlc_opts = [], - additional_beam = [], - test_env = {}, - tools = [], - deps = [], - runtime_deps = [], - **kwargs): - app_name = native.package_name().rpartition("/")[-1] - # suite_name exists in the underying ct_test macro, but we don't - # want to use the arg in rabbitmq-server, for the sake of clarity - if suite_name != None: - fail("rabbitmq_integration_suite cannot be called with a suite_name attr") - assumed_deps = [ - ":test_erlang_app", - "//deps/rabbit_common:erlang_app", - "//deps/rabbitmq_ct_helpers:erlang_app", - "@rules_elixir//elixir", - "//deps/rabbitmq_cli:erlang_app", - "//deps/rabbitmq_ct_client_helpers:erlang_app", - ] - package = native.package_name() - if package != "deps/amqp_client": - assumed_deps.append("//deps/amqp_client:erlang_app") - - ct_test( - name = name, - app_name = app_name, - suite_name = name, - compiled_suites = [":{}_beam_files".format(name)] + additional_beam, - tags = tags + [STARTS_BACKGROUND_BROKER_TAG], - data = native.glob(["test/{}_data/**/*".format(name)]) + data, - test_env = dict({ - "SKIP_MAKE_TEST_DIST": "true", - "RABBITMQ_CT_SKIP_AS_ERROR": "true", - "RABBITMQ_RUN": "$(location :rabbitmq-for-tests-run)", - "RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmqctl".format(package), - "RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmq-plugins".format(package), - "RABBITMQ_QUEUES": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmq-queues".format(package), - "LANG": "C.UTF-8", - "COVERDATA_TO_LCOV_APPS_DIRS": "deps:deps/rabbit/apps", - }.items() + test_env.items()), - tools = [ - ":rabbitmq-for-tests-run", - ] + tools, - deps = assumed_deps + deps + runtime_deps, - ct_run_extra_args = ["-kernel net_ticktime 5"], - **kwargs - ) - - ct_test( - name = name + "-mixed", - suite_name = name, - compiled_suites = [":{}_beam_files".format(name)] + additional_beam, - tags = tags + [STARTS_BACKGROUND_BROKER_TAG, MIXED_VERSION_CLUSTER_TAG], - data = native.glob(["test/{}_data/**/*".format(name)]) + data, - test_env = dict({ - "SKIP_MAKE_TEST_DIST": "true", - # The feature flags listed below are required. This means they must be enabled in mixed-version testing - # before even starting the cluster because newer nodes don't have the corresponding compatibility/migration code. - "RABBITMQ_FEATURE_FLAGS": - # required starting from 3.11.0 in rabbit: - "quorum_queue,implicit_default_bindings,virtual_host_metadata,maintenance_mode_status,user_limits," + - # required starting from 3.12.0 in rabbit: - "feature_flags_v2,stream_queue,classic_queue_type_delivery_support,classic_mirrored_queue_version," + - "stream_single_active_consumer,direct_exchange_routing_v2,listener_records_in_ets,tracking_records_in_ets," + - # required starting from 3.12.0 in rabbitmq_management_agent: - # empty_basic_get_metric, drop_unroutable_metric - # required starting from 4.0 in rabbit: - "message_containers,stream_update_config_command,stream_filtering,stream_sac_coordinator_unblock_group,restart_streams", - "RABBITMQ_RUN": "$(location :rabbitmq-for-tests-run)", - "RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmqctl".format(package), - "RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmq-plugins".format(package), - "RABBITMQ_QUEUES": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmq-queues".format(package), - "RABBITMQ_RUN_SECONDARY": "$(location @rabbitmq-server-generic-unix-4.0//:rabbitmq-run)", - "LANG": "C.UTF-8", - }.items() + test_env.items()), - tools = [ - ":rabbitmq-for-tests-run", - "@rabbitmq-server-generic-unix-4.0//:rabbitmq-run", - ] + tools, - deps = assumed_deps + deps + runtime_deps, - ct_run_extra_args = ["-kernel net_ticktime 5"], - **kwargs - ) - - return name - -def assert_suites(**kwargs): - assert_suites2(**kwargs) diff --git a/rabbitmq_home.bzl b/rabbitmq_home.bzl deleted file mode 100644 index 03e6c1fa235c..000000000000 --- a/rabbitmq_home.bzl +++ /dev/null @@ -1,179 +0,0 @@ -load("@rules_erlang//:ct.bzl", "additional_file_dest_relative_path") -load("@rules_erlang//:erlang_app_info.bzl", "ErlangAppInfo", "flat_deps") -load("@rules_erlang//:util.bzl", "path_join") - -RabbitmqHomeInfo = provider( - doc = "An assembled RABBITMQ_HOME dir", - fields = { - "rabbitmqctl": "rabbitmqctl script from the sbin directory", - }, -) - -def _copy_script(ctx, script): - dest = ctx.actions.declare_file( - path_join(ctx.label.name, "sbin", script.basename), - ) - ctx.actions.expand_template( - template = script, - output = dest, - substitutions = {}, - is_executable = True, - ) - return dest - -def copy_escript(ctx, escript): - e = ctx.attr._rabbitmqctl_escript.files_to_run.executable - dest = ctx.actions.declare_file( - path_join(ctx.label.name, "escript", escript.basename), - ) - ctx.actions.run( - inputs = [e], - outputs = [dest], - executable = "cp", - arguments = [e.path, dest.path], - ) - return dest - -def _plugins_dir_links(ctx, plugin): - lib_info = plugin[ErlangAppInfo] - plugin_path = path_join( - ctx.label.name, - "plugins", - lib_info.app_name, - ) - - links = [] - for f in lib_info.include: - o = ctx.actions.declare_file(path_join(plugin_path, "include", f.basename)) - ctx.actions.symlink( - output = o, - target_file = f, - ) - links.append(o) - - for f in lib_info.beam: - if f.is_directory: - if len(lib_info.beam) != 1: - fail("ErlangAppInfo.beam must be a collection of files, or a single ebin dir: {} {}".format(lib_info.app_name, lib_info.beam)) - o = ctx.actions.declare_directory(path_join(plugin_path, "ebin")) - else: - o = ctx.actions.declare_file(path_join(plugin_path, "ebin", f.basename)) - ctx.actions.symlink( - output = o, - target_file = f, - ) - links.append(o) - - for f in lib_info.priv: - p = additional_file_dest_relative_path(plugin.label, f) - o = ctx.actions.declare_file(path_join(plugin_path, p)) - ctx.actions.symlink( - output = o, - target_file = f, - ) - links.append(o) - - return links - -def flatten(list_of_lists): - return [item for sublist in list_of_lists for item in sublist] - -def _impl(ctx): - plugins = flat_deps(ctx.attr.plugins) - - if not ctx.attr.is_windows: - source_scripts = ctx.files._scripts - else: - source_scripts = ctx.files._scripts_windows - scripts = [_copy_script(ctx, script) for script in source_scripts] - - escripts = [copy_escript(ctx, escript) for escript in ctx.files._escripts] - - plugins = flatten([_plugins_dir_links(ctx, plugin) for plugin in plugins]) - - rabbitmqctl = None - for script in scripts: - if script.basename == ("rabbitmqctl" if not ctx.attr.is_windows else "rabbitmqctl.bat"): - rabbitmqctl = script - if rabbitmqctl == None: - fail("could not find rabbitmqctl among", scripts) - - return [ - RabbitmqHomeInfo( - rabbitmqctl = rabbitmqctl, - ), - DefaultInfo( - files = depset(scripts + escripts + plugins), - ), - ] - -RABBITMQ_HOME_ATTRS = { - "_escripts": attr.label_list( - default = [ - "//deps/rabbit:scripts/rabbitmq-diagnostics", - "//deps/rabbit:scripts/rabbitmq-plugins", - "//deps/rabbit:scripts/rabbitmq-queues", - "//deps/rabbit:scripts/rabbitmq-streams", - "//deps/rabbit:scripts/rabbitmq-upgrade", - "//deps/rabbit:scripts/rabbitmqctl", - "//deps/rabbit:scripts/vmware-rabbitmq", - ], - allow_files = True, - ), - "_scripts": attr.label_list( - default = [ - "//deps/rabbit:scripts/rabbitmq-defaults", - "//deps/rabbit:scripts/rabbitmq-diagnostics", - "//deps/rabbit:scripts/rabbitmq-env", - "//deps/rabbit:scripts/rabbitmq-plugins", - "//deps/rabbit:scripts/rabbitmq-queues", - "//deps/rabbit:scripts/rabbitmq-server", - "//deps/rabbit:scripts/rabbitmq-streams", - "//deps/rabbit:scripts/rabbitmq-upgrade", - "//deps/rabbit:scripts/rabbitmqctl", - "//deps/rabbit:scripts/vmware-rabbitmq", - ], - allow_files = True, - ), - "_scripts_windows": attr.label_list( - default = [ - "//deps/rabbit:scripts/rabbitmq-defaults.bat", - "//deps/rabbit:scripts/rabbitmq-diagnostics.bat", - "//deps/rabbit:scripts/rabbitmq-env.bat", - "//deps/rabbit:scripts/rabbitmq-plugins.bat", - "//deps/rabbit:scripts/rabbitmq-queues.bat", - "//deps/rabbit:scripts/rabbitmq-server.bat", - "//deps/rabbit:scripts/rabbitmq-streams.bat", - "//deps/rabbit:scripts/rabbitmq-upgrade.bat", - "//deps/rabbit:scripts/rabbitmqctl.bat", - "//deps/rabbit:scripts/vmware-rabbitmq.bat", - ], - allow_files = True, - ), - "_rabbitmqctl_escript": attr.label(default = "//deps/rabbitmq_cli:rabbitmqctl"), - "is_windows": attr.bool(mandatory = True), - "plugins": attr.label_list(providers = [ErlangAppInfo]), -} - -rabbitmq_home_private = rule( - implementation = _impl, - attrs = RABBITMQ_HOME_ATTRS, -) - -def rabbitmq_home(**kwargs): - rabbitmq_home_private( - is_windows = select({ - "@bazel_tools//src/conditions:host_windows": True, - "//conditions:default": False, - }), - **kwargs - ) - -def _dirname(p): - return p.rpartition("/")[0] - -def rabbitmq_home_short_path(rabbitmq_home): - short_path = rabbitmq_home[RabbitmqHomeInfo].rabbitmqctl.short_path - if rabbitmq_home.label.workspace_root != "": - short_path = path_join(rabbitmq_home.label.workspace_root, short_path) - return _dirname(_dirname(short_path)) diff --git a/rabbitmq_package_generic_unix.bzl b/rabbitmq_package_generic_unix.bzl deleted file mode 100644 index b589a06529a9..000000000000 --- a/rabbitmq_package_generic_unix.bzl +++ /dev/null @@ -1,19 +0,0 @@ -load("@//:rabbitmq_home.bzl", "RabbitmqHomeInfo") - -def _impl(ctx): - return [ - RabbitmqHomeInfo( - rabbitmqctl = ctx.file.rabbitmqctl, - ), - DefaultInfo( - files = depset(ctx.files.rabbitmqctl + ctx.files.additional_files), - ), - ] - -rabbitmq_package_generic_unix = rule( - implementation = _impl, - attrs = { - "rabbitmqctl": attr.label(allow_single_file = True), - "additional_files": attr.label_list(allow_files = True), - }, -) diff --git a/rabbitmq_run.bzl b/rabbitmq_run.bzl deleted file mode 100644 index b2e5debae1e9..000000000000 --- a/rabbitmq_run.bzl +++ /dev/null @@ -1,142 +0,0 @@ -load( - "@rules_erlang//:util.bzl", - "path_join", - "windows_path", -) -load( - "@rules_erlang//tools:erlang_toolchain.bzl", - "erlang_dirs", -) -load( - ":rabbitmq_home.bzl", - "RabbitmqHomeInfo", - "rabbitmq_home_short_path", -) - -def _impl(ctx): - rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home) - - # the rabbitmq-run.sh template only allows a single erl_libs currently - erl_libs = ctx.configuration.host_path_separator.join([ - path_join(rabbitmq_home_path, "plugins"), - ]) - - (erlang_home, _, runfiles) = erlang_dirs(ctx) - - if not ctx.attr.is_windows: - output = ctx.actions.declare_file(ctx.label.name) - ctx.actions.expand_template( - template = ctx.file._template, - output = output, - substitutions = { - "{RABBITMQ_HOME}": rabbitmq_home_path, - "{ERL_LIBS}": erl_libs, - "{ERLANG_HOME}": erlang_home, - }, - is_executable = True, - ) - else: - output = ctx.actions.declare_file(ctx.label.name + ".bat") - ctx.actions.expand_template( - template = ctx.file._windows_template, - output = output, - substitutions = { - "{RABBITMQ_HOME}": windows_path(rabbitmq_home_path), - "{ERL_LIBS}": erl_libs, - "{ERLANG_HOME}": windows_path(erlang_home), - }, - is_executable = True, - ) - - runfiles = runfiles.merge(ctx.runfiles(ctx.attr.home[DefaultInfo].files.to_list())) - - return [DefaultInfo( - runfiles = runfiles, - executable = output, - )] - -rabbitmq_run_private = rule( - implementation = _impl, - attrs = { - "_template": attr.label( - default = Label("//:scripts/bazel/rabbitmq-run.sh"), - allow_single_file = True, - ), - "_windows_template": attr.label( - default = Label("//:scripts/bazel/rabbitmq-run.bat"), - allow_single_file = True, - ), - "is_windows": attr.bool(mandatory = True), - "home": attr.label(providers = [RabbitmqHomeInfo]), - }, - toolchains = ["@rules_erlang//tools:toolchain_type"], - executable = True, -) - -def rabbitmq_run(**kwargs): - rabbitmq_run_private( - is_windows = select({ - "@bazel_tools//src/conditions:host_windows": True, - "//conditions:default": False, - }), - **kwargs - ) - -def _run_command_impl(ctx): - if not ctx.attr.is_windows: - output = ctx.actions.declare_file(ctx.label.name) - script = "exec ./{} {} $@".format( - ctx.attr.rabbitmq_run[DefaultInfo].files_to_run.executable.short_path, - ctx.attr.subcommand, - ) - else: - output = ctx.actions.declare_file(ctx.label.name + ".bat") - script = """@echo off -call {} {} %* -if ERRORLEVEL 1 ( - exit /B %ERRORLEVEL% -) -EXIT /B 0 -""".format( - ctx.attr.rabbitmq_run[DefaultInfo].files_to_run.executable.short_path, - ctx.attr.subcommand, - ) - - ctx.actions.write( - output = output, - content = script, - is_executable = True, - ) - - return [DefaultInfo( - runfiles = ctx.attr.rabbitmq_run[DefaultInfo].default_runfiles, - executable = output, - )] - -rabbitmq_run_command_private = rule( - implementation = _run_command_impl, - attrs = { - "is_windows": attr.bool(mandatory = True), - "rabbitmq_run": attr.label( - executable = True, - cfg = "target", - ), - "subcommand": attr.string(values = [ - "run-broker", - "start-background-broker", - "stop-node", - "start-cluster", - "stop-cluster", - ]), - }, - executable = True, -) - -def rabbitmq_run_command(**kwargs): - rabbitmq_run_command_private( - is_windows = select({ - "@bazel_tools//src/conditions:host_windows": True, - "//conditions:default": False, - }), - **kwargs - ) diff --git a/rabbitmqctl.bzl b/rabbitmqctl.bzl deleted file mode 100644 index 4b35da95b696..000000000000 --- a/rabbitmqctl.bzl +++ /dev/null @@ -1,28 +0,0 @@ -load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path") - -def _impl(ctx): - rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home) - - script = """ - exec ./{home}/sbin/{cmd} "$@" - """.format( - home = rabbitmq_home_path, - cmd = ctx.label.name, - ) - - ctx.actions.write( - output = ctx.outputs.executable, - content = script, - ) - - return [DefaultInfo( - runfiles = ctx.runfiles(ctx.attr.home[DefaultInfo].files.to_list()), - )] - -rabbitmqctl = rule( - implementation = _impl, - attrs = { - "home": attr.label(providers = [RabbitmqHomeInfo]), - }, - executable = True, -) diff --git a/release-notes/4.1.0.md b/release-notes/4.1.0.md index b36204e0ef97..9f96f6c2e344 100644 --- a/release-notes/4.1.0.md +++ b/release-notes/4.1.0.md @@ -25,6 +25,20 @@ for the complete list of related changes. ## Breaking Changes and Compatibility Notes +### Initial AMQP 0-9-1 Maximum Frame Size + +Before a client connection can negotiate a maximum frame size (`frame_max`), it must authenticate +successfully. Before the authenticated phase, a special lower `frame_max` value +is used. + +With this release, the value was increased from the original 4096 bytes to 8192 +to accommodate larger [JWT tokens](https://www.rabbitmq.com/docs/oauth2). + +Clients that do override `frame_max` now must use values of 8192 bytes or greater. +We recommend using the default server value of `131072`: do not override the `frame_max` +key in `rabbitmq.conf` and do not set it in the application code. + + ### MQTT * The default MQTT [Maximum Packet Size](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901086) changed from 256 MiB to 16 MiB. diff --git a/scripts/bazel/kill_orphaned_ct_run.sh b/scripts/bazel/kill_orphaned_ct_run.sh deleted file mode 100755 index db53073bdd4d..000000000000 --- a/scripts/bazel/kill_orphaned_ct_run.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -pids=$(ps aux | grep -v awk | awk '/ct_run.*erl/ {print $2}') - -set -x -kill $pids diff --git a/scripts/bazel/rabbitmq-run.bat b/scripts/bazel/rabbitmq-run.bat deleted file mode 100644 index 8e1f08b65318..000000000000 --- a/scripts/bazel/rabbitmq-run.bat +++ /dev/null @@ -1,152 +0,0 @@ -@echo off -setLocal enableDelayedExpansion -setlocal enableextensions - -set ORIGINAL_ARGS=%* - -if not defined TEST_SRCDIR ( - set BASE_DIR=%cd% -) else ( - set BASE_DIR=%TEST_SRCDIR%/%TEST_WORKSPACE% - set BASE_DIR=%BASE_DIR:/=\\% -) - -if "%1" == "-C" ( - cd %2 - shift 2 -) - -:loop-args -if "%1" == "" goto :loop-args-end -if "%1" == "run-broker" ( - set CMD=%1 - shift - goto :loop-args -) -if "%1" == "start-background-broker" ( - set CMD=%1 - shift - goto :loop-args -) -if "%1" == "stop-node" ( - set CMD=%1 - shift - goto :loop-args -) -if "%1" == "set-resource-alarm" ( - set CMD=%1 - shift - goto :loop-args -) -if "%1" == "clean-resource-alarm" ( - set CMD=%1 - shift - goto :loop-args -) -for /F "tokens=1,3 delims=. " %%a in ("%1") do ( - set %%a=%%b -) -shift -goto :loop-args -:loop-args-end - -set DEFAULT_PLUGINS_DIR=%BASE_DIR%\{RABBITMQ_HOME}\plugins -if defined EXTRA_PLUGINS_DIR ( - set DEFAULT_PLUGINS_DIR=%DEFAULT_PLUGINS_DIR%;%EXTRA_PLUGINS_DIR% -) - -if not defined TEST_TMPDIR ( - set TEST_TMPDIR=%TEMP%\rabbitmq-test-instances -) -set RABBITMQ_SCRIPTS_DIR=%BASE_DIR%\{RABBITMQ_HOME}\sbin -set RABBITMQ_PLUGINS=%RABBITMQ_SCRIPTS_DIR%\rabbitmq-plugins.bat -set RABBITMQ_SERVER=%RABBITMQ_SCRIPTS_DIR%\rabbitmq-server.bat -set RABBITMQCTL=%RABBITMQ_SCRIPTS_DIR%\rabbitmqctl.bat - -set HOSTNAME=%COMPUTERNAME% - -if not defined RABBITMQ_NODENAME set RABBITMQ_NODENAME=rabbit@%HOSTNAME% -if not defined RABBITMQ_NODENAME_FOR_PATHS set RABBITMQ_NODENAME_FOR_PATHS=%RABBITMQ_NODENAME% -set NODE_TMPDIR=%TEST_TMPDIR%\%RABBITMQ_NODENAME_FOR_PATHS% - -set RABBITMQ_BASE=%NODE_TMPDIR% -set RABBITMQ_PID_FILE=%NODE_TMPDIR%\%{RABBITMQ_NODENAME_FOR_PATHS%.pid -set RABBITMQ_LOG_BASE=%NODE_TMPDIR%\log -set RABBITMQ_MNESIA_BASE=%NODE_TMPDIR%\mnesia -set RABBITMQ_MNESIA_DIR=%RABBITMQ_MNESIA_BASE%\%RABBITMQ_NODENAME_FOR_PATHS% -set RABBITMQ_QUORUM_DIR=%RABBITMQ_MNESIA_DIR%\quorum -set RABBITMQ_STREAM_DIR=%RABBITMQ_MNESIA_DIR%\stream -if not defined RABBITMQ_PLUGINS_DIR set RABBITMQ_PLUGINS_DIR=%DEFAULT_PLUGINS_DIR% -set RABBITMQ_PLUGINS_EXPAND_DIR=%NODE_TMPDIR%\plugins -set RABBITMQ_FEATURE_FLAGS_FILE=%NODE_TMPDIR%\feature_flags -set RABBITMQ_ENABLED_PLUGINS_FILE=%NODE_TMPDIR%\enabled_plugins - -if not defined RABBITMQ_LOG ( - set RABBITMQ_LOG=debug,+color -) - -if defined LEAVE_PLUGINS_DISABLED ( - set RABBITMQ_ENABLED_PLUGINS= -) else ( - set RABBITMQ_ENABLED_PLUGINS=ALL -) - -if not exist "%TEST_TMPDIR%" mkdir %TEST_TMPDIR% - -if not exist "%RABBITMQ_LOG_BASE%" mkdir %RABBITMQ_LOG_BASE% -if not exist "%RABBITMQ_MNESIA_BASE%" mkdir %RABBITMQ_MNESIA_BASE% -if not exist "%RABBITMQ_PLUGINS_DIR%" mkdir %RABBITMQ_PLUGINS_DIR% -if not exist "%RABBITMQ_PLUGINS_EXPAND_DIR%" mkdir %RABBITMQ_PLUGINS_EXPAND_DIR% - -if "%CMD%" == "run-broker" ( - set RABBITMQ_ALLOW_INPUT=true - set RABBITMQ_CONFIG_FILE=%TEST_TMPDIR%\test.config - - > !RABBITMQ_CONFIG_FILE! ( - @echo [ - @echo {rabbit, [ - @echo {loopback_users, []} - @echo ]}, - @echo {rabbitmq_management, []}, - @echo {rabbitmq_mqtt, []}, - @echo {rabbitmq_stomp, []}, - @echo {ra, [ - @echo {data_dir, "!RABBITMQ_QUORUM_DIR:\=\\!"} - @echo ]}, - @echo {osiris, [ - @echo {data_dir, "!RABBITMQ_STREAM_DIR:\=\\!"} - @echo ]} - @echo ]. - ) - - call %RABBITMQ_SCRIPTS_DIR%\rabbitmq-server.bat - - if ERRORLEVEL 1 ( - exit /B %ERRORLEVEL% - ) - - exit /B 0 -) - -if "%CMD%" == "start-background-broker" ( - echo ERROR: not implemented by rabbitmq-run.bat - exit /b 1 -) - -if "%CMD%" == "stop-node" ( - echo ERROR: not implemented by rabbitmq-run.bat - exit /b 1 -) - -if "%CMD%" == "set-resource-alarm" ( - echo ERROR: not implemented by rabbitmq-run.bat - exit /b 1 -) - -if "%CMD%" == "clear-resource-alarm" ( - echo ERROR: not implemented by rabbitmq-run.bat - exit /b 1 -) - -echo ERROR: unrecognized rabbitmq-run.bat args: "%ORIGINAL_ARGS%" -exit /b 1 diff --git a/scripts/bazel/rabbitmq-run.sh b/scripts/bazel/rabbitmq-run.sh deleted file mode 100755 index 5324a3d559d8..000000000000 --- a/scripts/bazel/rabbitmq-run.sh +++ /dev/null @@ -1,306 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -GREEN='\033[0;32m' -NO_COLOR='\033[0m' - -export PATH="{ERLANG_HOME}/bin:$PATH" - -rmq_realpath() { - local path=$1 - - if [ -d "$path" ]; then - cd "$path" && pwd - elif [ -f "$path" ]; then - cd "$(dirname "$path")" && echo "$(pwd)/$(basename "$path")" - else - echo "$path" - fi -} - -write_config_file() { - local rabbit_fragment= - local rabbitmq_management_fragment= - local rabbitmq_mqtt_fragment= - local rabbitmq_web_mqtt_fragment= - local rabbitmq_web_mqtt_examples_fragment= - local rabbitmq_stomp_fragment= - local rabbitmq_web_stomp_fragment= - local rabbitmq_web_stomp_examples_fragment= - local rabbitmq_stream_fragment= - local rabbitmq_prometheus_fragment= - - if [[ -n ${RABBITMQ_NODE_PORT+x} ]]; then - rabbit_fragment="{tcp_listeners, [$RABBITMQ_NODE_PORT]}" - rabbitmq_management_fragment="{listener, [{port, $(($RABBITMQ_NODE_PORT + 10000))}]}" - rabbitmq_mqtt_fragment="{tcp_listeners, [$((1883 + $RABBITMQ_NODE_PORT - 5672))]}" - rabbitmq_web_mqtt_fragment="{tcp_config, [{port, $((15675 + $RABBITMQ_NODE_PORT - 5672))}]}" - rabbitmq_web_mqtt_examples_fragment="{listener, [{port, $((15670 + $RABBITMQ_NODE_PORT - 5672))}]}" - rabbitmq_stomp_fragment="{tcp_listeners, [$((61613 + $RABBITMQ_NODE_PORT - 5672))]}" - rabbitmq_web_stomp_fragment="{tcp_config, [{port, $((15674 + $RABBITMQ_NODE_PORT - 5672))}]}" - rabbitmq_web_stomp_examples_fragment="{listener, [{port, $((15670 + $RABBITMQ_NODE_PORT - 5672))}]}" - rabbitmq_stream_fragment="{tcp_listeners, [$((5552 + $RABBITMQ_NODE_PORT - 5672))]}" - rabbitmq_prometheus_fragment="{tcp_config, [{port, $((15692 + $RABBITMQ_NODE_PORT - 5672))}]}" - fi - cat << EOF > "$RABBITMQ_CONFIG_FILE" -%% vim:ft=erlang: - -[ - {rabbit, [ - ${rabbit_fragment}${rabbit_fragment:+,} - {loopback_users, []} - ]}, - {rabbitmq_management, [ - ${rabbitmq_management_fragment} - ]}, - {rabbitmq_mqtt, [ - ${rabbitmq_mqtt_fragment} - ]}, - {rabbitmq_web_mqtt, [ - ${rabbitmq_web_mqtt_fragment} - ]}, - {rabbitmq_web_mqtt_examples, [ - ${rabbitmq_web_mqtt_examples_fragment} - ]}, - {rabbitmq_stomp, [ - ${rabbitmq_stomp_fragment} - ]}, - {rabbitmq_web_stomp, [ - ${rabbitmq_web_stomp_fragment} - ]}, - {rabbitmq_web_stomp_examples, [ - ${rabbitmq_web_stomp_examples_fragment} - ]}, - {rabbitmq_stream, [ - ${rabbitmq_stream_fragment} - ]}, - {rabbitmq_prometheus, [ - ${rabbitmq_prometheus_fragment} - ]}, - {ra, [ - {data_dir, "${RABBITMQ_QUORUM_DIR}"} - ]}, - {osiris, [ - {data_dir, "${RABBITMQ_STREAM_DIR}"} - ]} -]. -EOF -} - -setup_node_env() { - local node_index="" - if [ -n "${1-}" ]; then - node_index="-$1" - unset RABBITMQ_NODENAME RABBITMQ_NODENAME_FOR_PATHS - fi - - RABBITMQ_NODENAME=${RABBITMQ_NODENAME:=rabbit${node_index}@${HOSTNAME}} - RABBITMQ_NODENAME_FOR_PATHS=${RABBITMQ_NODENAME_FOR_PATHS:=${RABBITMQ_NODENAME}} - NODE_TMPDIR=${TEST_TMPDIR}/${RABBITMQ_NODENAME_FOR_PATHS} - - RABBITMQ_BASE=${NODE_TMPDIR} - RABBITMQ_PID_FILE=${NODE_TMPDIR}/${RABBITMQ_NODENAME_FOR_PATHS}.pid - RABBITMQ_LOG_BASE=${NODE_TMPDIR}/log - RABBITMQ_MNESIA_BASE=${NODE_TMPDIR}/mnesia - RABBITMQ_MNESIA_DIR=${RABBITMQ_MNESIA_BASE}/${RABBITMQ_NODENAME_FOR_PATHS} - RABBITMQ_QUORUM_DIR=${RABBITMQ_MNESIA_DIR}/quorum - RABBITMQ_STREAM_DIR=${RABBITMQ_MNESIA_DIR}/stream - RABBITMQ_PLUGINS_EXPAND_DIR=${NODE_TMPDIR}/plugins - RABBITMQ_FEATURE_FLAGS_FILE=${NODE_TMPDIR}/feature_flags - RABBITMQ_ENABLED_PLUGINS_FILE=${NODE_TMPDIR}/enabled_plugins - - export \ - RABBITMQ_NODENAME \ - RABBITMQ_BASE \ - RABBITMQ_PID_FILE \ - RABBITMQ_LOG_BASE \ - RABBITMQ_MNESIA_BASE \ - RABBITMQ_MNESIA_DIR \ - RABBITMQ_QUORUM_DIR \ - RABBITMQ_STREAM_DIR \ - RABBITMQ_PLUGINS_EXPAND_DIR \ - RABBITMQ_FEATURE_FLAGS_FILE \ - RABBITMQ_ENABLED_PLUGINS_FILE - - mkdir -p "$TEST_TMPDIR" - mkdir -p "$RABBITMQ_LOG_BASE" - mkdir -p "$RABBITMQ_MNESIA_BASE" - mkdir -p "$RABBITMQ_PLUGINS_DIR" - mkdir -p "$RABBITMQ_PLUGINS_EXPAND_DIR" -} - -await_startup() { - RMQCTL_WAIT_TIMEOUT=${RMQCTL_WAIT_TIMEOUT:=60} - - # rabbitmqctl wait shells out to 'ps', which is broken in the bazel macOS - # sandbox (https://github.com/bazelbuild/bazel/issues/7448) - # adding "--spawn_strategy=local" to the invocation is a workaround - "$RABBITMQCTL" \ - -n "$RABBITMQ_NODENAME" \ - wait \ - --timeout "$RMQCTL_WAIT_TIMEOUT" \ - "$RABBITMQ_PID_FILE" - - "$RABBITMQCTL" \ - -n "$RABBITMQ_NODENAME" \ - await_startup - } - -if [ -z ${TEST_SRCDIR+x} ]; then - BASE_DIR=$PWD -else - BASE_DIR=$TEST_SRCDIR/$TEST_WORKSPACE -fi - -if [ "$1" = "-C" ]; then - cd "$2" - shift 2 -fi - -for arg in "$@"; do - case $arg in - run-broker) - CMD="$arg" - ;; - start-background-broker) - CMD="$arg" - ;; - stop-node) - CMD="$arg" - ;; - start-cluster) - CMD="$arg" - ;; - stop-cluster) - CMD="$arg" - ;; - set-resource-alarm) - CMD="$arg" - ;; - clear-resource-alarm) - CMD="$arg" - ;; - *) - export "$arg" - ;; - esac -done - -# shellcheck disable=SC1083 -DEFAULT_PLUGINS_DIR=${BASE_DIR}/{RABBITMQ_HOME}/plugins -if [[ -n ${EXTRA_PLUGINS_DIR+x} ]]; then - DEFAULT_PLUGINS_DIR=${DEFAULT_PLUGINS_DIR}:${EXTRA_PLUGINS_DIR} -fi - -RABBITMQ_PLUGINS_DIR=${RABBITMQ_PLUGINS_DIR:=${DEFAULT_PLUGINS_DIR}} -export RABBITMQ_PLUGINS_DIR - -# Enable colourful debug logging by default -# To change this, set RABBITMQ_LOG to info, notice, warning etc. -RABBITMQ_LOG=${RABBITMQ_LOG:='debug,+color'} -export RABBITMQ_LOG - -if [ -z ${LEAVE_PLUGINS_DISABLED+x} ]; then - RABBITMQ_ENABLED_PLUGINS=${RABBITMQ_ENABLED_PLUGINS:=ALL} -else - RABBITMQ_ENABLED_PLUGINS=${RABBITMQ_ENABLED_PLUGINS:=} -fi -export RABBITMQ_ENABLED_PLUGINS - - -TEST_TMPDIR=${TEST_TMPDIR:=$(dirname "$(mktemp -u)")/rabbitmq-test-instances} -printf "RabbitMQ node(s) in directory $GREEN$(realpath "$TEST_TMPDIR")$NO_COLOR\n" - -# shellcheck disable=SC1083 -RABBITMQ_SCRIPTS_DIR="$(rmq_realpath "$BASE_DIR"/{RABBITMQ_HOME}/sbin)" -RABBITMQ_SERVER=${RABBITMQ_SCRIPTS_DIR}/rabbitmq-server -RABBITMQCTL=${RABBITMQ_SCRIPTS_DIR}/rabbitmqctl -export RABBITMQ_SCRIPTS_DIR \ - RABBITMQ_SERVER \ - RABBITMQCTL - -HOSTNAME="$(hostname -s)" - -case $CMD in - run-broker) - setup_node_env - export RABBITMQ_ALLOW_INPUT=true - if [ -z ${RABBITMQ_CONFIG_FILE+x} ]; then - export RABBITMQ_CONFIG_FILE=${TEST_TMPDIR}/test.config - write_config_file - fi - "$RABBITMQ_SERVER" - ;; - start-background-broker) - setup_node_env - "$RABBITMQ_SERVER" \ - > "$RABBITMQ_LOG_BASE"/startup_log \ - 2> "$RABBITMQ_LOG_BASE"/startup_err & - await_startup - ;; - stop-node) - setup_node_env - pid=$(test -f "$RABBITMQ_PID_FILE" && cat "$RABBITMQ_PID_FILE"); \ - test "$pid" && \ - kill -TERM "$pid" && \ - echo "waiting for process to exit" && \ - while ps -p "$pid" >/dev/null 2>&1; do sleep 1; done - ;; - start-cluster) - start_index=${NODES_START_INDEX:=0} - nodes=${NODES:=3}+$start_index - for ((n=start_index; n < nodes; n++)) - do - setup_node_env "$n" - - RABBITMQ_NODE_PORT=$((5672 + n)) \ - RABBITMQ_SERVER_START_ARGS=" \ - -rabbit loopback_users [] \ - -rabbitmq_management listener [{port,$((15672 + n))}] \ - -rabbitmq_mqtt tcp_listeners [$((1883 + n))] \ - -rabbitmq_web_mqtt tcp_config [{port,$((1893 + n))}] \ - -rabbitmq_web_mqtt_examples listener [{port,$((1903 + n))}] \ - -rabbitmq_stomp tcp_listeners [$((61613 + n))] \ - -rabbitmq_web_stomp tcp_config [{port,$((61623 + n))}] \ - -rabbitmq_web_stomp_examples listener [{port,$((61633 + n))}] \ - -rabbitmq_prometheus tcp_config [{port,$((15692 + n))}] \ - -rabbitmq_stream tcp_listeners [$((5552 + n))]" \ - "$RABBITMQ_SERVER" \ - > "$RABBITMQ_LOG_BASE"/startup_log \ - 2> "$RABBITMQ_LOG_BASE"/startup_err & - - await_startup - if [ -n "${nodename0-}" ]; then - "$RABBITMQCTL" -n "$RABBITMQ_NODENAME" stop_app - "$RABBITMQCTL" -n "$RABBITMQ_NODENAME" join_cluster "$nodename0" - "$RABBITMQCTL" -n "$RABBITMQ_NODENAME" start_app - else - nodename0=$RABBITMQ_NODENAME - fi - done - ;; - stop-cluster) - start_index=${NODES_START_INDEX:=0} - nodes=${NODES:=3}+$start_index - for ((n=nodes-1; n >= start_index; n--)) - do - "$RABBITMQCTL" -n "rabbit-$n@$HOSTNAME" stop - done - ;; - set-resource-alarm) - setup_node_env - ERL_LIBS="${BASE_DIR}/{ERL_LIBS}" \ - "$RABBITMQCTL" -n "$RABBITMQ_NODENAME" \ - eval "rabbit_alarm:set_alarm({{resource_limit, ${SOURCE}, node()}, []})." - ;; - clear-resource-alarm) - setup_node_env - ERL_LIBS="${BASE_DIR}/{ERL_LIBS}" \ - "$RABBITMQCTL" -n "$RABBITMQ_NODENAME" \ - eval "rabbit_alarm:clear_alarm({resource_limit, ${SOURCE}, node()})." - ;; - *) - echo "rabbitmq-run does not support $CMD" - exit 1 - ;; -esac diff --git a/tools/BUILD.bazel b/tools/BUILD.bazel deleted file mode 100644 index ab2b50615ab8..000000000000 --- a/tools/BUILD.bazel +++ /dev/null @@ -1,15 +0,0 @@ -load("//:rabbitmq.bzl", "all_plugins") -load(":erlang_ls.bzl", "deps_symlinks") - -deps_symlinks( - name = "symlink_deps_for_erlang_ls", - testonly = True, - apps = all_plugins( - rabbitmq_workspace = "", - ) + [ - "//deps/rabbitmq_ct_helpers:erlang_app", - "//deps/rabbitmq_ct_client_helpers:erlang_app", - ], - dest = "extra_deps", # must also be listed in .bazelignore - tags = ["local"], -) diff --git a/tools/compare_dist.sh b/tools/compare_dist.sh deleted file mode 100755 index 73ed897e1cc3..000000000000 --- a/tools/compare_dist.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash -set -uo pipefail - -GOLDEN=$1 -SECOND=$2 - -failure_count=0 - -echo "Check both have INSTALL" -test -f $GOLDEN/rabbitmq_server-${VERSION}/INSTALL || ((failure_count++)) -test -f $SECOND/rabbitmq_server-${VERSION}/INSTALL || ((failure_count++)) - -echo "Check LICENSEs" -diff \ - <(grep LICENSE make.manifest) \ - <(grep LICENSE bazel.manifest | grep -v ".md" | grep -v ".txt") \ - || ((failure_count++)) - -echo "Check plugins" -plugins_rel=rabbitmq_server-${VERSION}/plugins -diff \ - <(grep $plugins_rel make.manifest | grep -v ".ez") \ - <(grep $plugins_rel bazel.manifest | grep -v ".ez") \ - || ((failure_count++)) - -echo "Plugins exist with same version and deps" -for p in ${PLUGINS} ${EXTRA_PLUGINS}; do - echo "$p" - f="$(cd $GOLDEN && ls -d $plugins_rel/$p-*)" - test -f $GOLDEN/$f/ebin/$p.app || (echo "$GOLDEN/$f/ebin/$p.app does not exist"; ((failure_count++))) - test -d $SECOND/$f || (echo "$SECOND/$f does not exist"; ((failure_count++))) - test -f $SECOND/$f/ebin/$p.app || (echo "$SECOND/$f/ebin/$p.app does not exist"; ((failure_count++))) - ./rabbitmq-server/tools/erlang_app_equal \ - $GOLDEN/$f/ebin/$p.app \ - $SECOND/$f/ebin/$p.app \ - || ((failure_count++)) -done - -echo "Both have escript" -escript_rel=rabbitmq_server-${VERSION}/escript -diff \ - <(grep $escript_rel make.manifest) \ - <(grep $escript_rel bazel.manifest) \ - || ((failure_count++)) - -echo "Both have sbin" -sbin_rel=rabbitmq_server-${VERSION}/sbin -diff \ - <(grep $sbin_rel make.manifest) \ - <(grep $sbin_rel bazel.manifest) \ - || ((failure_count++)) - -echo "Both have manpages" -manpages_rel=rabbitmq_server-${VERSION}/share/man -diff \ - <(grep $manpages_rel make.manifest) \ - <(grep $manpages_rel bazel.manifest) \ - || ((failure_count++)) - -echo "There were $failure_count failures." - -exit $failure_count diff --git a/tools/erlang_app_equal b/tools/erlang_app_equal deleted file mode 100755 index 51d326ac414e..000000000000 --- a/tools/erlang_app_equal +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env escript -%% -*- erlang -*- -%%! -nocookie - --mode(compile). - -main([Left, Right]) -> - {ok, LeftMetadata} = file:consult(Left), - {ok, RightMetadata} = file:consult(Right), - compare(LeftMetadata, RightMetadata), - halt(); -main(_) -> - halt(1). - -compare(LeftMetadata, RightMetadata) -> - [{application, LeftApp, LeftProps}] = LeftMetadata, - [{application, RightApp, RightProps}] = RightMetadata, - - assert_equal(LeftApp, RightApp, "application name"), - - LeftId = proplists:get_value(id, LeftProps), - RightId = proplists:get_value(id, RightProps), - case LeftId of - RightId -> - ok; - _ -> - io:format(standard_error, - "Warning:\t 'id' does not match (~p != ~p)~n", [LeftId, RightId]) - end, - - FilterEmptyRegistered = fun - (registered, []) -> false; - (_, _) -> true - end, - - LeftPropsMap = maps:filter(FilterEmptyRegistered, - proplists:to_map(proplists:delete(id, LeftProps))), - RightPropsMap = maps:filter(FilterEmptyRegistered, - proplists:to_map(proplists:delete(id, RightProps))), - assert_equal( - lists:sort(maps:keys(LeftPropsMap)), - lists:sort(maps:keys(RightPropsMap)), - "app property keys" - ), - [case K of - K when K =:= applications orelse K =:= modules -> - assert_equal( - lists:sort(maps:get(K, LeftPropsMap)), - lists:sort(maps:get(K, RightPropsMap)), - K - ); - env -> - assert_equal( - proplists:to_map(maps:get(K, LeftPropsMap)), - proplists:to_map(maps:get(K, RightPropsMap)), - K - ); - _ -> - assert_equal( - maps:get(K, LeftPropsMap), - maps:get(K, RightPropsMap), - K - ) - end || K <- lists:sort(maps:keys(LeftPropsMap))], - ok. - -assert_equal(Expected, Actual, Context) -> - case Actual of - Expected -> - ok; - _ -> - io:format(standard_error, - "Expected:\t~p~n But got:\t~p~n For:\t~p~n", [Expected, Actual, Context]), - erlang:error(assertion_failed) - end. diff --git a/tools/erlang_ls.bzl b/tools/erlang_ls.bzl deleted file mode 100644 index c95dcddf1c9d..000000000000 --- a/tools/erlang_ls.bzl +++ /dev/null @@ -1,75 +0,0 @@ -load( - "@rules_erlang//:erlang_app_info.bzl", - "ErlangAppInfo", -) -load( - "@rules_erlang//:util.bzl", - "path_join", -) - -def _ln_command(target, source): - return "ln -nsvf \"{target}\" \"{source}\"".format( - target = target, - source = source, - ) - -def _deps_symlinks(ctx): - apps = ctx.attr.apps - deps = [] - - for app in apps: - app_info = app[ErlangAppInfo] - for dep in app_info.deps: - if dep.label.workspace_name != "" and dep not in deps and dep not in apps: - deps.append(dep) - - output = ctx.actions.declare_file(ctx.label.name + ".sh") - - commands = [ - "set -euo pipefail", - "", - "cd $BUILD_WORKSPACE_DIRECTORY", - "", - "mkdir -p \"{}\"".format(ctx.attr.dest), - "", - "echo Generating symlinks to external deps for erlang_ls+bazel...", - "", - ] - - # symlinks for external deps - for dep in deps: - app_info = dep[ErlangAppInfo] - - commands.append(_ln_command( - target = path_join("..", "bazel-$(basename $PWD)", "external", dep.label.workspace_name), - source = path_join(ctx.attr.dest, app_info.app_name), - )) - - # special case symlinks for generated sources - commands.append("") - commands.append(_ln_command( - target = path_join("..", "..", "..", "bazel-bin", "deps", "amqp10_common", "include", "amqp10_framing.hrl"), - source = path_join("deps", "amqp10_common", "include", "amqp10_framing.hrl"), - )) - - ctx.actions.write( - output = output, - content = "\n".join(commands), - ) - - return [DefaultInfo( - executable = output, - )] - -deps_symlinks = rule( - implementation = _deps_symlinks, - attrs = { - "apps": attr.label_list( - providers = [ErlangAppInfo], - ), - "dest": attr.string( - mandatory = True, - ), - }, - executable = True, -) diff --git a/user-template.bazelrc b/user-template.bazelrc deleted file mode 100644 index 3bffd5018365..000000000000 --- a/user-template.bazelrc +++ /dev/null @@ -1,14 +0,0 @@ -# rabbitmqctl wait shells out to 'ps', which is broken in the bazel macOS -# sandbox (https://github.com/bazelbuild/bazel/issues/7448) -# adding "--strategy=TestRunner=local" to the invocation is a workaround -build --strategy=TestRunner=local - -# --experimental_strict_action_env breaks memory size detection on macOS, -# so turn it off for local runs -build --noexperimental_strict_action_env - -# don't re-run flakes automatically on the local machine -build --flaky_test_attempts=1 - -# write common test logs to logs/ dir -build --@rules_erlang//:ct_logdir=/absolute/expanded/path/to/this/repo/logs