| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|/ / / |
|
| | | |
|
|\ \ \
| | | |
| | | | |
only apply default and prod profile to dependencies
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
Fix windows stuff
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- robocopying a directory into another directory recursively expects the
directory name to be properly mapped onto the destination, otherwise
all the files are copied into the given path. This patches things so
a directory-to-directory robocopy works as expected in a linux mindset
so tests pass
- the test for canonical paths didn't expect a windows environment at
all; the test (and library) is modified to be consistent in that
environment: always with a native format and with proper support of
drive letters.
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
if these directories actually exist they'll be added to the path ahead
of the release/standard distribution directories and they'll break eunit
and/or ct execution
fixes #950
|
|\ \
| | |
| | | |
allow ct suites to be specified at root of project (or root of app)
|
| | |
| | |
| | |
| | | |
this allows repeated test suite names across apps without conflicts
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
previously rebar3 dropped suites declared at the root of the project (via
`--suite=whatever_SUITE' probably) and warned. this was because the compiler
would recursively copy and compile everything in the directory indicated by
the test suite. this changes the copy mechanism to only copy erl source files
and directories that end with `_SUITE_data' into the `extras' dir in `_build'
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Plugin templates
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This lets a plugin define templates to be loaded:
$ rebar3 new
...
proper (plugin): A basic PropEr suite for an OTP application
...
$ rebar3 new help proper
proper:
plugin template (...)
Description: A basic PropEr suite for an OTP application
Variables:
name="suite" (...)
...
→ rebar3 new proper fakesuite
===> Writing test/prop_fakesuite.erl
In this case, proper is a fake template file I've put by hand in
_build/default/plugins/rebar3_proper/priv/<somename>/, meaning it will
only work as far as it's called from the project's root.
The priority order of plugins is now .config > plugin > built-in, such
that someone could ensure plugins do not crush their own private
templates, but also that custom or plugin templates do overtake built-in
ones. It used to be Built-in > .config only.
Templates are searched for recursively in the priv/ directory of
plugins.
|
|/ / |
|
|\ \
| | |
| | | |
Fix wrong relative path resolution
|
| |\ \
| | | |
| | | |
| | | | |
schutm-wrong-paths
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
A bad template index does not crash; shows warning
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This should fix #955
The test is implicit as a bad index previously silently crashed rebar3.
By adding the bad index to the `new` suite's files, we can show that
things keep running.
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
symlink mib hrl output in apps `include' directories
|
| | | |
|
| | |
| | |
| | |
| | | |
this restores compatibility with rebar2 and erlang.mk
|
|/ /
| |
| |
| | |
Full rewrite, code should be understandable now.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- proper segregation of comparison between tuple terms and non-tuple
terms. Guards weren't specific enough and that meant the wrong clauses
of guards would be triggered
- proper deduplication of entries in the list. An additional N passes
are required (we co-opt the reverse step to be more efficient) because
while the original lists:umerge easily removes dupes, this is
requiring more logic here since `[a,{a,b},{a,b,c},a,{a,b,c}]` is a
possible interleaving and we'd want `[a,{a,b},{a,b,c}]` -- comparison
of direct neighbours isn't enough.
|
|\ \
| | |
| | | |
Fix a small bug in the MIB compiler when building dependencies
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When compiling a dependency with a MIB file the generated hrl file is left in
the root project directory in a file called "include". This has the perverse
effect of messing up the search path for include files causing any dependencies
with files in their "include" directory to fail to build after that.
|
| | |
| | |
| | |
| | | |
The previous default meant that verbose output would not be emitted.
|
|/ / |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Relx config need new values at the end of the list and
profile additions prepended. So now in apply_profile in
the case it is a relx config we prepend the config list.
This does, however, mean that a profile release can not
'extend' a release defined in the default profile since
the one being extended would have its definition after
the profile release and thus relx would not be able to
use its values for extending.
|
| | |
|
| |
| |
| |
| | |
provider
|
| |
| |
| |
| | |
The checking of flags and the parsing of arguments is separated up.
|
| |
| |
| |
| | |
support
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
when `ct_opts`, `eunit_tests`, `eunit_first_files`, `ct_first_files`, `erl_first_files`,
`eunit_compile_opts`, `ct_compile_opts` and `erl_opts` have values that are single non-list
terms warn and try wrapping them in a list when processing them in the `eunit` and `ct`
providers
|
| |
| |
| |
| |
| |
| |
| | |
In some cases (nested includes?) paths end up in such a way that joining
them breaks up and hard-crashes rebar3. This patch specifically handles
this scenario to fix things by avoiding passing empty lists to
filename:join.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Application masters are booted at the root of apps, and take over the
group leader role to redirect IO. To cut the chain short and properly
have their role inherited, they are their own leader, and keep a
reference to the old leader in their internal state, which we cannot
change.
This is done so process ownership to a given application can be
established, and allows to properly clean up resources outside the
supervision tree when an app is shut down.
This patch goes around and finds all processes whose group leaders are
application masters older than the new `user' process booted by the
shell providers, and swaps them with that new `user'. This lets the
application masters survive, and fixes the blocking IO issue
(resolving issue #899)
This may mean an incomplete clean up is down on application shutdown,
but that seems like a fair compromise.
|
|\ \
| | |
| | | |
include Sean Cribbs eunit formatter by default
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Adds the ability to run an escript before starting the apps and
interactive shell for a project. This is intended to improve the
local development experience for projects by providing an easy way to
run companion services (mock rest APIs, databases etc) that the
project relies on.
This patch also adds {shell, Defaults} to the rebar config file so
that a project can supply default values for many of the new or
improved 'rebar3 shell' options:
* {apps, OTPApps}
* {script_file, EscriptFileName}
* {config, ConfigFileName}
The order of option precedence is command line, rebar.config, relx.
|
|\ \
| | |
| | | |
Prettify all of common test output.
|