From e7f9b823f9c8bb3fa8c4bf4150fbcb2b9453fbf4 Mon Sep 17 00:00:00 2001 From: Manu S Ajith Date: Tue, 31 Mar 2026 11:10:31 +0300 Subject: [PATCH 1/2] update devenv --- devenv.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/devenv.yaml b/devenv.yaml index 6bf1e6c..b311010 100644 --- a/devenv.yaml +++ b/devenv.yaml @@ -1,3 +1,8 @@ inputs: + git-hooks: + url: github:cachix/git-hooks.nix + inputs: + nixpkgs: + follows: nixpkgs nixpkgs: url: github:cachix/devenv-nixpkgs/rolling From 165185a01589c834be4157228a960b996ee9e295 Mon Sep 17 00:00:00 2001 From: Manu S Ajith Date: Tue, 31 Mar 2026 11:12:17 +0300 Subject: [PATCH 2/2] Relax Elixir version constraint to ~> 1.17 and add CI --- .github/workflows/ci.yml | 82 ++++++++++++++++++++++++++++++++++++++++ CHANGELOG.md | 6 +++ mix.exs | 2 +- 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..01bb08d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,82 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +permissions: + contents: read + +jobs: + test: + name: Elixir ${{ matrix.elixir }} / OTP ${{ matrix.otp }} + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + include: + - elixir: "1.17" + otp: "26" + - elixir: "1.18" + otp: "27" + - elixir: "1.19" + otp: "28" + + env: + MIX_ENV: test + + steps: + - uses: actions/checkout@v4 + + - uses: erlef/setup-beam@v1 + with: + elixir-version: ${{ matrix.elixir }} + otp-version: ${{ matrix.otp }} + + - uses: actions/cache@v4 + with: + path: | + deps + _build + key: ${{ runner.os }}-mix-${{ matrix.elixir }}-${{ matrix.otp }}-${{ hashFiles('mix.lock') }} + restore-keys: | + ${{ runner.os }}-mix-${{ matrix.elixir }}-${{ matrix.otp }}- + + - run: mix deps.get + + - run: mix compile --warnings-as-errors + + - run: mix test + + lint: + name: Lint + runs-on: ubuntu-latest + + env: + MIX_ENV: dev + + steps: + - uses: actions/checkout@v4 + + - uses: erlef/setup-beam@v1 + with: + elixir-version: "1.19" + otp-version: "28" + + - uses: actions/cache@v4 + with: + path: | + deps + _build + key: ${{ runner.os }}-mix-lint-1.19-28-${{ hashFiles('mix.lock') }} + restore-keys: | + ${{ runner.os }}-mix-lint-1.19-28- + + - run: mix deps.get + + - run: mix format --check-formatted + + - run: mix credo --strict diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ebc101..1003929 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed +- Relaxed Elixir version constraint from `~> 1.19` to `~> 1.17` to support projects on Elixir 1.17 and 1.18 + +### Added +- GitHub Actions CI with matrix testing across Elixir 1.17/OTP 26, 1.18/OTP 27, and 1.19/OTP 28 + ## [0.1.0] - 2025-11-29 ### Added diff --git a/mix.exs b/mix.exs index 8e65f59..d8df602 100644 --- a/mix.exs +++ b/mix.exs @@ -8,7 +8,7 @@ defmodule Langfuse.MixProject do [ app: :langfuse, version: @version, - elixir: "~> 1.19", + elixir: "~> 1.17", start_permanent: Mix.env() == :prod, deps: deps(), elixirc_paths: elixirc_paths(Mix.env()),