From 0db7a81069b9bc4f71a18fd8e10b983c91f316c5 Mon Sep 17 00:00:00 2001 From: Argonus Date: Sun, 25 Feb 2024 08:33:08 +0100 Subject: [PATCH] Bump minimal elixir version --- .github/workflows/checks.yml | 78 ++++++++++++++++++------------------ .github/workflows/test.yml | 38 +++++++----------- mix.exs | 23 +++-------- mix.lock | 11 ++--- 4 files changed, 64 insertions(+), 86 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 39e02e55..e8a57701 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -15,44 +15,43 @@ jobs: ACTIONS_ALLOW_UNSECURE_COMMANDS: true strategy: matrix: - elixir: ['1.12.3'] - otp: ['24.3.4'] + elixir: ['1.16'] + otp: ['26.2'] steps: - - name: Cancel previous runs - uses: styfle/cancel-workflow-action@0.9.0 - with: - access_token: ${{ github.token }} - - - name: Checkout Github repo - uses: actions/checkout@v2 - - - name: Setup elixir & erlang environment - uses: erlef/setup-beam@v1 - with: - elixir-version: ${{matrix.elixir}} # Define the elixir version [required] - otp-version: ${{matrix.otp}} # Define the OTP version [required] - experimental-otp: true # More info https://github.com/actions/setup-elixir/issues/31 - - - name: Retrieve Cached Dependencies - uses: actions/cache@v2 - id: mix-cache - with: - path: | - deps - _build - priv/plts - key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }} - - - name: Install Dependencies - if: steps.mix-cache.outputs.cache-hit != 'true' - run: | - mkdir -p priv/plts - mix local.rebar --force - mix local.hex --force - mix deps.get - mix deps.compile - mix dialyzer --plt + - name: Cancel previous runs + uses: styfle/cancel-workflow-action@0.9.0 + with: + access_token: ${{ github.token }} + + - name: Checkout Github repo + uses: actions/checkout@v2 + + - name: Setup elixir & erlang environment + uses: erlef/setup-beam@v1 + with: + elixir-version: ${{matrix.elixir}} # Define the elixir version [required] + otp-version: ${{matrix.otp}} # Define the OTP version [required] + + - name: Retrieve Cached Dependencies + uses: actions/cache@v2 + id: mix-cache + with: + path: | + deps + _build + priv/plts + key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }} + + - name: Install Dependencies + if: steps.mix-cache.outputs.cache-hit != 'true' + run: | + mkdir -p priv/plts + mix local.rebar --force + mix local.hex --force + mix deps.get + mix deps.compile + mix dialyzer --plt static_code_analysis: name: Static Code Analysis @@ -64,8 +63,8 @@ jobs: strategy: fail-fast: false matrix: - elixir: ['1.12.3'] - otp: ['24.3.4'] + elixir: ['1.16'] + otp: ['26.2'] steps: - name: Cancel Previous Runs @@ -83,7 +82,6 @@ jobs: with: elixir-version: ${{matrix.elixir}} # Define the elixir version [required] otp-version: ${{matrix.otp}} # Define the OTP version [required] - experimental-otp: true # More info https://github.com/actions/setup-elixir/issues/31 - name: Retrieve Cached Dependencies uses: actions/cache@v2 @@ -105,4 +103,4 @@ jobs: run: mix credo - name: Run Dialyzer - run: mix dialyzer --no-check + run: mix dialyzer --no-check \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d6950324..73e66583 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,21 +8,19 @@ on: jobs: setup: - name: test / setup + name: test | setup dependencies runs-on: ubuntu-20.04 env: MIX_ENV: test strategy: matrix: pair: + - elixir: 1.16 + otp: 26.1 - elixir: 1.14 - otp: 25.2 - - elixir: 1.13 otp: 24.3 - - elixir: 1.11 - otp: 21.3 - - elixir: 1.8 - otp: 20.3 + - elixir: 1.12 + otp: 22.3 steps: - name: Cancel previous runs @@ -36,21 +34,20 @@ jobs: with: elixir-version: ${{matrix.pair.elixir}} # Define the elixir version [required] otp-version: ${{matrix.pair.otp}} # Define the OTP version [required] - experimental-otp: true # More info https://github.com/actions/setup-elixir/issues/31 - name: Retrieve Mix Dependencies Cache uses: actions/cache@v2 id: mix-cache # id to use in retrieve action with: path: deps - key: ${{ runner.os }}-${{ matrix.pair.otp }}-${{ matrix.pair.elixir }}-mix-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }} + key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }} - name: Retrieve Mix Dependencies Compilation Cache uses: actions/cache@v2 id: mix-deps-compile-cache # id to use in retrieve action with: path: _build - key: ${{ runner.os }}-${{ matrix.pair.otp }}-${{ matrix.pair.elixir }}-mix-deps-compile-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }} + key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }} - name: Install Mix Dependencies if: steps.mix-cache.outputs.cache-hit != 'true' run: | @@ -74,14 +71,12 @@ jobs: fail-fast: false matrix: pair: + - elixir: 1.16 + otp: 26.1 - elixir: 1.14 - otp: 25.2 - - elixir: 1.13 otp: 24.3 - - elixir: 1.11 - otp: 21.3 - - elixir: 1.8 - otp: 20.3 + - elixir: 1.12 + otp: 22.3 steps: - uses: actions/checkout@v2 @@ -90,25 +85,20 @@ jobs: with: elixir-version: ${{matrix.pair.elixir}} # Define the elixir version [required] otp-version: ${{matrix.pair.otp}} # Define the OTP version [required] - experimental-otp: true # More info https://github.com/actions/setup-elixir/issues/31 - name: Retrieve Mix Dependencies Cache uses: actions/cache@v2 id: mix-cache # id to use in retrieve action with: path: deps - key: ${{ runner.os }}-${{ matrix.pair.otp }}-${{ matrix.pair.elixir }}-mix-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }} + key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }} - name: Retrieve Mix Dependencies Compilation Cache uses: actions/cache@v2 id: mix-deps-compile-cache # id to use in retrieve action with: path: _build - key: ${{ runner.os }}-${{ matrix.pair.otp }}-${{ matrix.pair.elixir }}-mix-deps-compile-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }} + key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }} - - name: Docker-compose up - run: ./scripts/docker_up.sh - - name: Docker ps - run: docker ps -a - - name: Run Tests + - name: Run tests run: ./scripts/ci_tests.sh diff --git a/mix.exs b/mix.exs index 5ccaabd1..88572718 100644 --- a/mix.exs +++ b/mix.exs @@ -9,23 +9,19 @@ defmodule KafkaEx.Mixfile do [ app: :kafka_ex, version: @version, - elixir: "~> 1.8", + elixir: "~> 1.12", elixirc_paths: elixirc_paths(Mix.env()), dialyzer: [ - plt_add_deps: :transitive, plt_add_apps: [:ssl], - plt_file: {:no_warn, "priv/plts/dialyzer.plt"}, - flags: [ - :error_handling, - :race_conditions - ] + plt_core_path: "priv/plts", + plt_file: {:no_warn, "priv/plts/kafka_ex.plt"}, + flags: [:error_handling] ], test_coverage: [tool: ExCoveralls], preferred_cli_env: [coveralls: :test], description: description(), package: package(), deps: deps(), - dialyzer: dialyzer(), docs: [ main: "readme", extras: [ @@ -49,9 +45,9 @@ defmodule KafkaEx.Mixfile do defp deps do [ - {:kayrock, "~> 0.1.12"}, + {:kayrock, "~> 0.1"}, {:credo, "~> 1.1", only: [:dev, :test], runtime: false}, - {:dialyxir, "~> 1.0", only: :dev, runtime: false}, + {:dialyxir, "~> 1.4", only: :dev, runtime: false}, {:excoveralls, "~> 0.18", only: :test, runtime: false}, {:ex_doc, "~> 0.23", only: :dev, runtime: false}, {:hammox, "~> 0.5.0", only: :test}, @@ -75,11 +71,4 @@ defmodule KafkaEx.Mixfile do links: %{"GitHub" => @source_url} ] end - - defp dialyzer do - [ - plt_core_path: "priv/plts", - plt_file: {:no_warn, "priv/plts/dialyzer.plt"} - ] - end end diff --git a/mix.lock b/mix.lock index a63bcec5..7f08812e 100644 --- a/mix.lock +++ b/mix.lock @@ -1,20 +1,21 @@ %{ - "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm", "7af5c7e09fe1d40f76c8e4f9dd2be7cebd83909f31fee7cd0e9eadc567da8353"}, + "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, "certifi": {:hex, :certifi, "2.5.1", "867ce347f7c7d78563450a18a6a28a8090331e77fa02380b4a21962a65d36ee5", [:rebar3], [{:parse_trans, "~>3.3", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm", "805abd97539caf89ec6d4732c91e62ba9da0cda51ac462380bbd28ee697a8c42"}, - "connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [:mix], [], "hexpm", "4a0850c9be22a43af9920a71ab17c051f5f7d45c209e40269a1938832510e4d9"}, + "connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"}, "crc32cer": {:hex, :crc32cer, "0.1.10", "fb87abbf34b72f180f8c3a908cd1826c6cb9a59787d156a29e05de9e98be385e", [:rebar3], [], "hexpm", "5b1f47efd0a1b4b7411f1f35e14d3c8c6da6e6a2a725ec8f2cf1ab13703e5f38"}, - "credo": {:hex, :credo, "1.1.5", "caec7a3cadd2e58609d7ee25b3931b129e739e070539ad1a0cd7efeeb47014f4", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "d0bbd3222607ccaaac5c0340f7f525c627ae4d7aee6c8c8c108922620c5b6446"}, - "dialyxir": {:hex, :dialyxir, "1.1.0", "c5aab0d6e71e5522e77beff7ba9e08f8e02bad90dfbeffae60eaf0cb47e29488", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "07ea8e49c45f15264ebe6d5b93799d4dd56a44036cf42d0ad9c960bc266c0b9a"}, + "credo": {:hex, :credo, "1.7.5", "643213503b1c766ec0496d828c90c424471ea54da77c8a168c725686377b9545", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "f799e9b5cd1891577d8c773d245668aa74a2fcd15eb277f51a0131690ebfb3fd"}, + "dialyxir": {:hex, :dialyxir, "1.4.3", "edd0124f358f0b9e95bfe53a9fcf806d615d8f838e2202a9f430d59566b6b53b", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986"}, "earmark": {:hex, :earmark, "1.4.3", "364ca2e9710f6bff494117dbbd53880d84bebb692dafc3a78eb50aa3183f2bfd", [:mix], [], "hexpm", "8cf8a291ebf1c7b9539e3cddb19e9cef066c2441b1640f13c34c1d3cfc825fec"}, "earmark_parser": {:hex, :earmark_parser, "1.4.25", "2024618731c55ebfcc5439d756852ec4e85978a39d0d58593763924d9a15916f", [:mix], [], "hexpm", "56749c5e1c59447f7b7a23ddb235e4b3defe276afc220a6227237f3efe83f51e"}, "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, "ex_doc": {:hex, :ex_doc, "0.28.3", "6eea2f69995f5fba94cd6dd398df369fe4e777a47cd887714a0976930615c9e6", [:mix], [{:earmark_parser, "~> 1.4.19", [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", "05387a6a2655b5f9820f3f627450ed20b4325c25977b2ee69bed90af6688e718"}, "excoveralls": {:hex, :excoveralls, "0.18.0", "b92497e69465dc51bc37a6422226ee690ab437e4c06877e836f1c18daeb35da9", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "1109bb911f3cb583401760be49c02cbbd16aed66ea9509fc5479335d284da60b"}, + "file_system": {:hex, :file_system, "1.0.0", "b689cc7dcee665f774de94b5a832e578bd7963c8e637ef940cd44327db7de2cd", [:mix], [], "hexpm", "6752092d66aec5a10e662aefeed8ddb9531d79db0bc145bb8c40325ca1d8536d"}, "hackney": {:hex, :hackney, "1.15.2", "07e33c794f8f8964ee86cebec1a8ed88db5070e52e904b8f12209773c1036085", [:rebar3], [{:certifi, "2.5.1", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.5", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm", "e0100f8ef7d1124222c11ad362c857d3df7cb5f4204054f9f0f4a728666591fc"}, "hammox": {:hex, :hammox, "0.5.0", "e621c7832a2226cd5ef4b20d16adc825d12735fd40c43e01527995a180823ca5", [:mix], [{:mox, "~> 1.0", [hex: :mox, repo: "hexpm", optional: false]}, {:ordinal, "~> 0.1", [hex: :ordinal, repo: "hexpm", optional: false]}], "hexpm", "15bf108989b894e87ef6778a2950025399bc8d69f344f319247b22531e32de2f"}, "idna": {:hex, :idna, "6.0.0", "689c46cbcdf3524c44d5f3dde8001f364cd7608a99556d8fbd8239a5798d4c10", [:rebar3], [{:unicode_util_compat, "0.4.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "4bdd305eb64e18b0273864920695cb18d7a2021f31a11b9c5fbcd9a253f936e2"}, "jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"}, - "kayrock": {:hex, :kayrock, "0.1.12", "6c7d840808bf771cd2cd5b650e583aaa7c13309a79008295da0f98a2de7d2fb3", [:mix], [{:connection, "~> 1.0.4", [hex: :connection, repo: "hexpm", optional: false]}, {:crc32cer, "~> 0.1.3", [hex: :crc32cer, repo: "hexpm", optional: false]}, {:varint, "~> 1.2.0", [hex: :varint, repo: "hexpm", optional: false]}], "hexpm", "5693d225deeea6448d0e84dcf4b1ecd99bad8426e88144c649be6bf8cc0c830a"}, + "kayrock": {:hex, :kayrock, "0.1.15", "61ce03b65dd2236479357ca4162f43fe3a42923b39fbb6551a16d57cf2b93072", [:mix], [{:connection, "~> 1.1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:crc32cer, "~> 0.1.8", [hex: :crc32cer, repo: "hexpm", optional: false]}, {:varint, "~> 1.2.0", [hex: :varint, repo: "hexpm", optional: false]}], "hexpm", "61d7b3579db68e61c26f316b9246e0231b878148bb1887adc59fecedcbc46c12"}, "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.0", "f8c570a0d33f8039513fbccaf7108c5d750f47d8defd44088371191b76492b0b", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "28b2cbdc13960a46ae9a8858c4bebdec3c9a6d7b4b9e7f4ed1502f8159f338e7"}, "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"},