Repeats some of the steps used in the bootstrap script for non-windows
systems so that 'rebar3 escriptize' can be used in development for
faster results:
- ./bootstrap 9.95s user 1.55s system 102% cpu 11.234 total
- rebar3 escriptize 0.49s user 0.14s system 101% cpu 0.623 total
Prior to this patch, the escriptize command flat out selected all
declared dependencies.
This patch instead looks at the app files and only includes the
dependencies of the top level app and the extra ones, avoiding to
package more apps than required.
This required a version bump on cth_readable as it mistakenly included
'syntax_lib' instead of 'syntax_tools' as a dependency.
this is slower than the compile time check but i guess packaging rebars with
repos is still a thing and i think only the eunit and ct providers call it
anyways
This uses cth_readable to:
- silence error_logger output to the shell unless a test fails
- silence ct:pal output to the shell unless a test fails
I have currently not baked in any way to disable this behaviour, but I
figured if it is required, there is time to do it before the final
3.0.0 release.
* modify compiler interface to work on either application objects or
directories containing source files
* compile all sources in `src_dirs` to the application `ebin` dir and
all sources in `extra_src_dirs` to a directory mirroring it's
position in the app's `_build` directory. for example, `apps/foo/more`
would compile to `_build/default/lib/foo/more`
for `extra_src_dirs` in the root of a project with multiple
applications (so orphan directories that don't "belong" to an
application) compile to `_build/default/extras/more`
* copy directories specified in `extra_src_dirs` into the `_build`
directory so tools like `ct` and `xref` that expect source to be
in a particular location still work
* clean compiled artifacts from all `extra_src_dirs`
* alter `eunit`, `ct` and `cover` to work with the new directory
structure
* billions of new tests