summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTuncer Ayaz <tuncer.ayaz@gmail.com>2012-01-01 16:29:02 +0100
committerTuncer Ayaz <tuncer.ayaz@gmail.com>2012-01-01 17:04:37 +0100
commitaf3eab652259260b139456807557342ae4876e54 (patch)
tree702d1ad1786abcf6b1adf2e02fe70f0034b072e8
parent27e5a0ae5bce0f9754e4ee596eb01a5f8fab5717 (diff)
Enhance make check (Inspired-by: Stavros Aronis)
-rw-r--r--.gitignore2
-rw-r--r--Makefile22
-rw-r--r--README.md40
-rw-r--r--dialyzer_reference2
-rw-r--r--xref_reference2
5 files changed, 52 insertions, 16 deletions
diff --git a/.gitignore b/.gitignore
index 0ec8652..8852dc9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,5 +6,7 @@ rebar
rt.work
.hgignore
.eunit
+dialyzer_warnings
+xref_warnings
rebar.cmd
rebar.ps1
diff --git a/Makefile b/Makefile
index 375bc81..e521f08 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,5 @@
+.PHONY: dialyzer_warnings xref_warnings
+
all:
./bootstrap
@@ -5,9 +7,19 @@ clean:
@rm -rf rebar ebin/*.beam inttest/rt.work
debug:
- ./bootstrap debug
+ @./bootstrap debug
+
+check: debug xref dialyzer
+
+xref: xref_warnings
+ @diff -U0 xref_reference xref_warnings
+
+xref_warnings:
+ -@./rebar xref > xref_warnings
+
+dialyzer: dialyzer_warnings
+ @diff -U0 dialyzer_reference dialyzer_warnings
-check: debug
- -@./rebar xref
- -@dialyzer ebin --verbose -Wunmatched_returns -Werror_handling \
- -Wrace_conditions
+dialyzer_warnings:
+ -@dialyzer -q -n ebin -Wunmatched_returns -Werror_handling \
+ -Wrace_conditions > dialyzer_warnings
diff --git a/README.md b/README.md
index 78a6cd4..cff8412 100644
--- a/README.md
+++ b/README.md
@@ -14,8 +14,9 @@ locations (git, hg, etc).
Building
--------
-Information on building and installing Erlang/OTP can be found
-in the `INSTALL.md` document.
+Information on building and installing [Erlang/OTP](http://www.erlang.org)
+can be found [here](https://github.com/erlang/otp/wiki/Installation)
+([more info](https://github.com/erlang/otp/blob/master/INSTALL.md)).
### Dependencies
@@ -28,7 +29,9 @@ Should you want to clone the rebar repository, you will also require git.
Clone the git repository:
- $ git clone git://github.com/basho/rebar.git
+```sh
+$ git clone git://github.com/basho/rebar.git
+```
#### Building rebar
@@ -69,7 +72,8 @@ Do not mix spaces and tabs.
Do not introduce lines longer than 80 characters.
[erlang-mode (emacs)](http://www.erlang.org/doc/man/erlang.el.html) indentation is preferred.
-vi-only users are encouraged to give [Vim emulation](http://emacswiki.org/emacs/Evil) ([more info](https://gitorious.org/evil/pages/Home)) a try.
+vi-only users are encouraged to give [Vim emulation](http://emacswiki.org/emacs/Evil)
+([more info](https://gitorious.org/evil/pages/Home)) a try.
Writing Commit Messages
-----------------------
@@ -106,18 +110,32 @@ Longer description (wrap at 72 characters)
Dialyzer and Tidier
-------------------
-Before you submit a patch check for discrepancies with
-[Dialyzer](http://www.erlang.org/doc/man/dialyzer.html):
+Before you submit a patch check for
+[xref](http://www.erlang.org/doc/man/xref.html) and
+[Dialyzer](http://www.erlang.org/doc/man/dialyzer.html)
+warnings.
+
+A successful run of ``make check`` looks like:
```sh
$ make check
+Recompile: src/rebar_core
+==> rebar (compile)
+Command 'debug' not understood or not applicable
+Congratulations! You now have a self-contained script called "rebar" in
+your current working directory. Place this script anywhere in your path
+and you can use rebar to build OTP-compliant apps.
+make: [xref_warnings] Error 1 (ignored)
+make: [dialyzer_warnings] Error 2 (ignored)
```
-The following discrepancies are known and safe to ignore:
-
-```
-rebar_utils.erl:147: Call to missing or unexported function escript:foldl/3
-```
+[xref](http://www.erlang.org/doc/man/xref.html) and
+[Dialyzer](http://www.erlang.org/doc/man/dialyzer.html) warnings are compared
+against a set of safe-to-ignore warnings
+found in
+[dialyzer_reference](https://raw.github.com/tuncer/rebar/maint/dialyzer_reference)
+and
+[xref_reference](https://raw.github.com/tuncer/rebar/maint/xref_reference).
It is **strongly recommended** to check the code with
[Tidier](http://tidier.softlab.ntua.gr:20000/tidier/getstarted).
diff --git a/dialyzer_reference b/dialyzer_reference
new file mode 100644
index 0000000..be486b5
--- /dev/null
+++ b/dialyzer_reference
@@ -0,0 +1,2 @@
+
+rebar_utils.erl:163: Call to missing or unexported function escript:foldl/3
diff --git a/xref_reference b/xref_reference
new file mode 100644
index 0000000..c723da8
--- /dev/null
+++ b/xref_reference
@@ -0,0 +1,2 @@
+==> rebar (xref)
+src/rebar_utils.erl:157: Warning escript_foldl/3 calls undefined function escript:foldl/3