Commit graph

870 commits

Author SHA1 Message Date
Fred Hebert
bcc57e9b04 Handle ct_run exit codes in R15B02 and later
Since R15B02, ct_run returns a non-zero exit code when some tests
failed or were auto-skipped. (See ticket OTP-9865.)

This fix makes it so a non-0 code doesn't cause an instant failure, but
still prompts for log verification before doing so. Given the behaviour
was acceptable for pre-R15B02, it should be valid with it with
post-R15B02.

The fix should also be backwards compatible.
2013-04-18 22:45:46 -04:00
mats cronqvist
63a69af04b More error logging
rebar throws away some error messages, e.g. the ones generated if the yecc compiler is broken.
2013-04-12 21:21:53 +03:00
Pedram Nimreezi
df7cfba71f Implement merged overlays
This allows overlay_vars to merge comma delimited var config files
2013-03-26 05:23:47 -04:00
Krzysztof Rutka
5dfb6d6351 Add support for QuickCheck Mini 2013-03-25 09:30:46 +01:00
Dave Smith
a9cb38e6d1 Merge pull request #68 from nevar/fix_unicode_promt
Fix unicode
2013-03-04 06:49:32 -08:00
Dave Smith
c77f8e13ca Fix missing call to cwd_predirs 2013-03-02 08:25:28 -07:00
Dave Smith
21038d537c Merge pull request #38 from tuncer/fix-sub_dir-association
rebar_core: fix sub dir association
2013-03-02 07:04:41 -08:00
Tuncer Ayaz
dc2f5c8c7b Update rebar repo urls 2013-03-02 14:16:33 +01:00
Tuncer Ayaz
1036277525 rebar_core: fix broken indentation 2013-02-26 18:24:50 +01:00
Tuncer Ayaz
9715c40386 rebar_core: remove useless return after ?ABORT call 2013-02-26 18:24:50 +01:00
Tuncer Ayaz
2b9241bd2b rebar_core: document pre-dirs association 2013-02-26 18:24:50 +01:00
Dave Smith
e36b9c1bff Merge pull request #59 from Vagabond/adt-read-lists-from-files
Support reading mustache 'lists' from files
2013-02-26 07:23:26 -08:00
Slava Yurin
fb77295a1f Fix handling of Unicode characters in env vars 2013-02-18 14:20:27 +07:00
Andrew Thompson
ee8919420d Support reading mustache 'lists' from files
This commit add support for reading mustache 'lists' from files, so you
can use the list section functionality when templating things.

An example of the list syntax is as follows:

{package_commands, {list, [[{name, "riak"}], [{name, "riak-admin"}], [{name, "search-cmd"}]]}}.

Then you can, for each of the list elements, render some text:

{{#package_commands}}
chmod +x bin/{{name}}
{{/package_commands}}
2013-01-30 16:43:29 -05:00
Dennis Docter
61e79afd80 Add standard xref checks and improved suppression
* Allow the following predefined analyses :
   undefined_function_calls, undefined_functions, locals_not_used,
   exports_not_used, deprecated_function_calls, deprecated_functions

* Trap some possible errors in case module information is not
    available

* ignore_xref works on all checks and can take {M,F,A} tuples.
  (Automatic behaviour export suppression still only works on
  exports_not_used)
2013-01-30 15:26:01 +01:00
Philip Mueller
e29d84fbf6 break overlong line 2013-01-30 14:24:54 +01:00
Juan Jose Comellas
e2b1941c4b Add latest version getopt that automatically wraps usage output lines 2013-01-25 21:48:37 -03:00
Tuncer Ayaz
4b8c81fb53 Implement 'rebar help CMD1 CMD2' and extend common 'rebar help' msg
* allow plugins to print help message for implemented commands
* append core rebar.config options to common 'rebar help' message
2012-12-31 20:45:11 +01:00
Slava Yurin
b63328bb16 Correct ext of neotoma output file 2012-12-31 11:16:47 +07:00
Dave Smith
78fa8fc3d5 Merge branch 'saleyn-erlydtl' 2012-12-17 09:27:07 -07:00
Tuncer Ayaz
2716d83a18 Fix basho/rebar/issues/286 2012-12-17 12:53:48 +01:00
Ulf Wiger
209ca73b91 rebar_eunit:reset_after_eunit/1 mustn't remove 'included_applications'
One could argue that rebar_eunit does some pretty dangerous stuff when
trying to clean up after a test run, but specifically, it tells the
Application Controller to delete everything returned by
application:get_all_env(App). Unfortunately, included_applications
also goes, which can lead to a crash in application_controller, if
the application is subsequently unloaded.

This patch attempts the smallest possible fix: remove all env
variables except included_applications.
2012-12-16 21:30:15 +01:00
Philip Mueller
4ae4a80219 change cover html generation to produce valid html
- added missing doctype
- added encoding statement
- removed invalid additional opening <body> tag
2012-12-12 12:38:39 +01:00
Anthony Ramine
22641c07ec Ensure we always have a registered value in .app files
`systools:make_relup/4` fails with `{missing_param, registered}`
without a `registered` value.
2012-12-07 14:43:35 +01:00
Dave Smith
71c717d86b Merge pull request #26 from l4u/patch-1
Support environment vars with unicode characters
2012-12-02 09:52:29 -08:00
Dave Smith
329eba4e52 Merge pull request #13 from tuncer/fixes
Fixes
2012-11-23 07:19:32 -08:00
Joseph Wayne Norton
7d624e9018 Add missing rebar_qc:clean/2 2012-11-23 22:14:56 +09:00
José Valim
61c353dcfd Support environment vars with unicode characters
The results returned by os:getenv() may contain unicode characters.
That said, we need to explicitly allow unicode when splitting the
environment information, otherwise badarg will be raised causing all
rebar commands to fail until the environment variable is removed.
2012-11-22 01:30:49 +08:00
Magnus Henoch
e4083cacee Run eunit suites in the order specified in the 'suites' command line parameter
Normally, Rebar runs eunit tests in the order the beam files are
stored in the file system (see rebar_utils:beams).  However, sometimes
it is desirable to run the tests in a different order (e.g. to
reproduce an error found on a build server).  For that case, it would
make sense to use the 'suites' parameter not just for selecting which
modules to consider, but also for choosing the order.
2012-11-20 15:50:00 +00:00
Tuncer Ayaz
06dbb4cb80 Document escriptize command 2012-11-19 00:01:59 +01:00
Tuncer Ayaz
abb319d10a rebar_ct: fix wording in comments 2012-11-18 23:36:59 +01:00
Tuncer Ayaz
0d5583db5a rebar_require_vsn: remove trailing whitespace 2012-11-18 19:36:59 +01:00
Tuncer Ayaz
ed55df9648 rebar_neotoma_compiler: fix comment 2012-11-18 18:57:55 +01:00
serge
edfee29b15 Fix default DTL compilation when no erlydtl_opts are provided 2012-11-15 16:34:06 -05:00
Tuncer Ayaz
a015892e21 Cleanup rebar_core and rebar_erlc_compiler
Rename rebar_core functions for improved readability.
Remove redundant comments and blank lines.
2012-11-15 15:41:51 +01:00
Tuncer Ayaz
6a63ab9f6c rebar_erlc_compiler: fix src_dirs comment 2012-11-15 01:33:26 +01:00
Dave Smith
bf35ec9392 Merge branch 'ates-diameter' 2012-11-12 21:40:57 -07:00
Dave Smith
7dad2b384b Be sure to filter empty sources (h/t to Tuncer and Joe Norton) 2012-11-12 20:18:00 -07:00
Artem Teslenko
4c25718492 Add support to compile the Diameter dictionary files 2012-11-12 15:03:43 +02:00
Dave Smith
9ac6c25f6d Restore support for so_name, port_envs and port_sources 2012-11-11 13:03:24 -07:00
Tuncer Ayaz
a9491e112f Fix Dialyzer warning in rebar:run/2 2012-11-11 00:21:13 +01:00
Tuncer Ayaz
93f6ef36af rebar_erlydtl_compiler: fix incorrect lists:keysort/2 call 2012-11-11 00:14:42 +01:00
Dave Smith
0c8dd15c79 Merge pull request #328 from saleyn/depcheck
Fix erlydtl dependency check
2012-11-10 06:13:15 -08:00
Dave Smith
7826232a03 Merge pull request #327 from saleyn/erlydtl_compiler
Erlydtl compiler
2012-11-10 06:08:16 -08:00
Dave Smith
a2fb8fdc39 Expose Erlang API for invoking rebar 2012-11-06 08:40:41 -07:00
Dave Smith
a7c32f8d98 Add comment to explain why we're using sub_dirs by hand 2012-11-05 06:19:02 -07:00
Daniel Luna
b1a947488b Add all subdirs to xref library path 2012-11-05 06:19:02 -07:00
Daniel Luna
2b5844d14c Add email address to my name 2012-11-05 06:19:02 -07:00
Dave Smith
6eb7c08499 Merge pull request #293 from Motiejus/skip_deps
Add skip_deps=AppListSeparatedByCommas feature.

I agree it's a bit of a weird thing, but it's a reasonable and safe extension. When time comes to properly overhaul stuff, skip_deps should disappear entirely.
2012-10-31 19:47:13 -07:00
Arjan Scherpenisse
cc67814b65 ct: skip instead of halt on missing/unknown suite
This allows `rebar ct suites=abc` to consider all suites when
you have a rebar setup with multiple sub_dirs.

Previously, rebar halted after it could not find the suite in the
first dir. But the suite might be present in another dir (when
sub_dirs contains multiple dirs).

This commit makes it so instead of halting, it prints a warning and
continues with looking for the suite in the other `sub_dir`s.

Note -- This uses try/catch to cause the test to be skipped because
otherwise I needed to adjust the return values of 4 functions, the
code path is pretty deeply nested here. Otherwise the whole call chain
needed to be adjusted for this return value:

`run_test -> make_cmd -> get_suites -> find_suite_path`

IMHO, I think for exceptional cases like this it is fine to use throw;
specially since only the {skip} is catched and nothing else.
2012-10-31 20:37:42 -06:00
Dave Smith
3ee3a7cd9e Merge remote-tracking branch 'basho/master' 2012-10-30 21:26:54 -06:00
Dave Smith
08c510130e Merge pull request #243 from evanmcc/pevm_min_otp_version
Add support for minimum OTP versions
2012-10-30 19:23:08 -07:00
Tuncer Ayaz
588244465f Revert arch string changes 2012-10-29 16:01:28 +01:00
Serge Aleynikov
3f5ab55787 Fix erlydtl dependency check
When a DTL template includes other template files, those files don't need
to be compiled separately, and therefore can be given an extension different
from `source_ext` (such as `.dtli`) to avoid being compiled.  This fix
allows rebar to find included dependencies with names `*.dtl*` rather
than `*.dtl` and properly determine if a template file needs to be recompiled.
2012-10-25 07:25:56 +04:00
Magnus Henoch
e8169e91e4 Fix rebar_base_compiler:format_errors/3 for errors in include files
Handle the case where the error didn't occur in the file being
compiled.  That is, if there is an error on line 9 of bar.hrl,
instead of:

/path/to/foo.erl:9: type foo() already defined

print:

/path/to/bar.hrl:9: type foo() already defined
2012-10-22 22:10:26 +02:00
Serge Aleynikov
b606e3bfc5 Made more readable printout of the erlydtl compiler message
The printed message is made more terse.

Example before applying patch:

    ERROR: Compiling template src/view/test.dtl failed:
      {error,{"src/view/test.dtl",
              [{{4,7},
                erlydtl_parser,
                ["syntax error before: ",["\"\\\"HELLO_WORLD\\\"\""]]}]}}

Example after applying patch:

    ERROR: Compiling template "src/cmp_html_error_template.dtl" failed:
        (line:3, col:12): ["syntax error before: ",["trans"]]
2012-10-22 08:55:30 +04:00
Serge Aleynikov
38902e9a52 Specify multiple locations of DTL template files
Added a backward compartible feature to specify `erlydtl_opts' options
for the DTL template compiler to allow inclusion of templates in different
directories with different compilation settings for each. E.g.:

    {erlydtl_opts, [
          [{doc_root, "src/view"}, {module_ext, "_dtl_vw"}]
        , [{doc_root, "src"},      {module_ext, ""}, {recursive, false}]

        , {out_dir,   "ebin"}
        , {compiler_options, [verbose, debug_info]}
    ]}.

The definition above is identical to this (the last two options
are duplicated in each list):

    {erlydtl_opts, [
          [{doc_root,   "src/view"}
          ,{module_ext, "_dtl_vw"}
          ,{out_dir,    "ebin"}
          ,{compiler_options, [verbose, debug_info]}]

        , [{doc_root,   "src"}
          ,{module_ext, ""}
          ,{out_dir,    "ebin"}
          ,{compiler_options, [verbose, debug_info]}
          ,{recursive, false}]
    ]}.

In this case "src/view" and "src" directories containing template files
will be compiled.  A new `recursive' option tells rebar_erlydtl_compiler
to search files recursively from a given doc_root.  In the example above
the "src" directory won't be scanned recursively, and the target template
name for target beam modules won't have "_dtl_vw" suffix.
2012-10-22 08:39:44 +04:00
Dave Smith
53ae245725 Merge pull request #217 from alavrik/raw_deps_new
Add support for non-Erlang/OTP (raw) dependencies
2012-10-21 11:22:51 -07:00
Dave Smith
d896fbffa7 Merge pull request #325 from saleyn/reltool
Fix return value of rebar_overlay
2012-10-20 12:06:04 -07:00
serge
2d5bd56605 Fix return value of rebar:overlay/2
When 'rebar overlay' is run rebar_core got a wrong result
{Config, ok} from rebar_reltool instead of {ok, Config}.
2012-10-20 13:32:30 +04:00
serge
3de9167d99 Add hostname variable to reltool overlay templates 2012-10-20 03:05:42 +04:00
Anton Lavrik
0b833391ed Add support for non-Erlang/OTP (raw) dependencies
Introduce a new 'raw' option for dependency specs in rebar.config file.
For example:

{deps,
    {dependency_name, "1.0.*",
	 {git, "<...>", {branch, "master"}},
	 [raw]
    }
]}.

When this option is specified, rebar does not require the dependency to
have a standard Erlang/OTP layout which assumes presence of either
"src/dependency_name.app.src" or "ebin/dependency_name.app" files.

'raw' dependencies can still contain 'rebar.config' and even can have
the proper OTP directory layout, but they won't be compiled.

Only a subset of rebar commands will be executed on the 'raw'
subdirectories:

	get-deps, update-deps, check-deps, list-deps and delete-deps.
2012-10-11 02:06:08 -05:00
Tuncer Ayaz
32e67ef55e rebar_edoc: use correct proplist() type (Reported-by: Kostis Sagonas) 2012-10-03 12:28:19 +02:00
Dave Smith
8ff99f98b3 noshell/noinput should NOT be the default emulator args for an escript 2012-10-02 20:17:09 -06:00
Tuncer Ayaz
2829741a38 Fix whitespace errors 2012-09-28 23:37:18 +02:00
Martin Schut
fbbeb360a5 deps: add fossil scm support 2012-09-28 23:34:53 +02:00
Tuncer Ayaz
f4e55b8463 Fix fprof use (-p/--profile) 2012-09-26 22:18:35 +02:00
Tuncer Ayaz
1b52a597c4 Revert 15b7798e4 and restore old git-describe call
Restore previous 'git describe' behaviour as discussed here:
http://lists.basho.com/pipermail/rebar_lists.basho.com/2012-September/001713.html
2012-09-21 17:20:03 +02:00
Tuncer Ayaz
9521586bdd rebar_deps: fix whitespace errors 2012-09-15 19:05:15 +02:00
Yurii Rashkovskii
9a57e06015 Restore ability to specify deps_dir on the command line
It was previously possible to run `rebar compile deps_dir=/path/to/deps`,
but as of 70d27c5720, it was nixed.
2012-09-15 18:58:02 +02:00
Shunichi Shinohara
22b703efa8 eunit: analyze coverage only for cover compiled modules
This change fixes #310.
2012-09-13 22:30:30 +02:00
Daniel Luna
7bd318c219 xref: allow multiple behaviours and ignore_xref pragmas 2012-09-13 22:20:55 +02:00
Eric Merritt
eaad535e31 Allow script to be evaluated when app file is loaded
This allows an <app-name>.app.src.script to be defined and evaluated
when <app-name>.app.src or <app-name>.app are loaded. This allows the
user to add project specific manipulations to app metadata.
2012-09-07 22:53:50 +02:00
Tuncer Ayaz
e0bc55db33 Use R15B02 EUnit {test,M,F} primitive as suggested by Richard Carlsson 2012-09-06 00:50:46 +02:00
joewilliams
29492dd0e8 Correctly use release_handler:create_RELEASES 2012-09-04 18:43:22 +02:00
Ryan Zezeski
e7be6874d7 Pass compile flags to protobuffs
By default protobuffs doesn't create beams with debug info.  This
causes issues when running dialyzer which requires debug info.  Read
the `erl_opts` config and pass it down to protobuffs compiler.
2012-09-03 12:10:14 +02:00
Tuncer Ayaz
d22a2bb81f rebar_ct: ?DEBUG log ct_run command 2012-09-03 11:40:53 +02:00
Tuncer Ayaz
f460eb14bc rebar_ct: do not export variable from case 2012-09-02 21:30:59 +02:00
Tuncer Ayaz
f0bf3503cb Update port_env for Mountain Lion (Noticed-by: Tony Rogvall) 2012-09-01 11:13:34 +02:00
Tuncer Ayaz
f22337b68f Comment eunit_test:function_wrapper/2 TODO 2012-09-01 11:11:24 +02:00
Tuncer Ayaz
8aadd65a34 rebar_eunit: adapt to R15B02 changes 2012-08-31 22:07:42 +02:00
Tuncer Ayaz
3cc8fb2855 rebar_reltool: remove blank lines 2012-08-30 22:20:02 +02:00
Dmitriy Kargapolov
9c7259d8a2 Add dynamic .script support for overlay vars file 2012-08-30 22:18:09 +02:00
Markus Näsman
2d139ea6c2 Stop cover server between eunit runs for speed
Cover gets slower and slower for each application. This is due to the
cover_server internal state. Stopping the cover server between
eunit+cover runs, emptying the cover_server state, gives a ~5-6x speed
improvement when analyzing many Erlang modules. Stopping the cover
server replaces the earlier practice of doing a cover:reset before each
run. On a project consisting of 62 dependencies with a total of 1866
Erlang modules the running time of rebar eunit decreased from ~20
minutes to ~3 minutes.
2012-08-30 17:27:43 +02:00
Tuncer Ayaz
ff8337f9b0 Fix whitespace error in rebar_eunit 2012-08-22 19:17:17 +02:00
Tuncer Ayaz
f528c397f8 Fix whitespace errors in rebar_ct and rebar_eunit 2012-08-22 19:14:35 +02:00
Tuncer Ayaz
3c0d97bf2c Cleanup and comment 2012-08-20 13:55:55 +02:00
Roberto Ostinelli
60516dc406 Fix tests= option not running generator tests 2012-08-20 12:58:34 +02:00
Roberto Ostinelli
fa6618f2b4 Add experimental tests= filter without eunit suites 2012-08-20 12:58:31 +02:00
Tuncer Ayaz
9dd8e7f2ee Fix #295 (consider *_SUITE.beam in ct skip check) 2012-08-19 15:25:13 +02:00
Tuncer Ayaz
6c1694980c Fix whitespace error 2012-08-18 17:19:42 +02:00
Joe DeVivo
991e2ce8e1 Add erlc override from erl_opts: outdir 2012-08-18 17:19:23 +02:00
Tuncer Ayaz
fc7df16e31 Clarify comments 2012-08-12 14:03:44 +02:00
Tuncer Ayaz
bdee72fae8 rebar_eunit: add tests= TODO item 2012-08-11 23:10:06 +02:00
Roberto Ostinelli
69dc9ec933 Add experimental tests= filter for eunit suites 2012-08-11 23:08:21 +02:00
Tuncer Ayaz
563607bc02 Change escript zip archive creation as suggested by Siri Hansen
1. manually insert directory entries to work around issues fixed in
   R15B02 erl_prim_loader
2. put the escript archive's beams in appname/appname/ebin

Tested with R13B03 and R15B01.
2012-08-11 18:47:25 +02:00
Tuncer Ayaz
795f9345a7 New upstream mustache.erl 2012-08-11 15:04:09 +02:00
Tuncer Ayaz
5d6b82390f rebar_eunit: fix typo 2012-08-10 16:05:00 +02:00
Tuncer Ayaz
8f3873e061 rebar_utils: refactor get_experimental and get_deprecated funs 2012-08-10 14:28:42 +02:00
Tuncer Ayaz
75a6de27e7 rebar_qc: ensure_dir/1 the same way as in rebar_eunit 2012-08-09 18:44:08 +02:00