Jens Geyer created THRIFT-6171:
----------------------------------
Summary: Add a GitHub Actions CI job for the Erlang library
Key: THRIFT-6171
URL: https://issues.apache.org/jira/browse/THRIFT-6171
Project: Thrift
Issue Type: New Feature
Components: Erlang - Library, Build Process
Reporter: Jens Geyer
No CI job builds or tests the Erlang binding.
.github/workflows/build.yml has jobs for php, go, java-kotlin, netstd, haxe,
rust, python, nodejs, cpp and ruby, but none for Erlang, and both build.yml and
sca.yml pass --without-erlang in their shared CONFIG_ARGS_FOR_LIBS. The
docker.yml workflow only builds and validates the official images; it runs no
language test suite. So a change to lib/erl gets no automated coverage at all.
lib/erl ships enabled by default in the release tarball (lib/Makefile.am,
configure.ac), so this is code that reaches users with no regression coverage
behind it. THRIFT-6163 and THRIFT-6164 both had to be verified by running
rebar3 eunit by hand.
Most of what a job needs already exists:
* build/docker/ubuntu-{focal,jammy,noble}/Dockerfile already install Erlang/OTP
(ERLANG_OTP_VERSION 25.3.2.9) and rebar3 (ERLANG_REBAR_VERSION 3.18.0), so the
toolchain is provisioned and pinned.
* lib/erl/Makefile.am already has "check: .generated" followed by "$(REBAR)
eunit", so the entry point exists and works. It ran 327 eunit tests with 0
failures when THRIFT-6163 was verified, and THRIFT-6164 has added more since.
* configure.ac already gates the binding behind --with-erlang and locates
erl/erlc.
So the work is roughly: a lib-erl job that installs Erlang/OTP and rebar3 the
way the docker images do, runs ./bootstrap.sh, configures with --with-erlang
and the other bindings off, and runs make -C lib/erl check. Whether to also run
the Erlang cross tests can be decided when it is written.
Worth settling at the same time: LANGUAGES.md declares the tested OTP ceiling
as 22.0, while the docker images provision 25.3.2.9. Whichever a CI job pins
should be what that table says.
Compare THRIFT-6002 (netstd), THRIFT-6003 (haxe) and THRIFT-6170 (D), which are
the same gap in other bindings.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)