aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
13 daysFix autopatch of erlang-rocksdbHEADmasterLoïc Hoguin
Thanks Ilya Khaprov for the fix.
2025-07-25GitHub Actions: Upload artifacts in case of failure in `check-in-vm`Jean-Sébastien Pédron
This is the same as `check`. The files of the cross-platform-actions VM are synchronised in both ways, so we can re-use the same configuration.
2025-07-25GitHub Actions: Switch to `cross-platform-actions` actions to run VMsJean-Sébastien Pédron
`vmactions` VM fails to boot quite frequently and we have no visibility on the reason of the failure. The only failure I got out-of-the-box with cross-platform-actions VM was the `core-deps-rel` test case which hangs. It comes from the use of `erl_call` to detect if the Erlang node was started correctly. A comment in the generated release starts scripts says: # users who depend on stdout when running rpc calls must still use nodetool # so we have an overload option to force use of nodetool instead of erl_call If `$USE_NODETOOL` is set, it will use `relx_nodetool` instead. Indeed, this fixed the hang.
2025-07-23GitHub Actions: Set a timeout of 1 hour for `check-in-vm`Jean-Sébastien Pédron
It looks like the VM is sometimes stuck booting, long before executing any tests. The default timeout of 6 hours blocks other CI jobs for a very long time. Because the VM won't boot anyway, we reduce this time to one hour. One hour should be long enough for a successful slow execution of the tests.
2025-07-22GitHub Actions: Run tests on FreeBSDJean-Sébastien Pédron
Tests are executed in a FreeBSD VM using the latest stable release. The default version of Erlang and Elixir from the Ports tree are being used; currently Erlang/OTP 26 and Elixir 1.17 as of this commit. Otherwise, tests are split the same way as for Linux/Windows/OSX. That said, the list is duplicated, so a bit annoying to maintain.
2025-07-22test/core_elixir.mk: Specify CFLAGS when building the Elixir NIFJean-Sébastien Pédron
On FreeBSD, libsodium's `sodium.h` header is installed in `/usr/local/local`. The Makefile already adds `/usr/local/include/sodium` to the compiler's `-I` search path, but it doesn't cover the FreeBSD case. This patch adds `-I /usr/local/include` to the CFLAGS on the make(1) command line to let libsalty2's Makefile pick it up. This fixes the build on FreeBSD.
2025-07-22test/core_elixir.mk: Patch `reloader` Makefile to be compatible with BSD sedJean-Sébastien Pédron
Its Makefile called sed(1) in a way that was only compatible with GNU sed. As a consequence, the build failed with BSD sed. Now, the test case fetches dependencies and patches `reloader`'s Makefile to use a sed(1) script compatible with both implementations of sed(1).
2025-07-22core/elixir.mk: Do not use sed's `-i` argumentJean-Sébastien Pédron
Use "sed ... > ..." + "mv ..." instead. The problem is that the `-i` argument is not part of POSIX and is implemented differently betwee GNU sed and BSD sed. The previous use was ok on Linux but failed on FreeBSD for instance.
2025-07-22GitHub Actions: Pin Elixir version is `check-asdf-elixir`Jean-Sébastien Pédron
Using the "latest" version doesn't work because it fails to determine a version for Erlang/OTP. To work around this, we pin the version of Elixir to "1.18.4-otp-27". While here, update asdf to version 1.18.0.
2025-07-22GitHub Actions: Create Erlang cookie before running testsJean-Sébastien Pédron
With the parallel execution of tests, I think it's possible that an Erlang VM starts to initialize the missing cookie while a parallel VM reads an yet-to-be-populated empty file. This leads to the following crash: Slogan: Kernel pid terminated (application_controller) ("{application_start_failure,kernel,{{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,auth,{\"Too short cookie string\",[{auth,init_no_setcookie,0,[{file,\"auth.erl\"},{line,360}]},...
2025-07-22test/plugin_hex.mk: Use the name "nc" for the netcat commandJean-Sébastien Pédron
This is the standard name and is available everywhere, unlike "netcat".
2025-07-22test/plugin_eunit.mk: Make `eunit-erl-opts` insensitive to verbose modeJean-Sébastien Pédron
If `V=...` is set on the command line to increase verbosity while debugging, the first grep(1) command will also catch the debug output of make(1) which contains the executed command line and thus mentions "hello". The fixed grep(1) command line explicitly grep for a line starting with "hello".
2025-07-22test/core_query.mk: `gun` master branch depends on cowlib 2.15.0Jean-Sébastien Pédron
2025-07-22test/core_app.mk: Use https://github.com/binarytemple/hypernumbersJean-Sébastien Pédron
... instead of https://github.com/hypernumbers/hypernumbers which is no longer available apparently.
2025-07-22test/core_app.mk: Redirect stderr to stdout when tests grep for ↵Jean-Sébastien Pédron
parse_transform output At least for me with Erlang/OTP 28, parse_transform messages end up on stderr. Let's always redirect stderr to stdout. It will work for anyone with any versions of Erlang.
2025-07-22test: Bump some dependencies that fail to build with Erlang/OTP 28Jean-Sébastien Pédron
2025-07-22test: Set the branch name in `git init`Jean-Sébastien Pédron
If the user running the tests has set `init.defaultBranch` to something else in their `.gitconfig`, the tests won't have the expected branch name. This patch explicitly sets the branch name to make sure the tests are not affected by a user setting.
2025-06-25It's OK if the application is already loadedLoïc Hoguin
2025-06-25Elixir: Load LOCAL_DEPS applications before compilingLoïc Hoguin
Should make x509 and others work.
2025-06-19Fix Mix autopatch being enabled by defaultLoïc Hoguin
By default Erlang projects should not have Elixir enabled.
2025-03-20Properly handle asdf-installed ElixirLoïc Hoguin
2025-03-20Don't fail Mix autopatch if Elixir is disabled but it has a MakefileLoïc Hoguin
2025-03-17Document native Elixir supportnative-elixirLoïc Hoguin
2025-03-17Native Elixir supportTyler Hughes
This commit also includes a way to completely disable Eunit as that is generally desirable for Elixir-only projects.
2025-03-13Add missing core_native_path call to Hex fetchLoïc Hoguin
Was failing on Windows in lz4-erlang without it.
2025-02-11Update Elixir test version for hex testsLoïc Hoguin
2025-02-11Add support for specifying Hex requirements for dependenciesLoïc Hoguin
This allows overriding the default which is to use the same explicit version as the dep_* line, and instead specify ranges of versions.
2024-11-28Deprecate Rebar2 projects autopatchingLoïc Hoguin
2024-11-27Set RELX_TAR=0 when using "make run"work-20241127Loïc Hoguin
We don't need the tarball in that scenario.
2024-11-27Update Discord link to a permanent invitefaster-erlLoïc Hoguin
2024-11-27Update CHANGELOGLoïc Hoguin
2024-11-26CI: Test the Hex pluginLoïc Hoguin
2024-11-26Make $(ERL) fasterLoïc Hoguin
While using "-mode minimal" removes too much that we need (such as inet_db), we can safely disable the distribution by default and limit the number of processes and sockets to a maximum of 1024.
2024-11-25Add test case for rebar git_subdir autopatchci-for-pr-1005Loïc Hoguin
2024-11-25Fix conversion of git_subdir to git-subfolderRoger Lipscombe
Fixes #1004
2024-11-25CI: Check select Hex.pm packagestest-some-hex-packagesLoïc Hoguin
2024-11-25Update hexpm_packages.txtLoïc Hoguin
The scrape file was updated to only seek "rebar3" tagged packages. There are too many Elixir-only packages tagged as "make".
2024-11-25Check templates independently from testsLoïc Hoguin
2024-11-22Move templates outside the source .mk filesLoïc Hoguin
Templates now no longer use Make variables for substitution but instead replace strings with their equivalent: template_name: Corresponds to n=template_name project_name: Corresponds to $(PROJECT) or in=project_name This allows defining templates outside of Makefiles. For example an external plugin could define their templates in templates/my_template.erl and then have the following in the included Makefile: tpl_my_template = $(file < $(THIS)/templates/my_template.erl) By default the created file will be in src/template_name.erl. This can be overriden with the tplp_* variable: tplp_my_template = src/model/my_template.erl Substitution is applied both to the template contents and to its path. In addition, attempting to overwrite an existing file when creating a template will result in failure.
2024-11-21Fix infinite loop when fetching amqp_client deps via Hexfix-amqp_clientLoïc Hoguin
2024-11-21Reinstate dep_name as it's still used by RabbitMQ pluginsLoïc Hoguin
It will be removed at a later date.
2024-11-19Update hex_core to current masterremove-most-packagesLoïc Hoguin
This includes the SSL security fix for OTP-25+.
2024-11-19Use short variable names when possibleLoïc Hoguin
We use $1 instead of $(1) or $p instead of $(p) when possible, except when building variable names (pkg_$(p)_name for example, but also $(dep_fetch_$(1))).
2024-11-19Remove legacy fetch methodLoïc Hoguin
This method dates back from the beginnings of Erlang.mk and should not have been used for around a decade by now. Adding "git" to the offending dep lines is enough to upgrade.
2024-11-19Remove deprecated dep_fetch, dep_name, dep_repo, dep_commitLoïc Hoguin
Use the query_* equivalents instead.
2024-11-19Use hex_core to fetch Hex packagesLoïc Hoguin
This should both be more solid and more secure.
2024-11-19CI: Also test with CACHE_DEPS=1Loïc Hoguin
2024-11-15CI: Trick GH runners into picking slower jobs earlyLoïc Hoguin
2024-11-15CI: Run Dialyzer tests in parallel jobsLoïc Hoguin
2024-11-15Add Discord server to README and Getting StartedLoïc Hoguin