From e76e6961da4973b37f7978c4d0417bb924036b18 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 6 Jul 2026 09:36:52 +0200 Subject: [PATCH 1/2] Bump Elixir/Erlang versions in CI --- .github/workflows/main.yml | 10 +++++----- mix.exs | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f55543a7..0149e8ab 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,17 +14,17 @@ jobs: fail-fast: false matrix: include: - - erlang: "28.1" - elixir: "1.19" + - erlang: "29.0" + elixir: "1.20" lint: true coverage: true dialyzer: true # One version down. - - erlang: "27.2" - elixir: "1.18" + - erlang: "28.1" + elixir: "1.19" # Oldest version. - erlang: "24.3" - elixir: "1.12.3" + elixir: "1.15.8" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/mix.exs b/mix.exs index aabe70ba..f0ddd8d4 100644 --- a/mix.exs +++ b/mix.exs @@ -8,7 +8,7 @@ defmodule Mint.MixProject do [ app: :mint, version: @version, - elixir: "~> 1.12", + elixir: "~> 1.15", start_permanent: Mix.env() == :prod, elixirc_paths: elixirc_paths(Mix.env()), deps: deps(), From 08038cb1f0ab0f4af7385638b7dabde469af4e74 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 6 Jul 2026 10:10:33 +0200 Subject: [PATCH 2/2] FIXUP --- test/mint/http1/integration_test.exs | 7 +++++-- test/mint/integration_test.exs | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/test/mint/http1/integration_test.exs b/test/mint/http1/integration_test.exs index 6c740711..d78bfb77 100644 --- a/test/mint/http1/integration_test.exs +++ b/test/mint/http1/integration_test.exs @@ -224,9 +224,12 @@ defmodule Mint.HTTP1.IntegrationTest do transport_opts: [log_alert: false, reuse_sessions: false] ) - # OTP 21.3 changes the format of SSL errors. Let's support both ways for now. + # OTP 21.3 changes the format of SSL errors. OTP 29 reports a hostname + # mismatch as a "bad certificate" alert instead of "handshake failure". + # Support all the variants. assert reason == {:tls_alert, ~c"handshake failure"} or - match?({:tls_alert, {:handshake_failure, _}}, reason) + match?({:tls_alert, {:handshake_failure, _}}, reason) or + match?({:tls_alert, {:bad_certificate, _}}, reason) assert {:ok, _conn} = HTTP1.connect(:https, "wrong.host.badssl.com", 443, diff --git a/test/mint/integration_test.exs b/test/mint/integration_test.exs index 619dfecf..af7b44db 100644 --- a/test/mint/integration_test.exs +++ b/test/mint/integration_test.exs @@ -80,9 +80,12 @@ defmodule Mint.IntegrationTest do transport_opts: [log_alert: false, reuse_sessions: false] ) - # OTP 21.3 changes the format of SSL errors. Let's support both ways for now. + # OTP 21.3 changes the format of SSL errors. OTP 29 reports a hostname + # mismatch as a "bad certificate" alert instead of "handshake failure". + # Support all the variants. assert reason == {:tls_alert, ~c"handshake failure"} or - match?({:tls_alert, {:handshake_failure, _}}, reason) + match?({:tls_alert, {:handshake_failure, _}}, reason) or + match?({:tls_alert, {:bad_certificate, _}}, reason) assert {:ok, _conn} = HTTP.connect(