Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A sophisticated build-tool for Erlang projects that follows OTP principles.

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 ebin
Octocat-spinner-32 include
Octocat-spinner-32 inttest
Octocat-spinner-32 priv
Octocat-spinner-32 src
Octocat-spinner-32 test
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .hgignore
Octocat-spinner-32 .hgtags
Octocat-spinner-32 LICENSE
Octocat-spinner-32 Makefile
Octocat-spinner-32 NOTES.org
Octocat-spinner-32 README.md
Octocat-spinner-32 THANKS
Octocat-spinner-32 bootstrap
Octocat-spinner-32 bootstrap.bat
Octocat-spinner-32 rebar.bat
Octocat-spinner-32 rebar.config
Octocat-spinner-32 rebar.config.sample
README.md

rebar

rebar is an Erlang build tool that makes it easy to compile and
test Erlang applications, port drivers and releases.

rebar is a self-contained Erlang script, so it's easy to distribute or even
embed directly in a project. Where possible, rebar uses standard Erlang/OTP
conventions for project structures, thus minimizing the amount of build
configuration work. rebar also provides dependency management, enabling
application writers to easily re-use common libraries from a variety of
locations (git, hg, etc).

Building

Information on building and installing Erlang/OTP can be found in the INSTALL.md document.

Dependencies

To build rebar you will need a working installation of Erlang R13B03 (or later).

Should you want to clone the rebar repository, you will also require git.

Downloading

Clone the git repository:

$ git clone git://github.com/basho/rebar.git

Building rebar

$ cd rebar/
$ ./bootstrap
Recompile: src/getopt
...
Recompile: src/rebar_utils
==> rebar (compile)
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.

Contributing to rebar

Coding style

Do not introduce trailing whitespace.

Do not introduce lines longer than 80 characters.

Writing Commit Messages

Structure your commit message like this:

One line summary (less than 50 characters)

Longer description (wrap at 72 characters)

Summary

  • Less than 50 characters
  • What was changed
  • Imperative present tense (fix, add, change) > Fix bug 123
    > Add 'foobar' command
    > Change default timeout to 123
  • No period

Description

  • Wrap at 72 characters
  • Why, explain intention and implementation approach
  • Present tense

Atomicity

  • Break up logical changes
  • Make whitespace changes separately

Dialyzer and Tidier

Before you submit a patch check for discrepancies with Dialyzer:

$ cd rebar/
$ ./bootstrap debug
$ dialyzer ebin -Wunmatched_returns -Werror_handling -Wrace_conditions -Wunderspecs

The following discrepancies are known and safe to ignore:

rebar_templater.erl:249: The call rebar_templater:consult(
                                Cont1::erl_scan:return_cont(),'eof',
                                Acc::[any()])
                         contains an opaque term as 1st argument when terms
                         of different types are expected in these positions
rebar_utils.erl:144: Call to missing or unexported function escript:foldl/3
rebar_utils.erl:165: The created fun has no local return

It is strongly recommended to check the code with Tidier.
Select all transformation options and enable automatic transformation.
If Tidier suggests a transformation apply the changes manually to the source code.
Do not use the code from the tarball (out.tgz) as it will have white-space changes
applied by Erlang's pretty-printer.

Something went wrong with that request. Please try again.