Commit graph

920 commits

Author SHA1 Message Date
Tuncer Ayaz
348d13b064 'current_command' has to be stored in xconf 2013-10-16 12:29:54 +02:00
Dave Smith
ed88055a75 Merge pull request #142 from Vagabond/adt-update-deps
Make update-deps traverse deps breadth-first, top-down
2013-10-14 15:09:03 -07:00
Andrew Thompson
e74de95eeb Address review comments and add inttest for update-deps 2013-09-30 16:57:50 -04:00
Andrew Thompson
eae26a5c43 Fix skip check for deps not present 2013-09-24 12:07:41 -04:00
Andrew Thompson
d9aa65f118 Make update-deps honor apps= and skip_apps=
Because rebar_core handles skipping apps, we had to specialcase the
handling in the case of update-deps because it has to do its own dep
handling. The way this was done is not particularly clean, but there
currently does not exist another way for a command to signal rebar_core
that it doesn't want rebar_core to pay attention to skip_apps.

With this change, however, you can update-deps even with local
conflicting changes/commits by simply skipping the deps you don't wish
to update, or whitelisting he ones you do wish to update.
2013-09-23 15:19:51 -04:00
Andrew Thompson
f46e7b2e5c Change how update-deps updates a git branch
Previously, update-deps on a dep tagged as {branch, ...} would do the
following:

  git fetch
  git checkout -q origin/<branch>

If you were already on that branch, the repo would end up in detached
head state. This is kind of annoying if you're doing local development.

This patch changes the behaviour to be

  git fetch
  git checkout -q <branch>
  git pull --ff-only --no-rebase -q <branch>

The intent of this is to move the branch's HEAD forward to match
upstream without destroying any local commits or changes, and without
accidentally causing merges or rebases. It will fail if the operation
can not be performed without losing history, merging or rebasing.

The previous behaviour has been around a very long time:

064195dc5a (L0R308)

It also exactly mirrors the download_source case, which is not really
true. With git tags and SHAs, one can assume that they don't change, but
branches move all the time.
2013-09-23 15:13:26 -04:00
Andrew Thompson
0977d58361 Ignore skip_deps during update-deps as it has no meaning 2013-09-23 15:11:11 -04:00
Dave Smith
72247281a2 Merge pull request #111 from tuncer/nox-erlydtl-compile
Always return the errors and warnings from erlydtl
2013-09-20 13:06:02 -07:00
Anthony Ramine
daed79f629 Always return the errors and warnings from erlydtl
This allows us to use `rebar_base_compiler:ok_tuple/3` and
`rebar_base_compiler:error_tuple/5` when returning from
`rebar_erlydtl_compiler`.
2013-09-20 20:54:54 +02:00
Tuncer Ayaz
0550560221 Fix eunit regression introduced in 2716d83a18
Use alternative way to detect net_kernel:stop/0 has succeeded as
suggested by Ulf Wiger.
2013-09-20 20:53:16 +02:00
Dave Smith
e840ac2112 Merge pull request #125 from lucafavatella/neotoma-doc-typo
Fix typo in neotoma help message
2013-09-20 07:26:11 -07:00
Dave Smith
d19a46676c Merge pull request #132 from alexthornton1/mib_to_hrl_verbosity
mib_to_hrl compilation verbosity via 'mib_opts'
2013-09-20 07:10:26 -07:00
Dave Smith
4dfdd726ad Merge pull request #137 from bosqueviejo/master
let vm.args and sys.config as optional
2013-09-20 07:05:06 -07:00
Dave Smith
d5ca068983 Merge pull request #138 from evax/conditionalTemplateInstructions
Support conditional template instructions
2013-09-20 07:02:51 -07:00
Björn Bylander
1dfe56b3c6 Change rebar_ct:check_log/3 to use double quotes
The call to the grep program in rebar_ct:check_log/3 used single
quotation marks around the strings grep should search for. This works
well in most cases but fails on Windows 7 using GNU grep 2.5.4 as
installed by the Chocolatey package GnuWin 0.6.3.1 with the follow
message:

ERROR: cmd /q /c grep -e 'TEST COMPLETE' -e '{error,make_failed}'
ct/raw.log
failed with error: 2 and output:
grep: COMPLETE': No such file or directory

This commit changes the single quotation marks to double quotation
marks. I've tested this using GNU grep 2.5.3 on a Debian Linux machine
and it works well.
2013-09-20 15:12:21 +02:00
Andrew Thompson
cb4599f828 Make update-deps traverse deps breadth-first, top-down
This ensures that deps of deps are updated AFTER the dep listing them
is, so that a complicated project with many layers of deps will be
updated correctly. Any new deps encountered along the way are also
cloned, and THEIR deps are also evaluated.

Also added was conflict detection, if a dep has differing versions or
source information, inherited from different places, that will be logged
at the end of update-deps, along with the origin of each conflicting
dep.
2013-09-20 01:24:07 -04:00
Evax Software
2970fab4b7 Support conditional template instructions 2013-09-19 07:11:37 +02:00
Manuel Rubio
3732662080 let vm.args and sys.config as optional 2013-09-19 00:59:51 +02:00
Alex Thornton
01fd873c1e mib_to_hrl compilation verbosity via 'mib_opts'
Previously, the configuration setting 'mib_opts' in rebar.config
would affect the call to snmpc:compile/2, so that (for example)
verbosity could be controlled.  However, the subsequent call to
snmpc:mib_to_hrl/1 did not include any of these options, so it
did not appear to be possible to control the verbosity of the
process of converting a MIB to a .hrl file.  To make matters
worse, the default was to dump a full trace -- including debug
output and various logging -- so the act of compiling a large
number of MIBs could result in a huge amount of "noisy" output
that hid any signal (meaningful warnings, errors, etc.).

This commit addresses that issue by replacing the call to
snmpc:mib_to_hrl/1 with a call to snmpc:mib_to_hrl/3 instead,
which includes an "options" argument that, at present, is only
capable of setting verbosity.  The verbosity setting is taken
from the 'mib_opts' setting in rebar_config, if present, and
the approriate kind of argument is passed to snmpc:mib_to_hrl/3.

It should be noted that snmpc:mib_to_hrl/3 is not listed in
Erlang's documentation, but does appear in the list of "API"
exports at the top of snmpc.erl in R15B01 (and remains that way
in R16B01), so this appears to be more of a documentation oversight
than the use of a deep, dark function call that was not intended
to be public.  snmpc:mib_to_hrl/3 accepts an #options{} record
(defined in lib/srdlib/include/erl_compile.hrl within Erlang's
source distribution), though most of the fields in that record
are ignored by snmpc:mib_to_hrl/3; only verbosity can be controlled
this way.
2013-09-08 00:37:47 -07:00
Luca Favatella
7bee2c0462 Fix typo in neotoma help message 2013-08-30 10:44:24 +01:00
Dave Smith
620c4b01c6 Use REBAR_DEPS_DIR if set as location of DEPS dir 2013-07-02 10:59:26 -06:00
Dave Smith
d3c7be265d Merge pull request #108 from tuncer/dialyzer
dialyzer_reference plus one minor patch
2013-06-29 06:28:35 -07:00
Tuncer Ayaz
bd3338a0a7 Document 'rebar help <CMD1> <CMD2>' 2013-06-29 15:10:23 +02:00
Tuncer Ayaz
2faabf460d rebar_deps: fix overlong line introduced in 0b83339 2013-06-27 21:02:16 +02:00
Dave Smith
96c7bd7338 Make sure to run ct_run w/ -noshell 2013-06-25 16:33:34 -06:00
Dave Smith
9cf7cf7cb0 Use ct_run if available; fixes strange issues with getting erl/ct to stop 2013-06-25 15:59:19 -06:00
Dave Smith
490d00f0d6 Adding debug statements closer to open_port 2013-06-25 15:59:05 -06:00
Dave Smith
4b642bf916 Merge pull request #41 from exterm/cover_html_validity
change cover html generation to produce valid html
2013-06-25 05:57:55 -07:00
Tuncer Ayaz
09cd4e9be2 rebar_xref: regression fixes and updates for a5be40c96
- restore support for "rebar help xref"
- update rebar.config.sample
- update 'help xref' string
- simplify new/changed functions by breaking out code or
  using simpler syntax where applicable
2013-06-24 21:46:24 +02:00
Tuncer Ayaz
bdf957b201 rebar_core: fix consistency issues caused by 252b31f
- refactor plugin dirs code to be simpler and easier to read
- use erlang-mode's default (%%) comments for portability/consistency
- make sure erlang-mode's indenter is used so that a future whole
  buffer indent doesn't get messed up
2013-06-24 21:46:24 +02:00
Tuncer Ayaz
edd835510b rebar_ct: fix Dialyzer warning caused by bcc57e9b
Also fix a single line exceeding max column.
2013-06-24 21:46:24 +02:00
Dave Thomas
091405bce7 Fix crsh with Unicode in environment vars 2013-06-23 20:30:38 -05:00
Dave Thomas
dd277fd01a Fix crash when env vars contain utf8 chars 2013-06-22 21:41:04 -05:00
Dave Thomas
934ec7fdef Add one more "unicode" option in expand_env_variable—I have a bullet in my prompt that was blowing it up 2013-06-21 23:40:32 -05:00
Juan Jose Comellas
d4164c9606 When expanding lib_dirs, don't crash with 'volumerelative' paths 2013-06-18 19:19:41 -03:00
Juan Jose Comellas
708c190faa Allow the use of absolute paths in the lib_dirs configuration setting 2013-06-18 18:03:30 -03:00
Dave Smith
a5be40c969 Merge branch 'xref_20130130' of git://github.com/spilgames/rebar into spg-xref
Conflicts:
	src/rebar_xref.erl
2013-06-17 16:31:09 -06:00
Dave Smith
d3c125de27 Merge pull request #47 from uwiger/master
rebar_eunit:reset_after_eunit/1 mustn't remove 'included_applications'
2013-06-17 15:21:11 -07:00
José Valim
e467642476 External deps_dir should have higher priority than the config one
The external deps_dir should have higher priority because
it is used by scripts and other build tools to set up the
location of the dependencies. This commit ensures that,
even if a project has set deps_dir in its config file has
lower preference than the command line one.
2013-06-18 00:28:52 +03:00
Philip Mueller
c79314593d remove superfluous string concat operator usage 2013-06-16 16:15:14 +02:00
Dave Smith
16eed82ae4 Merge pull request #60 from jcomellas/jc-getopt-0.7.0
Add latest version getopt that automatically wraps usage output lines
2013-06-16 06:24:37 -07:00
Dave Smith
baf2655343 Merge pull request #44 from nevar/fix_neotoma
Correct ext of neotoma output file
2013-06-16 06:21:59 -07:00
Dave Smith
2f4de5359c Merge pull request #37 from nox/force-registered
Ensure we always have a `registered` value in `.app` files
2013-06-16 06:14:48 -07:00
Dave Smith
76405da6d7 Merge pull request #24 from legoscia/master
Allow specifying eunit suite run order in 'suites'
2013-06-16 06:07:55 -07:00
Dave Smith
547552b5c2 Merge pull request #74 from DeadZen/dz-merged-overlay
Implement merged overlays
2013-06-14 05:52:42 -07:00
Dave Smith
6cd982c897 Merge pull request #75 from rpt/master
Support for QuickCheck Mini
2013-06-12 06:18:16 -07:00
Dave Smith
638569acc2 Merge pull request #90 from Motiejus/dep_plugin
Fix searching for plugins
2013-05-21 05:22:43 -07:00
Motiejus Jakštys
252b31f2a4 Fix searching for plugins
If a plugin is in a dependency, rebar didn't search for it carefully
enough.
2013-05-19 16:33:29 +03:00
Dave Smith
ae3323728f Merge branch 'master' of git://github.com/ferd/rebar into ferd-master 2013-05-15 10:07:02 -06:00
Jeremie Lasalle Ratelle
c2fae0ca5c Add rebar-deps env to port compiler SharedEnv
REBAR_DEPS_DIR is often needed when a nif needs to be linked with a raw
dependency.
2013-05-06 11:15:06 -04:00
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