diff --git a/.github/workflows/elixir.yml b/.github/workflows/elixir.yml index a2fd1ea9..1dcf58ce 100644 --- a/.github/workflows/elixir.yml +++ b/.github/workflows/elixir.yml @@ -13,11 +13,16 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - elixir: ["1.15", "1.18"] - otp: ["26", "27"] - exclude: + include: - elixir: "1.15" + otp: "26" + check_formatting: false + - elixir: "1.18" otp: "27" + check_formatting: false + - elixir: "1.19" + otp: "28" + check_formatting: true cache_version: ["3"] steps: @@ -41,6 +46,7 @@ jobs: mix local.hex --force mix deps.get - name: Check Formatting + if: matrix.check_formatting run: mix format --check-formatted - name: Credo run: mix credo --strict diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index a7e60618..6b2c4831 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -14,8 +14,8 @@ jobs: - name: Setup BEAM uses: erlef/setup-beam@v1 with: - elixir-version: "1.16" - otp-version: "26" + elixir-version: "1.19" + otp-version: "28" - name: Publish to Hex.pm run: | mix local.hex --force diff --git a/.tool-versions b/.tool-versions index 8b6a3527..078af8ba 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -elixir 1.18.1-otp-27 -erlang 27.0 +elixir 1.19.4-otp-28 +erlang 28.1 diff --git a/README.md b/README.md index 0be10096..12e28926 100644 --- a/README.md +++ b/README.md @@ -156,3 +156,7 @@ version. Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc) and published on [HexDocs](https://hexdocs.pm). Once published, the docs can be found at [https://hexdocs.pm/expression](https://hexdocs.pm/expression). + +## Testing & Compatibility + +We follow a diagonal testing strategy to ensure backward compatibility while keeping CI manageable. If you encounter issues with a specific version combination within our supported range, please open an issue. diff --git a/test/expression/v2/parser_test.exs b/test/expression/v2/parser_test.exs index 90e8e2e4..1692cecc 100644 --- a/test/expression/v2/parser_test.exs +++ b/test/expression/v2/parser_test.exs @@ -217,8 +217,8 @@ defmodule Expression.V2.ParserTest do "\nHi there ", [{"__property__", ["contact", "whatsapp_profile_name"]}], "\n\n*HANGMAN*)\n)\n" - ], "", _, _, - _} = Parser.parse("\nHi there @contact.whatsapp_profile_name\n\n*HANGMAN*)\n)\n") + ], "", _, _, _} = + Parser.parse("\nHi there @contact.whatsapp_profile_name\n\n*HANGMAN*)\n)\n") end end end diff --git a/test/expression_test.exs b/test/expression_test.exs index 2429c80d..d63edce7 100644 --- a/test/expression_test.exs +++ b/test/expression_test.exs @@ -601,7 +601,7 @@ defmodule ExpressionTest do }) end - assert_raise BadMapError, "expected a map, got: [\"A\", \"B\", \"C\"]", fn -> + assert_raise BadMapError, ~r/expected a map, got:.*\["A", "B", "C"\]/s, fn -> Expression.evaluate("@delete(map, \"key\")", %{ "map" => ["A", "B", "C"] })