Assuming that you already have an OTP project setup getting started is no problem, at all. Its simply a matter of dropping a build config into your OTP project. For the most part build config files are pretty standardized, they don't change much. About the only thing that changes in them is the name of the project and the release version number. Here is the build config that Sinan uses (yes it builds itself).
project : {
name : sinan
vsn : "0.5.0"
},
repositories : ["http://repo.erlware.org/pub"]
The details of the format and the meaning of different sections are detailed in the reference manual, so I wont go into detail here. However, for now you can just copy this into the root directory of your project. Change the project.name and project.vsn to match your project and issue the following command.
sinan
Assuming that everything is good you will end up with a directory structure something like
<project root>
|- _build
|- sigs
|- apps
|- info
|- <project apps>
The build directory is used by sinan as a target for the generated result of the build. For the most part you can ignore whats under build. If you are curious poke around in _build to familiarize yourself with what sinan outputs.
Thats about all you need for now. That will get you up and building apps.
With the build config described above a few tasks are available for you. I will show you how to execute them here and describe a bit about what they do.
sinan build
With the above build config, the build task actually goes through and attempts to build the application. Dependent tasks will resolve dependencies and pull down whatever is required.
sinan test
The test tag will run any eunit tests you have in your project and output the results. It will also output code coverage information for your project. You must use eunit 2.0 alpha or greater if you wish to use this test tag.
sinan doc
The doc tag runs edoc across all of the OTP applications in your project. The xmerl shipped with Erlang R11B-3 is a bit broken so edoc does not work for that release of Erlang.
sinan analyze
The analyze task runs Dialyzer across all of the code in your application. The output from dialyzer is written to the command line.
sinan clean
Deletes any and all files generated by sinan.
sinan release
Generates the *.rel, *.boot, and *.script files.
sinan dist
Uses the build in system taring tools of Erlang to create a *.tar file that the standard release handler is able to use.