<feed xmlns='http://www.w3.org/2005/Atom'>
<title>erlang.mk.git/test/core_query.mk, branch work-20241127</title>
<subtitle>A build tool for Erlang that just works.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/erlang.mk.git/'/>
<entry>
<title>Greatly speed up test speed with -j</title>
<updated>2024-11-13T16:23:22+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2024-11-13T16:23:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/erlang.mk.git/commit/?id=e903cc89c5cc389305ee8dc0b15a8db250de1b37'/>
<id>e903cc89c5cc389305ee8dc0b15a8db250de1b37</id>
<content type='text'>
The tests were waiting for the test group to finish before
they could continue with the next test group. Now "core"
and "all" targets directly depend on individual test cases,
allowing parallel Make to get to the next tests quicker and
removing 1/3rd of the total run time.

  make check -j8 -k  5790,16s user 1207,08s system 627% cpu 18:35,49 total
  make check -j8 -k  6250,13s user 1326,77s system 972% cpu 12:59,16 total
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The tests were waiting for the test group to finish before
they could continue with the next test group. Now "core"
and "all" targets directly depend on individual test cases,
allowing parallel Make to get to the next tests quicker and
removing 1/3rd of the total run time.

  make check -j8 -k  5790,16s user 1207,08s system 627% cpu 18:35,49 total
  make check -j8 -k  6250,13s user 1326,77s system 972% cpu 12:59,16 total
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't use the shell in core_find</title>
<updated>2024-06-21T13:43:14+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2024-06-21T13:43:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/erlang.mk.git/commit/?id=396761469b69f7a328343cdd1b2d18d8b5552f83'/>
<id>396761469b69f7a328343cdd1b2d18d8b5552f83</id>
<content type='text'>
Instead of calling `find` we use $(wildcard ...) and some
logic on top to find all the files we are looking for.

This is more efficient and greatly helps reduce re-build
times when there's little to be done, particularly when
many dependencies are involved.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of calling `find` we use $(wildcard ...) and some
logic on top to find all the files we are looking for.

This is more efficient and greatly helps reduce re-build
times when there's little to be done, particularly when
many dependencies are involved.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update the query duplicate test</title>
<updated>2023-05-04T12:16:33+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2023-05-04T12:16:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/erlang.mk.git/commit/?id=8608f095ba78ee8afe714d9660f443eacc660183'/>
<id>8608f095ba78ee8afe714d9660f443eacc660183</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix core-query-deps-no-duplicates test</title>
<updated>2022-04-28T13:04:39+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2022-04-28T13:04:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/erlang.mk.git/commit/?id=bc9053baca8d75cb045e6404e54da7a4669d613a'/>
<id>bc9053baca8d75cb045e6404e54da7a4669d613a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix core-query-deps-no-duplicates test</title>
<updated>2020-11-30T15:16:17+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2020-11-30T15:00:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/erlang.mk.git/commit/?id=c8ecd5c0fe44cce26e9f32df45f9cd576f1983bb'/>
<id>c8ecd5c0fe44cce26e9f32df45f9cd576f1983bb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add query-deps test with no deps</title>
<updated>2020-07-21T12:24:42+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2020-07-21T12:24:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/erlang.mk.git/commit/?id=eb3e4b06e0c217439f1ef0ffcfcdf131c7f72e71'/>
<id>eb3e4b06e0c217439f1ef0ffcfcdf131c7f72e71</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>test/core_query.mk: Pin `farwest` in `core-query-deps-no-duplicates`</title>
<updated>2020-04-02T15:24:47+00:00</updated>
<author>
<name>Jean-Sébastien Pédron</name>
<email>jean-sebastien.pedron@dumbbell.fr</email>
</author>
<published>2020-04-02T15:24:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/erlang.mk.git/commit/?id=be449f2620e2050d74928982b5991c5866d8f77b'/>
<id>be449f2620e2050d74928982b5991c5866d8f77b</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add the query-deps family of targets</title>
<updated>2020-03-04T12:17:38+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2020-02-25T14:51:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/erlang.mk.git/commit/?id=7edc30ad40cd5dc033bc8f0e914b951abf6d0527'/>
<id>7edc30ad40cd5dc033bc8f0e914b951abf6d0527</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
</feed>
