From ccb01c5f08b9f1a9795fcca9440c912989ddcbf4 Mon Sep 17 00:00:00 2001 From: Luca Corti Date: Sat, 6 Jun 2026 11:45:11 +0200 Subject: [PATCH 1/3] Update to elixir 1.20.0 --- .github/workflows/test.yml | 16 ++++++++-------- .tool-versions | 4 ++-- lib/bgp/message.ex | 4 ++-- lib/bgp/message/update.ex | 2 +- lib/bgp/message/update/attribute/as4_path.ex | 2 +- lib/bgp/message/update/attribute/as_path.ex | 4 ++-- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4f68530..7fd5359 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,18 +15,18 @@ jobs: name: Test (OTP ${{ matrix.otp }} / Elixir ${{ matrix.elixir }}) strategy: matrix: - elixir: ["1.19", "1.18", "1.17", "1.16", "1.15"] - otp: ["28", "27", "26", "25", "24"] + elixir: ["1.20", "1.19", "1.18", "1.17", "1.16"] + otp: ["29", "28", "27", "26"] exclude: - - { otp: "24", elixir: "1.19" } - - { otp: "24", elixir: "1.18" } - - { otp: "24", elixir: "1.17" } - - { otp: "25", elixir: "1.19" } + - { otp: "26", elixir: "1.20" } - { otp: "27", elixir: "1.16" } - - { otp: "27", elixir: "1.15" } + - { otp: "28", elixir: "1.18" } - { otp: "28", elixir: "1.17" } - { otp: "28", elixir: "1.16" } - - { otp: "28", elixir: "1.15" } + - { otp: "29", elixir: "1.19" } + - { otp: "29", elixir: "1.18" } + - { otp: "29", elixir: "1.17" } + - { otp: "29", elixir: "1.16" } steps: - uses: actions/checkout@v6 - uses: erlef/setup-beam@v1 diff --git a/.tool-versions b/.tool-versions index cdd7ae1..2a5b54d 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -erlang 28.3 -elixir 1.19.4-otp-28 +erlang 29.0 +elixir 1.20.0-otp-29 diff --git a/lib/bgp/message.ex b/lib/bgp/message.ex index 3722fea..def65ab 100644 --- a/lib/bgp/message.ex +++ b/lib/bgp/message.ex @@ -102,7 +102,7 @@ defmodule BGP.Message do defp decode_prefixes(<<>>, prefixes), do: {:ok, Enum.reverse(prefixes)} defp decode_prefixes(<>, prefixes) when rem(length, 8) == 0 do - <> = data + <> = data with {:ok, prefix} <- decode_prefix(length, prefix_data), do: decode_prefixes(rest, [prefix | prefixes]) @@ -110,7 +110,7 @@ defmodule BGP.Message do defp decode_prefixes(<>, prefixes) do prefix_size = length + 8 - rem(length, 8) - <> = data + <> = data with {:ok, prefix} <- decode_prefix(length, prefix_data), do: decode_prefixes(rest, [prefix | prefixes]) diff --git a/lib/bgp/message/update.ex b/lib/bgp/message/update.ex index 2cfd02c..89e1fe5 100644 --- a/lib/bgp/message/update.ex +++ b/lib/bgp/message/update.ex @@ -58,7 +58,7 @@ defmodule BGP.Message.UPDATE do defp decode_attributes(<>, attributes, session) do <<_other_flags::3, extended::1, _unused::4, _code::8>> = header size = 8 + 8 * extended - <> = data + <> = data {attribute, session} = Attribute.decode(<>, session) diff --git a/lib/bgp/message/update/attribute/as4_path.ex b/lib/bgp/message/update/attribute/as4_path.ex index fcea9a8..717fd48 100644 --- a/lib/bgp/message/update/attribute/as4_path.ex +++ b/lib/bgp/message/update/attribute/as4_path.ex @@ -20,7 +20,7 @@ defmodule BGP.Message.UPDATE.Attribute.AS4Path do defp decode_path(<>, path) do asns_length = length * 4 - <> = data + <> = data decode_path(rest, [{decode_type(type), length, decode_asns(asns, [])} | path]) end diff --git a/lib/bgp/message/update/attribute/as_path.ex b/lib/bgp/message/update/attribute/as_path.ex index d6a6376..f9f8f1e 100644 --- a/lib/bgp/message/update/attribute/as_path.ex +++ b/lib/bgp/message/update/attribute/as_path.ex @@ -28,7 +28,7 @@ defmodule BGP.Message.UPDATE.Attribute.ASPath do path ) do asn_size = length * 4 - <> = data + <> = data decode_path(rest, session, [ {decode_type(type), length, decode_asns(asns, [], session)} | path @@ -37,7 +37,7 @@ defmodule BGP.Message.UPDATE.Attribute.ASPath do defp decode_path(<>, session, path) do asn_size = length * 2 - <> = data + <> = data decode_path(rest, session, [ {decode_type(type), length, decode_asns(asns, [], session)} | path From 15b936085966bd1609feea9d899dc30454db4ef6 Mon Sep 17 00:00:00 2001 From: Luca Corti Date: Sat, 6 Jun 2026 11:47:18 +0200 Subject: [PATCH 2/3] Bump elixir requirement --- mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index f083b66..4060a42 100644 --- a/mix.exs +++ b/mix.exs @@ -5,7 +5,7 @@ defmodule BGP.MixProject do [ app: :bgp, version: "0.1.0", - elixir: "~> 1.13", + elixir: "~> 1.16", start_permanent: Mix.env() == :prod, deps: deps(), dialyzer: dialyzer(), From b403103c7037fa01d8638bb6654750f4eb07800d Mon Sep 17 00:00:00 2001 From: Luca Corti Date: Sat, 6 Jun 2026 11:51:22 +0200 Subject: [PATCH 3/3] Update dependencies --- mix.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mix.lock b/mix.lock index e32c187..d1fa6dd 100644 --- a/mix.lock +++ b/mix.lock @@ -1,13 +1,13 @@ %{ "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, - "credo": {:hex, :credo, "1.7.18", "5c5596bf7aedf9c8c227f13272ac499fe8eae6237bd326f2f07dfc173786f042", [: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", "a189d164685fd945809e862fe76a7420c4398fa288d76257662aecb909d6b3e5"}, + "credo": {:hex, :credo, "1.7.19", "cc52129665fc7c15143d47838fda0f9cd6dac9ceced7bf4da6f85fcbfe64b12a", [: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", "2d8bc95d5a7bb99dd2613621d4f08c6a3575c3fd4b62e6a2b48a100352a557b8"}, "dialyxir": {:hex, :dialyxir, "1.4.7", "dda948fcee52962e4b6c5b4b16b2d8fa7d50d8645bbae8b8685c3f9ecb7f5f4d", [:mix], [{:erlex, ">= 0.2.8", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "b34527202e6eb8cee198efec110996c25c5898f43a4094df157f8d28f27d9efe"}, "earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"}, - "erlex": {:hex, :erlex, "0.2.8", "cd8116f20f3c0afe376d1e8d1f0ae2452337729f68be016ea544a72f767d9c12", [:mix], [], "hexpm", "9d66ff9fedf69e49dc3fd12831e12a8a37b76f8651dd21cd45fcf5561a8a7590"}, + "erlex": {:hex, :erlex, "0.2.9", "7debbbaa9f4f368b8cd648983e0f1d7963028508e9c59e9d4ed504e94ef52a55", [:mix], [], "hexpm", "8cfffc0ec7159e6d73de2ab28a588064de80f88b2798d5cbe4482cbbc200178b"}, "ex_doc": {:hex, :ex_doc, "0.40.3", "4a972ffe64bc07dc605af487e98fc19b72a4185f55ca031b94c0552d6071c1d9", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "2756e357742fecd9749b489b85d67c9ce99c465f2e75728d9e6dc8d704b973de"}, "file_system": {:hex, :file_system, "1.1.1", "31864f4685b0148f25bd3fbef2b1228457c0c89024ad67f7a81a3ffbc0bbad3a", [:mix], [], "hexpm", "7a15ff97dfe526aeefb090a7a9d3d03aa907e100e262a0f8f7746b78f8f87a5d"}, "ip": {:hex, :ip, "2.1.3", "7d7e4d6ae764f9eea166401ca233df1ff859bfc869039f99837f09b255cc3cf3", [:mix], [{:saxy, "~> 1.6", [hex: :saxy, repo: "hexpm", optional: false]}], "hexpm", "206e1733e1bc3840412ea0e9af4f1195f87138a5f0b345cabac1099c85ab7674"}, - "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, + "jason": {:hex, :jason, "1.4.5", "2e3a008590b0b8d7388c20293e9dcc9cf3e5d642fd2a114e4cbbb52e595d940a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "b0c823996102bcd0239b3c2444eb00409b72f6a140c1950bc8b457d836b30684"}, "makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"}, "makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [: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", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"}, "makeup_erlang": {:hex, :makeup_erlang, "1.1.0", "835f7e60792e08824cda445639555d7bf1bbbddb1b60b306e33cb6f6db24dc74", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "1cd6780fb1dd1a03979abaed0fe82712b0625118fd5257d3ebbf73f960c73c3c"}, @@ -15,5 +15,5 @@ "nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"}, "saxy": {:hex, :saxy, "1.6.0", "02cb4e9bd045f25ac0c70fae8164754878327ee393c338a090288210b02317ee", [:mix], [], "hexpm", "ef42eb4ac983ca77d650fbdb68368b26570f6cc5895f0faa04d34a6f384abad3"}, "telemetry": {:hex, :telemetry, "1.4.2", "a0cb522801dffb1c49fe6e30561badffc7b6d0e180db1300df759faa22062855", [:rebar3], [], "hexpm", "928f6495066506077862c0d1646609eed891a4326bee3126ba54b60af61febb1"}, - "thousand_island": {:hex, :thousand_island, "1.4.3", "2158209580f633be38d43ec4e3ce0a01079592b9657afff9080d5d8ca149a3af", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "6e4ce09b0fd761a58594d02814d40f77daff460c48a7354a15ab353bb998ea0b"}, + "thousand_island": {:hex, :thousand_island, "1.5.0", "f50a213cac97262b6d5ebb85745aa2c00fec1413191e6e66834788d45425cecb", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "708923d40523e43cf99041ab37a0d4b0ec426ac6438fa3716ab23d919eaeb412"}, }