From 77883bc1bd75afb6a83bc46725479ddd201e3f3e Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 7 Aug 2023 01:38:14 +0200 Subject: [PATCH 1/8] Conflate C* and Scylla tests --- .github/workflows/main.yml | 162 +++++++++-------------- CONTRIBUTING.md | 15 +-- docker-compose.scylladb.yml | 45 ------- docker-compose.yml | 43 ++++++ mix.exs | 17 ++- test/integration/authentication_test.exs | 14 +- test/support/integration_case.ex | 7 +- 7 files changed, 136 insertions(+), 167 deletions(-) delete mode 100644 docker-compose.scylladb.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 41b4eac3..12f1fa92 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,59 +7,65 @@ on: - main env: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} MIX_ENV: test + LATEST_ELIXIR_VERSION: "1.14" + LATEST_OTP_VERSION: "25.3" jobs: lint: name: Lint + runs-on: ubuntu-20.04 + strategy: fail-fast: true - matrix: - otp: ["25.3"] - elixir: ["1.14"] + steps: - name: Clone the repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install OTP and Elixir uses: erlef/setup-beam@v1 with: - otp-version: ${{ matrix.otp }} - elixir-version: ${{ matrix.elixir }} + otp-version: "${{ env.LATEST_ELIXIR_VERSION }}" + elixir-version: "${{ env.LATEST_OTP_VERSION }}" - name: Cache dependencies id: cache-deps - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | deps _build - key: ${{ runner.os }}-otp${{ matrix.otp }}-elixir${{ matrix.elixir }}-${{ hashFiles('**/mix.lock') }} + key: | + ${{ runner.os }}-otp${{ matrix.otp }}-elixir${{ matrix.elixir }}-${{ hashFiles('**/mix.lock') }} + restore-keys: | + ${{ runner.os }}-otp${{ matrix.otp }}-elixir${{ matrix.elixir }}- - name: Install and compile dependencies if: steps.cache-deps.outputs.cache-hit != 'true' - run: mix do deps.get --only test, deps.compile + run: mix do deps.get + deps.compile - name: Check formatting run: mix format --check-formatted - name: Check no unused dependencies - run: mix do deps.get, deps.unlock --check-unused + run: mix deps.unlock --check-unused if: ${{ steps.cache-deps.outputs.cache-hit != 'true' }} - name: Compile with --warnings-as-errors run: mix compile --warnings-as-errors --force - # Don't cache PLTs based on mix.lock hash, as Dialyzer can incrementally update even old ones - # Cache key based on Elixir & Erlang version (also useful when running in matrix) - name: Cache Dialyzer's PLT - uses: actions/cache@v2 + uses: actions/cache@v3 id: cache-plt with: path: priv/plts - key: ${{ runner.os }}-otp${{ matrix.otp }}-elixir${{ matrix.elixir }} + key: | + ${{ runner.os }}-otp${{ matrix.otp }}-elixir${{ matrix.elixir }}-${{ hashFiles('**/mix.lock') }} + restore-keys: | + ${{ runner.os }}-otp${{ matrix.otp }}-elixir${{ matrix.elixir }}- # Create PLTs if no cache was found - name: Create PLTs @@ -71,33 +77,50 @@ jobs: test: name: Test (Elixir ${{ matrix.elixir }}, OTP ${{ matrix.otp }}, C* ${{ matrix.cassandra_version }}, Native protocols ${{ matrix.cassandra_native_protocols }}) + runs-on: ubuntu-20.04 + strategy: fail-fast: false + matrix: + otp: + - "${{ env.LATEST_OTP_VERSION }}" + elixir: + - "${{ env.LATEST_ELIXIR_VERSION }}" + server_versions: + - cassandra: "4.1" + scylla: "5.1.6" + - cassandra: "3" + scylla: "4.6.3" + cassandra_native_protocol: + - "v3" + - "v4" include: + # Only C* 4.1+ supports native protocol v5. - otp: "25.3" elixir: "1.14" + test_only_cassandra: true cassandra_version: "4.1" - cassandra_native_protocols: "v4,v5" - lint: true - - otp: "25.3" - elixir: "1.14" - cassandra_version: "3" - cassandra_native_protocols: "v3,v4" + cassandra_native_protocol: "v4" + # Oldest supported Elixir/OTP matrix. We support down to Erlang 21, but # rustler_precompiled (which we use for nimble_lz4, which we use for testing) # requires OTP 23+. - otp: "23.3" elixir: "1.11" + test_only_cassandra: true cassandra_version: "3" - cassandra_native_protocols: "v3" + cassandra_native_protocol: "v3" + env: - CASSANDRA_VERSION: ${{ matrix.cassandra_version }} + CASSANDRA_VERSION: ${{ matrix.server_versions.cassandra }} + SCYLLA_VERSION: ${{ matrix.server_versions.scylla }} + CASSANDRA_NATIVE_PROTOCOL: ${{ matrix.cassandra_native_protocol }} steps: - name: Clone the repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Start Docker and wait for it to be up run: | @@ -107,27 +130,33 @@ jobs: - name: Install OTP and Elixir uses: erlef/setup-beam@v1 with: - otp-version: ${{matrix.otp}} - elixir-version: ${{matrix.elixir}} + otp-version: ${{ matrix.otp }} + elixir-version: ${{ matrix.elixir }} - name: Cache dependencies id: cache-deps - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | deps _build - key: ${{ runner.os }}-mix-otp${{ matrix.otp }}-elixir${{ matrix.elixir }}-${{ hashFiles('**/mix.lock') }} + key: | + ${{ runner.os }}-mix-otp${{ matrix.otp }}-elixir${{ matrix.elixir }}-${{ hashFiles('**/mix.lock') }} + restore-keys: + ${{ runner.os }}-mix-otp${{ matrix.otp }}-elixir${{ matrix.elixir }}- - name: Install and compile dependencies if: steps.cache-deps.outputs.cache-hit != 'true' - run: | - mix deps.get --only test - mix deps.compile + run: mix do deps.get --only test, deps.compile # TODO: eventually figure out why we can't run encryption tests on CI. - - name: Run tests - run: mix test.native_protocols --only-protocols ${{ matrix.cassandra_native_protocols }} --trace --exclude encryption + - name: Run tests for Cassandra and Scylla + if: ${{ !matrix.test_only_cassandra }} + run: mix test.all --trace --exclude encryption + + - name: Run tests for Cassandra only + if: ${{ matrix.test_only_cassandra }} + run: mix test --trace --exclude encryption - name: Dump Docker logs on failure uses: jwalton/gh-docker-logs@v1 @@ -144,7 +173,6 @@ jobs: elixir: "1.13" cassandra_version: "4.1" cassandra_native_protocol: "v5" - lint: true - otp: "24.2" elixir: "1.13" cassandra_version: "4.1" @@ -167,7 +195,6 @@ jobs: env: CASSANDRA_VERSION: ${{ matrix.cassandra_version }} CASSANDRA_NATIVE_PROTOCOL: ${{ matrix.cassandra_native_protocol }} - NIMBLELZ4_FORCE_BUILD: ${{ matrix.elixir == '1.9' && 'true' }} steps: - name: Clone the repository @@ -205,68 +232,3 @@ jobs: - name: Dump Docker logs on failure uses: jwalton/gh-docker-logs@v1 if: failure() - - test_scylla: - name: Test ScyllaDB (Elixir ${{ matrix.elixir }}, OTP ${{ matrix.otp }}, Scylla ${{ matrix.scylla_version }}, Native protocol ${{ matrix.cassandra_native_protocol }}) - runs-on: ubuntu-20.04 - strategy: - fail-fast: false - matrix: - include: - - otp: "24.2" - elixir: "1.13" - scylla_version: "5.1.6" - cassandra_native_protocol: "v4" - - otp: "24.2" - elixir: "1.13" - scylla_version: "4.6.3" - cassandra_native_protocol: "v4" - - otp: "24.2" - elixir: "1.13" - scylla_version: "2.3.1" - cassandra_native_protocol: "v4" - - otp: "24.2" - elixir: "1.13" - scylla_version: "2.3.1" - cassandra_native_protocol: "v3" - - env: - SCYLLA_VERSION: ${{ matrix.scylla_version }} - CASSANDRA_NATIVE_PROTOCOL: ${{ matrix.cassandra_native_protocol }} - - steps: - - name: Clone the repository - uses: actions/checkout@v2 - - - name: Start Docker and wait for it to be up - run: | - docker-compose --file docker-compose.scylladb.yml up --detach - ./test/docker/health-check-services.sh - - - name: Install OTP and Elixir - uses: erlef/setup-beam@v1 - with: - otp-version: ${{matrix.otp}} - elixir-version: ${{matrix.elixir}} - - - name: Cache dependencies - id: cache-deps - uses: actions/cache@v2 - with: - path: | - deps - _build - key: ${{ runner.os }}-mix-otp${{ matrix.otp }}-elixir${{ matrix.elixir }}-${{ hashFiles('**/mix.lock') }} - - - name: Install and compile dependencies - if: steps.cache-deps.outputs.cache-hit != 'true' - run: | - mix deps.get --only test - mix deps.compile - - - name: Run tests - run: mix test.scylladb - - - name: Dump Docker logs on failure - uses: jwalton/gh-docker-logs@v1 - if: failure() diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 89d9ef43..74db442c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,27 +13,16 @@ mix test ``` The `--daemon` flag runs the instances as daemons in the background. Give it a -minute between starting the services and running `mix test` since Cassandra +minute between starting the services and running `mix test.all` since Cassandra takes a while to start. You can check whether the Docker containers are ready with `docker-compose ps`. To stop the services, run `docker-compose stop`. -To run tests for Scylla, you'll need a different set of services and a different -test task: - -```bash -docker-compose --file docker-compose.scylladb.yml up --daemon -mix test.scylladb -``` - -Use `docker-compose --file docker-compose.scylladb.yml stop` to stop Scylla when -done. - By default, tests run for native protocol *v5* except for a few specific tests that run on other protocols. If you want to limit the test suite to a native protocol, use: ```bash -CASSANDRA_NATIVE_PROTOCOL=v4 mix test +CASSANDRA_NATIVE_PROTOCOL=v4 mix test.all ``` [Docker]: https://www.docker.com diff --git a/docker-compose.scylladb.yml b/docker-compose.scylladb.yml deleted file mode 100644 index b5e920fb..00000000 --- a/docker-compose.scylladb.yml +++ /dev/null @@ -1,45 +0,0 @@ -version: '3' - -services: - scylladb: - build: - context: ./test/docker - dockerfile: scylladb.dockerfile - args: - SCYLLA_VERSION: ${SCYLLA_VERSION:-2.3.1} - ports: - - "9042:9042" - command: - - "--smp" - - "1" - healthcheck: - test: [ "CMD-SHELL", "nodetool -h ::FFFF:127.0.0.1 status" ] - interval: 20s - timeout: 10s - retries: 12 - logging: - driver: "json-file" - options: - max-size: 50m - - scylladb_with_auth: - build: - context: ./test/docker - dockerfile: scylladb.dockerfile - args: - SCYLLA_VERSION: ${SCYLLA_VERSION:-2.3.1} - AUTHENTICATION: "true" - ports: - - "9043:9042" - command: - - "--smp" - - "1" - healthcheck: - test: [ "CMD-SHELL", "nodetool -h ::FFFF:127.0.0.1 status" ] - interval: 20s - timeout: 10s - retries: 12 - logging: - driver: "json-file" - options: - max-size: 50m diff --git a/docker-compose.yml b/docker-compose.yml index 62ce6516..e89b462b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -44,3 +44,46 @@ services: driver: "json-file" options: max-size: 50m + + scylladb: + build: + context: ./test/docker + dockerfile: scylladb.dockerfile + args: + SCYLLA_VERSION: ${SCYLLA_VERSION:-2.3.1} + ports: + - "9052:9042" + command: + - "--smp" + - "1" + healthcheck: + test: [ "CMD-SHELL", "nodetool -h ::FFFF:127.0.0.1 status" ] + interval: 20s + timeout: 10s + retries: 12 + logging: + driver: "json-file" + options: + max-size: 50m + + scylladb_with_auth: + build: + context: ./test/docker + dockerfile: scylladb.dockerfile + args: + SCYLLA_VERSION: ${SCYLLA_VERSION:-2.3.1} + AUTHENTICATION: "true" + ports: + - "9053:9042" + command: + - "--smp" + - "1" + healthcheck: + test: [ "CMD-SHELL", "nodetool -h ::FFFF:127.0.0.1 status" ] + interval: 20s + timeout: 10s + retries: 12 + logging: + driver: "json-file" + options: + max-size: 50m diff --git a/mix.exs b/mix.exs index a88a1634..d2980cd9 100644 --- a/mix.exs +++ b/mix.exs @@ -24,7 +24,10 @@ defmodule Xandra.Mixfile do # Dialyzer dialyzer: [ flags: [:no_contracts, :no_improper_lists], - plt_add_apps: [:ssl, :crypto, :mix, :ex_unit, :decimal] + list_unused_filters: true, + plt_add_apps: [:ssl, :crypto, :mix, :ex_unit, :decimal], + plt_local_path: "priv/plts", + plt_core_path: "priv/plts" ], # Testing @@ -71,7 +74,17 @@ defmodule Xandra.Mixfile do defp aliases() do [ - "test.scylladb": "test --exclude cassandra_specific --exclude encryption", + "test.scylladb": [ + fn _args -> + System.put_env("CASSANDRA_PORT", "9052") + System.put_env("CASSANDRA_WITH_AUTH_PORT", "9053") + end, + "test --exclude cassandra_specific --exclude encryption" + ], + "test.all": fn args -> + Mix.Task.run(:test, args) + Mix.Task.run(:"test.scylladb", args) + end, "test.clustering": "run test_clustering/run.exs" ] end diff --git a/test/integration/authentication_test.exs b/test/integration/authentication_test.exs index c3eb4e3e..57b18c5a 100644 --- a/test/integration/authentication_test.exs +++ b/test/integration/authentication_test.exs @@ -1,18 +1,20 @@ defmodule AuthenticationTest do auth_options = [username: "cassandra", password: "cassandra"] + port = System.get_env("CASSANDRA_WITH_AUTH_PORT", "9043") + dbg(port) - start_options = [ - authentication: {Xandra.Authenticator.Password, auth_options}, - nodes: ["127.0.0.1:9043"] - ] - - use XandraTest.IntegrationCase, start_options: start_options + use XandraTest.IntegrationCase, + start_options: [ + authentication: {Xandra.Authenticator.Password, auth_options}, + nodes: ["127.0.0.1:#{port}"] + ] alias Xandra.TestHelper @moduletag :authentication test "challenge is passed to cluster connections", %{start_options: start_options} do + dbg() cluster = TestHelper.start_link_supervised!({Xandra.Cluster, start_options}) TestHelper.await_cluster_connected(cluster) end diff --git a/test/support/integration_case.ex b/test/support/integration_case.ex index 360a446c..e54d84a0 100644 --- a/test/support/integration_case.ex +++ b/test/support/integration_case.ex @@ -36,7 +36,12 @@ defmodule XandraTest.IntegrationCase do @spec default_start_options() :: keyword() def default_start_options do - options = [show_sensitive_data_on_connection_error: true] + port = System.get_env("CASSANDRA_PORT", "9042") + + options = [ + show_sensitive_data_on_connection_error: true, + nodes: ["127.0.0.1:#{port}"] + ] case System.get_env("CASSANDRA_NATIVE_PROTOCOL", "") do "v3" -> Keyword.put(options, :protocol_version, :v3) From 2f2a539e13d00ce04fc90e8687606866c89bab52 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 7 Aug 2023 01:41:29 +0200 Subject: [PATCH 2/8] FIXUP --- .dialyzer_ignore.exs | 6 +----- .gitignore | 1 + 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.dialyzer_ignore.exs b/.dialyzer_ignore.exs index 47e1246f..fe51488c 100644 --- a/.dialyzer_ignore.exs +++ b/.dialyzer_ignore.exs @@ -1,5 +1 @@ -[ - {"lib/xandra/protocol/v3.ex", :call_without_opaque}, - {"lib/xandra/protocol/v4.ex", :call_without_opaque}, - {"lib/xandra/protocol/v5.ex", :call_without_opaque}, -] +[] diff --git a/.gitignore b/.gitignore index 008b35de..6be12efe 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ /cover /deps /doc +/priv/plts erl_crash.dump *.ez From 25cfeacb29f95d1558905cdf6e45d83bfc4ebb57 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 7 Aug 2023 10:05:58 +0200 Subject: [PATCH 3/8] FIXUP --- .github/workflows/main.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 12f1fa92..b8a4aa44 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,8 +9,6 @@ on: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} MIX_ENV: test - LATEST_ELIXIR_VERSION: "1.14" - LATEST_OTP_VERSION: "25.3" jobs: lint: @@ -28,8 +26,8 @@ jobs: - name: Install OTP and Elixir uses: erlef/setup-beam@v1 with: - otp-version: "${{ env.LATEST_ELIXIR_VERSION }}" - elixir-version: "${{ env.LATEST_OTP_VERSION }}" + otp-version: "25.3" + elixir-version: "1.14" - name: Cache dependencies id: cache-deps @@ -76,7 +74,7 @@ jobs: run: mix dialyzer --format github test: - name: Test (Elixir ${{ matrix.elixir }}, OTP ${{ matrix.otp }}, C* ${{ matrix.cassandra_version }}, Native protocols ${{ matrix.cassandra_native_protocols }}) + name: Test (Elixir ${{ matrix.elixir }}, OTP ${{ matrix.otp }}, C* ${{ matrix.cassandra_version }}, Native protocols ${{ matrix.cassandra_native_protocol }}) runs-on: ubuntu-20.04 @@ -85,9 +83,9 @@ jobs: matrix: otp: - - "${{ env.LATEST_OTP_VERSION }}" + - "25.3" elixir: - - "${{ env.LATEST_ELIXIR_VERSION }}" + - "1.14" server_versions: - cassandra: "4.1" scylla: "5.1.6" From 29bccc2b7917d585fc48720ca43f0a0229e7b873 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 7 Aug 2023 10:10:01 +0200 Subject: [PATCH 4/8] DIXUP --- .github/workflows/main.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b8a4aa44..a67bacfd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: uses: erlef/setup-beam@v1 with: otp-version: "25.3" - elixir-version: "1.14" + elixir-version: "1.15.4" - name: Cache dependencies id: cache-deps @@ -74,7 +74,14 @@ jobs: run: mix dialyzer --format github test: - name: Test (Elixir ${{ matrix.elixir }}, OTP ${{ matrix.otp }}, C* ${{ matrix.cassandra_version }}, Native protocols ${{ matrix.cassandra_native_protocol }}) + name: >- + Test ( + Elixir ${{ matrix.elixir }}, + OTP ${{ matrix.otp }}, + C* ${{ matrix.server_versions.cassandra }}, + Scylla ${{ matrix.server_versions.scylla }}, + Native protocol ${{ matrix.cassandra_native_protocol }} + ) runs-on: ubuntu-20.04 @@ -85,7 +92,7 @@ jobs: otp: - "25.3" elixir: - - "1.14" + - "1.15.4" server_versions: - cassandra: "4.1" scylla: "5.1.6" @@ -97,7 +104,7 @@ jobs: include: # Only C* 4.1+ supports native protocol v5. - otp: "25.3" - elixir: "1.14" + elixir: "1.15.4" test_only_cassandra: true cassandra_version: "4.1" cassandra_native_protocol: "v4" From b137d91124e262fdf8fefcbfdd6017ae1ba6fd8b Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 7 Aug 2023 10:10:34 +0200 Subject: [PATCH 5/8] Remove dbg --- test/integration/authentication_test.exs | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/integration/authentication_test.exs b/test/integration/authentication_test.exs index 57b18c5a..8c7d8abe 100644 --- a/test/integration/authentication_test.exs +++ b/test/integration/authentication_test.exs @@ -1,7 +1,6 @@ defmodule AuthenticationTest do auth_options = [username: "cassandra", password: "cassandra"] port = System.get_env("CASSANDRA_WITH_AUTH_PORT", "9043") - dbg(port) use XandraTest.IntegrationCase, start_options: [ @@ -14,7 +13,6 @@ defmodule AuthenticationTest do @moduletag :authentication test "challenge is passed to cluster connections", %{start_options: start_options} do - dbg() cluster = TestHelper.start_link_supervised!({Xandra.Cluster, start_options}) TestHelper.await_cluster_connected(cluster) end From a1ed190e91521395c4c043b96ee9924a275633ca Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 7 Aug 2023 11:07:23 +0200 Subject: [PATCH 6/8] FIXUP --- mix.exs | 7 +++++-- mix.lock | 14 +++----------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/mix.exs b/mix.exs index d2980cd9..5b651b94 100644 --- a/mix.exs +++ b/mix.exs @@ -97,9 +97,12 @@ defmodule Xandra.Mixfile do {:telemetry, "~> 0.4.3 or ~> 1.0"}, # Dev and test dependencies - {:ex_doc, "~> 0.28", only: :dev}, + # We override CAStore because some downstream dep still uses ~> 0.1. + {:castore, "~> 1.0", only: [:dev, :test], override: true}, {:dialyxir, "~> 1.3", only: [:dev, :test], runtime: false}, - {:excoveralls, "~> 0.16.0", only: :test}, + {:ex_doc, "~> 0.28", only: :dev}, + # TODO: replace with Hex version once it gets released + {:excoveralls, github: "whatyouhide/excoveralls", branch: "httpc", only: :test}, {:stream_data, "~> 0.5.0", only: [:dev, :test]}, {:nimble_lz4, "~> 0.1.2", only: [:dev, :test]} ] diff --git a/mix.lock b/mix.lock index 2a498d64..d27e21df 100644 --- a/mix.lock +++ b/mix.lock @@ -1,30 +1,22 @@ %{ - "castore": {:hex, :castore, "0.1.17", "ba672681de4e51ed8ec1f74ed624d104c0db72742ea1a5e74edbc770c815182f", [:mix], [], "hexpm", "d9844227ed52d26e7519224525cb6868650c272d4a3d327ce3ca5570c12163f9"}, - "certifi": {:hex, :certifi, "2.9.0", "6f2a475689dd47f19fb74334859d460a2dc4e3252a3324bd2111b8f0429e7e21", [:rebar3], [], "hexpm", "266da46bdb06d6c6d35fde799bcb28d36d985d424ad7c08b5bb48f5b5cdd4641"}, + "castore": {:hex, :castore, "1.0.3", "7130ba6d24c8424014194676d608cb989f62ef8039efd50ff4b3f33286d06db8", [:mix], [], "hexpm", "680ab01ef5d15b161ed6a95449fac5c6b8f60055677a8e79acf01b27baa4390b"}, "db_connection": {:hex, :db_connection, "2.5.0", "bb6d4f30d35ded97b29fe80d8bd6f928a1912ca1ff110831edcd238a1973652c", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c92d5ba26cd69ead1ff7582dbb860adeedfff39774105a4f1c92cbb654b55aa2"}, "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"}, "dialyxir": {:hex, :dialyxir, "1.3.0", "fd1672f0922b7648ff9ce7b1b26fcf0ef56dda964a459892ad15f6b4410b5284", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "00b2a4bcd6aa8db9dcb0b38c1225b7277dca9bc370b6438715667071a304696f"}, "earmark_parser": {:hex, :earmark_parser, "1.4.32", "fa739a0ecfa34493de19426681b23f6814573faee95dfd4b4aafe15a7b5b32c6", [:mix], [], "hexpm", "b8b0dd77d60373e77a3d7e8afa598f325e49e8663a51bcc2b88ef41838cca755"}, "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, "ex_doc": {:hex, :ex_doc, "0.29.4", "6257ecbb20c7396b1fe5accd55b7b0d23f44b6aa18017b415cb4c2b91d997729", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "2c6699a737ae46cb61e4ed012af931b57b699643b24dabe2400a8168414bc4f5"}, - "excoveralls": {:hex, :excoveralls, "0.16.1", "0bd42ed05c7d2f4d180331a20113ec537be509da31fed5c8f7047ce59ee5a7c5", [:mix], [{:hackney, "~> 1.16", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "dae763468e2008cf7075a64cb1249c97cb4bc71e236c5c2b5e5cdf1cfa2bf138"}, - "hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~>2.9.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~>6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~>1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~>1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"}, - "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, - "jason": {:hex, :jason, "1.4.0", "e855647bc964a44e2f67df589ccf49105ae039d4179db7f6271dfd3843dc27e6", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "79a3791085b2a0f743ca04cec0f7be26443738779d09302e01318f97bdb82121"}, + "excoveralls": {:git, "https://github.com/whatyouhide/excoveralls.git", "6275ab6c8db4441fee1548c3803f83971f830626", [branch: "httpc"]}, + "jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"}, "makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"}, "makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"}, "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"}, - "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"}, - "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"}, "nimble_lz4": {:hex, :nimble_lz4, "0.1.2", "68c9067c3e375389560891920d18b8f6bc7c41c64b93ebea588984cf8337723a", [:mix], [{:rustler, "~> 0.25.0", [hex: :rustler, repo: "hexpm", optional: false]}, {:rustler_precompiled, "~> 0.5.0", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "b9c2d59e8e5f1f40e625918709e0e2e6f33f9106b5eaa5b7bf60a78c2ed972c8"}, "nimble_options": {:hex, :nimble_options, "1.0.2", "92098a74df0072ff37d0c12ace58574d26880e522c22801437151a159392270e", [:mix], [], "hexpm", "fd12a8db2021036ce12a309f26f564ec367373265b53e25403f0ee697380f1b8"}, "nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"}, - "parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"}, "rustler": {:hex, :rustler, "0.25.0", "32526b51af7e58a740f61941bf923486ce6415a91c3934cc16c281aa201a2240", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:toml, "~> 0.6", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "6b43a11a37fe79c6234d88c4102ab5dfede7a6a764dc5c7b539956cfa02f3cf4"}, "rustler_precompiled": {:hex, :rustler_precompiled, "0.5.1", "93df423bd7b14b67dcacf994443d132d300623f80756974cac4febeab40af74a", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: false]}, {:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "3f8cbc8e92eef4e1a71bf441b568b868b16a3730f63f5b803c68073017e30b13"}, - "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.6", "cf344f5692c82d2cd7554f5ec8fd961548d4fd09e7d22f5b62482e5aeaebd4b0", [:make, :mix, :rebar3], [], "hexpm", "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680"}, "stream_data": {:hex, :stream_data, "0.5.0", "b27641e58941685c75b353577dc602c9d2c12292dd84babf506c2033cd97893e", [:mix], [], "hexpm", "012bd2eec069ada4db3411f9115ccafa38540a3c78c4c0349f151fc761b9e271"}, "telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"}, "toml": {:hex, :toml, "0.6.2", "38f445df384a17e5d382befe30e3489112a48d3ba4c459e543f748c2f25dd4d1", [:mix], [], "hexpm", "d013e45126d74c0c26a38d31f5e8e9b83ea19fc752470feb9a86071ca5a672fa"}, - "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"}, } From 652f58e0a61731fec5a72b4c6d766c521446eb75 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 7 Aug 2023 11:54:57 +0200 Subject: [PATCH 7/8] More deps --- mix.exs | 4 +--- mix.lock | 8 ++++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mix.exs b/mix.exs index 5b651b94..e984dd35 100644 --- a/mix.exs +++ b/mix.exs @@ -97,14 +97,12 @@ defmodule Xandra.Mixfile do {:telemetry, "~> 0.4.3 or ~> 1.0"}, # Dev and test dependencies - # We override CAStore because some downstream dep still uses ~> 0.1. - {:castore, "~> 1.0", only: [:dev, :test], override: true}, {:dialyxir, "~> 1.3", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.28", only: :dev}, # TODO: replace with Hex version once it gets released {:excoveralls, github: "whatyouhide/excoveralls", branch: "httpc", only: :test}, {:stream_data, "~> 0.5.0", only: [:dev, :test]}, - {:nimble_lz4, "~> 0.1.2", only: [:dev, :test]} + {:nimble_lz4, "~> 0.1.3", only: [:dev, :test]} ] end end diff --git a/mix.lock b/mix.lock index d27e21df..224c2751 100644 --- a/mix.lock +++ b/mix.lock @@ -11,12 +11,12 @@ "makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"}, "makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"}, "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"}, - "nimble_lz4": {:hex, :nimble_lz4, "0.1.2", "68c9067c3e375389560891920d18b8f6bc7c41c64b93ebea588984cf8337723a", [:mix], [{:rustler, "~> 0.25.0", [hex: :rustler, repo: "hexpm", optional: false]}, {:rustler_precompiled, "~> 0.5.0", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "b9c2d59e8e5f1f40e625918709e0e2e6f33f9106b5eaa5b7bf60a78c2ed972c8"}, + "nimble_lz4": {:hex, :nimble_lz4, "0.1.3", "91532acf308c381cf9128221408d52944adcecb1060d2d7efd5f0a37e1257759", [:mix], [{:rustler, "~> 0.29.0", [hex: :rustler, repo: "hexpm", optional: false]}, {:rustler_precompiled, "~> 0.6.2", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "09d9d67bbb07f707ceae55426f63b9d2ee1574288ab67038f5789863be1a0833"}, "nimble_options": {:hex, :nimble_options, "1.0.2", "92098a74df0072ff37d0c12ace58574d26880e522c22801437151a159392270e", [:mix], [], "hexpm", "fd12a8db2021036ce12a309f26f564ec367373265b53e25403f0ee697380f1b8"}, "nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"}, - "rustler": {:hex, :rustler, "0.25.0", "32526b51af7e58a740f61941bf923486ce6415a91c3934cc16c281aa201a2240", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:toml, "~> 0.6", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "6b43a11a37fe79c6234d88c4102ab5dfede7a6a764dc5c7b539956cfa02f3cf4"}, - "rustler_precompiled": {:hex, :rustler_precompiled, "0.5.1", "93df423bd7b14b67dcacf994443d132d300623f80756974cac4febeab40af74a", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: false]}, {:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "3f8cbc8e92eef4e1a71bf441b568b868b16a3730f63f5b803c68073017e30b13"}, + "rustler": {:hex, :rustler, "0.29.1", "880f20ae3027bd7945def6cea767f5257bc926f33ff50c0d5d5a5315883c084d", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:toml, "~> 0.6", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "109497d701861bfcd26eb8f5801fe327a8eef304f56a5b63ef61151ff44ac9b6"}, + "rustler_precompiled": {:hex, :rustler_precompiled, "0.6.2", "d2218ba08a43fa331957f30481d00b666664d7e3861431b02bd3f4f30eec8e5b", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "b9048eaed8d7d14a53f758c91865cc616608a438d2595f621f6a4b32a5511709"}, "stream_data": {:hex, :stream_data, "0.5.0", "b27641e58941685c75b353577dc602c9d2c12292dd84babf506c2033cd97893e", [:mix], [], "hexpm", "012bd2eec069ada4db3411f9115ccafa38540a3c78c4c0349f151fc761b9e271"}, "telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"}, - "toml": {:hex, :toml, "0.6.2", "38f445df384a17e5d382befe30e3489112a48d3ba4c459e543f748c2f25dd4d1", [:mix], [], "hexpm", "d013e45126d74c0c26a38d31f5e8e9b83ea19fc752470feb9a86071ca5a672fa"}, + "toml": {:hex, :toml, "0.7.0", "fbcd773caa937d0c7a02c301a1feea25612720ac3fa1ccb8bfd9d30d822911de", [:mix], [], "hexpm", "0690246a2478c1defd100b0c9b89b4ea280a22be9a7b313a8a058a2408a2fa70"}, } From db3b5eadf9c82b311e7dae55bd674dafe747faba Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 7 Aug 2023 12:37:15 +0200 Subject: [PATCH 8/8] FIXUP --- mix.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.lock b/mix.lock index 224c2751..445b0e25 100644 --- a/mix.lock +++ b/mix.lock @@ -11,7 +11,7 @@ "makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"}, "makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"}, "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"}, - "nimble_lz4": {:hex, :nimble_lz4, "0.1.3", "91532acf308c381cf9128221408d52944adcecb1060d2d7efd5f0a37e1257759", [:mix], [{:rustler, "~> 0.29.0", [hex: :rustler, repo: "hexpm", optional: false]}, {:rustler_precompiled, "~> 0.6.2", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "09d9d67bbb07f707ceae55426f63b9d2ee1574288ab67038f5789863be1a0833"}, + "nimble_lz4": {:hex, :nimble_lz4, "0.1.3", "ce2d6594a652489322962f4c037f1b55802f17666c7154c66bab529c542d71be", [:mix], [{:rustler, "~> 0.29.0", [hex: :rustler, repo: "hexpm", optional: false]}, {:rustler_precompiled, "~> 0.6.2", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "eeec9c66d6562155a6c43481f2895828bd3e58287c14bcd65557bd02bbe84993"}, "nimble_options": {:hex, :nimble_options, "1.0.2", "92098a74df0072ff37d0c12ace58574d26880e522c22801437151a159392270e", [:mix], [], "hexpm", "fd12a8db2021036ce12a309f26f564ec367373265b53e25403f0ee697380f1b8"}, "nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"}, "rustler": {:hex, :rustler, "0.29.1", "880f20ae3027bd7945def6cea767f5257bc926f33ff50c0d5d5a5315883c084d", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:toml, "~> 0.6", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "109497d701861bfcd26eb8f5801fe327a8eef304f56a5b63ef61151ff44ac9b6"},