aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2020-04-12core/test.mk: Build application before its testsJean-Sébastien Pédron
This fixes compiler warnings if modules under `tests` implement behaviors defined in `src`. This way, we make sure behaviors are compiled before the test modules.
2020-04-03test/plugin_dialyzer.mk: Skip cowlib test in `dialyzer-plt-ebin-only`Jean-Sébastien Pédron
This is a waste of time and if they were to fail, this does not serve the Erlang.mk testsuite.
2020-04-02test/core_query.mk: Pin `farwest` in `core-query-deps-no-duplicates`Jean-Sébastien Pédron
It was previously "pinned" to its `master` branch. Unforunately, the testcase started to fail after `farwest` changed its own pinning of `cowlib`. By pinning to a specific version (or commit in this case) of `farwest`, we make sure this won't happen again.
2020-03-25Remove -lerl_interface from the default LDLIBSLoïc Hoguin
The -lerl_interface library is getting removed in OTP-23.
2020-03-04Add the query-deps family of targets2020.03.05Loïc Hoguin
The query-deps, query-doc-deps, query-rel-deps, query-test-deps and query-shell-deps targets go through dependencies and print some information about them: $ make query-deps ... cowboy: cowlib git https://github.com/ninenines/cowlib 2.7.3 cowboy: ranch git https://github.com/ninenines/ranch 1.7.1 $ make query-deps QUERY="name repo version absolute_path" ... cowboy: cowlib https://github.com/ninenines/cowlib 2.7.3 /path/to/deps/cowlib cowboy: ranch https://github.com/ninenines/ranch 1.7.1 /path/to/deps/ranch The query-deps target is recursive; the others aren't. This mirrors the behavior when fetching and building dependencies. The full list of options is: QUERY="fetch_method name repo version extra absolute_path" When an option has no corresponding value, "-" will be printed. For example most fetch methods do not have extra information to print. When there is extra information, the value will be prefixed with a descriptive name. For example: package-name=uuid_erl This commit also introduces changes to deps handling: some of the functions for querying will now be used directly. In the future the goal is to remove the old dep_name, dep_commit, etc. functions and replace their usage with the new query functions. Custom fetch methods should implement query functions in order to have information about the relevant dependencies printed properly.
2020-02-25Replace +A0 with +A1Loïc Hoguin
In recent versions there has been issues with disabling +A completely. Starting in OTP-23 the VM will automatically use +A1 when the +A0 argument is given, as well.
2020-02-11Support Hex packages with name different from application2020.02.11Loïc Hoguin
Properly fixes partisan.
2020-02-11Add yet another dep spec format for rebar.config autopatchLoïc Hoguin
Fixes partisan.
2020-02-11Add package partisan to the indexLoïc Hoguin
2020-02-08Disable proto plugin if gpb/protobuffs not in depsLoïc Hoguin
2020-02-08Add package prometheus to the indexLoïc Hoguin
2020-02-07Copy src/$(PROJECT).appup to ebin/ on build if anyLoïc Hoguin
2020-01-03Add mysql-otp to the indexjuhlig
2020-01-03Remove package mysqljuhlig
2019-12-09plugins/c_src.mk: Deduce directory to create from $@Jean-Sébastien Pédron
... instead of hard-coding `priv`.
2019-10-09Comment out the kjell testLoïc Hoguin
Seems it doesn't passs on my machine at the moment. It gets stuck. Maybe it doesn't work with OTP 22.1?
2019-10-09Use no_dot_erlang instead of start_cleanLoïc Hoguin
2019-09-26updated repo and homepage for elliMartin Björklund
2019-08-29Build symlinked source filesLars Kroll
2019-08-29core/erlc.mk: Support non-US-ASCII characters in pathsJean-Sébastien Pédron
Internally, strings were stored using Unicode code points. However, when being written to disk with the `file:write_file()` function, there were converted to ISO-8859-1. According to the documentation, that is because the file module is bytewise-oriented: the conversion to another encoding than ISO-8859-1 is the responsibility of the caller. Using unicode:character_to_binary() permits the script to convert the Unicode string to an UTF-8-encoded binary. Without this patch, the added testcase would fail with the following error: gmake[3]: *** No rule to make target '(...)/erlang.mk/test/h��test_core_makedep_non_usascii_paths/deps/test_core_makedep_non_usascii_paths_dep/include/hello.hrl', needed by 'src/hello.erl'. Stop. In this case, the path (passed from the Makefile to the `makedep.erl` script) contains UTF-8-encoded `é` characters but it was converted when doing the final file I/O.
2019-07-30Recursive deps list: don't handle apps specificallyJean-Sébastien Pédron
They are already listed in `$^` and thus already taken care of. No need to visit them twice.
2019-07-30Fix concurrent creation of `recursive-*deps-list.log` filesJean-Sébastien Pédron
To do that, we simply include the PID of the Make process in temporary file. We also compare the finished temporary file with the actual target file. If they are different, the temporary file is moved to the final target, otherwise, we just get rid of the temporary file. This way, the target timestamp stays the same if the content does not change.
2019-07-01Update recommendation to Make 4.22019.07.01Loïc Hoguin
There are issues with -j in 4.1 and earlier.
2019-06-30Make a "git describe" fall back for older git versionsLoïc Hoguin
--first-parent is not available on CentOS 7.
2019-06-30Don't use "git -C" in tests: older git doesn't have itLoïc Hoguin
2019-06-30Tweak a check in ct tests to make it work on Make 3.82Loïc Hoguin
Getting: Nothing to be done for `ct' Instead of, in later versions: Nothing to be done for 'ct' Only check for the start of the sentence instead.
2019-06-29Filter out master when getting the LATEST_ERLANG_OTPLoïc Hoguin
2019-06-28Accept a list of deps to forcibly rebuild in `$(FORCE_REBUILD)`Jean-Sébastien Pédron
... in addition to the `$(force_rebuild_dep)` function. It's easier for the common use case than specify a function.
2019-06-28Try to make relx-start-stop more reliableLoïc Hoguin
Using new wait_for_success/wait_for_failure functions that will loop the ping commands up to 10 times then give up. This allows us to remove the "sleep 1" and lets us handle intermittent slowness at the same time.
2019-06-26Don't try to start/stop releases in bootstrap-rel testLoïc Hoguin
We already have relx-start-stop for that.
2019-06-26Fix "make eunit/ct" not fetching apps dependenciesLoïc Hoguin
2019-06-25Fix or disable some of the Relx tests on WindowsLoïc Hoguin
2019-06-24Rename force_rebuilding_dep to force_rebuild_depLoïc Hoguin
2019-06-24Fix the core-deps-dep-makefile-change test on WindowsLoïc Hoguin
2019-06-24Fix the force_rebuilding_dep testLoïc Hoguin
2019-06-24Accept `$(force_rebuilding_dep)` to tune the behavior of `$(FULL)`Jean-Sébastien Pédron
By default, Erlang.mk only builds dependencies once, the first time the top-level project is compiled. A forced rebuild of all dependencies can be forced by setting the `$(FULL)` variable to a non-empty value. For developers working on the top-level project and one or more dependencies at the same time, Erlang.mk now accepts a variable/function called `$(force_rebuilding_dep)` which is called to determine if the dependency passed as the first argument should be forcibly rebuilt. It allows a developer to filter the dependencies he works on (so they are always rebuilt) from other third-party dependencies he never touches (i.e. they are only built once at the beginning). The content of `$(force_rebuilding_dep)` is expected to be a shell one-liner where the `$(1)` Make variable is set to the path to the dependency. Here is an example from the testsuite: force_rebuilding_dep = test '$(1)' = '$(CURDIR)/deps/cowlib'
2019-06-24Fix more path issues on WindowsLoïc Hoguin
2019-06-24Skip the "rebuild" part of the "ln" test on WindowsLoïc Hoguin
By default MSYS2 will copy and not link, altering Erlang.mk's behavior. To properly link an option must be enabled and administrative privileges granted.
2019-06-24Use cowlib master in testsLoïc Hoguin
The old Cowlib's Erlang.mk does not work on Windows.
2019-06-22Fix the eunit-test-dir test on WindowsLoïc Hoguin
It was using os:cmd("echo ...") which on Windows preserves spaces. One possible fix would have been to remove the space, but I instead removed the use of os:cmd("echo ...") to avoid similar issues in the future.
2019-06-22Fix the EDOC_SRC_DIRS paths on WindowsLoïc Hoguin
2019-06-22Use forward slashes in the Windows pathsLoïc Hoguin
2019-06-22Fix the ct.cover.spec file paths on WindowsLoïc Hoguin
2019-06-21Test `list-deps` behavior with various values of `FULL`Jean-Sébastien Pédron
Here, we want to make sure that `list-deps` always lists all dependencies, no matter if they are up-to-date or not. I.e. we want to always visit them and list them recursively.
2019-06-21Include applications `$(APPS_DIR)` in the `list-deps` targetsJean-Sébastien Pédron
In the case of a multi-applications repository, if one application depends on another one (using `$(LOCAL_DEPS)`), it will now be listed in the `list-deps` targets. Add `ssl` to the `$(LOCAL_DEPS)` in the testcase to ensure that applications not in `$(APPS_DIR)` are not affected by this change. Add a changelog entry.
2019-06-20Try a fix for the relx-start-stop intermittent test failureLoïc Hoguin
2019-06-20Small correction to semver conversion for hexLoïc Hoguin
Allow a lack of space in the front. This will of course need to be handled better eventually.
2019-06-20Display Hex dependency version in the "DEP mydep (version)" lineJean-Sébastien Pédron
... exactly as it is displayed for Git-based dependencies.
2019-06-20Use echo(1) instead of printf(1) in `core-autopatch-extended-erlc-opts`Jean-Sébastien Pédron
... to create the `autopatch-couchbeam` recipe in the testcase. Newlines characters were interpreted by echo(1) in the `core-autopatch-extended-erlc-opts` recipe which was too early: the generated recipe was malformed. Using echo(1) and its implicit appended newline character fixes the issue.
2019-06-20Replace zipinfo(1) by `unzip -l`Jean-Sébastien Pédron
The output is the same between those two commands. The benefit is that it avoids the need to install the `unzip` package on FreeBSD and all systems where the default unzip(1) is provided by libarchive.