| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \
| |/
|/| |
add project_providers after initing default providers but allow overrides
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes to how hex or packages may work in the future will necessarily
bring changes to the format of lock files.
This commit adds an optional framing for future lock files of the form:
{Version, LockList}.
<Whatever consultable attributes>
This format is supported such as the LockList is the current lockfile
contents, and will never have more information than it currently does.
Attributes can be whatever and are currently undefined.
Rebar copies will be able to:
- Keep using the core locklist (which avoids breaking the last year or
so of community libraries using rebar3)
- Warn when it runs an outdated copy in comparison to the lock file
- Automatically rewrite lock files in the format it supports
- Augment or parse files in a version-specific manner.
This changes the usage interface slightly, but is backwards *and*
forwards compatible.
|
|\
| |
| | |
Add test case for relx overlay vars
|
| |
| |
| |
| |
| | |
Makes use of several var types: integers,
strings, binaries, binary strings and tuples.
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
| |
Several projects use an include path relative
to the project's root.
file:compile will look in three places for the include
files:
The current working directory
The directory where the module is being compiled
The directories given by the include option
|
|\
| |
| | |
add profile option to clean task
|
| | |
|
|/
|
|
|
| |
this ONLY attempts to deduplicate test sets that are generated by
rebar in the absence of any user specified tests
|
| |
|
| |
|
|\
| |
| | |
only apply default and prod profile to dependencies
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- 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.
|
|/ |
|
|\
| |
| | |
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
|
| |
| |
| |
| | |
Tests both absolutes and relative paths.
|
|/
|
|
|
|
|
|
| |
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.
|
|\ \
| |/
|/|
| | |
tsloughter-tup_umerge
|
| | |
|
|/
|
|
| |
(the tests fail)
|
| |
|
| |
|
|
|
|
| |
The checking of flags and the parsing of arguments is separated up.
|
| |
|
| |
|
|\
| |
| | |
fixes for cover under new compiler/eunit/ct
|
| |
| |
| |
| |
| |
| | |
* only try to cover compile directories that actually exist
* recover from failures where source files don't contain required
attributes for cover compilation and print warning
|
| |
| |
| |
| | |
`ct_opts`
|
| |
| |
| |
| |
| |
| |
| |
| | |
* remove partial support for ct `test_spec` until it can be done properly
and warn if `test_spec` is present in test opts
* use new compiler functionality to reduce complexity of provider
* reduce command line options available to those that can be
supported properly
|
|\ \
| |/
|/| |
Rebuild PLT when beams no longer exist
|
| | |
|
|\ \
| |/
|/| |
delay validation of eunit tests until just before running
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|