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)

Reply via email to