From c9009a65e1e0f11ac4795634fba8e04f0892f968 Mon Sep 17 00:00:00 2001 From: Benoit Chesneau Date: Sun, 31 May 2026 20:44:04 +0200 Subject: [PATCH] Lower minimum OTP to 27 and validate in CI The OTP 28/29 support work was source-compatible with 27, so the minimum_otp_vsn floor was raised further than needed. Set it back to 27 and add OTP 27 to the CI matrix (Python 3.12/3.13/3.14 on Linux) to actually validate builds and the Common Test suite there. --- .github/workflows/ci.yml | 12 +++++++++++- CHANGELOG.md | 9 +++++++++ README.md | 2 +- rebar.config | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b74fc9a..2d532fa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,6 +15,16 @@ jobs: fail-fast: false matrix: include: + # Linux - OTP 27 (minimum supported) + - os: ubuntu-24.04 + otp: "27" + python: "3.12" + - os: ubuntu-24.04 + otp: "27" + python: "3.13" + - os: ubuntu-24.04 + otp: "27" + python: "3.14" # Linux - OTP 28 - os: ubuntu-24.04 otp: "28" @@ -130,7 +140,7 @@ jobs: usesh: true prepare: | # Stock `erlang` pkg lags at OTP 26; use the versioned runtime - # package so we test on a supported OTP (28+). + # package so we test on a supported OTP (27+). pkg install -y erlang-runtime28 ${{ matrix.python_pkg }} cmake # numpy package follows the py-numpy convention. # Non-fatal: not every FreeBSD pkg snapshot ships numpy for diff --git a/CHANGELOG.md b/CHANGELOG.md index 64844e1..c199cbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## Unreleased + +### Changed + +- **Lower minimum OTP to 27** - `minimum_otp_vsn` is now `27`. The OTP 28/29 + support work was source-compatible with 27 (the `try ... catch` cleanups build + fine there), so the floor was raised further than needed. CI now also builds and + runs the full Common Test suite on OTP 27 across Python 3.12/3.13/3.14. + ## 3.1.0 (2026-05-30) ### Fixed diff --git a/README.md b/README.md index 74937d9..6b7b201 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Key features: ## Requirements -- Erlang/OTP 28+ (tested on OTP 28 and 29) +- Erlang/OTP 27+ (tested on OTP 27, 28, and 29) - Python 3.12+ (3.13+ for free-threading) - C compiler (gcc, clang) diff --git a/rebar.config b/rebar.config index faa0155..2062cff 100644 --- a/rebar.config +++ b/rebar.config @@ -1,6 +1,6 @@ {erl_opts, [debug_info]}. -{minimum_otp_vsn, "28"}. +{minimum_otp_vsn, "27"}. {xref_checks, [ undefined_function_calls,