Commit graph

899 commits

Author SHA1 Message Date
Tuncer Ayaz
34ead92c83 Fix #187 (rename mustache to rebar_mustache) 2014-01-01 10:59:34 +01:00
Tuncer Ayaz
777fefe181 Fix #187 (rename getopt to rebar_getopt)
While at it, update getopt.erl to git rev 78eda3b.
2014-01-01 10:59:34 +01:00
Pierre Fenoll
70cdb37942 Add command to rebar:command_names/0 2013-12-19 23:05:49 +00:00
Pierre Fenoll
c83d037404 Add a library template 2013-12-19 22:01:25 +00:00
Tuncer Ayaz
031e7c5fc5 rebar_dia_compiler: fix Dialyzer warnings 2013-12-17 14:27:35 +01:00
Tuncer Ayaz
277a10cd3b Fix is_verbose/1 helper function 2013-12-06 21:39:53 +01:00
Tuncer Ayaz
f39309a660 Write ERROR messages to standard_error device 2013-12-06 19:05:45 +01:00
Tuncer Ayaz
6de94e8a16 Change default log level to 'warn' and introduce -q/--quiet 2013-12-06 19:05:45 +01:00
Tuncer Ayaz
e5d76e7e8c rebar_log: use defines for log level numbers 2013-12-06 19:05:45 +01:00
Tuncer Ayaz
2f636236bf rebar_config:is_verbose/0: fix variable name 2013-12-06 19:05:45 +01:00
Tuncer Ayaz
6fe3b82b5b Make list of commands (for unabbreviation) easier to maintain
It's easier to modify the list with each command on a separate line.
The shell completion scripts have already been modified that way.
2013-12-04 20:11:49 +01:00
Jared Morrow
c02fcec92c Merge pull request #174 from tuncer/dialyzer-fixes
rebar_core: fix Dialyzer warning introduced in aa46d85 (#157)
2013-12-03 13:10:05 -08:00
Jared Morrow
dac4f9245d Merge pull request #173 from tuncer/unknown-vsn
Fix false reporting of (plain) vsn strings
2013-12-03 13:07:01 -08:00
Jared Morrow
cedb889137 Merge pull request #172 from tuncer/dep-examples
Add missing dep examples and fix existing ones
2013-12-03 13:04:16 -08:00
Tuncer Ayaz
37310820f7 rebar_core: fix Dialyzer warning introduced in aa46d85 (#157) 2013-11-26 21:15:04 +01:00
Tuncer Ayaz
55d1539404 lfe: use correctly filtered erl_opts 2013-11-26 20:33:56 +01:00
Tuncer Ayaz
8f05368ba4 erlc: properly reuse the right erl_opts in test_compile
Avoid getting erl_opts twice in test_compile/3, and make sure the
correctly filtered (platform_define, etc.) version is used.
2013-11-26 20:33:56 +01:00
Tuncer Ayaz
edef0962d2 Fix false reporting of (plain) vsn strings
rebar used to mistakenly report plain version strings like
{vsn, "1.0.0"} as follows:
DEBUG: vcs_vsn: Unknown VCS atom in vsn field: "1.0.0"

Properly detect unknown/unsupported version terms and abort
if we encounter one.

While at it, rename a variable in vcs_vsn/3 to be non-misleading.
2013-11-26 20:33:34 +01:00
Tuncer Ayaz
79903b9eeb deps: remove undocumented fossil syntax
As discussed with Martin Schut, remove support for
{app_name, "vsn", {fossil, "url", latest}.
2013-11-26 20:30:16 +01:00
Tuncer Ayaz
d7cef6b4c1 Add missing dep examples and fix existing ones 2013-11-26 20:30:16 +01:00
Jared Morrow
988c9cd574 Merge pull request #155 from tuncer/fixes
Fixes for #137 and #142
2013-11-26 06:18:30 -08:00
Jared Morrow
9a158d37fc Merge pull request #157 from Vagabond/adt-lib-dir
Don't over-aggressively clean the code path in the presence of lib_dir directives
2013-11-22 14:17:21 -08:00
Andrew Thompson
aa46d85849 Don't badmatch if a path we think we added isn't in the code path 2013-10-17 12:36:36 -04:00
Andrew Thompson
d983beafe9 Don't over-aggressively clean the code path in the presence of lib_dir directives
Rebar, when it encounters a lib_dir directive, caches the current code
path, adds the libdir(s) and returns the cached copy of the path. When
rebar has finished processing that directory, it restores the cached
path. This is problematic in the below scenario:

        /(lib_dir)->G
  A -> B -> C -> D -> E
   \-> F -> D -> E

When rebar is finished processing B, it restores the code path to what
it was before it processed B, removing C, D, E and G from the code path.
This means when it comes to process F, neither D or E are in the code
path, so any header includes, rebar plugins or parse transforms will not
be in the code path. Without the lib_dir directive, rebar does no code
path cleanups, so everything works fine.

This change makes rebar only remove the explicit lib_dir code paths it
added and adds an inttest that replicates the above scenario.
2013-10-16 19:58:02 -04:00
Andrew Thompson
01df43e58a Fix update-deps with certain forms of the {tag, ...} type
Sometimes tags like 1.1-3-g3af5478 or d20b53f0 are encountered. The
first is the output of 'git describe', and the second is just a regular
git SHA. git fetch --tags will not pull these down, so do a full git
fetch instead.
2013-10-16 12:43:01 -04:00
Manuel Rubio
dfba6dd6f9 Fix issues introduced in #137 (4dfdd72)
* fix Dialyzer warning
* fix formatting
2013-10-16 13:21:56 +02:00
Tuncer Ayaz
d49ac03627 rebar_deps: fix overly long lines 2013-10-16 13:21:51 +02:00
Tuncer Ayaz
95910c7764 rebar_deps: 'depowner' has to be stored in xconf 2013-10-16 12:51:22 +02:00
Tuncer Ayaz
6518b5f541 rebar_deps: fix Dialyzer warning 2013-10-16 12:36:32 +02:00
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