[ 
https://issues.apache.org/jira/browse/THRIFT-6171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jens Geyer resolved THRIFT-6171.
--------------------------------
    Fix Version/s: 0.25.0
         Assignee: Jens Geyer
       Resolution: Fixed

> 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: Build Process, Erlang - Library
>            Reporter: Jens Geyer
>            Assignee: Jens Geyer
>            Priority: Major
>             Fix For: 0.25.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> 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